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/19 20:31:58 UTC

svn commit: r1291047 - in /openejb/trunk/maven-plugins/openejb-embedded-maven-plugin: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/openejb/ src/main/java/org/apache/openejb/maven/ src/main/java/...

Author: rmannibucau
Date: Sun Feb 19 19:31:57 2012
New Revision: 1291047

URL: http://svn.apache.org/viewvc?rev=1291047&view=rev
Log:
managing await

Added:
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/pom.xml
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/test/
    openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/test/java/

Added: 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=1291047&view=auto
==============================================================================
--- openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/pom.xml (added)
+++ openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/pom.xml Sun Feb 19 19:31:57 2012
@@ -0,0 +1,34 @@
+<?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>openejb-embedded-maven-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
+  <name>OpenEJB Maven Plugins :: OpenEJB Embedded Maven Plugin</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-project</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-core</artifactId>
+    </dependency>
+  </dependencies>
+
+  <properties>
+    <maven-plugin.prefix>openejb-embedded</maven-plugin.prefix>
+  </properties>
+</project>
\ No newline at end of file

Added: 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=1291047&view=auto
==============================================================================
--- openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java (added)
+++ openejb/trunk/maven-plugins/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java Sun Feb 19 19:31:57 2012
@@ -0,0 +1,68 @@
+package org.apache.openejb.maven.plugin.embedded;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+
+import javax.ejb.embeddable.EJBContainer;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+
+/**
+ * @goal run
+ * @phase compile
+ */
+public class OpenEJBEmbeddedMojo extends AbstractMojo {
+    /**
+     * @parameter expression="${project.artifactId}"
+     * @required
+     */
+    private String id;
+
+    /**
+     * @parameter expression="${embedded.provider}" default-value="org.apache.openejb.OpenEjbContainer"
+     * @required
+     */
+    private String provider;
+
+    /**
+     * @parameter expression="${embedded.modules}" default-value="${project.build.outputDirectory}"
+     * @required
+     */
+    private String modules;
+
+    /**
+     * @parameter expression="${embedded.await}" default-value="true"
+     * @required
+     */
+    private boolean await;
+
+    @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();
+                }
+            }));
+            try {
+                latch.await();
+            } catch (InterruptedException e) {
+                // ignored
+            }
+        }
+        container.close();
+    }
+
+    private Map<?, ?> map() {
+        final Map<String, Object> map = new HashMap<String, Object>();
+        map.put(EJBContainer.APP_NAME, id);
+        map.put(EJBContainer.PROVIDER, provider);
+        map.put(EJBContainer.MODULES, modules.split(","));
+        return map;
+    }
+}