sanders     01/05/05 20:15:51

  Modified:    cjan     test-cjan.xml
               cjan/src/java/org/apache/tools/ant/taskdefs/optional/cjan
                        CJANGetJar.java CJANTask.java
  Log:
  It finally works.  Downloads based upon the xml definition.  Ready to
  be tested in some basic form, possibly in commons for dependencies on
  other commons components?
  
  Revision  Changes    Path
  1.4       +3 -2      jakarta-commons-sandbox/cjan/test-cjan.xml
  
  Index: test-cjan.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/cjan/test-cjan.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- test-cjan.xml     2001/05/06 01:08:16     1.3
  +++ test-cjan.xml     2001/05/06 03:15:50     1.4
  @@ -1,4 +1,4 @@
  -<!--  $Id: test-cjan.xml,v 1.3 2001/05/06 01:08:16 sanders Exp $ 
  +<!--  $Id: test-cjan.xml,v 1.4 2001/05/06 03:15:50 sanders Exp $ 
         Copyright 2001 The Apache Software Foundation.
         All rights reserved.
   -->
  @@ -27,13 +27,14 @@
       <echo message="Testing cjan get ..."/>
       <cjan project="jakarta-commons"> 
         <getjar component="commons-beanutils"
  -               revision="0.1-dev"
                  property="commons-beanutils.jar"/>
         <getjar component="commons-collections"
                  property="commons-collections.jar"/>
         <getjar component="commons-digester" 
                  property="commons-digester.jar"/>
       </cjan>
  +    <echo message="Property commons-beanutils.jar == ${commons-beanutils.jar}"/>
  +    <echo message="Property commons-collections.jar == ${commons-collections.jar}"/>
       <echo message="Property commons-digester.jar == ${commons-digester.jar}"/>
       <echo message="Finished testing cjan."/>
     </target>
  
  
  
  1.2       +16 -10    
jakarta-commons-sandbox/cjan/src/java/org/apache/tools/ant/taskdefs/optional/cjan/CJANGetJar.java
  
  Index: CJANGetJar.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/cjan/src/java/org/apache/tools/ant/taskdefs/optional/cjan/CJANGetJar.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CJANGetJar.java   2001/05/06 01:08:17     1.1
  +++ CJANGetJar.java   2001/05/06 03:15:50     1.2
  @@ -74,7 +74,7 @@
    * Class to provide get functionality for CJAN.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Scott Sanders</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public class CJANGetJar extends Object implements CJANSubTask {
   
  @@ -112,7 +112,11 @@
   
           Element elem = cjan.getDocument().getElementById(component);
           
  +        if (elem == null)
  +            throw new BuildException("Unable to get component element");
  +
           String remoteURLStr = getJarDownloadURL(cjan, elem);
  +
           URL remoteURL = null;
   
           try {
  @@ -121,7 +125,8 @@
               throw new BuildException("URL is malformed: " + remoteURLStr);
           }
          
  -        String localFileName = cjan.getLocalRepository() + "/" + 
remoteURL.getFile();
  +        String localFileName = cjan.getLocalRepository() + 
  +            remoteURL.getFile().substring(remoteURL.getFile().lastIndexOf("/"));
   
           File localFile = new File(localFileName);
   
  @@ -139,11 +144,12 @@
                                     " -> " + localFileName, Project.MSG_INFO);
               WriteURLToFile(remoteURL, localFileName);
   
  -            if (cjan.getProject().getProperty(property) == null) {
  -                cjan.getProject().log(cjan.getTask(), "Setting property " + 
property +
  -                            " to " + localFileName, Project.MSG_DEBUG);
  -                cjan.getProject().setProperty(property, localFileName);
  -            }
  +        }
  +
  +        if (cjan.getProject().getProperty(property) == null) {
  +            cjan.getProject().log(cjan.getTask(), "Setting property " + property +
  +                                  " to " + localFileName, Project.MSG_DEBUG);
  +            cjan.getProject().setProperty(property, localFileName);
           }
       }
   
  @@ -157,12 +163,12 @@
               }
               NodeList revChildren = 
elem.getElementsByTagName(CJANInfo.XML_ELEM_REVISION);
               for (int i = 0; i < revChildren.getLength(); i++) {
  -                Element revElem = (Element)revChildren.item(i);
  -                if (revElem.getAttribute(CJANInfo.XML_ATTR_REVISION_NUMBER) == 
revision) {
  +                Element revElem = (Element)revChildren.item(i);               
  +                if 
(revElem.getAttribute(CJANInfo.XML_ATTR_REVISION_NUMBER).equals(revision)) {
                       NodeList jarChildren = 
revElem.getElementsByTagName(CJANInfo.XML_ELEM_JAR);
                       for (int j = 0; j < jarChildren.getLength(); j++) {
                           Element jarElem = (Element)jarChildren.item(j);
  -                        if (jarElem.getAttribute(CJANInfo.XML_ATTR_PROTOCOL) == 
cjan.getProtocol()) {
  +                        if 
(jarElem.getAttribute(CJANInfo.XML_ATTR_PROTOCOL).equals(cjan.getProtocol())) {
                               return jarElem.getAttribute(CJANInfo.XML_ATTR_URL);
                           }
                       }
  
  
  
  1.4       +3 -3      
jakarta-commons-sandbox/cjan/src/java/org/apache/tools/ant/taskdefs/optional/cjan/CJANTask.java
  
  Index: CJANTask.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/cjan/src/java/org/apache/tools/ant/taskdefs/optional/cjan/CJANTask.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CJANTask.java     2001/05/06 02:37:49     1.3
  +++ CJANTask.java     2001/05/06 03:15:50     1.4
  @@ -79,7 +79,7 @@
    * Class to provide automated jar file download ala CPAN
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Scott Sanders</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public class CJANTask extends Task {
       
  @@ -161,7 +161,7 @@
   
           //Parse the project definition and find the URL of the jar to download
           String projectURI = cjan.getRemoteRepository() + "/" + project + ".xml";
  -        cjan.getProject().log("Attempting to download project repository definition 
" +
  +        getProject().log("Attempting to download project repository definition " +
                                 projectURI + ".", Project.MSG_INFO);
           
           Document xml = getProjectDocument(projectURI);
  @@ -228,7 +228,7 @@
   
               Element docElem = doc.getDocumentElement();
               //Check to make sure the version information is correct.
  -            if (docElem.getAttribute(CJANInfo.XML_ATTR_VERSION) == 
CJANInfo.DTD_VERSION) {
  +            if 
(docElem.getAttribute(CJANInfo.XML_ATTR_VERSION).equals(CJANInfo.DTD_VERSION)) {
                   return doc;
               } else {
                   getProject().log("Repository version: " +
  
  
  

Reply via email to