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]

Reply via email to