diff --git a/ejb/plugin.jelly b/ejb/plugin.jelly index f48480cf..5bfe3ceb 100644 --- a/ejb/plugin.jelly +++ b/ejb/plugin.jelly @@ -24,6 +24,8 @@ xmlns:util="jelly:util" xmlns:artifact="artifact"> + + @@ -153,9 +155,10 @@ - + type="ejb-client" + project="${pom}" + typeHandler="${ejbTypeHandler}"/> + @@ -168,8 +171,9 @@ - + project="${pom}" + typeHandler="${ejbTypeHandler}"/> + @@ -182,8 +186,9 @@ - + project="${pom}" + typeHandler="${ejbTypeHandler}"/> + @@ -196,8 +201,9 @@ - + project="${pom}" + typeHandler="${ejbTypeHandler}"/> + @@ -210,8 +216,9 @@ - + project="${pom}" + typeHandler="${ejbTypeHandler}"/> + @@ -224,7 +231,9 @@ + project="${pom}" + typeHandler="${ejbTypeHandler}"/> + diff --git a/ejb/project.xml b/ejb/project.xml index 994ce48a..677930ab 100644 --- a/ejb/project.xml +++ b/ejb/project.xml @@ -23,7 +23,7 @@ 3 maven-ejb-plugin Maven EJB Plugin - 1.6 + 1.7-SNAPSHOT EJB Plugin for Maven EJB Plugin for Maven http://maven.apache.org/reference/plugins/ejb/ @@ -74,6 +74,41 @@ Java Developer + + Vincent Massol + vmassol + vmassol@apache.org + + Java Developer + + - + + + Håvard Bjåstad + + + + + commons-logging + commons-logging + 1.0.3 + + + commons-lang + commons-lang + 2.0 + + + maven + maven + 1.0 + + + + maven + maven-model + 3.0.0-SNAPSHOT + + diff --git a/ejb/src/main/org/apache/maven/ejb/EJBArtifactTypeHandler.java b/ejb/src/main/org/apache/maven/ejb/EJBArtifactTypeHandler.java new file mode 100644 index 00000000..740c7242 --- /dev/null +++ b/ejb/src/main/org/apache/maven/ejb/EJBArtifactTypeHandler.java @@ -0,0 +1,75 @@ +package org.apache.maven.ejb; + +/* ==================================================================== + * 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.MavenException; +import org.apache.maven.project.Project; +import org.apache.maven.repository.ArtifactTypeHandler; + +/** + * This will do until wagon debuts. + * + * @author Håvard Bjåstad + * @author Vincent Massol + * @version $Id$ + */ +public class EJBArtifactTypeHandlerTest extends TestCase +{ + private Project project; + private ArtifactTypeHandler handler; + private static final String VERSION = "VERSION"; + + public void setUp() throws Exception + { + project = new Project(); + project.setGroupId("groupId"); + project.setArtifactId("artifactId"); + handler = new EJBArtifactTypeHandler(); + } + + public void testConstructRepositoryDirectoryPath() throws Exception + { + assertEquals("check artifact directory", "groupId/ejbs/", + handler.constructRepositoryDirectoryPath("ejb", project)); + assertEquals("check artifact directory", "groupId/ejbs/", + handler.constructRepositoryDirectoryPath("ejb-client", project)); + } + + public void testConstructRepositoryFullPath() throws Exception + { + assertEquals("check artifact path", "groupId/ejbs/artifactId-VERSION.jar", + handler.constructRepositoryFullPath("ejb", project, VERSION)); + assertEquals("check artifact path", "groupId/ejbs/artifactId-VERSION-client.jar", + handler.constructRepositoryFullPath("ejb-client", project, VERSION)); + } + + public void testConstructRepositoryFullPathWithInvalidType() throws Exception + { + try { + handler.constructRepositoryFullPath("foo", project, VERSION); + fail("expected exception"); + } + catch (MavenException expected) { + assertEquals("Unrecognised ejb type (is foo)", expected.getMessage()); + } + } +} diff --git a/ejb/xdocs/changes.xml b/ejb/xdocs/changes.xml index 870ce9c0..c9abd1ca 100644 --- a/ejb/xdocs/changes.xml +++ b/ejb/xdocs/changes.xml @@ -24,6 +24,14 @@ Nathan Coast + + + Added new EJB type handler that supports ejb and + ejb-client types. This fixes the bug with + ejb:install/deploy-client not uploading the client + jar. + + Added new maven.ejb.build.dir property that specifies the