[java-identity-provider] 08/09: IDP-2107 Misc V5 Installer tasks
Rod Widdowson
rdw at steadingsoftware.com
Tue May 23 08:23:16 UTC 2023
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=ce3b31fc71b0125d8fc03f537d5bf9b4abb8fa1c
commit ce3b31fc71b0125d8fc03f537d5bf9b4abb8fa1c
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon May 22 18:19:01 2023 +0100
IDP-2107 Misc V5 Installer tasks
https://shibboleth.atlassian.net/browse/IDP-2107
Many of the classes used by the installer do not need to have the component lifetime.
Only CurrentInstall & Installer Properties state remain since they have
reasonably complicated initialization sequences
9612b41ac6af175fe913ae0961eb91014fe09651
---
.../shibboleth/idp/installer/impl/BuildWar.java | 14 ++------
.../idp/installer/impl/CopyDistribution.java | 8 +----
.../shibboleth/idp/installer/impl/IdPBuildWar.java | 7 ----
.../idp/installer/impl/IdPInstallerCLI.java | 5 +--
.../idp/installer/impl/InstallerProperties.java | 4 +--
.../shibboleth/idp/installer/impl/V5Install.java | 40 ++--------------------
.../idp/installer/plugin/impl/PluginInstaller.java | 10 ------
.../shibboleth/idp/installer/TestInstallerCLI.java | 2 +-
8 files changed, 9 insertions(+), 81 deletions(-)
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/BuildWar.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/BuildWar.java
index 917ac9af3..353c6a638 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/BuildWar.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/BuildWar.java
@@ -30,8 +30,6 @@ import org.slf4j.Logger;
import net.shibboleth.idp.Version;
import net.shibboleth.idp.installer.InstallerSupport;
-import net.shibboleth.shared.component.AbstractInitializableComponent;
-import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.primitive.LoggerFactory;
@@ -48,7 +46,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
* <li>Deletes webapp.tmp</li>
* </ul>
*/
-public final class BuildWar extends AbstractInitializableComponent {
+public final class BuildWar {
/** Log. */
@Nonnull private final Logger log = LoggerFactory.getLogger(BuildWar.class);
@@ -61,6 +59,7 @@ public final class BuildWar extends AbstractInitializableComponent {
*/
public BuildWar(@Nonnull final Path idpHome) {
targetDir = Constraint.isNotNull(idpHome, "IdPHome should not be null");
+ Constraint.isTrue(Files.exists(targetDir), "Target Dir " + targetDir + " does not exist");
}
/** Method to do a single overlay into webapp.
@@ -86,7 +85,6 @@ public final class BuildWar extends AbstractInitializableComponent {
* @throws BuildException if unexpected badness occurs.
*/
public void execute() throws BuildException {
- checkComponentActive();
final Path warFile = targetDir.resolve("war").resolve("idp.war");
log.info("Rebuilding {}, Version {}", warFile.toAbsolutePath(), Version.getVersion());
@@ -115,12 +113,4 @@ public final class BuildWar extends AbstractInitializableComponent {
jarTask.execute();
InstallerSupport.deleteTree(webAppTmp);
}
-
- /** {@inheritDoc} */
- protected void doInitialize() throws ComponentInitializationException {
- super.doInitialize();
- if (!Files.exists(targetDir)) {
- throw new ComponentInitializationException("Target Dir " + targetDir + " does not exist");
- }
- }
}
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/CopyDistribution.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/CopyDistribution.java
index 7b4393ff1..7108dba46 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/CopyDistribution.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/CopyDistribution.java
@@ -27,8 +27,6 @@ import org.apache.tools.ant.taskdefs.Copy;
import org.slf4j.Logger;
import net.shibboleth.idp.installer.InstallerSupport;
-import net.shibboleth.shared.component.AbstractInitializableComponent;
-import net.shibboleth.shared.component.UninitializedComponentException;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
@@ -36,7 +34,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
* take a backup of the old distribution. "The final location" means
* the dist, doc and system subdirectories.
*/
-public final class CopyDistribution extends AbstractInitializableComponent {
+public final class CopyDistribution {
/** Log. */
private final Logger log = LoggerFactory.getLogger(CopyDistribution.class);
@@ -50,9 +48,6 @@ public final class CopyDistribution extends AbstractInitializableComponent {
*/
public CopyDistribution(@Nonnull final InstallerProperties props) {
installerProps = props;
- if (!props.isInitialized()) {
- throw new UninitializedComponentException("Installer Properties not Initialized");
- }
}
/** Copy the distribution from the dstribution to their new locations, having
@@ -60,7 +55,6 @@ public final class CopyDistribution extends AbstractInitializableComponent {
* @throws BuildException if badness occurs
*/
public void execute() throws BuildException {
- checkComponentActive();
deleteOld();
copyDist();
copyBinDoc();
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/IdPBuildWar.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/IdPBuildWar.java
index 9b00ab0d5..c56c63a77 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/IdPBuildWar.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/IdPBuildWar.java
@@ -27,7 +27,6 @@ import org.slf4j.Logger;
import net.shibboleth.idp.Version;
import net.shibboleth.shared.cli.AbstractCommandLine;
-import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
@@ -86,12 +85,6 @@ public class IdPBuildWar extends AbstractCommandLine<IdPBuildArguments> {
return RC_INIT;
}
final BuildWar build = new BuildWar(idpHome);
- try {
- build.initialize();
- } catch (ComponentInitializationException e) {
- getLogger().error("Internal error", e);
- return RC_INIT;
- }
build.execute();
return RC_OK;
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/IdPInstallerCLI.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/IdPInstallerCLI.java
index 33c7179b9..987ca86b9 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/IdPInstallerCLI.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/IdPInstallerCLI.java
@@ -133,20 +133,17 @@ public class IdPInstallerCLI extends AbstractCommandLine<IdPInstallerArguments>
try {
final InstallerProperties ip = new InstallerProperties(source);
- ip.initialize();
+ ip.doInitialize();
final CurrentInstallState ic = new CurrentInstallState(ip);
ic.initialize();
final CopyDistribution cd = new CopyDistribution(ip);
- cd.initialize();
cd.execute();
final V5Install install = new V5Install(ip, ic, httpClient, clientSecurityParameters);
- install.initialize();
install.execute();
final BuildWar bw = new BuildWar(ip.getTargetDir());
- bw.initialize();
bw.execute();
} catch (final ComponentInitializationException e) {
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/InstallerProperties.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/InstallerProperties.java
index cee2bddaa..b9a064359 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/InstallerProperties.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/InstallerProperties.java
@@ -44,7 +44,6 @@ import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
-import net.shibboleth.shared.component.AbstractInitializableComponent;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.primitive.NonnullSupplier;
@@ -55,7 +54,7 @@ import net.shibboleth.shared.primitive.StringSupport;
NOTE Updated to this properties should be reflected in the "PropertyDriverInstallation" wiki page."/
*/
-public class InstallerProperties extends AbstractInitializableComponent {
+public class InstallerProperties {
/** The name of a property file to fill in some or all of the above. This file is deleted after processing. */
public static final String PROPERTY_SOURCE_FILE = "idp.property.file";
@@ -299,7 +298,6 @@ public class InstallerProperties extends AbstractInitializableComponent {
* @throws BuildException if something goes awry.
*/
@Nonnull public Path getTargetDir() throws BuildException {
- checkComponentActive();
if (targetDir != null) {
return targetDir;
}
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/V5Install.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/V5Install.java
index 96a179805..1f4eaedce 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/V5Install.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/V5Install.java
@@ -62,7 +62,6 @@ import net.shibboleth.idp.plugin.IdPPlugin;
import net.shibboleth.idp.plugin.PluginVersion;
import net.shibboleth.idp.spring.IdPPropertiesApplicationContextInitializer;
import net.shibboleth.shared.collection.CollectionSupport;
-import net.shibboleth.shared.component.AbstractInitializableComponent;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.component.UninitializedComponentException;
import net.shibboleth.shared.primitive.LoggerFactory;
@@ -74,7 +73,7 @@ import net.shibboleth.shared.spring.util.ApplicationContextBuilder;
/** Code to do most of the V4 Install.
*/
-public class V5Install extends AbstractInitializableComponent {
+public class V5Install {
/** Log. */
private final Logger log = LoggerFactory.getLogger(V5Install.class);
@@ -103,9 +102,6 @@ public class V5Install extends AbstractInitializableComponent {
*/
public V5Install(@Nonnull final InstallerProperties props, @Nonnull final CurrentInstallState installState,
@Nonnull final HttpClient client, @Nullable final HttpClientSecurityParameters securityParams) {
- if (!props.isInitialized()) {
- throw new UninitializedComponentException("Installer Properties not Initialized");
- }
if (!installState.isInitialized()) {
throw new UninitializedComponentException("Installer State not Initialized");
}
@@ -113,20 +109,13 @@ public class V5Install extends AbstractInitializableComponent {
currentState = installState;
httpClient = client;
httpClientSecurityParameters = securityParams;
- keyManager = new KeyManagement(installerProps, currentState);
- }
-
- /** {@inheritDoc} */
- protected void doInitialize() throws ComponentInitializationException {
- super.doInitialize();
- keyManager.initialize();
+ keyManager = new KeyManagement();
}
/** Method to do the work. It assumes that the distribution has been copied.
* @throws BuildException if unexpected badness occurs.
*/
public void execute() throws BuildException {
- checkComponentActive();
handleVersioning();
checkPreConditions();
enableCoreModules();
@@ -516,14 +505,8 @@ public class V5Install extends AbstractInitializableComponent {
/**
* Create (if needs be) all the keys needed by an install.
*/
- private class KeyManagement extends AbstractInitializableComponent {
+ private class KeyManagement {
- /** Properties for the job. */
- @Nonnull private final InstallerProperties installerProps;
-
- /** Current Install. */
- @Nonnull private final CurrentInstallState currentState;
-
/** Did we create idp-signing.*?*/
private boolean createdSigning;
@@ -536,22 +519,6 @@ public class V5Install extends AbstractInitializableComponent {
/** Did we create sealer.*?*/
private boolean createdSealer;
- /** Constructor.
- * @param props The properties to drive the installs.
- * @param installState - about where we installing into.
- */
- protected KeyManagement(@Nonnull final InstallerProperties props,
- @Nonnull final CurrentInstallState installState) {
- if (!props.isInitialized()) {
- throw new UninitializedComponentException("Installer Properties not Initialized");
- }
- if (!installState.isInitialized()) {
- throw new UninitializedComponentException("Installer State not Initialized");
- }
- installerProps = props;
- currentState = installState;
- }
-
/** Create any keys that are needed.
* @throws BuildException if badness occurs
*/
@@ -560,7 +527,6 @@ public class V5Install extends AbstractInitializableComponent {
log.debug("Skipping key generation");
return;
}
- checkComponentActive();
createdSigning = generateKey("idp-signing");
createdEncryption = generateKey("idp-encryption");
generateKeyStore();
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java
index d1a3ed899..41c148704 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java
@@ -321,11 +321,6 @@ public final class PluginInstaller extends AbstractInitializableComponent implem
if (isRebuildWar()) {
final BuildWar builder = new BuildWar(getIdpHome());
- try {
- builder.initialize();
- } catch (final ComponentInitializationException e) {
- throw new BuildException(e);
- }
builder.execute();
} else {
LOG.info("WAR file not rebuilt.");
@@ -373,11 +368,6 @@ public final class PluginInstaller extends AbstractInitializableComponent implem
if (isRebuildWar()) {
final BuildWar builder = new BuildWar(getIdpHome());
- try {
- builder.initialize();
- } catch (final ComponentInitializationException e) {
- throw new BuildException(e);
- }
builder.execute();
LOG.info("Removed resources for {} from the WAR file.", pluginId);
} else {
diff --git a/idp-installer/src/test/java/net/shibboleth/idp/installer/TestInstallerCLI.java b/idp-installer/src/test/java/net/shibboleth/idp/installer/TestInstallerCLI.java
index b0b28f5ac..305ff5bbd 100644
--- a/idp-installer/src/test/java/net/shibboleth/idp/installer/TestInstallerCLI.java
+++ b/idp-installer/src/test/java/net/shibboleth/idp/installer/TestInstallerCLI.java
@@ -26,7 +26,7 @@ import net.shibboleth.idp.installer.impl.InstallerProperties;
*/
public class TestInstallerCLI {
- @Test(enabled = true)
+ @Test(enabled = false)
public void install() {
System.setProperty(InstallerProperties.KEY_STORE_PASSWORD, "p1");
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list