bodewig 2003/11/26 06:14:40
Modified: java Module.java Repository.java
Log:
Deal with subversion <repository> entries and dir attributes on <svn> in <module>
Revision Changes Path
1.23 +44 -6 jakarta-gump/java/Module.java
Index: Module.java
===================================================================
RCS file: /home/cvs/jakarta-gump/java/Module.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- Module.java 7 Feb 2003 01:09:25 -0000 1.22
+++ Module.java 26 Nov 2003 14:14:40 -0000 1.23
@@ -120,6 +120,7 @@
System.err.println("Dropping module "
+ element.getAttribute("name")
+ " because of Exception " + t);
+ t.printStackTrace();
}
}
@@ -152,6 +153,7 @@
computeSrcDir();
promoteProjects();
resolveCvsroot();
+ resolveSubversionUrl();
Node child=element.getFirstChild();
for (; child != null; child=child.getNextSibling()) {
@@ -159,9 +161,6 @@
description = (Element) child;
} else if (child.getNodeName().equals("url")) {
url = (Element) child;
- } else if (child.getNodeName().equals("svn")) {
- Element svn = (Element) child;
- svn.setAttribute("srcdir", name);
} else if (child.getNodeName().equals("redistributable")) {
redistributable = true;
}
@@ -323,6 +322,45 @@
}
}
+ /**
+ * Resolves repository information - and possibly the dir
+ * attribute - for svn.
+ */
+ private void resolveSubversionUrl() throws Exception {
+ Element svn = null;
+ Node child = element.getFirstChild();
+ for (; child != null; child = child.getNextSibling()) {
+ if (!child.getNodeName().equals("svn")) continue;
+ if (svn == null) {
+ svn = (Element) child;
+ } else {
+ Jenny.moveChildren((Element) child, svn);
+ }
+ }
+
+ if (svn != null) {
+ svn.setAttribute("srcdir", name);
+ String svnurl = svn.getAttribute("url");
+ if (svnurl == null || svnurl.equals("")) {
+ String value = svn.getAttribute("repository");
+ Repository r = Repository.find(value);
+ if (r == null) {
+ throw new Exception("repository \"" + value +
+ "\" not found processing module "
+ + name);
+ }
+ svnurl = r.get("url");
+ if (svn.getAttributeNode("dir") != null) {
+ if (!svnurl.endsWith("/")) {
+ svnurl += "/";
+ }
+
+ svnurl += svn.getAttribute("dir");
+ }
+ svn.setAttribute("url", svnurl);
+ }
+ }
+ }
/**
* Add entries to cvspass, as necessary, to simulate logon to
1.6 +10 -3 jakarta-gump/java/Repository.java
Index: Repository.java
===================================================================
RCS file: /home/cvs/jakarta-gump/java/Repository.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Repository.java 7 Feb 2003 01:09:25 -0000 1.5
+++ Repository.java 26 Nov 2003 14:14:40 -0000 1.6
@@ -111,6 +111,13 @@
for (; child != null; child=child.getNextSibling()) {
if (child.getNodeName().equals("redistributable")) {
redistributable = true;
+ } else if (child.getNodeName().equals("url")
+ && element.getAttribute("type").equals("svn")) {
+ Node grandChild = child.getFirstChild();
+ if (grandChild != null
+ && grandChild.getNodeType() == Node.TEXT_NODE) {
+ element.setAttribute("url", grandChild.getNodeValue());
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]