[java-idp-plugin-scripting] 11/15: Separate API from impl for Nashorn

Ian Young ian at iay.org.uk
Mon Jun 22 13:03:47 UTC 2020


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

iay pushed a commit to branch master
in repository java-idp-plugin-scripting.

View the commit online:
http://git.shibboleth.net/view/?p=java-idp-plugin-scripting.git;a=commit;h=df78d39ad0d85374c79e4db01fa5adab21e2f3a8

commit df78d39ad0d85374c79e4db01fa5adab21e2f3a8
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sun Jun 7 14:03:18 2020 +0100

    Separate API from impl for Nashorn
    
    To allow eventual commonality with rhino.
---
 .../src/main/assembly/nashorn-assembly.xml         | 12 +++++
 nashorn-impl/pom.xml                               |  9 +++-
 .../plugins/scripting/nashorn/GraalFactory.java    | 52 +---------------------
 pom.xml                                            |  3 +-
 {nashorn-impl => scripting-api}/pom.xml            | 21 +++------
 .../plugins/scripting/AbstractScriptEngine.java    |  0
 .../scripting/AbstractScriptEngineFactory.java     | 29 ++----------
 .../scripting/RuntimeScriptingException.java       |  0
 .../shibboleth/plugins/scripting/package-info.java | 21 +--------
 9 files changed, 34 insertions(+), 113 deletions(-)

diff --git a/nashorn-dist/src/main/assembly/nashorn-assembly.xml b/nashorn-dist/src/main/assembly/nashorn-assembly.xml
index 56071f8..7078fe3 100644
--- a/nashorn-dist/src/main/assembly/nashorn-assembly.xml
+++ b/nashorn-dist/src/main/assembly/nashorn-assembly.xml
@@ -17,6 +17,18 @@
                 <exclude>*sources.jar</exclude>
             </excludes>
         </fileSet>
+        <fileSet>
+            <directory>../scripting-api/target</directory>
+            <outputDirectory>edit-webapp/WEB-INF/lib</outputDirectory>
+            <includes>
+                <include>scripting-api-*.jar</include>
+            </includes>
+            <excludes>
+                <exclude>*test*.jar</exclude>
+                <exclude>*javadoc.jar</exclude>
+                <exclude>*sources.jar</exclude>
+            </excludes>
+        </fileSet>
         <fileSet>
             <directory>src/main/resources/conf</directory>
             <outputDirectory>conf</outputDirectory>
diff --git a/nashorn-impl/pom.xml b/nashorn-impl/pom.xml
index 66fbb16..f45f939 100644
--- a/nashorn-impl/pom.xml
+++ b/nashorn-impl/pom.xml
@@ -15,16 +15,21 @@
     <packaging>jar</packaging>
     
     <properties>
-        <automatic.module.name>net.shibboleth.plugins.scripting</automatic.module.name>
+        <automatic.module.name>net.shibboleth.plugins.scripting.nashorn</automatic.module.name>
     </properties>
     
 
-    <name>Shibboleth Project Nashorn plugin</name>
+    <name>Shibboleth Project Nashorn Plugin</name>
     <description>
         A project to build a Nashorn plugin jar.
     </description>
 
     <dependencies>
+	<dependency>
+            <groupId>net.shibboleth.plugin.scripting</groupId>
+            <artifactId>scripting-api</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
         <dependency>
             <groupId>org.graalvm.sdk</groupId>
             <artifactId>graal-sdk</artifactId>
diff --git a/nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/nashorn/GraalFactory.java b/nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/nashorn/GraalFactory.java
index e6027ea..fa459d1 100644
--- a/nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/nashorn/GraalFactory.java
+++ b/nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/nashorn/GraalFactory.java
@@ -17,41 +17,23 @@
 
 package net.shibboleth.plugins.scripting.nashorn;
 
-import java.util.Collections;
 import java.util.List;
 
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineFactory;
 
-import net.shibboleth.plugins.scripting.RuntimeScriptingException;
+import net.shibboleth.plugins.scripting.AbstractScriptEngineFactory;
 
 /**
  * A JSR-223 factory for {@link GraalEngine}.
  */
-public class GraalFactory implements ScriptEngineFactory {
+public class GraalFactory extends AbstractScriptEngineFactory implements ScriptEngineFactory {
     
-    /** {@inheritDoc} */
-    public String getEngineName() {
-        
-        return this.getClass().getCanonicalName();
-    }
-
     /** {@inheritDoc} */
     public String getEngineVersion() {
         return "1";
     }
 
-    /** {@inheritDoc} */
-    public List<String> getExtensions() {
-        
-        return List.of("js","nashorn-js");
-    }
-
-    /** {@inheritDoc} */
-    public List<String> getMimeTypes() {
-        return Collections.emptyList();
-    }
-
     /** {@inheritDoc} */
     public List<String> getNames() {
         return List.of("shibboleth-nashorn", "shibboleth-Nashorn", 
@@ -59,36 +41,6 @@ public class GraalFactory implements ScriptEngineFactory {
                 "shibboleth-ECMAScript", "shibboleth-ecmascript");
     }
 
-    /** {@inheritDoc} */
-    public String getLanguageName() {
-        return "ECMAScript";
-    }
-
-    /** {@inheritDoc} */
-    public String getLanguageVersion() {
-        throw new RuntimeScriptingException("Unsupported method getMethodCallSyntax");
-    }
-
-    /** {@inheritDoc} */
-    public Object getParameter(final String key) {
-        throw new RuntimeScriptingException("Unsupported method getMethodCallSyntax");
-    }
-
-    /** {@inheritDoc} */
-    public String getMethodCallSyntax(final String obj, final String m, final String... args) {
-        throw new RuntimeScriptingException("Unsupported method getMethodCallSyntax");
-    }
-
-    /** {@inheritDoc} */
-    public String getOutputStatement(final String toDisplay) {
-        throw new RuntimeScriptingException("Unsupported method getMethodCallSyntax");
-    }
-
-    /** {@inheritDoc} */
-    public String getProgram(final String... statements) {
-        throw new RuntimeScriptingException("Unsupported method getMethodCallSyntax");
-    }
-
     /** {@inheritDoc} */
     public ScriptEngine getScriptEngine() {
        
diff --git a/pom.xml b/pom.xml
index e5be5f0..dba1047 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,7 +18,7 @@
 
     <name>Shibboleth Project Scripting plugin</name>
     <description>
-        Parent project for scirpting plugins
+        Parent Project for Scripting plugins
     </description>
 
     <properties>
@@ -71,6 +71,7 @@
     </dependencyManagement>
 
     <modules>
+        <module>scripting-api</module>
         <module>nashorn-impl</module>
         <module>nashorn-dist</module>
     </modules>
diff --git a/nashorn-impl/pom.xml b/scripting-api/pom.xml
similarity index 70%
copy from nashorn-impl/pom.xml
copy to scripting-api/pom.xml
index 66fbb16..45bd7ea 100644
--- a/nashorn-impl/pom.xml
+++ b/scripting-api/pom.xml
@@ -10,32 +10,21 @@
         <version>0.0.1-SNAPSHOT</version>
     </parent>
     
-    <groupId>net.shibboleth.plugin.scripting.nashorn</groupId>
-    <artifactId>nashorn-impl</artifactId>
+    <groupId>net.shibboleth.plugin.scripting</groupId>
+    <artifactId>scripting-api</artifactId>
     <packaging>jar</packaging>
     
     <properties>
-        <automatic.module.name>net.shibboleth.plugins.scripting</automatic.module.name>
+        <automatic.module.name>net.shibboleth.plugins.scripting.api</automatic.module.name>
     </properties>
     
 
-    <name>Shibboleth Project Nashorn plugin</name>
+    <name>Shibboleth Project Scripting Plugins - API</name>
     <description>
-        A project to build a Nashorn plugin jar.
+        A project to build a jar file that nashorn and rhino depend upon.
     </description>
 
     <dependencies>
-        <dependency>
-            <groupId>org.graalvm.sdk</groupId>
-            <artifactId>graal-sdk</artifactId>
-            <version>${graalvm.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.graalvm.js</groupId>
-            <artifactId>js</artifactId>
-            <version>${graalvm.version}</version>
-            <scope>provided</scope>
-        </dependency>
         <dependency>
             <groupId>net.shibboleth.ext</groupId>
             <artifactId>spring-extensions</artifactId>
diff --git a/nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/AbstractScriptEngine.java b/scripting-api/src/main/java/net/shibboleth/plugins/scripting/AbstractScriptEngine.java
similarity index 100%
rename from nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/AbstractScriptEngine.java
rename to scripting-api/src/main/java/net/shibboleth/plugins/scripting/AbstractScriptEngine.java
diff --git a/nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/nashorn/GraalFactory.java b/scripting-api/src/main/java/net/shibboleth/plugins/scripting/AbstractScriptEngineFactory.java
similarity index 75%
copy from nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/nashorn/GraalFactory.java
copy to scripting-api/src/main/java/net/shibboleth/plugins/scripting/AbstractScriptEngineFactory.java
index e6027ea..746d94a 100644
--- a/nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/nashorn/GraalFactory.java
+++ b/scripting-api/src/main/java/net/shibboleth/plugins/scripting/AbstractScriptEngineFactory.java
@@ -15,20 +15,17 @@
  * limitations under the License.
  */
 
-package net.shibboleth.plugins.scripting.nashorn;
+package net.shibboleth.plugins.scripting;
 
 import java.util.Collections;
 import java.util.List;
 
-import javax.script.ScriptEngine;
 import javax.script.ScriptEngineFactory;
 
-import net.shibboleth.plugins.scripting.RuntimeScriptingException;
-
 /**
- * A JSR-223 factory for {@link GraalEngine}.
+ * An abstract JSR-223 factory for our script engines.
  */
-public class GraalFactory implements ScriptEngineFactory {
+public abstract class AbstractScriptEngineFactory implements ScriptEngineFactory {
     
     /** {@inheritDoc} */
     public String getEngineName() {
@@ -36,11 +33,6 @@ public class GraalFactory implements ScriptEngineFactory {
         return this.getClass().getCanonicalName();
     }
 
-    /** {@inheritDoc} */
-    public String getEngineVersion() {
-        return "1";
-    }
-
     /** {@inheritDoc} */
     public List<String> getExtensions() {
         
@@ -51,14 +43,7 @@ public class GraalFactory implements ScriptEngineFactory {
     public List<String> getMimeTypes() {
         return Collections.emptyList();
     }
-
-    /** {@inheritDoc} */
-    public List<String> getNames() {
-        return List.of("shibboleth-nashorn", "shibboleth-Nashorn", 
-                "shibboleth-js", "shibboleth-JS", "shibboleth-JavaScript", "shibboleth-javascript", 
-                "shibboleth-ECMAScript", "shibboleth-ecmascript");
-    }
-
+    
     /** {@inheritDoc} */
     public String getLanguageName() {
         return "ECMAScript";
@@ -89,10 +74,4 @@ public class GraalFactory implements ScriptEngineFactory {
         throw new RuntimeScriptingException("Unsupported method getMethodCallSyntax");
     }
 
-    /** {@inheritDoc} */
-    public ScriptEngine getScriptEngine() {
-       
-        return new GraalEngine();
-    }
-
 }
diff --git a/nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/RuntimeScriptingException.java b/scripting-api/src/main/java/net/shibboleth/plugins/scripting/RuntimeScriptingException.java
similarity index 100%
copy from nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/RuntimeScriptingException.java
copy to scripting-api/src/main/java/net/shibboleth/plugins/scripting/RuntimeScriptingException.java
diff --git a/nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/RuntimeScriptingException.java b/scripting-api/src/main/java/net/shibboleth/plugins/scripting/package-info.java
similarity index 67%
rename from nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/RuntimeScriptingException.java
rename to scripting-api/src/main/java/net/shibboleth/plugins/scripting/package-info.java
index 1715870..1f3dc97 100644
--- a/nashorn-impl/src/main/java/net/shibboleth/plugins/scripting/RuntimeScriptingException.java
+++ b/scripting-api/src/main/java/net/shibboleth/plugins/scripting/package-info.java
@@ -15,23 +15,6 @@
  * limitations under the License.
  */
 
-package net.shibboleth.plugins.scripting;
-
-/**
- * A run time exception to handle ligatured off methods in our JRS-223 support.
- */
-public class RuntimeScriptingException extends RuntimeException {
- 
-    /** serialVersionUID. */
-    private static final long serialVersionUID = -2539172571249068564L;
+/** Classes for working with JSR-223 scripting environments. */
 
-
-    /**
-     * Constructor.
-     *
-     * @param message the message.
-     */
-    public RuntimeScriptingException(final String message) {
-        super(message);
-    }
-}
+package net.shibboleth.plugins.scripting;

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


More information about the commits mailing list