[31/50] tomee git commit: TOMEE-1959 script customizers for tomee embedded plugin

2016-12-03 Thread rmannibucau
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

2016-10-14 Thread rmannibucau
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/