descriptor if ejbjar has cmpversion="2.0" set PR: 14709 Submitted by: Rob van Oostrum (rvanoo at xs4all dot nl) git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274637 13f79535-47bb-0310-9956-ffa450edef68master
@@ -389,6 +389,12 @@ Bugzilla Report 19180. | |||||
* <junit>'s nested <formatter> elements now support if/unless clauses. | * <junit>'s nested <formatter> elements now support if/unless clauses. | ||||
* <ejbjar> | |||||
cmpversion attribute added | |||||
jboss element will look for jbosscmp-jdbc.xml descriptor | |||||
if ejbjar has cmpversion="2.0" set | |||||
Bugzilla Reports 14707 and 14709. | |||||
Changes from Ant 1.5.2 to Ant 1.5.3 | Changes from Ant 1.5.2 to Ant 1.5.3 | ||||
=================================== | =================================== | ||||
@@ -19,6 +19,7 @@ | |||||
<li>Conor MacNeill</li> | <li>Conor MacNeill</li> | ||||
<li>Cyrille Morvan (<a href="mailto:cmorvan@ingenosya.com">cmorvan@ingenosya.com</a>)</li> | <li>Cyrille Morvan (<a href="mailto:cmorvan@ingenosya.com">cmorvan@ingenosya.com</a>)</li> | ||||
<li>Greg Nelson (<a href="mailto:gn@sun.com">gn@sun.com</a>)</li> | <li>Greg Nelson (<a href="mailto:gn@sun.com">gn@sun.com</a>)</li> | ||||
<li>Rob van Oostrum(<a href="mailto:rvanoo@xs4all.nl">rvanoo@xs4all.nl</a>)</li> | |||||
</ul> | </ul> | ||||
<p>Version @VERSION@<br> | <p>Version @VERSION@<br> | ||||
@@ -716,6 +717,13 @@ the value <code>none</code>.</p> | |||||
deployment elements have been specified).</td> | deployment elements have been specified).</td> | ||||
<td valign="top" align="center">Yes</td> | <td valign="top" align="center">Yes</td> | ||||
</tr> | </tr> | ||||
<tr> | |||||
<td valign="top">cmpversion</td> | |||||
<td valign="top">Either <code>1.0</code> or <code>2.0</code>.<br/> | |||||
Default is <code>1.0</code>.<br/> | |||||
A CMP 2.0 implementation exists currently only for JBoss.</td> | |||||
<td valign="top" align="center">No</td> | |||||
</tr> | |||||
<tr> | <tr> | ||||
<td valign="top">naming</td> | <td valign="top">naming</td> | ||||
<td valign="top">Controls the naming convention used to name generated | <td valign="top">Controls the naming convention used to name generated | ||||
@@ -844,8 +852,18 @@ deployment element are detailed here. | |||||
<h3><a name="ejbjar_jboss">Jboss element</a></h3> | <h3><a name="ejbjar_jboss">Jboss element</a></h3> | ||||
<p>The jboss element searches for the JBoss specific deployment descriptors and adds them | <p>The jboss element searches for the JBoss specific deployment descriptors and adds them | ||||
to the final ejb jar file. JBoss has two deployment descriptors jboss.xml and jaws.xml | |||||
(for container manager persistence only). The JBoss server uses hot deployment and does | |||||
to the final ejb jar file. JBoss has two deployment descriptors: | |||||
<ul><li>jboss.xml</li> | |||||
<li>for container manager persistence:<br/> | |||||
<table border="1"> | |||||
<tr><td><b>CMP version</b></td><td><b>File name</b></td></tr> | |||||
<tr><td>CMP 1.0</td><td>jaws.xml</td></tr> | |||||
<tr><td>CMP 2.0</td><td>jbosscmp-jdbc.xml</td></tr> | |||||
</table> | |||||
</li> | |||||
</ul> | |||||
<br/> | |||||
. The JBoss server uses hot deployment and does | |||||
not require compilation of additional stubs and skeletons.</p> | not require compilation of additional stubs and skeletons.</p> | ||||
<table border="1" cellpadding="2" cellspacing="0"> | <table border="1" cellpadding="2" cellspacing="0"> | ||||
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* The Apache Software License, Version 1.1 | * The Apache Software License, Version 1.1 | ||||
* | * | ||||
* Copyright (c) 2000-2002 The Apache Software Foundation. All rights | |||||
* Copyright (c) 2000-2003 The Apache Software Foundation. All rights | |||||
* reserved. | * reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
@@ -91,7 +91,8 @@ import org.xml.sax.SAXException; | |||||
* | * | ||||
* @author <a href="mailto:tfennell@sapient.com">Tim Fennell</a> | * @author <a href="mailto:tfennell@sapient.com">Tim Fennell</a> | ||||
* @author Conor MacNeill | * @author Conor MacNeill | ||||
*/ | |||||
* @author <a href="mailto:rvanoo@xs4all.nl">Rob van Oostrum</a> | |||||
* */ | |||||
public class EjbJar extends MatchingTask { | public class EjbJar extends MatchingTask { | ||||
/** | /** | ||||
@@ -201,6 +202,21 @@ public class EjbJar extends MatchingTask { | |||||
} | } | ||||
} | } | ||||
/** | |||||
* CMP versions supported | |||||
* valid CMP versions are 1.0 and 2.0 | |||||
* @since ant 1.6 | |||||
*/ | |||||
public static class CMPVersion extends EnumeratedAttribute { | |||||
public static final String CMP1_0 = "1.0"; | |||||
public static final String CMP2_0 = "2.0"; | |||||
public String[] getValues() { | |||||
return new String[]{ | |||||
CMP1_0, | |||||
CMP2_0, | |||||
}; | |||||
} | |||||
} | |||||
/** | /** | ||||
* The config which is built by this task and used by the various deployment | * The config which is built by this task and used by the various deployment | ||||
* tools to access the configuration of the ejbjar task | * tools to access the configuration of the ejbjar task | ||||
@@ -219,10 +235,12 @@ public class EjbJar extends MatchingTask { | |||||
/** Instance variable that stores the suffix for the generated jarfile. */ | /** Instance variable that stores the suffix for the generated jarfile. */ | ||||
private String genericJarSuffix = "-generic.jar"; | private String genericJarSuffix = "-generic.jar"; | ||||
/** Instance variable that stores the CMP version for the jboss jarfile. */ | |||||
private String cmpVersion = CMPVersion.CMP1_0; | |||||
/** The list of deployment tools we are going to run. */ | /** The list of deployment tools we are going to run. */ | ||||
private ArrayList deploymentTools = new ArrayList(); | private ArrayList deploymentTools = new ArrayList(); | ||||
/** | /** | ||||
* Add a deployment tool to the list of deployment tools that will be | * Add a deployment tool to the list of deployment tools that will be | ||||
* processed | * processed | ||||
@@ -444,6 +462,15 @@ public class EjbJar extends MatchingTask { | |||||
} | } | ||||
} | } | ||||
/** | |||||
* Gets the destination directory. | |||||
* | |||||
* @return destination directory | |||||
* @since ant 1.6 | |||||
*/ | |||||
public File getDestdir() { | |||||
return this.destDir; | |||||
} | |||||
/** | /** | ||||
* Set the destination directory. The EJB jar files will be written into | * Set the destination directory. The EJB jar files will be written into | ||||
@@ -459,6 +486,29 @@ public class EjbJar extends MatchingTask { | |||||
this.destDir = inDir; | this.destDir = inDir; | ||||
} | } | ||||
/** | |||||
* Gets the CMP version. | |||||
* | |||||
* @return CMP version | |||||
* @since ant 1.6 | |||||
*/ | |||||
public String getCmpversion() { | |||||
return this.cmpVersion; | |||||
} | |||||
/** | |||||
* Sets the CMP version. | |||||
* | |||||
* @param version CMP version. | |||||
* Must be either <code>1.0</code> or <code>2.0</code>.<br/> | |||||
* Default is <code>1.0</code>.<br/> | |||||
* Initially, only the JBoss implementation does something specific for CMP 2.0.<br/> | |||||
* @since ant 1.6 | |||||
*/ | |||||
public void setCmpversion( CMPVersion version ) { | |||||
this.cmpVersion = version.getValue(); | |||||
} | |||||
/** | /** | ||||
* Set the classpath to use when resolving classes for inclusion in the jar. | * Set the classpath to use when resolving classes for inclusion in the jar. | ||||
* | * | ||||
@@ -599,6 +649,7 @@ public class EjbJar extends MatchingTask { | |||||
throw new BuildException(msg, pce); | throw new BuildException(msg, pce); | ||||
} | } | ||||
} // end of execute() | } // end of execute() | ||||
} | } | ||||
@@ -55,6 +55,7 @@ package org.apache.tools.ant.taskdefs.optional.ejb; | |||||
import java.io.File; | import java.io.File; | ||||
import java.util.Hashtable; | import java.util.Hashtable; | ||||
import org.apache.tools.ant.BuildException; | |||||
import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
/** | /** | ||||
@@ -63,12 +64,14 @@ import org.apache.tools.ant.Project; | |||||
* compilation. | * compilation. | ||||
* | * | ||||
* @author <a href="mailto:p.austin@talk21.com">Paul Austin</a> | * @author <a href="mailto:p.austin@talk21.com">Paul Austin</a> | ||||
* @author <a href="mailto:rvanoo@xs4all.nl">Rob van Oostrum</a> | |||||
* @version 1.0 | * @version 1.0 | ||||
* @see EjbJar#createJboss | * @see EjbJar#createJboss | ||||
*/ | */ | ||||
public class JbossDeploymentTool extends GenericDeploymentTool { | public class JbossDeploymentTool extends GenericDeploymentTool { | ||||
protected static final String JBOSS_DD = "jboss.xml"; | protected static final String JBOSS_DD = "jboss.xml"; | ||||
protected static final String JBOSS_CMPD = "jaws.xml"; | |||||
protected static final String JBOSS_CMP10D = "jaws.xml"; | |||||
protected static final String JBOSS_CMP20D = "jbosscmp-jdbc.xml"; | |||||
/** Instance variable that stores the suffix for the jboss jarfile. */ | /** Instance variable that stores the suffix for the jboss jarfile. */ | ||||
private String jarSuffix = ".jar"; | private String jarSuffix = ".jar"; | ||||
@@ -93,10 +96,17 @@ public class JbossDeploymentTool extends GenericDeploymentTool { | |||||
log("Unable to locate jboss deployment descriptor. It was expected to be in " + jbossDD.getPath(), Project.MSG_WARN); | log("Unable to locate jboss deployment descriptor. It was expected to be in " + jbossDD.getPath(), Project.MSG_WARN); | ||||
return; | return; | ||||
} | } | ||||
File jbossCMPD = new File(getConfig().descriptorDir, ddPrefix + JBOSS_CMPD); | |||||
String descriptorFileName = JBOSS_CMP10D; | |||||
if ( EjbJar.CMPVersion.CMP2_0.equals( getParent().getCmpversion() ) ) { | |||||
descriptorFileName = JBOSS_CMP20D; | |||||
} | |||||
File jbossCMPD = new File(getConfig().descriptorDir, ddPrefix + descriptorFileName); | |||||
if (jbossCMPD.exists()) { | if (jbossCMPD.exists()) { | ||||
ejbFiles.put(META_DIR + JBOSS_CMPD, jbossCMPD); | |||||
ejbFiles.put(META_DIR + descriptorFileName, jbossCMPD); | |||||
} else { | |||||
log("Unable to locate jboss cmp descriptor. It was expected to be in " + jbossCMPD.getPath(), Project.MSG_WARN); | |||||
return; | |||||
} | } | ||||
} | } | ||||
@@ -105,6 +115,20 @@ public class JbossDeploymentTool extends GenericDeploymentTool { | |||||
* of this jar will be checked against the dependent bean classes. | * of this jar will be checked against the dependent bean classes. | ||||
*/ | */ | ||||
File getVendorOutputJarFile(String baseName) { | File getVendorOutputJarFile(String baseName) { | ||||
return new File(getDestDir(), baseName + jarSuffix); | |||||
return new File( getParent().getDestdir(), baseName + jarSuffix); | |||||
} | |||||
/** | |||||
* Called to validate that the tool parameters have been configured. | |||||
* | |||||
* @throws BuildException If the Deployment Tool's configuration isn't | |||||
* valid | |||||
* @since ant 1.6 | |||||
*/ | |||||
public void validateConfigured() throws BuildException { | |||||
} | |||||
private EjbJar getParent() { | |||||
return ( EjbJar ) this.getTask(); | |||||
} | } | ||||
} | } |