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/13 20:44:06 UTC

svn commit: r1243668 - in /openejb/trunk/maven-plugins: ./ info-maven-plugin/ info-maven-plugin/src/ info-maven-plugin/src/main/ info-maven-plugin/src/main/java/ info-maven-plugin/src/main/java/org/ info-maven-plugin/src/main/java/org/apache/ info-mave...

Author: rmannibucau
Date: Mon Feb 13 19:44:06 2012
New Revision: 1243668

URL: http://svn.apache.org/viewvc?rev=1243668&view=rev
Log:
skeleton for info-maven-plugin

Added:
    openejb/trunk/maven-plugins/info-maven-plugin/
    openejb/trunk/maven-plugins/info-maven-plugin/pom.xml
    openejb/trunk/maven-plugins/info-maven-plugin/src/
    openejb/trunk/maven-plugins/info-maven-plugin/src/main/
    openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/
    openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/
    openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/
    openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/
    openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/
    openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/
    openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/info/
    openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/info/InfoMojo.java
    openejb/trunk/maven-plugins/info-maven-plugin/src/test/
    openejb/trunk/maven-plugins/info-maven-plugin/src/test/java/
Modified:
    openejb/trunk/maven-plugins/pom.xml
    openejb/trunk/maven-plugins/tomee-maven-plugin/pom.xml

Added: 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=1243668&view=auto
==============================================================================
--- openejb/trunk/maven-plugins/info-maven-plugin/pom.xml (added)
+++ openejb/trunk/maven-plugins/info-maven-plugin/pom.xml Mon Feb 13 19:44:06 2012
@@ -0,0 +1,42 @@
+<?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>info-maven-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
+  <name>OpenEJB Maven Plugins :: Info 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.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>
+  </dependencies>
+
+  <properties>
+    <maven-plugin.prefix>info</maven-plugin.prefix>
+  </properties>
+</project>

Added: 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=1243668&view=auto
==============================================================================
--- openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/info/InfoMojo.java (added)
+++ openejb/trunk/maven-plugins/info-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/info/InfoMojo.java Mon Feb 13 19:44:06 2012
@@ -0,0 +1,85 @@
+package org.apache.openejb.maven.plugin.info;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.openejb.OpenEJB;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.assembler.classic.AppInfo;
+import org.apache.openejb.config.AppModule;
+import org.apache.openejb.config.ConfigurationFactory;
+import org.apache.openejb.loader.IO;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.util.Arrays;
+
+/**
+ * @goal add-info
+ */
+public class InfoMojo extends AbstractMojo {
+    /**
+     * @parameter expression="${project.build.outputDirectory}"
+     * @required
+     * @readonly
+     */
+    private File module;
+
+    /**
+     * @parameter expression="${project.artifactId}"
+     * @required
+     */
+    private String id;
+
+    @Override
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        getLog().info("creating module for " + module.getPath());
+        final ConfigurationFactory configurationFactory = new ConfigurationFactory();
+        try {
+            OpenEJB.init(System.getProperties());
+
+            final AppModule appModule = configurationFactory.loadApplication(Thread.currentThread().getContextClassLoader(), id, Arrays.asList(module));
+
+            AppInfo info = configurationFactory.configureApplication(appModule);
+            info = replacePath(info);
+            info = replaceContainer(info);
+
+            // TODO use an openejb constant for the path
+            dump(new File(module, "openejb/app-info.xml"), info);
+        } catch (OpenEJBException e) {
+            throw new MojoFailureException("can't get the configuration", e);
+        } catch (IOException e) {
+            throw new MojoFailureException("can't write the configuration", e);
+        }
+    }
+
+    private void dump(final File output, final AppInfo info) throws IOException, MojoFailureException {
+        final File parent = output.getParentFile();
+        if (!parent.exists() && !parent.mkdirs()) {
+            throw new MojoFailureException("can't create directory " + output.getParent());
+        }
+
+        // TODO: something else is surely better than java serialization!
+        final OutputStream fos = new BufferedOutputStream(new FileOutputStream(output));
+        final ObjectOutputStream oos = new ObjectOutputStream(fos);
+        try {
+            oos.writeObject(info);
+        } finally {
+            IO.close(fos);
+        }
+    }
+
+    // TODO?
+    private AppInfo replaceContainer(AppInfo appInfo) {
+        return appInfo;
+    }
+
+    // TODO?
+    private AppInfo replacePath(AppInfo info) {
+        return info;
+    }
+}

Modified: openejb/trunk/maven-plugins/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/pom.xml?rev=1243668&r1=1243667&r2=1243668&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/pom.xml (original)
+++ openejb/trunk/maven-plugins/pom.xml Mon Feb 13 19:44:06 2012
@@ -36,6 +36,7 @@
   <modules>
     <module>tomee-maven-plugin</module>
     <module>properties-maven-plugin</module>
+    <module>info-maven-plugin</module>
   </modules>
 
   <dependencyManagement>
@@ -65,6 +66,11 @@
         <artifactId>aether-api</artifactId>
         <version>1.8</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.openejb</groupId>
+        <artifactId>openejb-core</artifactId>
+        <version>4.0.0-beta-3-SNAPSHOT</version>
+      </dependency>
     </dependencies>
   </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=1243668&r1=1243667&r2=1243668&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/tomee-maven-plugin/pom.xml (original)
+++ openejb/trunk/maven-plugins/tomee-maven-plugin/pom.xml Mon Feb 13 19:44:06 2012
@@ -51,7 +51,6 @@
     <dependency>
       <groupId>org.apache.openejb</groupId>
       <artifactId>openejb-core</artifactId>
-      <version>4.0.0-beta-3-SNAPSHOT</version>
     </dependency>
   </dependencies>