You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/11/18 14:53:58 UTC

[1/3] tomee git commit: TOMEE-1447 adding applications and skipCurrentProject config to tomee-embedded-maven-plugin

Repository: tomee
Updated Branches:
  refs/heads/develop 04eabbb52 -> e00425fc5


TOMEE-1447 adding applications and skipCurrentProject config to tomee-embedded-maven-plugin


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/c1e47408
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/c1e47408
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/c1e47408

Branch: refs/heads/develop
Commit: c1e474081a554716d54a325007a69dc816919472
Parents: 04eabbb
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Tue Nov 18 14:40:02 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Tue Nov 18 14:40:02 2014 +0100

----------------------------------------------------------------------
 .../maven/plugins/TomEEEmbeddedMojo.java        | 79 +++++++++++++++++---
 1 file changed, 68 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/c1e47408/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 50b6614..11a4c98 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
@@ -18,9 +18,14 @@ package org.apache.openejb.maven.plugins;
 
 import org.apache.catalina.LifecycleState;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
@@ -34,7 +39,6 @@ import org.apache.tomee.embedded.Configuration;
 import org.apache.tomee.embedded.Container;
 
 import java.io.File;
-import java.io.IOException;
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.net.MalformedURLException;
@@ -46,7 +50,6 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Scanner;
 import java.util.Set;
-import java.util.logging.LogManager;
 import java.util.logging.SimpleFormatter;
 
 /**
@@ -145,7 +148,25 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
      * force webapp to be reloadable
      */
     @Parameter(property = "tomee-plugin.jsp-development", defaultValue = "true")
-    protected boolean forceJspDevelopment;
+    private boolean forceJspDevelopment;
+
+    @Component
+    private ArtifactFactory factory;
+
+    @Component
+    private ArtifactResolver resolver;
+
+    @Parameter(defaultValue = "${localRepository}", readonly = true)
+    private ArtifactRepository local;
+
+    @Parameter(defaultValue = "${project.remoteArtifactRepositories}", readonly = true)
+    private List<ArtifactRepository> remoteRepos;
+
+    @Parameter
+    private List<String> applications;
+
+    @Parameter(property = "tomee-plugin.skip-current-project", defaultValue = "false")
+    private boolean skipCurrentProject;
 
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
@@ -171,7 +192,7 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
         }
 
         final Container container = new Container();
-        final Configuration config  = getConfig();
+        final Configuration config = getConfig();
         container.setup(config);
 
         final Thread hook = new Thread() {
@@ -196,13 +217,25 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
 
             Runtime.getRuntime().addShutdownHook(hook);
 
-            if (!classpathAsWar) {
-                container.deploy('/' + (context == null ? warFile.getName() : context), warFile, true);
-            } else {
-                if (useProjectClasspath) {
-                    thread.setContextClassLoader(createClassLoader(loader));
+            if (!skipCurrentProject) {
+                if (!classpathAsWar) {
+                    container.deploy('/' + (context == null ? warFile.getName() : context), warFile, true);
+                } else {
+                    if (useProjectClasspath) {
+                        thread.setContextClassLoader(createClassLoader(loader));
+                    }
+                    container.deployClasspathAsWebApp(context, docBase); // null is handled properly so no issue here
+                }
+            }
+
+            if (applications != null) {
+                for (final String app : applications) {
+                    final String renameStr = "?name=";
+                    final int nameIndex = app.lastIndexOf(renameStr);
+                    final String coordinates = nameIndex > 0 ? app.substring(0, nameIndex) : app;
+                    final File file = mvnToFile(coordinates);
+                    container.deploy(nameIndex > 0 ? app.substring(nameIndex + renameStr.length() + 1) : file.getName(), file);
                 }
-                container.deployClasspathAsWebApp(context, docBase); // null is handled properly so no issue here
             }
 
             getLog().info("TomEE embedded started on " + config.getHost() + ":" + config.getHttpPort());
@@ -235,6 +268,30 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
         }
     }
 
+    private File mvnToFile(final String lib) throws Exception {
+        final String[] infos = lib.split(":");
+        final String classifier;
+        final String type;
+        if (infos.length < 3) {
+            throw new MojoExecutionException("format for librairies should be <groupId>:<artifactId>:<version>[:<type>[:<classifier>]]");
+        }
+        if (infos.length >= 4) {
+            type = infos[3];
+        } else {
+            type = "war";
+        }
+        if (infos.length == 5) {
+            classifier = infos[4];
+        } else {
+            classifier = null;
+        }
+
+        final Artifact artifact = factory.createDependencyArtifact(infos[0], infos[1], VersionRange.createFromVersion(infos[2]), type, classifier, "compile");
+        resolver.resolve(artifact, remoteRepos, local);
+        return artifact.getFile();
+    }
+
+
     private void configureJULIfNeeded() {
         if (containerProperties != null && "true".equalsIgnoreCase(containerProperties.get("openejb.jul.forceReload"))) {
             System.getProperties().putAll(containerProperties);
@@ -297,7 +354,7 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
             } catch (final NoSuchFieldException nsfe) {
                 // ignored
             } catch (final Exception e) {
-                 getLog().warn("can't initialize attribute " + field.getName());
+                getLog().warn("can't initialize attribute " + field.getName());
             }
 
         }


[3/3] tomee git commit: oops, wrong shortcut, deleted mkdirs

Posted by rm...@apache.org.
oops, wrong shortcut, deleted mkdirs


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/e00425fc
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/e00425fc
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/e00425fc

Branch: refs/heads/develop
Commit: e00425fc56be2b378cbfccd70a888bd7ed6c49bc
Parents: 7ef7671
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Tue Nov 18 14:53:00 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Tue Nov 18 14:53:00 2014 +0100

----------------------------------------------------------------------
 .../org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java     | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/e00425fc/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 78d8e5f..ee66cb5 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
@@ -32,6 +32,7 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProject;
 import org.apache.openejb.core.ParentClassLoaderFinder;
 import org.apache.openejb.core.ProvidedClassLoaderFinder;
+import org.apache.openejb.loader.Files;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.maven.util.MavenLogStreamFactory;
@@ -232,7 +233,9 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
                 }
             }
 
-            if (applications != null) {
+            if (applications != null && !applications.isEmpty()) {
+                Files.mkdirs(applicationCopyFolder);
+
                 for (final String app : applications) {
                     final String renameStr = "?name=";
                     final int nameIndex = app.lastIndexOf(renameStr);


[2/3] tomee git commit: TOMEE-1447 adding applicationCopyFolder config to be able to extract in a temp folder and not in ~/.m2/repository

Posted by rm...@apache.org.
TOMEE-1447 adding applicationCopyFolder config to be able to extract in a temp folder and not in ~/.m2/repository


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/7ef7671b
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/7ef7671b
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/7ef7671b

Branch: refs/heads/develop
Commit: 7ef7671b7a28b3fefbca5965ebf290d02f47657f
Parents: c1e4740
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Tue Nov 18 14:51:53 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Tue Nov 18 14:51:53 2014 +0100

----------------------------------------------------------------------
 .../openejb/maven/plugins/TomEEEmbeddedMojo.java      | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/7ef7671b/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 11a4c98..78d8e5f 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
@@ -32,6 +32,7 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProject;
 import org.apache.openejb.core.ParentClassLoaderFinder;
 import org.apache.openejb.core.ProvidedClassLoaderFinder;
+import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.maven.util.MavenLogStreamFactory;
 import org.apache.openejb.util.JuliLogStreamFactory;
@@ -168,6 +169,9 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
     @Parameter(property = "tomee-plugin.skip-current-project", defaultValue = "false")
     private boolean skipCurrentProject;
 
+    @Parameter(property = "tomee-plugin.application-copy", defaultValue = "${project.build.directory}/tomee-embedded/applications")
+    private File applicationCopyFolder;
+
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         if (!classpathAsWar && "pom".equals(packaging)) {
@@ -233,8 +237,14 @@ public class TomEEEmbeddedMojo extends AbstractMojo {
                     final String renameStr = "?name=";
                     final int nameIndex = app.lastIndexOf(renameStr);
                     final String coordinates = nameIndex > 0 ? app.substring(0, nameIndex) : app;
-                    final File file = mvnToFile(coordinates);
-                    container.deploy(nameIndex > 0 ? app.substring(nameIndex + renameStr.length() + 1) : file.getName(), file);
+                    File file = mvnToFile(coordinates);
+                    final String name = nameIndex > 0 ? app.substring(nameIndex + renameStr.length() + 1) : file.getName();
+                    if (applicationCopyFolder != null) {
+                        final File copy = new File(applicationCopyFolder, name);
+                        IO.copy(file, copy);
+                        file = copy;
+                    }
+                    container.deploy(name, file);
                 }
             }