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 2012/02/20 09:50:57 UTC
svn commit: r1291152 - in /openejb/trunk/maven-plugins: ./ info-maven-plugin/
info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/info/
info-maven-plugin/src/test/ maven-util/ maven-util/src/
maven-util/src/main/ maven-util/src/main/java/ m...
Author: rmannibucau
Date: Mon Feb 20 08:50:56 2012
New Revision: 1291152
URL: http://svn.apache.org/viewvc?rev=1291152&view=rev
Log:
enhancing openejb-embedded-maven-plugin to manage properties and to simply work
Added:
openejb/trunk/maven-plugins/maven-util/
openejb/trunk/maven-plugins/maven-util/pom.xml
openejb/trunk/maven-plugins/maven-util/src/
openejb/trunk/maven-plugins/maven-util/src/main/
openejb/trunk/maven-plugins/maven-util/src/main/java/
openejb/trunk/maven-plugins/maven-util/src/main/java/org/
openejb/trunk/maven-plugins/maven-util/src/main/java/org/apache/
openejb/trunk/maven-plugins/maven-util/src/main/java/org/apache/openejb/
openejb/trunk/maven-plugins/maven-util/src/main/java/org/apache/openejb/maven/
openejb/trunk/maven-plugins/maven-util/src/main/java/org/apache/openejb/maven/util/
openejb/trunk/maven-plugins/maven-util/src/main/java/org/apache/openejb/maven/util/MavenLogStreamFactory.java
openejb/trunk/maven-plugins/maven-util/src/test/
openejb/trunk/maven-plugins/maven-util/src/test/java/
Removed:
openejb/trunk/maven-plugins/info-maven-plugin/src/test/
openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/test/
Modified:
openejb/trunk/maven-plugins/info-maven-plugin/pom.xml
openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/info/InfoMojo.java
openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/pom.xml
openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java
openejb/trunk/maven-plugins/pom.xml
openejb/trunk/maven-plugins/tomee-maven-plugin/pom.xml
Modified: openejb/trunk/maven-plugins/info-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/info-maven-plugin/pom.xml?rev=1291152&r1=1291151&r2=1291152&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/info-maven-plugin/pom.xml (original)
+++ openejb/trunk/maven-plugins/info-maven-plugin/pom.xml Mon Feb 20 08:50:56 2012
@@ -23,17 +23,14 @@
<artifactId>maven-project</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact</artifactId>
- </dependency>
- <dependency>
- <groupId>org.sonatype.aether</groupId>
- <artifactId>aether-api</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>maven-util</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
<properties>
Modified: openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/info/InfoMojo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/info/InfoMojo.java?rev=1291152&r1=1291151&r2=1291152&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/info/InfoMojo.java (original)
+++ openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/info/InfoMojo.java Mon Feb 20 08:50:56 2012
@@ -3,7 +3,6 @@ package org.apache.openejb.maven.plugin.
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugin.logging.Log;
import org.apache.openejb.OpenEJB;
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.assembler.classic.AppInfo;
@@ -11,9 +10,7 @@ import org.apache.openejb.config.AppModu
import org.apache.openejb.config.ConfigurationFactory;
import org.apache.openejb.config.PreconfiguredFactory;
import org.apache.openejb.loader.IO;
-import org.apache.openejb.util.LogCategory;
-import org.apache.openejb.util.LogStream;
-import org.apache.openejb.util.LogStreamFactory;
+import org.apache.openejb.maven.util.MavenLogStreamFactory;
import java.io.File;
import java.io.FileWriter;
@@ -43,7 +40,7 @@ public class InfoMojo extends AbstractMo
final String path = module.getPath();
getLog().info("creating module for " + path);
- System.setProperty("openejb.log.factory", MavenLogStreamFactory.class.getName());
+ System.setProperty("openejb.log.factory", "org.apache.openejb.maven.util.MavenLogStreamFactory");
MavenLogStreamFactory.setLogger(getLog());
final ConfigurationFactory configurationFactory = new ConfigurationFactory();
@@ -84,100 +81,4 @@ public class InfoMojo extends AbstractMo
private AppInfo replaceContainers(AppInfo appInfo) {
return appInfo;
}
-
- public static class MavenLogStreamFactory implements LogStreamFactory {
- private static Log logger;
-
- @Override
- public LogStream createLogStream(LogCategory logCategory) {
- return new MavenLogStream(logger);
- }
-
- public static void setLogger(Log logger) {
- MavenLogStreamFactory.logger = logger;
- }
-
- private static class MavenLogStream implements LogStream {
- private final Log log;
-
- public MavenLogStream(Log logger) {
- log = logger;
- }
-
- @Override
- public boolean isFatalEnabled() {
- return log.isErrorEnabled();
- }
-
- @Override
- public void fatal(String message) {
- log.error(message);
- }
-
- @Override
- public void fatal(String message, Throwable t) {
- log.error(message, t);
- }
-
- @Override
- public boolean isErrorEnabled() {
- return log.isErrorEnabled();
- }
-
- @Override
- public void error(String message) {
- log.error(message);
- }
-
- @Override
- public void error(String message, Throwable t) {
- log.error(message, t);
- }
-
- @Override
- public boolean isWarnEnabled() {
- return log.isWarnEnabled();
- }
-
- @Override
- public void warn(String message) {
- log.warn(message);
- }
-
- @Override
- public void warn(String message, Throwable t) {
- log.warn(message, t);
- }
-
- @Override
- public boolean isInfoEnabled() {
- return log.isInfoEnabled();
- }
-
- @Override
- public void info(String message) {
- log.info(message);
- }
-
- @Override
- public void info(String message, Throwable t) {
- log.info(message, t);
- }
-
- @Override
- public boolean isDebugEnabled() {
- return log.isDebugEnabled();
- }
-
- @Override
- public void debug(String message) {
- log.debug(message);
- }
-
- @Override
- public void debug(String message, Throwable t) {
- log.debug(message, t);
- }
- }
- }
}
Added: openejb/trunk/maven-plugins/maven-util/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/maven-util/pom.xml?rev=1291152&view=auto
==============================================================================
--- openejb/trunk/maven-plugins/maven-util/pom.xml (added)
+++ openejb/trunk/maven-plugins/maven-util/pom.xml Mon Feb 20 08:50:56 2012
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>maven-plugins-parent</artifactId>
+ <groupId>org.apache.openejb</groupId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>maven-util</artifactId>
+ <name>OpenEJB Maven Plugins :: Util</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>openejb-core</artifactId>
+ </dependency>
+ </dependencies>
+</project>
Added: openejb/trunk/maven-plugins/maven-util/src/main/java/org/apache/openejb/maven/util/MavenLogStreamFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/maven-util/src/main/java/org/apache/openejb/maven/util/MavenLogStreamFactory.java?rev=1291152&view=auto
==============================================================================
--- openejb/trunk/maven-plugins/maven-util/src/main/java/org/apache/openejb/maven/util/MavenLogStreamFactory.java (added)
+++ openejb/trunk/maven-plugins/maven-util/src/main/java/org/apache/openejb/maven/util/MavenLogStreamFactory.java Mon Feb 20 08:50:56 2012
@@ -0,0 +1,102 @@
+package org.apache.openejb.maven.util;
+
+import org.apache.maven.plugin.logging.Log;
+import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.LogStream;
+import org.apache.openejb.util.LogStreamFactory;
+
+public class MavenLogStreamFactory implements LogStreamFactory {
+ private static Log logger;
+
+ @Override
+ public LogStream createLogStream(final LogCategory logCategory) {
+ return new MavenLogStream(logger);
+ }
+
+ public static void setLogger(Log logger) {
+ MavenLogStreamFactory.logger = logger;
+ }
+
+ private static class MavenLogStream implements LogStream {
+ private final Log log;
+
+ public MavenLogStream(Log logger) {
+ log = logger;
+ }
+
+ @Override
+ public boolean isFatalEnabled() {
+ return log.isErrorEnabled();
+ }
+
+ @Override
+ public void fatal(String message) {
+ log.error(message);
+ }
+
+ @Override
+ public void fatal(String message, Throwable t) {
+ log.error(message, t);
+ }
+
+ @Override
+ public boolean isErrorEnabled() {
+ return log.isErrorEnabled();
+ }
+
+ @Override
+ public void error(String message) {
+ log.error(message);
+ }
+
+ @Override
+ public void error(String message, Throwable t) {
+ log.error(message, t);
+ }
+
+ @Override
+ public boolean isWarnEnabled() {
+ return log.isWarnEnabled();
+ }
+
+ @Override
+ public void warn(String message) {
+ log.warn(message);
+ }
+
+ @Override
+ public void warn(String message, Throwable t) {
+ log.warn(message, t);
+ }
+
+ @Override
+ public boolean isInfoEnabled() {
+ return log.isInfoEnabled();
+ }
+
+ @Override
+ public void info(String message) {
+ log.info(message);
+ }
+
+ @Override
+ public void info(String message, Throwable t) {
+ log.info(message, t);
+ }
+
+ @Override
+ public boolean isDebugEnabled() {
+ return log.isDebugEnabled();
+ }
+
+ @Override
+ public void debug(String message) {
+ log.debug(message);
+ }
+
+ @Override
+ public void debug(String message, Throwable t) {
+ log.debug(message, t);
+ }
+ }
+}
Modified: openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/pom.xml?rev=1291152&r1=1291151&r2=1291152&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/pom.xml (original)
+++ openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/pom.xml Mon Feb 20 08:50:56 2012
@@ -26,6 +26,11 @@
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>maven-util</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
<properties>
Modified: openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java?rev=1291152&r1=1291151&r2=1291152&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java (original)
+++ openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java Mon Feb 20 08:50:56 2012
@@ -1,12 +1,22 @@
package org.apache.openejb.maven.plugin.embedded;
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.apache.openejb.maven.util.MavenLogStreamFactory;
import javax.ejb.embeddable.EJBContainer;
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.CountDownLatch;
/**
@@ -38,24 +48,71 @@ public class OpenEJBEmbeddedMojo extends
*/
private boolean await;
+ /**
+ * @parameter
+ */
+ private Map<String, String> properties;
+
+ /**
+ * @parameter expression="${project}"
+ * @required
+ * @readonly
+ */
+ private MavenProject project;
+
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
- final EJBContainer container = EJBContainer.createEJBContainer(map());
- if (await) {
- final CountDownLatch latch = new CountDownLatch(1);
- Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
- @Override
- public void run() {
- latch.countDown();
+ MavenLogStreamFactory.setLogger(getLog());
+ final ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(createClassLoader(oldCl));
+
+ EJBContainer container = null;
+ try {
+ container = EJBContainer.createEJBContainer(map());
+ if (await) {
+ final CountDownLatch latch = new CountDownLatch(1);
+ Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
+ @Override
+ public void run() {
+ latch.countDown();
+ }
+ }));
+ try {
+ latch.await();
+ } catch (InterruptedException e) {
+ // ignored
}
- }));
+ }
+ } finally {
+ if (container != null) {
+ container.close();
+ }
+ Thread.currentThread().setContextClassLoader(oldCl);
+ }
+ }
+
+ private ClassLoader createClassLoader(final ClassLoader parent) {
+ final List<URL> urls = new ArrayList<URL>();
+ for (Artifact artifact : (Set<Artifact>) project.getArtifacts()) {
try {
- latch.await();
- } catch (InterruptedException e) {
- // ignored
+ urls.add(artifact.getFile().toURI().toURL());
+ } catch (MalformedURLException e) {
+ getLog().warn("can't use artifact " + artifact.toString());
}
}
- container.close();
+ for (String str : modules.split(",")) {
+ final File file = new File(str);
+ if (file.exists()) {
+ try {
+ urls.add(file.toURI().toURL());
+ } catch (MalformedURLException e) {
+ getLog().warn("can't use path " + str);
+ }
+ } else {
+ getLog().warn("can't find " + str);
+ }
+ }
+ return new URLClassLoader(urls.toArray(new URL[urls.size()]), parent);
}
private Map<?, ?> map() {
@@ -63,6 +120,10 @@ public class OpenEJBEmbeddedMojo extends
map.put(EJBContainer.APP_NAME, id);
map.put(EJBContainer.PROVIDER, provider);
map.put(EJBContainer.MODULES, modules.split(","));
+ map.put("openejb.log.factory", "org.apache.openejb.maven.util.MavenLogStreamFactory");
+ if (properties != null) {
+ map.putAll(properties);
+ }
return map;
}
}
Modified: openejb/trunk/maven-plugins/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/pom.xml?rev=1291152&r1=1291151&r2=1291152&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/pom.xml (original)
+++ openejb/trunk/maven-plugins/pom.xml Mon Feb 20 08:50:56 2012
@@ -38,6 +38,7 @@
<module>info-maven-plugin</module>
<module>dd-maven-plugin</module>
<module>openejb-embedded-maven-plugin</module>
+ <module>maven-util</module>
</modules>
<dependencyManagement>
Modified: openejb/trunk/maven-plugins/tomee-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/tomee-maven-plugin/pom.xml?rev=1291152&r1=1291151&r2=1291152&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/tomee-maven-plugin/pom.xml (original)
+++ openejb/trunk/maven-plugins/tomee-maven-plugin/pom.xml Mon Feb 20 08:50:56 2012
@@ -41,14 +41,6 @@
<artifactId>maven-project</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact</artifactId>
- </dependency>
- <dependency>
- <groupId>org.sonatype.aether</groupId>
- <artifactId>aether-api</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
</dependency>