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: " +