[java-identity-provider] 01/06: IDP-1595 Tidy up some extraneous methods in PluginState

Rod Widdowson rdw at steadingsoftware.com
Tue Aug 4 13:06:41 UTC 2020


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

rdw pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=ef08e70d03290caa93c4610f431b5ef434b6f230

commit ef08e70d03290caa93c4610f431b5ef434b6f230
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sun Aug 2 14:34:26 2020 +0100

    IDP-1595  Tidy up some extraneous methods in PluginState
    
    https://issues.shibboleth.net/jira/browse/IDP-1595
---
 .../shibboleth/idp/plugin/impl/PluginState.java    | 66 +++++++---------------
 .../net/shibboleth/idp/plugin/PluginStateTest.java | 50 ++++++++--------
 2 files changed, 48 insertions(+), 68 deletions(-)

diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/plugin/impl/PluginState.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/plugin/impl/PluginState.java
index a9448ac50..42dfdb5af 100644
--- a/idp-admin-impl/src/main/java/net/shibboleth/idp/plugin/impl/PluginState.java
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/plugin/impl/PluginState.java
@@ -20,8 +20,8 @@ package net.shibboleth.idp.plugin.impl;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.Collection;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.regex.Pattern;
@@ -242,13 +242,19 @@ public class PluginState extends AbstractInitializableComponent {
     }
         
     /** {@inheritDoc} */
+    // CheckStyle: CyclomaticComplexity OFF
     protected void doInitialize() throws ComponentInitializationException {
         
         try {
             if (httpClient == null) {
                 httpClient = new HttpClientBuilder().buildClient();
             }
-            for (final URL url: plugin.getUpdateURLs()) {
+            final List<URL> urls = plugin.getUpdateURLs();
+            if (urls == null) {
+                log.error("Plugin {} was malformed", plugin.getPluginId());
+                throw new ComponentInitializationException("Could not locate information plugin"); 
+            }
+            for (final URL url: urls) {
                 final Resource propertyResource;
                 if ("file".equals(url.getProtocol())) {
                     // Kludge to allow classpath backed files
@@ -290,37 +296,7 @@ public class PluginState extends AbstractInitializableComponent {
             super.doInitialize();
         }
     }
-    
-    /** Get the current support level for this version.
-     * @return the level
-     */
-    public SupportLevel getSupportLevel() {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-        return myVersionInfo.getSupportLevel();
-    }
-
-    /** Is this plugin supported with the current IdP?
-     * @return whether it is supported.
-     */
-    public boolean isSupportedWithIdPVersion() {
-        return isSupportedWithIdPVersion(PluginSupport.getIdPVersion());
-    }
-    
-    /** Is this plugin supported with this IdP version.
-     * @param idPVersion the version as a {@link String}
-     * @return whether it is supported.
-     */
-    public boolean isSupportedWithIdPVersion(final String idPVersion) {
-        return isSupportedWithIdPVersion(new PluginVersion(idPVersion));
-    }
-    
-    /** Is this plugin supported with this IdP version.
-     * @param idPVersion the version as a {@link PluginVersion}
-     * @return whether it is supported.
-     */
-    public boolean isSupportedWithIdPVersion(final PluginVersion idPVersion) {
-        return isSupportedWithIdPVersion(myVersionInfo, idPVersion);
-    }
+    // CheckStyle: CyclomaticComplexity ON
     
     /** Is the specified plugin supported with this IdP version.
      * @param pluginVersion the version if the plugin as a {@link PluginVersion}
@@ -339,22 +315,13 @@ public class PluginState extends AbstractInitializableComponent {
         return isSupportedWithIdPVersion(info, idPVersion);
     }
     
-    /** Is the specified plugin supported with this IdP version.
-     * @param pluginVersion the version if the plugin as a {@link PluginVersion}
-     * @param idPVersion the version if the IDP as a {@link String}
-     * @return whether it is supported.
-     */
-    public boolean isSupportedWithIdPVersion(final PluginVersion pluginVersion, final String idPVersion) {
-        return isSupportedWithIdPVersion(pluginVersion, new PluginVersion(idPVersion));
-    }
-        
     /** Is the specified plugin supported with this IdP version.
      * Worker method for all 'isSupportedWith' classes.
      * @param pluginVersionInfo the version info to consider
      * @param idPVersion the version as a {@link PluginVersion}
      * @return whether it is supported.
      */
-    protected static boolean isSupportedWithIdPVersion(final VersionInfo pluginVersionInfo,
+    public static boolean isSupportedWithIdPVersion(final VersionInfo pluginVersionInfo,
             final PluginVersion idPVersion) {
         final int maxCompare = idPVersion.compareTo(pluginVersionInfo.getMaxSupported()); 
         
@@ -372,16 +339,23 @@ public class PluginState extends AbstractInitializableComponent {
         return false;
     }
     
+    /** Return the current state (from provided plugin).
+     * @return Returns the Current Info.
+     */
+    public VersionInfo getCurrentInfo() {
+        return myVersionInfo;
+    }
+    
     /** Return all announced versions.
      * @return the versions.
      */
-    @Nonnull @NotEmpty public Collection<PluginVersion> getAvailableVersions() {
+    @Nonnull @NotEmpty public Map<PluginVersion, VersionInfo> getAvailableVersions() {
         ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-        return versionInfo.keySet();
+        return versionInfo;
     }
     
     /** Encapsulation of the information about a given IdP version. */
-    protected static class VersionInfo {
+    public static class VersionInfo {
         
         /** Maximum version - this version is NOT SUPPORTED. */ 
         private final PluginVersion maxSupported; 
diff --git a/idp-admin-impl/src/test/java/net/shibboleth/idp/plugin/PluginStateTest.java b/idp-admin-impl/src/test/java/net/shibboleth/idp/plugin/PluginStateTest.java
index 4e3c6086d..8e1fc3aa1 100644
--- a/idp-admin-impl/src/test/java/net/shibboleth/idp/plugin/PluginStateTest.java
+++ b/idp-admin-impl/src/test/java/net/shibboleth/idp/plugin/PluginStateTest.java
@@ -29,7 +29,6 @@ import java.util.List;
 
 import org.testng.annotations.Test;
 
-import net.shibboleth.idp.plugin.PluginSupport.SupportLevel;
 import net.shibboleth.idp.plugin.impl.PluginState;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 
@@ -38,6 +37,11 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
  */
 @SuppressWarnings("javadoc")
 public class PluginStateTest {
+    
+    private boolean testSupportState(final PluginVersion pluginVersion, final PluginState state, final String IdpVersion) {
+        final PluginVersion idPVersion = new PluginVersion(IdpVersion);
+        return state.isSupportedWithIdPVersion(pluginVersion, idPVersion);
+    }
 
     @Test
     public void testSimple() throws ComponentInitializationException {
@@ -47,33 +51,36 @@ public class PluginStateTest {
         final PluginState state = new PluginState(simple);
         
         state.initialize();
+
+        final PluginVersion pluginVersion = new PluginVersion(simple.getMajorVersion(), simple.getMinorVersion(), simple.getPatchVersion());
         
+        assertEquals(pluginVersion, new PluginVersion("1.2.3"));
         assertEquals(state.getAvailableVersions().size(), 3);
-        assertTrue(state.getAvailableVersions().contains(new PluginVersion(1, 2, 3)));
-        assertTrue(state.getAvailableVersions().contains(new PluginVersion(1, 2, 4)));
-        assertTrue(state.getAvailableVersions().contains(new PluginVersion(2,0,0)));
-        assertFalse(state.getAvailableVersions().contains(new PluginVersion(3, 2, 3)));
+        assertTrue(state.getAvailableVersions().containsKey(new PluginVersion(1, 2, 3)));
+        assertTrue(state.getAvailableVersions().containsKey(new PluginVersion(1, 2, 4)));
+        assertTrue(state.getAvailableVersions().containsKey(new PluginVersion(2,0,0)));
+        assertFalse(state.getAvailableVersions().containsKey(new PluginVersion(3, 2, 3)));
 
-        assertTrue(state.isSupportedWithIdPVersion("4.2.0"));
-        assertTrue(state.isSupportedWithIdPVersion("4.99.9"));
-        assertFalse(state.isSupportedWithIdPVersion("5.0.0"));
-        assertFalse(state.isSupportedWithIdPVersion("4.1.0"));
+        assertTrue(testSupportState(pluginVersion, state, "4.1.0"));
+        assertTrue(testSupportState(pluginVersion, state, "4.2.0"));
+        assertTrue(testSupportState(pluginVersion, state, "4.99.9"));
+        assertFalse(testSupportState(pluginVersion, state, "5.0.0"));
 
         final PluginVersion v124 = new PluginVersion(1,2,3);        
-        assertTrue(state.isSupportedWithIdPVersion(v124, "4.1.0"));
-        assertTrue(state.isSupportedWithIdPVersion(v124, "4.99.9"));
-        assertFalse(state.isSupportedWithIdPVersion(v124, "5.0.0"));
-        assertFalse(state.isSupportedWithIdPVersion(v124, "4.0.0"));
+        assertTrue(testSupportState(v124, state,"4.1.0"));
+        assertTrue(testSupportState(v124, state, "4.99.9"));
+        assertFalse(testSupportState(v124, state, "5.0.0"));
+        assertFalse(testSupportState(v124, state, "4.0.0"));
 
         final PluginVersion v2 = new PluginVersion(2,0,0);
-        assertTrue(state.isSupportedWithIdPVersion(v2, "4.99.1"));
-        assertTrue(state.isSupportedWithIdPVersion(v2, "4.99.999"));
-        assertFalse(state.isSupportedWithIdPVersion(v2, "4.99.0"));
-        assertFalse(state.isSupportedWithIdPVersion(v2, "4.98.999"));
-        assertTrue(state.isSupportedWithIdPVersion(v2, "5.0.0"));
-        assertTrue(state.isSupportedWithIdPVersion(v2, "6.0.0"));
-        assertTrue(state.isSupportedWithIdPVersion(v2, "7.0.0"));
-        assertFalse(state.isSupportedWithIdPVersion(v2, "8"));
+        assertTrue(testSupportState(v2, state, "4.99.1"));
+        assertTrue(testSupportState(v2, state, "4.99.999"));
+        assertFalse(testSupportState(v2, state, "4.99.0"));
+        assertFalse(testSupportState(v2, state, "4.98.999"));
+        assertTrue(testSupportState(v2, state, "5.0.0"));
+        assertTrue(testSupportState(v2, state, "6.0.0"));
+        assertTrue(testSupportState(v2, state, "7.0.0"));
+        assertFalse(testSupportState(v2, state, "8"));
         
     }
     
@@ -96,6 +103,5 @@ public class PluginStateTest {
         state.initialize();
         
         assertEquals(state.getAvailableVersions().size(), 3);
-        assertEquals(state.getSupportLevel(), SupportLevel.OutOfDate);
     }
 }

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


More information about the commits mailing list