/*
* Created on 29.7.2004
*/
package net.sf.tomp.xquery.ant;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
/**
* @author tomp
*
* Very simple Ant task for executing XQuery from within Ant build files.
* Simply set the queryfile= and/or some other options such as
* File outfile, boolean trace etc.
* Example of an build file using this new (xquery) Ant task:
<project name="XQueryExample" default="main" basedir="."> <property name="xmltools.home" value="c:/devel/xml-tools"/> <taskdef name="xquery" classname="net.sf.tomp.xquery.ant.XQueryTask"> <classpath> <fileset dir="${xmltools.home}/target/lib"> <include name="*.jar"/> </fileset> <pathelement location="${xmltools.home}/target/xml-tools-1.0.jar"/> </classpath> </taskdef> <target name="main"> <xquery queryfile="tour.xq" outfile="outfile.html" verbose="yes"/> </target> </project>It will give:
Buildfile: build.xml main: [xquery] net.sf.saxon.Query.main args=[-o, C:\devel\xml-tools\demo\outfile.html, C:\devel\xml-tools\demo\tour.xq] BUILD SUCCESSFUL Total time: 2 seconds*/ public class XQueryTask extends Task { private boolean verbose = false; /** * @param verbose The verbose to set. */ public void setVerbose(boolean verbose) { this.verbose = verbose; } private File queryfile; private boolean standardtree = false; private boolean explainoptimized = false; private boolean disallowjava = false; private File outfile; private Class uriresolver; private boolean strip = false; private boolean versionandtiming = false; private boolean trace = false; private boolean tracejava = false; private boolean urls = false; private boolean wrap = false; public void execute() throws BuildException { List params = new ArrayList(); if (standardtree) { params.add("-ds"); } if (explainoptimized) { params.add("-e"); } if (disallowjava) { params.add("-noext"); } if (uriresolver != null) { params.add("-r"); params.add(uriresolver.getName()); } if (outfile != null) { params.add("-o"); params.add(outfile.toString()); } if (strip) { params.add("-strip"); } if (versionandtiming) { params.add("-t"); } if (trace) { params.add("-T"); } if (tracejava) { params.add("-TJ"); } if (urls) { params.add("-u"); } if (wrap) { params.add("-wrap"); } if (queryfile != null) { params.add(queryfile.toString()); } if(verbose) { System.out.println("net.sf.saxon.Query.main args="+params); } String[] args = (String[]) params.toArray(new String[0]); try { net.sf.saxon.Query.main(args); } catch (Exception e) { throw new BuildException(e); } } /** * @param disallowjava The disallowjava to set. */ public void setDisallowjava(boolean disallowjava) { this.disallowjava = disallowjava; } /** * @param explainoptimized The explainoptimized to set. */ public void setExplainoptimized(boolean explainoptimized) { this.explainoptimized = explainoptimized; } /** * @param outfile The outfile to set. */ public void setOutfile(File out) { this.outfile = out; } /** * @param queryfile The queryfile to set. */ public void setQueryfile(File query) { this.queryfile = query; } /** * @param standardtree The standardtree to set. */ public void setStandardtree(boolean standardtree) { this.standardtree = standardtree; } /** * @param strip The strip to set. */ public void setStrip(boolean strip) { this.strip = strip; } /** * @param trace The trace to set. */ public void setTrace(boolean trace) { this.trace = trace; } /** * @param tracejava The tracejava to set. */ public void setTracejava(boolean tracejava) { this.tracejava = tracejava; } /** * @param uriresolver The uriresolver to set. */ public void setUriresolver(Class uriresolver) { this.uriresolver = uriresolver; } /** * @param urls The urls to set. */ public void setUrls(boolean urls) { this.urls = urls; } /** * @param versionandtiming The versionandtiming to set. */ public void setVersionandtiming(boolean versionandtiming) { this.versionandtiming = versionandtiming; } /** * @param wrap The wrap to set. */ public void setWrap(boolean wrap) { this.wrap = wrap; } }