DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23314>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23314

org.apache.tools.ant.taskdefs.XSTLProcess enhancement

           Summary: org.apache.tools.ant.taskdefs.XSTLProcess enhancement
           Product: Ant
           Version: 1.6Alpha (nightly)
          Platform: All
        OS/Version: Other
            Status: NEW
          Severity: Enhancement
          Priority: Other
         Component: Core tasks
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Provide the path and file name relative to the base directory as a parameter to 
each XSL transform.  We have many applications that need this relative path 
because a derivative of it is output by the transform.  e.g. we generate java 
source and the package in the java source is derived from this relative path.

After inspecting the ant nightly code drop, I think this is a one line change.  
See the one line added in the code sample below 
>From the file org.apache.tools.ant.taskdefs.XSTLProcess ...

For examples sake, I suggested the parameter name "xml-file" which would need 
to be documented as a standard parameter available to all transforms.

I would be happy to effect this change myself if you wish, obviously I would 
need access to the CVS to do so.

I look forward to your response.

Regards
Dave Keeley


    /**
     * Processes the given input XML file and stores the result
     * in the given resultFile.
     *
     * @param baseDir the base directory for resolving files.
     * @param xmlFile the input file
     * @param destDir the destination directory
     * @param stylesheet the stylesheet to use.
     * @exception BuildException if the processing fails.
     */
    private void process(File baseDir, String xmlFile, File destDir,
                         File stylesheet)
        throws BuildException {
        
        String fileExt = targetExtension;
        File   outFile = null;
        File   inFile = null;
        
        try {
            long styleSheetLastModified = stylesheet.lastModified();
            inFile = new File(baseDir, xmlFile);

            if (inFile.isDirectory()) {
                log("Skipping " + inFile + " it is a directory.",
                    Project.MSG_VERBOSE);
                return;
            }
            
            int dotPos = xmlFile.lastIndexOf('.');
            if (dotPos > 0) {
                outFile = new File(destDir, 
                    xmlFile.substring(0, xmlFile.lastIndexOf('.')) + fileExt);
            } else {
                outFile = new File(destDir, xmlFile + fileExt);
            }
            if (force ||
                inFile.lastModified() > outFile.lastModified() ||
                styleSheetLastModified > outFile.lastModified()) {
                ensureDirectoryFor(outFile);
                log("Processing " + inFile + " to " + outFile);
                
                configureLiaison(stylesheet);
                // ONE LINE ENHANCEMENT BELOW...
                liaison.addParam("xml-file", xmlFile);
                liaison.transform(inFile, outFile);
            }
        } catch (Exception ex) {
            // If failed to process document, must delete target document,
            // or it will not attempt to process it the second time
            log("Failed to process " + inFile, Project.MSG_INFO);
            if (outFile != null) {
                outFile.delete();
            }
            
            throw new BuildException(ex);
        }
        
    } //-- processXML

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to