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