[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