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>