Author: jlmonteiro
Date: Mon Jan 25 13:19:53 2010
New Revision: 902804
URL: http://svn.apache.org/viewvc?rev=902804&view=rev
Log:
small example using exec plugin to call OpenEJB commands
Added:
openejb/trunk/sandbox/maven-openejb-plugin/pom.properties
openejb/trunk/sandbox/maven-openejb-plugin/pom.xml
openejb/trunk/sandbox/maven-openejb-plugin/src/
openejb/trunk/sandbox/maven-openejb-plugin/src/main/
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/AbstractOpenEJBMojo.java
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/RunMojo.java
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/StartMojo.java
Added: openejb/trunk/sandbox/maven-openejb-plugin/pom.properties
URL:
http://svn.apache.org/viewvc/openejb/trunk/sandbox/maven-openejb-plugin/pom.properties?rev=902804&view=auto
==============================================================================
--- openejb/trunk/sandbox/maven-openejb-plugin/pom.properties (added)
+++ openejb/trunk/sandbox/maven-openejb-plugin/pom.properties Mon Jan 25
13:19:53 2010
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Wed Sep 30 10:50:34 CEST 2009
+version=1.0.0-SNAPSHOT
+groupId=org.apache.maven.plugins
+artifactId=maven-openejb-plugin
Added: openejb/trunk/sandbox/maven-openejb-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/sandbox/maven-openejb-plugin/pom.xml?rev=902804&view=auto
==============================================================================
--- openejb/trunk/sandbox/maven-openejb-plugin/pom.xml (added)
+++ openejb/trunk/sandbox/maven-openejb-plugin/pom.xml Mon Jan 25 13:19:53 2010
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership. The
+ ASF licenses this file to You under the Apache License, Version 2.0
(the
+ "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0 Unless required by
applicable
+ law or agreed to in writing, software distributed under the License is
+ distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
ANY
+ KIND, either express or implied. See the License for the specific
+ language governing permissions and limitations under the License.
+ -->
+
+ <!-- $Rev$ -->
+
+<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/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-plugins</artifactId>
+ <version>14</version>
+ </parent>
+
+ <artifactId>maven-openejb-plugin</artifactId>
+ <packaging>maven-plugin</packaging>
+
+ <version>1.0.0-SNAPSHOT</version>
+
+ <name>Maven OpenEJB Plugin</name>
+ <description>
+ The OpenEJB Plugin is used to start/stop/deploy/undeploy.
+ In other words, it's used to manage Apache OpenEJB container.
+ </description>
+ <inceptionYear>2009</inceptionYear>
+
+ <organization>
+ <name>The Apache OpenEJB development community</name>
+ <url>http://openejb.apache.org</url>
+ </organization>
+
+ <!--
+ TODO
+ Add issueManagement
+ Add mailingLists
+ Add ciManagement
+ Add scm
+ -->
+
+ <build>
+ <defaultGoal>install</defaultGoal>
+
+
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <forkMode>always</forkMode>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <!-- Maven2 -->
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+
+ <!-- JUnit -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- OpenEJB -->
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>openejb-core</artifactId>
+ <version>3.1.3-SNAPSHOT</version>
+ </dependency>
+ <!-- optional - provide start/stop command -->
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>openejb-server</artifactId>
+ <version>3.1.3-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project>
Added:
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/AbstractOpenEJBMojo.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/AbstractOpenEJBMojo.java?rev=902804&view=auto
==============================================================================
---
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/AbstractOpenEJBMojo.java
(added)
+++
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/AbstractOpenEJBMojo.java
Mon Jan 25 13:19:53 2010
@@ -0,0 +1,36 @@
+package org.apache.maven.plugins;
+
+import org.codehaus.mojo.exec.AbstractExecMojo;
+
+/**
+ * This abstract mojo is used by all mojos Deploy/Undeploy/Start/Stop
+ *
+ * @author <a href="mailto:[email protected]">Jean-Louis MONTEIRO</a>
+ * @version $Id$
+ * @since 2.0
+ */
+public abstract class AbstractOpenEJBMojo extends AbstractExecMojo {
+
+ // ----- PARAMETERS -----
+ /**
+ * Target OpenEJB command to execute.
+ *
+ * @parameter expression="${openejb.command}"
+ */
+ protected String command;
+
+ /**
+ * OpenEJB Home
+ *
+ * @parameter expression="${openejb.home}" default-value="${basedir}"
+ */
+ protected String openejbHome;
+
+ /**
+ * OpenEJB Base
+ *
+ * @parameter expression="${openejb.base}" default-value="${basedir}"
+ */
+ protected String openejbBase;
+
+}
Added:
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/RunMojo.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/RunMojo.java?rev=902804&view=auto
==============================================================================
---
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/RunMojo.java
(added)
+++
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/RunMojo.java
Mon Jan 25 13:19:53 2010
@@ -0,0 +1,36 @@
+package org.apache.maven.plugins;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.openejb.cli.Bootstrap;
+
+/**
+ * Goal which delegates commands to OpenEJB.
+ *
+ * @goal run
+ * @phase test
+ */
+public class RunMojo extends AbstractOpenEJBMojo {
+
+ public void execute() throws MojoExecutionException {
+ getLog().info("[Run] Enterring execute");
+ getLog().info("[Run] openejb.home=" + openejbHome);
+ getLog().info("[Run] openejb.base=" + openejbBase);
+
+ Set<String> argsSet = new HashSet<String>();
+ argsSet.add(String.format("-Dopenejb.home=%s", openejbHome));
+ argsSet.add(String.format("-Dopenejb.base=%s", openejbBase));
+ if (hasCommandlineArgs()) {
+ argsSet.addAll(Arrays.asList(parseCommandlineArgs()));
+ }
+
+ try {
+ Bootstrap.main((String[]) argsSet.toArray(new
String[argsSet.size()]));
+ } catch (Exception e) {
+ throw new MojoExecutionException("Error while running OpenEJB run
command", e);
+ }
+ }
+}
Added:
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/StartMojo.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/StartMojo.java?rev=902804&view=auto
==============================================================================
---
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/StartMojo.java
(added)
+++
openejb/trunk/sandbox/maven-openejb-plugin/src/main/java/org/apache/maven/plugins/StartMojo.java
Mon Jan 25 13:19:53 2010
@@ -0,0 +1,49 @@
+package org.apache.maven.plugins;
+
+import java.io.File;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.openejb.cli.Bootstrap;
+
+import edu.emory.mathcs.backport.java.util.Arrays;
+
+/**
+ * Goal which starts OpenEJB before launching tests.
+ *
+ * @goal start
+ * @phase test
+ */
+public class StartMojo extends AbstractOpenEJBMojo {
+
+ /**
+ * Location of the file.
+ * @parameter expression="${project.build.directory}"
+ * @required
+ */
+ private File outputDirectory;
+
+ public void execute() throws MojoExecutionException {
+ getLog().info("[Start] Enterring execute");
+ getLog().info("[Start] openejb.home=" + openejbHome);
+ getLog().info("[Start] openejb.base=" + openejbBase);
+
+ Set<String> argsSet = new HashSet<String>();
+ argsSet.add(String.format("-Dopenejb.home=%s", openejbHome));
+ argsSet.add(String.format("-Dopenejb.base=%s", openejbBase));
+ if (hasCommandlineArgs()) {
+ argsSet.addAll(Arrays.asList(parseCommandlineArgs()));
+ }
+
+ // set the command to start
+ argsSet.add("start");
+
+ try {
+ Bootstrap.main((String[]) argsSet.toArray(new
String[argsSet.size()]));
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new MojoExecutionException("Error while running OpenEJB
Start command", e);
+ }
+ }
+}