[31/50] tomee git commit: TOMEE-1959 script customizers for tomee embedded plugin
TOMEE-1959 script customizers for tomee embedded plugin Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/c31477cf Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/c31477cf Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/c31477cf Branch: refs/heads/tomee-1.7.x Commit: c31477cf61c4942fa4959a3bb90af949194405fb Parents: 4d1a577 Author: rmannibucau Authored: Fri Oct 14 09:30:58 2016 +0200 Committer: rmannibucau Committed: Fri Oct 14 09:30:58 2016 +0200 -- .../maven/plugins/TomEEEmbeddedMojo.java| 40 ++ .../maven/plugins/TomEEEmbeddedMojoTest.java| 82 +++- .../maven/plugin/test/JsCustomizertest.java | 2 +- .../org/apache/tomee/embedded/Container.java| 11 +++ 4 files changed, 133 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tomee/blob/c31477cf/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java -- diff --git a/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java b/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java index da697cb..1267169 100644 --- a/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java +++ b/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java @@ -49,8 +49,13 @@ import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.util.FileUtils; import javax.naming.NamingException; +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; +import javax.script.SimpleBindings; import java.io.File; import java.io.IOException; +import java.io.StringReader; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.net.MalformedURLException; @@ -332,6 +337,18 @@ public class TomEEEmbeddedMojo extends AbstractMojo { @Parameter(property = "tomee-plugin.liveReload", defaultValue = "false") private boolean withLiveReload; +/** + * A list of js scripts executed before the container starts. + */ +@Parameter +protected List jsCustomizers; + +/** + * A list of groovy scripts executed before the container starts. Needs to add groovy as dependency. + */ +@Parameter +protected List groovyCustomizers; + private Map commands; private String deployedName; @@ -385,6 +402,10 @@ public class TomEEEmbeddedMojo extends AbstractMojo { throw new TomEERuntimeException(e); } } + +final String base = getBase().getAbsolutePath(); +scriptCustomization(jsCustomizers, "js", base); +scriptCustomization(groovyCustomizers, "groovy", base); } }; final Configuration config = getConfig(); @@ -478,6 +499,25 @@ public class TomEEEmbeddedMojo extends AbstractMojo { } } +private void scriptCustomization(final List customizers, final String ext, final String base) { +if (customizers == null || customizers.isEmpty()) { +return; +} +final ScriptEngine engine = new ScriptEngineManager().getEngineByExtension(ext); +if (engine == null) { +throw new IllegalStateException("No engine for " + ext + ". Maybe add the JSR223 implementation as plugin dependency."); +} +for (final String js : customizers) { +try { +final SimpleBindings bindings = new SimpleBindings(); +bindings.put("catalinaBase", base); +engine.eval(new StringReader(js), bindings); +} catch (final ScriptException e) { +throw new IllegalStateException(e.getMessage(), e); +} +} +} + protected Scanner newScanner() { return new Scanner(System.in); } http://git-wip-us.apache.org/repos/asf/tomee/blob/c31477cf/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java -- diff --git a/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java b/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java index 3a51b51..e7e617e 100644 --- a/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java +++ b/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plu
tomee git commit: TOMEE-1959 script customizers for tomee embedded plugin
Repository: tomee Updated Branches: refs/heads/master 4d1a577c9 -> c31477cf6 TOMEE-1959 script customizers for tomee embedded plugin Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/c31477cf Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/c31477cf Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/c31477cf Branch: refs/heads/master Commit: c31477cf61c4942fa4959a3bb90af949194405fb Parents: 4d1a577 Author: rmannibucau Authored: Fri Oct 14 09:30:58 2016 +0200 Committer: rmannibucau Committed: Fri Oct 14 09:30:58 2016 +0200 -- .../maven/plugins/TomEEEmbeddedMojo.java| 40 ++ .../maven/plugins/TomEEEmbeddedMojoTest.java| 82 +++- .../maven/plugin/test/JsCustomizertest.java | 2 +- .../org/apache/tomee/embedded/Container.java| 11 +++ 4 files changed, 133 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tomee/blob/c31477cf/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java -- diff --git a/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java b/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java index da697cb..1267169 100644 --- a/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java +++ b/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java @@ -49,8 +49,13 @@ import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.util.FileUtils; import javax.naming.NamingException; +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; +import javax.script.SimpleBindings; import java.io.File; import java.io.IOException; +import java.io.StringReader; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.net.MalformedURLException; @@ -332,6 +337,18 @@ public class TomEEEmbeddedMojo extends AbstractMojo { @Parameter(property = "tomee-plugin.liveReload", defaultValue = "false") private boolean withLiveReload; +/** + * A list of js scripts executed before the container starts. + */ +@Parameter +protected List jsCustomizers; + +/** + * A list of groovy scripts executed before the container starts. Needs to add groovy as dependency. + */ +@Parameter +protected List groovyCustomizers; + private Map commands; private String deployedName; @@ -385,6 +402,10 @@ public class TomEEEmbeddedMojo extends AbstractMojo { throw new TomEERuntimeException(e); } } + +final String base = getBase().getAbsolutePath(); +scriptCustomization(jsCustomizers, "js", base); +scriptCustomization(groovyCustomizers, "groovy", base); } }; final Configuration config = getConfig(); @@ -478,6 +499,25 @@ public class TomEEEmbeddedMojo extends AbstractMojo { } } +private void scriptCustomization(final List customizers, final String ext, final String base) { +if (customizers == null || customizers.isEmpty()) { +return; +} +final ScriptEngine engine = new ScriptEngineManager().getEngineByExtension(ext); +if (engine == null) { +throw new IllegalStateException("No engine for " + ext + ". Maybe add the JSR223 implementation as plugin dependency."); +} +for (final String js : customizers) { +try { +final SimpleBindings bindings = new SimpleBindings(); +bindings.put("catalinaBase", base); +engine.eval(new StringReader(js), bindings); +} catch (final ScriptException e) { +throw new IllegalStateException(e.getMessage(), e); +} +} +} + protected Scanner newScanner() { return new Scanner(System.in); } http://git-wip-us.apache.org/repos/asf/tomee/blob/c31477cf/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java -- diff --git a/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java b/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java index 3a51b51..e7e617e 100644 --- a/maven/tomee-embedded-maven-plugin/src/test/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojoTest.java +++ b/