[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