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/02/23 21:26:55 UTC

svn commit: r1571084 - /tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java

Author: rmannibucau
Date: Sun Feb 23 20:26:55 2014
New Revision: 1571084

URL: http://svn.apache.org/r1571084
Log:
TOMEE-1132 javaagents in tomee mvn plugin to be able to use mvn coordinates

Modified:
    tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java

Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java?rev=1571084&r1=1571083&r2=1571084&view=diff
==============================================================================
--- tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java (original)
+++ tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Sun Feb 23 20:26:55 2014
@@ -22,6 +22,8 @@ import org.apache.maven.artifact.reposit
 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -206,6 +208,9 @@ public abstract class AbstractTomEEMojo 
     protected List<String> libs;
 
     @Parameter
+    protected List<String> javaagents;
+
+    @Parameter
     protected List<String> webapps;
 
     @Parameter
@@ -469,28 +474,8 @@ public abstract class AbstractTomEEMojo 
                 }
             }
         } else {
-            final String[] infos = lib.split(":");
-            final String classifier;
-            final String type;
-            if (infos.length < 3) {
-                throw new TomEEException("format for librairies should be <groupId>:<artifactId>:<version>[:<type>[:<classifier>]]");
-            }
-            if (infos.length >= 4) {
-                type = infos[3];
-            } else {
-                type = defaultType;
-            }
-            if (infos.length == 5) {
-                classifier = infos[4];
-            } else {
-                classifier = null;
-            }
-
             try {
-                final Artifact artifact = factory.createDependencyArtifact(infos[0], infos[1], createFromVersion(infos[2]), type, classifier, SCOPE_COMPILE);
-                resolver.resolve(artifact, remoteRepos, local);
-                final File file = artifact.getFile();
-
+                final File file = mvnToFile(lib, defaultType);
                 if (!unzip) {
                     final File dest;
                     if (extractedName == null) {
@@ -519,6 +504,29 @@ public abstract class AbstractTomEEMojo 
         }
     }
 
+    private File mvnToFile(final String lib, final String defaultType) throws ArtifactResolutionException, ArtifactNotFoundException {
+        final String[] infos = lib.split(":");
+        final String classifier;
+        final String type;
+        if (infos.length < 3) {
+            throw new TomEEException("format for librairies should be <groupId>:<artifactId>:<version>[:<type>[:<classifier>]]");
+        }
+        if (infos.length >= 4) {
+            type = infos[3];
+        } else {
+            type = defaultType;
+        }
+        if (infos.length == 5) {
+            classifier = infos[4];
+        } else {
+            classifier = null;
+        }
+
+        final Artifact artifact = factory.createDependencyArtifact(infos[0], infos[1], createFromVersion(infos[2]), type, classifier, SCOPE_COMPILE);
+        resolver.resolve(artifact, remoteRepos, local);
+        return artifact.getFile();
+    }
+
     private void copyWar() {
         if ("pom".equals(packaging)) {
             return;
@@ -740,6 +748,20 @@ public abstract class AbstractTomEEMojo 
         if (args != null) {
             strings.addAll(Arrays.asList(args.split(" ")));
         }
+        if (javaagents != null) {
+            for (final String javaagent : javaagents) {
+                if (!new File(javaagent).isFile()) {
+                    try {
+                        strings.add("-javaagent:" + mvnToFile(javaagent, "jar"));
+                    } catch (final Exception e) {
+                        getLog().warn("Can't find " + javaagent);
+                        strings.add("-javaagent:" + javaagent);
+                    }
+                } else {
+                    strings.add("-javaagent:" + javaagent);
+                }
+            }
+        }
 
         if (forceReloadable) {
             strings.add("-Dtomee.force-reloadable=true");