antoine     2003/05/29 08:35:26

  Modified:    docs/manual/OptionalTasks ejb.html
               src/main/org/apache/tools/ant/taskdefs/optional/ejb
                        EjbJar.java JbossDeploymentTool.java
               .        WHATSNEW
  Log:
  Adds functionality that makes jboss element look for jbosscmp-jdbc.xml
  descriptor if ejbjar has cmpversion="2.0" set
  PR: 14709
  Submitted by: Rob van Oostrum (rvanoo at xs4all dot nl)
  
  Revision  Changes    Path
  1.34      +21 -3     ant/docs/manual/OptionalTasks/ejb.html
  
  Index: ejb.html
  ===================================================================
  RCS file: /home/cvs/ant/docs/manual/OptionalTasks/ejb.html,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- ejb.html  19 Mar 2003 13:49:18 -0000      1.33
  +++ ejb.html  29 May 2003 15:35:25 -0000      1.34
  @@ -19,6 +19,7 @@
     <li>Conor MacNeill</li>
     <li>Cyrille Morvan (<a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>)</li>
     <li>Greg Nelson (<a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>)</li>
  +  <li>Rob van Oostrum(<a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>)</li>
   </ul>
   
   <p>Version @VERSION@<br>
  @@ -717,6 +718,13 @@
       <td valign="top" align="center">Yes</td>
     </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>
       <td valign="top">naming</td>
       <td valign="top">Controls the naming convention used to name generated
                        EJB jars. Please refer to the description above.</td>
  @@ -844,8 +852,18 @@
   <h3><a name="ejbjar_jboss">Jboss element</a></h3>
   
   <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>
   
   <table border="1" cellpadding="2" cellspacing="0">
  
  
  
  1.40      +54 -3     
ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java
  
  Index: EjbJar.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- EjbJar.java       10 Feb 2003 14:13:49 -0000      1.39
  +++ EjbJar.java       29 May 2003 15:35:25 -0000      1.40
  @@ -1,7 +1,7 @@
   /*
    * 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.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -91,7 +91,8 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Tim Fennell</a>
    * @author Conor MacNeill
  - */
  + * @author <a href="mailto:[EMAIL PROTECTED]">Rob van Oostrum</a>
  + * */
   public class EjbJar extends MatchingTask {
   
       /**
  @@ -202,6 +203,21 @@
       }
   
       /**
  +     * 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
        * tools to access the configuration of the ejbjar task
        */
  @@ -219,10 +235,12 @@
       /** Instance variable that stores the suffix for the generated jarfile. 
*/
       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. */
       private ArrayList deploymentTools = new ArrayList();
   
  -
       /**
        * Add a deployment tool to the list of deployment tools that will be
        * processed
  @@ -444,6 +462,15 @@
           }
       }
   
  +    /**
  +     * 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
  @@ -460,6 +487,29 @@
       }
   
       /**
  +     * 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.
        *
        * @param classpath the classpath to use.
  @@ -599,6 +649,7 @@
               throw new BuildException(msg, pce);
           }
       } // end of execute()
  +
   }
   
   
  
  
  
  1.11      +29 -5     
ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JbossDeploymentTool.java
  
  Index: JbossDeploymentTool.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JbossDeploymentTool.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- JbossDeploymentTool.java  17 Feb 2003 09:07:34 -0000      1.10
  +++ JbossDeploymentTool.java  29 May 2003 15:35:25 -0000      1.11
  @@ -55,6 +55,7 @@
   
   import java.io.File;
   import java.util.Hashtable;
  +import org.apache.tools.ant.BuildException;
   import org.apache.tools.ant.Project;
   
   /**
  @@ -63,12 +64,14 @@
    * compilation.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Paul Austin</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Rob van Oostrum</a>
    * @version 1.0
    * @see EjbJar#createJboss
    */
   public class JbossDeploymentTool extends GenericDeploymentTool {
       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. */
       private String jarSuffix = ".jar";
  @@ -93,10 +96,17 @@
               log("Unable to locate jboss deployment descriptor. It was 
expected to be in " + jbossDD.getPath(), Project.MSG_WARN);
               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()) {
  -            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 @@
        * of this jar will be checked against the dependent bean classes.
        */
       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();
       }
   }
  
  
  
  1.432     +6 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.431
  retrieving revision 1.432
  diff -u -r1.431 -r1.432
  --- WHATSNEW  28 May 2003 20:58:03 -0000      1.431
  +++ WHATSNEW  29 May 2003 15:35:26 -0000      1.432
  @@ -389,6 +389,12 @@
   
   * <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
   ===================================
   
  
  
  

Reply via email to