[java-opensaml] branch main updated: IDP-2044 Scripted object constructors and initialization

Rod Widdowson rdw at steadingsoftware.com
Wed Jun 21 15:43:06 UTC 2023


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

rdw pushed a commit to branch main
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=0d8f395fcca7923cb4d4cc5a98730b5f3fca3aa9

The following commit(s) were added to refs/heads/main by this push:
     new 0d8f395fc IDP-2044 Scripted object constructors and initialization
0d8f395fc is described below

commit 0d8f395fcca7923cb4d4cc5a98730b5f3fca3aa9
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed Jun 21 16:33:57 2023 +0100

    IDP-2044 Scripted object constructors and initialization
    
    https://shibboleth.atlassian.net/browse/IDP-2044
    
    Having removed the deprecated (initializeWithScriptException) method
    make the factory methods throw ComponentInitalizationException
    as well.
    
    These are only used as beans and in tests.
---
 .../filter/impl/ScriptedTrustedNamesFunction.java     | 19 +++++++++++--------
 .../resolver/filter/impl/ScriptedFunctionTest.java    |  7 ++++---
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedTrustedNamesFunction.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedTrustedNamesFunction.java
index f88b4c040..f85d6be30 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedTrustedNamesFunction.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedTrustedNamesFunction.java
@@ -28,6 +28,7 @@ import javax.script.ScriptContext;
 import javax.script.ScriptException;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.resource.Resource;
 import net.shibboleth.shared.scripting.AbstractScriptEvaluator;
 import net.shibboleth.shared.scripting.EvaluableScript;
@@ -91,15 +92,15 @@ public class ScriptedTrustedNamesFunction extends AbstractScriptEvaluator implem
      * @return the function
      * @throws ScriptException if the compile fails
      * @throws IOException if the file doesn't exist.
+     * @throws ComponentInitializationException if the scripting initialization fails
      */
-    @SuppressWarnings("removal")
     @Nonnull static ScriptedTrustedNamesFunction resourceScript(@Nonnull @NotEmpty final String engineName,
-            @Nonnull final Resource resource) throws ScriptException, IOException {
+            @Nonnull final Resource resource) throws ScriptException, IOException, ComponentInitializationException {
         try (final InputStream is = resource.getInputStream()) {
             final EvaluableScript script = new EvaluableScript();
             script.setEngineName(engineName);
             script.setScript(is);
-            script.initializeWithScriptException();
+            script.initialize();
             return new ScriptedTrustedNamesFunction(script, resource.getDescription());
         }
     }
@@ -111,9 +112,10 @@ public class ScriptedTrustedNamesFunction extends AbstractScriptEvaluator implem
      * @return the function
      * @throws ScriptException if the compile fails
      * @throws IOException if the file doesn't exist.
+     * @throws ComponentInitializationException if the scripting initialization fails
      */
     @Nonnull static ScriptedTrustedNamesFunction resourceScript(@Nonnull final Resource resource)
-            throws ScriptException, IOException {
+            throws ScriptException, IOException, ComponentInitializationException {
         return resourceScript(DEFAULT_ENGINE, resource);
     }
 
@@ -124,14 +126,14 @@ public class ScriptedTrustedNamesFunction extends AbstractScriptEvaluator implem
      * @param engineName the language
      * @return the function
      * @throws ScriptException if the compile fails
+     * @throws ComponentInitializationException if the scripting initialization fails
      */
-    @SuppressWarnings("removal")
     @Nonnull static ScriptedTrustedNamesFunction inlineScript(@Nonnull @NotEmpty final String engineName,
-            @Nonnull @NotEmpty final String scriptSource) throws ScriptException {
+            @Nonnull @NotEmpty final String scriptSource) throws ScriptException, ComponentInitializationException {
         final EvaluableScript script = new EvaluableScript();
         script.setEngineName(engineName);
         script.setScript(scriptSource);
-        script.initializeWithScriptException();
+        script.initialize();
         return new ScriptedTrustedNamesFunction(script, "Inline");
     }
 
@@ -141,9 +143,10 @@ public class ScriptedTrustedNamesFunction extends AbstractScriptEvaluator implem
      * @param scriptSource the script, as a string
      * @return the function
      * @throws ScriptException if the compile fails
+     * @throws ComponentInitializationException if the scripting initialization fails
      */
     @Nonnull static ScriptedTrustedNamesFunction inlineScript(@Nonnull @NotEmpty final String scriptSource)
-            throws ScriptException {
+            throws ScriptException, ComponentInitializationException {
         return inlineScript(DEFAULT_ENGINE, scriptSource);
     }
 
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedFunctionTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedFunctionTest.java
index 696ee7a75..4eccdfe5e 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedFunctionTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/ScriptedFunctionTest.java
@@ -32,6 +32,7 @@ import org.testng.Assert;
 import org.testng.annotations.Test;
 
 import net.shibboleth.shared.collection.CollectionSupport;
+import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.resource.Resource;
 import net.shibboleth.shared.spring.resource.ResourceHelper;
 
@@ -48,7 +49,7 @@ public class ScriptedFunctionTest extends XMLObjectBaseTestCase {
         return builder.buildObject();
     }
     
-    @Test public void inlineScript() throws ScriptException {
+    @Test public void inlineScript() throws ScriptException, ComponentInitializationException {
         
         final Set<String> s = ScriptedTrustedNamesFunction.inlineScript(SCRIPT_8).apply(makeObject());
         assert s != null;
@@ -57,7 +58,7 @@ public class ScriptedFunctionTest extends XMLObjectBaseTestCase {
    }
     
     
-    @Test public void fileScript() throws ScriptException, IOException {
+    @Test public void fileScript() throws ScriptException, IOException, ComponentInitializationException {
         final Resource r = ResourceHelper.of(new ClassPathResource(FILE_8));
         final Set<String> result = ScriptedTrustedNamesFunction.resourceScript(r).apply(makeObject());
         assert result != null;
@@ -65,7 +66,7 @@ public class ScriptedFunctionTest extends XMLObjectBaseTestCase {
         Assert.assertTrue(result.contains("String"));
     }
     
-    @Test public void customScript() throws ScriptException {
+    @Test public void customScript() throws ScriptException, ComponentInitializationException {
         
         final ScriptedTrustedNamesFunction what = ScriptedTrustedNamesFunction.inlineScript("custom;");
         what.setCustomObject(CollectionSupport.singleton("String"));

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


More information about the commits mailing list