mirror of https://github.com/apache/maven.git
initial version of EJB plugin
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163520 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5dc8cb4f33
commit
2ef5d9ad39
|
@ -0,0 +1,35 @@
|
||||||
|
package org.apache.maven.artifact.handler;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2004 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class EjbHandler
|
||||||
|
extends JarHandler
|
||||||
|
{
|
||||||
|
public String directory()
|
||||||
|
{
|
||||||
|
return "ejbs";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String packageGoal()
|
||||||
|
{
|
||||||
|
return "ejb:ejb";
|
||||||
|
}
|
||||||
|
}
|
|
@ -86,6 +86,12 @@
|
||||||
</requirements>
|
</requirements>
|
||||||
</component>
|
</component>
|
||||||
|
|
||||||
|
<component>
|
||||||
|
<role>org.apache.maven.artifact.handler.ArtifactHandler</role>
|
||||||
|
<role-hint>ejb</role-hint>
|
||||||
|
<implementation>org.apache.maven.artifact.handler.EjbHandler</implementation>
|
||||||
|
</component>
|
||||||
|
|
||||||
<component>
|
<component>
|
||||||
<role>org.apache.maven.artifact.handler.ArtifactHandler</role>
|
<role>org.apache.maven.artifact.handler.ArtifactHandler</role>
|
||||||
<role-hint>jar</role-hint>
|
<role-hint>jar</role-hint>
|
||||||
|
|
|
@ -45,6 +45,8 @@ it0015: Test marmalade-driven mojo support. This will compile supporting java
|
||||||
install the plugin, and finally use the new plugin.
|
install the plugin, and finally use the new plugin.
|
||||||
|
|
||||||
it0016: Test a WAR generation
|
it0016: Test a WAR generation
|
||||||
|
|
||||||
|
it0017: Test an EJB generation
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
- generated sources
|
- generated sources
|
||||||
|
|
|
@ -12,3 +12,4 @@ it0012
|
||||||
it0013
|
it0013
|
||||||
it0015
|
it0015
|
||||||
it0016
|
it0016
|
||||||
|
it0017
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
*~
|
||||||
|
*.log
|
||||||
|
target
|
||||||
|
*.ipr
|
||||||
|
*.iws
|
||||||
|
dist
|
||||||
|
target
|
||||||
|
.classpath
|
||||||
|
.project
|
||||||
|
log.txt
|
|
@ -0,0 +1,4 @@
|
||||||
|
target/classes/org/apache/maven/it0017/Person.class
|
||||||
|
target/maven-core-it0017-1.0.jar
|
||||||
|
target/maven-core-it0017-1.0.jar!/META-INF/ejbjar.xml
|
||||||
|
target/maven-core-it0017-1.0.jar!/org/apache/maven/it0017/Person.class
|
|
@ -0,0 +1 @@
|
||||||
|
package
|
|
@ -0,0 +1,7 @@
|
||||||
|
<model>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>maven</groupId>
|
||||||
|
<artifactId>maven-core-it0017</artifactId>
|
||||||
|
<packaging>ejb</packaging>
|
||||||
|
<version>1.0</version>
|
||||||
|
</model>
|
|
@ -0,0 +1,16 @@
|
||||||
|
package org.apache.maven.it0017;
|
||||||
|
|
||||||
|
public class Person
|
||||||
|
{
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public void setName( String name )
|
||||||
|
{
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ejb-jar>
|
||||||
|
<enterprise-beans>
|
||||||
|
<session>
|
||||||
|
<ejb-name>Hello</ejb-name>
|
||||||
|
<home>org.apache.maven.it0017.HelloHome</home>
|
||||||
|
<remote>org.apache.maven.it0017.Hello</remote>
|
||||||
|
<ejb-class>org.apache.maven.it0017.HelloBean</ejb-class>
|
||||||
|
<session-type>Stateless</session-type>
|
||||||
|
<transaction-type>Container</transaction-type>
|
||||||
|
</session>
|
||||||
|
</enterprise-beans>
|
||||||
|
<assembly-descriptor>
|
||||||
|
<container-transaction>
|
||||||
|
<method>
|
||||||
|
<ejb-name>Hello</ejb-name>
|
||||||
|
<method-name>*</method-name>
|
||||||
|
</method>
|
||||||
|
<trans-attribute>Required</trans-attribute>
|
||||||
|
</container-transaction>
|
||||||
|
</assembly-descriptor>
|
||||||
|
</ejb-jar>
|
|
@ -81,10 +81,11 @@ public class MBoot
|
||||||
"maven-plugin-tools/maven-plugin-tools-marmalade", "maven-core-it-verifier"};
|
"maven-plugin-tools/maven-plugin-tools-marmalade", "maven-core-it-verifier"};
|
||||||
|
|
||||||
String[] pluginBuilds = new String[]{"maven-plugins/maven-clean-plugin", "maven-plugins/maven-compiler-plugin",
|
String[] pluginBuilds = new String[]{"maven-plugins/maven-clean-plugin", "maven-plugins/maven-compiler-plugin",
|
||||||
"maven-plugins/maven-deploy-plugin", "maven-plugins/maven-install-plugin",
|
"maven-plugins/maven-deploy-plugin", "maven-plugins/maven-ejb-plugin",
|
||||||
"maven-plugins/maven-jar-plugin", "maven-plugins/maven-plugin-plugin",
|
"maven-plugins/maven-install-plugin", "maven-plugins/maven-jar-plugin",
|
||||||
"maven-plugins/maven-pom-plugin", "maven-plugins/maven-resources-plugin",
|
"maven-plugins/maven-plugin-plugin", "maven-plugins/maven-pom-plugin",
|
||||||
"maven-plugins/maven-surefire-plugin", "maven-plugins/maven-war-plugin"};
|
"maven-plugins/maven-resources-plugin", "maven-plugins/maven-surefire-plugin",
|
||||||
|
"maven-plugins/maven-war-plugin"};
|
||||||
|
|
||||||
private static final Map MODELLO_TARGET_VERSIONS;
|
private static final Map MODELLO_TARGET_VERSIONS;
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ public class CompilerMojo
|
||||||
{
|
{
|
||||||
private Compiler compiler = new JavacCompiler();
|
private Compiler compiler = new JavacCompiler();
|
||||||
|
|
||||||
private boolean debug = false;
|
private boolean debug = true;
|
||||||
|
|
||||||
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
|
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
|
||||||
throws Exception
|
throws Exception
|
||||||
|
@ -126,7 +126,7 @@ public class CompilerMojo
|
||||||
message = "Warning! not present in repository!";
|
message = "Warning! not present in repository!";
|
||||||
}
|
}
|
||||||
|
|
||||||
request.getLog().debug( "classpathElements[ " + i + " ] = " + classpathElement + ": " + message );
|
request.getLog().info( "classpathElements[ " + i + " ] = " + classpathElement + ": " + message );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
target
|
||||||
|
*~
|
||||||
|
*.log
|
||||||
|
.classpath
|
||||||
|
.project
|
||||||
|
*.ipr
|
||||||
|
*.iws
|
||||||
|
*.iml
|
|
@ -0,0 +1,57 @@
|
||||||
|
<model>
|
||||||
|
<parent>
|
||||||
|
<artifactId>maven-plugin-parent</artifactId>
|
||||||
|
<groupId>maven</groupId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>maven</groupId>
|
||||||
|
<artifactId>maven-ejb-plugin</artifactId>
|
||||||
|
<packaging>plugin</packaging>
|
||||||
|
<name>Maven EJB Plugin</name>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>plexus</groupId>
|
||||||
|
<artifactId>plexus-container-default</artifactId>
|
||||||
|
<version>1.0-alpha-2-SNAPSHOT</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>plexus</groupId>
|
||||||
|
<artifactId>plexus-archiver</artifactId>
|
||||||
|
<version>1.0-alpha-1-SNAPSHOT</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>maven</groupId>
|
||||||
|
<artifactId>maven-archiver</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>maven</groupId>
|
||||||
|
<artifactId>maven-artifact</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>maven</groupId>
|
||||||
|
<artifactId>maven-core</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>maven</groupId>
|
||||||
|
<artifactId>maven-model</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</model>
|
|
@ -0,0 +1,171 @@
|
||||||
|
package org.apache.maven.plugin.jar;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2001-2005 The Apache Software Foundation.
|
||||||
|
*
|
||||||
|
* Licensed 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import org.apache.maven.archiver.MavenArchiver;
|
||||||
|
import org.apache.maven.plugin.AbstractPlugin;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionRequest;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionResponse;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
|
||||||
|
* @version $Id$
|
||||||
|
* @goal ejb
|
||||||
|
* @phase package
|
||||||
|
* @description build an ejb
|
||||||
|
* @parameter name="jarName"
|
||||||
|
* type="String"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#project.build.finalName"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="compress"
|
||||||
|
* type="String"
|
||||||
|
* required="false"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.ejb.compress"
|
||||||
|
* default="true"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="index"
|
||||||
|
* type="String"
|
||||||
|
* required="false"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.ejb.index"
|
||||||
|
* default="false"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="package"
|
||||||
|
* type="String"
|
||||||
|
* required="false"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.ejb.package"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="manifest"
|
||||||
|
* type="String"
|
||||||
|
* required="false"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.ejb.manifest"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="mainClass"
|
||||||
|
* type="String"
|
||||||
|
* required="false"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.ejb.mainClass"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="addClasspath"
|
||||||
|
* type="String"
|
||||||
|
* required="false"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.ejb.addClasspath"
|
||||||
|
* default="false"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="addExtensions"
|
||||||
|
* type="String"
|
||||||
|
* required="false"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.ejb.addExtensions"
|
||||||
|
* default="false"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="generateClient"
|
||||||
|
* type="String"
|
||||||
|
* required="false"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.ejb.generateclient"
|
||||||
|
* default="false"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="outputDirectory"
|
||||||
|
* type="String"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#project.build.outputDirectory"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="basedir"
|
||||||
|
* type="String"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#project.build.directory"
|
||||||
|
* description=""
|
||||||
|
* @parameter name="project"
|
||||||
|
* type="org.apache.maven.project.MavenProject"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#project"
|
||||||
|
* description="current MavenProject instance"
|
||||||
|
*/
|
||||||
|
public class EjbMojo
|
||||||
|
extends AbstractPlugin
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @todo Add license files in META-INF directory.
|
||||||
|
*/
|
||||||
|
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
File basedir = new File( (String) request.getParameter( "basedir" ) );
|
||||||
|
|
||||||
|
String outputDirectory = (String) request.getParameter( "outputDirectory" );
|
||||||
|
|
||||||
|
String jarName = (String) request.getParameter( "jarName" );
|
||||||
|
|
||||||
|
boolean generateClient = new Boolean( (String) request.getParameter( "generateClient" ) ).booleanValue();
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
request.getLog().info( "Building ejb " + jarName );
|
||||||
|
|
||||||
|
File jarFile = new File( basedir, jarName + ".jar" );
|
||||||
|
|
||||||
|
MavenArchiver archiver = new MavenArchiver();
|
||||||
|
|
||||||
|
archiver.setOutputFile( jarFile );
|
||||||
|
|
||||||
|
String ejbJarXmlFile = "META-INF/ejb-jar.xml";
|
||||||
|
|
||||||
|
archiver.getArchiver().addDirectory( new File( outputDirectory ), new String[]{"**/**"},
|
||||||
|
new String[]{ejbJarXmlFile, "**/package.html"} );
|
||||||
|
|
||||||
|
archiver.getArchiver().addFile( new File( outputDirectory, ejbJarXmlFile ), ejbJarXmlFile );
|
||||||
|
|
||||||
|
// create archive
|
||||||
|
archiver.createArchive( request );
|
||||||
|
|
||||||
|
if ( generateClient )
|
||||||
|
{
|
||||||
|
request.getLog().info( "Building ejb client " + jarName + "-client" );
|
||||||
|
|
||||||
|
File clientJarFile = new File( basedir, jarName + "-client.jar" );
|
||||||
|
|
||||||
|
MavenArchiver clientArchiver = new MavenArchiver();
|
||||||
|
|
||||||
|
clientArchiver.setOutputFile( jarFile );
|
||||||
|
|
||||||
|
clientArchiver.getArchiver().addDirectory( new File( outputDirectory ), new String[]{"**/**"},
|
||||||
|
new String[]{"**/*Bean.class", "**/*CMP.class",
|
||||||
|
"**/*Session.class", "**/package.html"} );
|
||||||
|
|
||||||
|
// create archive
|
||||||
|
clientArchiver.createArchive( request );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue