jefft       2003/06/20 23:53:55

  Modified:    src/targets webapp-build.xml
               tools/src blocks-build.xsl
               tools/src/anttasks XConfToolTask.java
  Log:
  Surround sitemap.xmap block snippets with comments indicating their origin:
      <!-- Start configuration from '<block>' -->
        ....
      <!-- End configuration from '<block>' -->
  to make it easier for users to see what's what.  Off by default, only switched
  on for sitemap.xmap
  
  Revision  Changes    Path
  1.20      +3 -2      cocoon-2.1/src/targets/webapp-build.xml
  
  Index: webapp-build.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/targets/webapp-build.xml,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- webapp-build.xml  5 Jun 2003 03:02:45 -0000       1.19
  +++ webapp-build.xml  21 Jun 2003 06:53:55 -0000      1.20
  @@ -84,7 +84,8 @@
       <copy file="${build}/${name}-deprecated.jar" 
tofile="${build.webapp.lib}/${name}-${version}-deprecated.jar"/>
       <xpatch file="${build.webapp}/WEB-INF/cocoon.xconf"
               srcdir="${deprecated.conf}" 
  -            includes="**/*.xconf"/>
  +            includes="**/*.xconf"
  +            addComments="true"/>
     </target>
   
     <target name="prepare-webapp-idldocs" depends="idldocs" 
unless="unless.exclude.webapp.idldocs">
  @@ -166,7 +167,7 @@
          <include name="${customconf}/*.xmap" />
          <include name="${customconf}/*.xpipe" />
       </xpatch>
  -    <xpatch file="${build.webapp}/WEB-INF/cocoon.xconf" srcdir="">
  +    <xpatch file="${build.webapp}/WEB-INF/cocoon.xconf" srcdir="" 
addComments="true">
          <include name="${customconf}/*.xconf" />
       </xpatch>
       <xpatch file="${build.webapp}/WEB-INF/logkit.xconf" srcdir="">
  
  
  
  1.22      +2 -1      cocoon-2.1/tools/src/blocks-build.xsl
  
  Index: blocks-build.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/tools/src/blocks-build.xsl,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- blocks-build.xsl  26 May 2003 08:44:30 -0000      1.21
  +++ blocks-build.xsl  21 Jun 2003 06:53:55 -0000      1.22
  @@ -77,7 +77,8 @@
   
         <target name="patch-conf" depends="init">
            <xpatch file="{string('${build.webapp}')}/sitemap.xmap"
  -                 srcdir="{string('${blocks}')}">
  +                 srcdir="{string('${blocks}')}"
  +                 addcomments="true">
               <xsl:for-each select="project[contains(@name,'cocoon-block-')]">
                  <xsl:variable name="block-name" 
select="substring-after(@name,'cocoon-block-')"/>
                  <include name="{$block-name}/conf/**/*.xmap" 
unless="unless.exclude.block.{$block-name}"/>
  
  
  
  1.8       +31 -1     cocoon-2.1/tools/src/anttasks/XConfToolTask.java
  
  Index: XConfToolTask.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/tools/src/anttasks/XConfToolTask.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XConfToolTask.java        5 Jun 2003 21:06:17 -0000       1.7
  +++ XConfToolTask.java        21 Jun 2003 06:53:55 -0000      1.8
  @@ -93,9 +93,12 @@
    */
   public final class XConfToolTask extends MatchingTask {
   
  +    private static final String NL=System.getProperty("line.separator");
  +    private static final String FSEP=System.getProperty("file.separator");
       private File file;
       private File directory;
       private File srcdir;
  +    private boolean addComments;
       /** for resolving entities such as dtds */
       private XMLCatalog xmlCatalog = new XMLCatalog();
   
  @@ -128,6 +131,14 @@
       }
   
       /**
  +     * Whether to add a comment indicating where this block of code comes
  +     * from.
  +     */
  +    public void setAddComments(Boolean addComments) {
  +        this.addComments = addComments.booleanValue();
  +    }
  +
  +    /**
        * Initialize internal instance of XMLCatalog
        */
       public void init() throws BuildException
  @@ -227,6 +238,7 @@
           Element elem = component.getDocumentElement();
   
           String extension = 
file.lastIndexOf(".")>0?file.substring(file.lastIndexOf(".")+1):"";
  +        String basename = basename(file);
   
           if ( !elem.getTagName().equals(extension)) {
               log("Skipping non xconf-tool file: "+file);
  @@ -325,6 +337,10 @@
               log("Processing: "+file);
               NodeList componentNodes = 
component.getDocumentElement().getChildNodes();
   
  +            if (this.addComments) {
  +                root.appendChild(configuration.createComment("..... Start 
configuration from '"+basename+"' "));
  +                root.appendChild(configuration.createTextNode(NL));
  +            }
               for (int i = 0; i<componentNodes.getLength(); i++) {
                   Node node = configuration.importNode(componentNodes.item(i),
                                                        true);
  @@ -335,7 +351,21 @@
                       root.insertBefore(node, before);
                   }
               }
  +            if (this.addComments) {
  +                root.appendChild(configuration.createComment("..... End 
configuration from '"+basename+"' "));
  +                root.appendChild(configuration.createTextNode(NL));
  +            }
               return true;
           }
  +    }
  +
  +    /** Returns the file name (excluding directories and extension). */
  +    private String basename(String file) {
  +        int start = file.lastIndexOf(FSEP)+1; // last '/'
  +        int end = file.lastIndexOf(".");  // last '.'
  +
  +        if (end == 0) end = file.length();
  +
  +        return file.substring(start, end);
       }
   }
  
  
  

Reply via email to