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);
}
}