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(); | |||||
| } | } | ||||
| } | } | ||||