[java-identity-provider] branch main updated: Add module pre/post information to plugins, and override equals/etc.

Scott Cantor cantor.2 at osu.edu
Thu Oct 1 17:17:17 UTC 2020


This is an automated email from the git hooks/post-receive script.

scantor 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=5e6282931a589154d08b5b07797e3d82823d206c

The following commit(s) were added to refs/heads/main by this push:
       new  5e6282931 Add module pre/post information to plugins, and override equals/etc.
5e6282931 is described below

commit 5e6282931a589154d08b5b07797e3d82823d206c
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Oct 1 13:17:14 2020 -0400

    Add module pre/post information to plugins, and override equals/etc.
---
 .../shibboleth/idp/module/AbstractIdPModule.java   | 19 ++++++++++++
 .../shibboleth/idp/plugin/AbstractIdPPlugin.java   | 36 ++++++++++++++++++++++
 .../java/net/shibboleth/idp/plugin/IdPPlugin.java  | 26 +++++++++++++++-
 3 files changed, 80 insertions(+), 1 deletion(-)

diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/module/AbstractIdPModule.java b/idp-admin-api/src/main/java/net/shibboleth/idp/module/AbstractIdPModule.java
index 0caf9b75e..758848740 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/module/AbstractIdPModule.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/module/AbstractIdPModule.java
@@ -157,7 +157,26 @@ public abstract class AbstractIdPModule implements IdPModule {
         log.debug("Module {} disabled", getId());
         return results;
     }
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean equals(final Object obj) {
+        return obj instanceof IdPModule && getId().equals(((IdPModule) obj).getId());
+    }
+
+
+    /** {@inheritDoc} */
+    @Override
+    public int hashCode() {
+        return getId().hashCode();
+    }
     
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        return "IdPModule " + getId();
+    }
+
     /**
      * Models a specific resource managed by a module.
      */
diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/AbstractIdPPlugin.java b/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/AbstractIdPPlugin.java
index c3b5134c1..05356b938 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/AbstractIdPPlugin.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/AbstractIdPPlugin.java
@@ -22,10 +22,12 @@ import java.net.URL;
 import java.nio.file.Path;
 import java.util.Collections;
 import java.util.List;
+import java.util.Set;
 
 import javax.annotation.Nonnegative;
 import javax.annotation.Nonnull;
 
+import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.collection.Pair;
 
@@ -49,4 +51,38 @@ public abstract class AbstractIdPPlugin implements IdPPlugin {
         return 0;
     }
 
+    /** {@inheritDoc} */
+    @Nonnull @NonnullElements public Set<String> getRequiredModules() {
+        return Collections.emptySet();
+    }
+
+    /** {@inheritDoc} */
+    @Nonnull @NonnullElements public Set<IdPModule> getEnableOnInstall() {
+        return Collections.emptySet();
+    }
+
+    /** {@inheritDoc} */
+    @Nonnull @NonnullElements public Set<IdPModule> getDisableOnRemoval() {
+        return Collections.emptySet();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean equals(final Object obj) {
+        return obj instanceof IdPModule && getPluginId().equals(((IdPPlugin) obj).getPluginId());
+    }
+
+
+    /** {@inheritDoc} */
+    @Override
+    public int hashCode() {
+        return getPluginId().hashCode();
+    }
+    
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        return "IdPPlugin " + getPluginId();
+    }
+
 }
\ No newline at end of file
diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/IdPPlugin.java b/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/IdPPlugin.java
index aa61eddb9..582961d26 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/IdPPlugin.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/IdPPlugin.java
@@ -21,10 +21,12 @@ import java.io.IOException;
 import java.net.URL;
 import java.nio.file.Path;
 import java.util.List;
+import java.util.Set;
 
 import javax.annotation.Nonnegative;
 import javax.annotation.Nonnull;
 
+import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.collection.Pair;
@@ -101,4 +103,26 @@ public interface IdPPlugin {
      * @return The patch version.
      */
     @Nonnegative int getPatchVersion();
-}
+    
+    /**
+     * Get the IDs of any {@link IdPModule}s required for installation of this plugin.
+     * 
+     * @return module IDs that are required
+     */
+    @Nonnull @NonnullElements Set<String> getRequiredModules();
+
+    /**
+     * Get the modules to enable after plugin installation or upgrade.
+     * 
+     * @return modules to enable
+     */
+    @Nonnull @NonnullElements Set<IdPModule> getEnableOnInstall();
+
+    /**
+     * Get the modules to disable after plugin removal.
+     * 
+     * @return modules to disable
+     */
+    @Nonnull @NonnullElements Set<IdPModule> getDisableOnRemoval();
+
+}
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list