httpd-docs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yoshiki Hayashi <yosh...@xemacs.org>
Subject Re: Antwort: Re: cvs commit: httpd-2.0/docs/manual/style build.xml
Date Wed, 22 May 2002 09:53:22 GMT
Yoshiki Hayashi <yoshiki@xemacs.org> writes:

> 3. Modify Ant to meet our requirements.  Use that jar
>    throughout the project by putting it to somewhere like
>    site-tools.

There are two ways to achieve it:

  1.  Replace xml with supplied extension
  2.  Enhance style rule to allow nested mapper element

I first tried option 1 but I found out that I actulally want
to map .xml.ja to .xml.ja.jis so I went to implement option
2.

Here's a patch.  This one is against Ant 1.4.1.  I'll send a
patch against 1.5 Beta1 to Ant people, probably via
bugzilla.

This patch allows you to put something like

  <mapper type="glob" from="*.xml.ja" to="*.html.ja.jis">

and

  <mapper type="glob" from="*.xml" to = "*.xml.en">

inside style element.

diff -ur jakarta-ant-1.4.1.orig/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java jakarta-ant-1.4.1/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
--- jakarta-ant-1.4.1.orig/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java	Thu Oct
11 22:58:29 2001
+++ jakarta-ant-1.4.1/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java	Wed May 22 18:48:14
2002
@@ -61,9 +61,11 @@
 import java.util.StringTokenizer;
 import java.util.Vector;
 import org.apache.tools.ant.*;
+import org.apache.tools.ant.types.Mapper;
 import org.apache.tools.ant.types.Path;
 import org.apache.tools.ant.types.Reference;
 import org.apache.tools.ant.util.FileUtils;
+import org.apache.tools.ant.util.FileNameMapper;
 
 
 /**
@@ -99,6 +101,7 @@
     private String xslFile = null;
 
     private String targetExtension = ".html";
+    private Mapper mapperElement = null;
     private Vector params = new Vector();
 
     private File inFile = null;
@@ -311,6 +314,18 @@
     }
 
     /**
+     * Defines the FileNameMapper to use (nested mapper element).
+     */
+    public Mapper createMapper() throws BuildException {
+        if (mapperElement != null) {
+            throw new BuildException("Cannot define more than one mapper",
+                                     location);
+        }
+        mapperElement = new Mapper(project);
+        return mapperElement;
+    }
+
+    /**
      * Processes the given input XML file and stores the result
      * in the given resultFile.
      **/
@@ -326,7 +341,15 @@
             long styleSheetLastModified = stylesheet.lastModified();
             inFile = new File(baseDir,xmlFile);
             int dotPos = xmlFile.lastIndexOf('.');
-            if(dotPos>0){
+            if (mapperElement != null) {
+                FileNameMapper mapper = mapperElement.getImplementation();
+                String[] fileNames = mapper.mapFileName(xmlFile);
+                if (fileNames != null) {
+                    outFile = new File(destDir, fileNames[0]);
+                } else {
+                    outFile = new File(destDir, xmlFile + fileExt);
+                }
+            } else if(dotPos>0){
                 outFile = new File(destDir,xmlFile.substring(0,xmlFile.lastIndexOf('.'))+fileExt);
             }else{
                 outFile = new File(destDir,xmlFile+fileExt);



-- 
Yoshiki Hayashi

---------------------------------------------------------------------
To unsubscribe, e-mail: docs-unsubscribe@httpd.apache.org
For additional commands, e-mail: docs-help@httpd.apache.org


Mime
View raw message