git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270645 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -174,9 +174,6 @@ | |||||
| classname="javax.servlet.Servlet" | classname="javax.servlet.Servlet" | ||||
| classpathref="classpath"/> | classpathref="classpath"/> | ||||
| <available property="adaptx.present" | |||||
| classname="org.exolab.adaptx.xslt.XSLTProcessor" | |||||
| classpathref="classpath" /> | |||||
| <available property="xerces.present" | <available property="xerces.present" | ||||
| classname="org.apache.xerces.parsers.SAXParser" | classname="org.apache.xerces.parsers.SAXParser" | ||||
| classpathref="classpath" /> | classpathref="classpath" /> | ||||
| @@ -269,7 +266,6 @@ | |||||
| unless="trax.present" /> | unless="trax.present" /> | ||||
| <exclude name="${optional.package}/XslpLiaison.java" unless="xslp.present" /> | <exclude name="${optional.package}/XslpLiaison.java" unless="xslp.present" /> | ||||
| <exclude name="${optional.package}/XalanLiaison.java" unless="xalan.present" /> | <exclude name="${optional.package}/XalanLiaison.java" unless="xalan.present" /> | ||||
| <exclude name="${optional.package}/AdaptxLiaison.java" unless="adaptx.present" /> | |||||
| <exclude name="${optional.package}/ejb/Ejbc*.java" unless="ejb.ejbc.present" /> | <exclude name="${optional.package}/ejb/Ejbc*.java" unless="ejb.ejbc.present" /> | ||||
| <exclude name="${optional.package}/ejb/DDCreator*.java" unless="ejb.DDCreator.present" /> | <exclude name="${optional.package}/ejb/DDCreator*.java" unless="ejb.DDCreator.present" /> | ||||
| <exclude name="${optional.package}/ejb/WLRun.java" unless="ejb.wls.present" /> | <exclude name="${optional.package}/ejb/WLRun.java" unless="ejb.wls.present" /> | ||||
| @@ -813,8 +809,6 @@ | |||||
| unless="xslp.present"/> | unless="xslp.present"/> | ||||
| <exclude name="org/apache/tools/ant/taskdefs/optional/XalanLiaisonTest.java" | <exclude name="org/apache/tools/ant/taskdefs/optional/XalanLiaisonTest.java" | ||||
| unless="xalan.present"/> | unless="xalan.present"/> | ||||
| <exclude name="org/apache/tools/ant/taskdefs/optional/AdaptxLiaisonTest.java" | |||||
| unless="adaptx.present"/> | |||||
| <exclude name="${optional.package}/TraXLiaisonTest.java" | <exclude name="${optional.package}/TraXLiaisonTest.java" | ||||
| unless="trax.present"/> | unless="trax.present"/> | ||||
| @@ -897,10 +891,6 @@ | |||||
| <exclude name="org/apache/tools/ant/taskdefs/optional/XalanLiaisonTest.java" | <exclude name="org/apache/tools/ant/taskdefs/optional/XalanLiaisonTest.java" | ||||
| unless="xalan.present"/> | unless="xalan.present"/> | ||||
| <exclude name="org/apache/tools/ant/taskdefs/optional/AdaptxLiaisonTest.java" | |||||
| unless="adaptx.present"/> | |||||
| <exclude name="org/apache/tools/ant/taskdefs/optional/AdaptxLiaisonTest.java" | |||||
| unless="xerces.present"/> | |||||
| <exclude name="${optional.package}/perforce/*.java" | <exclude name="${optional.package}/perforce/*.java" | ||||
| unless="jakarta.oro.present" /> | unless="jakarta.oro.present" /> | ||||
| @@ -84,17 +84,17 @@ inclusion/exclusion of files works, and how to write patterns.</p> | |||||
| </tr> | </tr> | ||||
| <tr> | <tr> | ||||
| <td valign="top">processor</td> | <td valign="top">processor</td> | ||||
| <td valign="top">name of the XSLT processor to use. Permissible values are | <td valign="top">name of the XSLT processor to use. Permissible values are | ||||
| "trax" for a TraX compliant processor, "xslp" for the | |||||
| XSL:P processor, "xalan" for the Apache XML Xalan (version 1) | |||||
| processor, "adaptx" for the Exolab Adaptx processor | |||||
| or the name of an arbitrary XSLTLiaison class. Defaults to trax, | |||||
| followed by xalan, then adaptx and then xslp (in that | |||||
| order). The first one found in your class path is the one that | |||||
| is used. | |||||
| <em><strong>DEPRECATED</strong> - XSL:P and Adaptx are | |||||
| deprecated and will be removed in the next version. Use trax or | |||||
| xalan instead.</em>. | |||||
| "trax" for a TraX compliant processor, | |||||
| "xslp" for the XSL:P processor, "xalan" for | |||||
| the Apache XML Xalan (version 1) processor the name of an | |||||
| arbitrary XSLTLiaison class. Defaults to trax, followed by xalan | |||||
| and then xslp (in that order). The first one found in your class | |||||
| path is the one that is used. | |||||
| <em><strong>DEPRECATED</strong> - XSL:P is deprecated and will | |||||
| be removed in the next version. Use trax or xalan instead.</em>. | |||||
| </td> | </td> | ||||
| <td align="center" valign="top">No</td> | <td align="center" valign="top">No</td> | ||||
| </tr> | </tr> | ||||
| @@ -264,12 +264,10 @@ Installing Ant / Optional Tasks</a> section above.</p> | |||||
| <td><b>Available At</b></td> | <td><b>Available At</b></td> | ||||
| </tr> | </tr> | ||||
| <tr> | <tr> | ||||
| <td>An XSL transformer like Xalan, Adaptx or XSL:P</td> | |||||
| <td>An XSL transformer like Xalan or XSL:P</td> | |||||
| <td>style task</td> | <td>style task</td> | ||||
| <td><a href="http://xml.apache.org/xalan-j/index.html" | <td><a href="http://xml.apache.org/xalan-j/index.html" | ||||
| target="_top">http://xml.apache.org/xalan-j/index.html</a> for Xalan.<br> | target="_top">http://xml.apache.org/xalan-j/index.html</a> for Xalan.<br> | ||||
| CVS module adaptx from :pserver:anoncvs@virtuals.intalio.com:/cvs/adaptx | |||||
| with password anoncvs for AdaptX.<br> | |||||
| XSL:P used to live at <a href="http://www.clc-marketing.com/xslp/" | XSL:P used to live at <a href="http://www.clc-marketing.com/xslp/" | ||||
| target="_top">http://www.clc-marketing.com/xslp/</a>, but the link | target="_top">http://www.clc-marketing.com/xslp/</a>, but the link | ||||
| doesn't work any longer and we are not aware of a replacement site.</td> | doesn't work any longer and we are not aware of a replacement site.</td> | ||||
| @@ -1,16 +0,0 @@ | |||||
| /* | |||||
| * Copyright (C) The Apache Software Foundation. All rights reserved. | |||||
| * | |||||
| * This software is published under the terms of the Apache Software License | |||||
| * version 1.1, a copy of which has been included with this distribution in | |||||
| * the LICENSE file. | |||||
| */ | |||||
| package org.apache.tools.ant; | |||||
| /** | |||||
| * Abstract interface to hold constants. | |||||
| * | |||||
| * @author <a href="mailto:donaldp@apache.org">Peter Donald</a> | |||||
| */ | |||||
| interface Constants { | |||||
| } | |||||
| @@ -1,132 +0,0 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 1999 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant; | |||||
| import java.io.File; | |||||
| import java.io.FilenameFilter; | |||||
| /** | |||||
| * Filters filenames to determine whether or not the file is desirable. | |||||
| * | |||||
| * @author Jason Hunter [jhunter@servlets.com] | |||||
| * @author james@x180.com | |||||
| */ | |||||
| public class DesirableFilter implements FilenameFilter { | |||||
| /** | |||||
| * Test the given filename to determine whether or not it's desirable. | |||||
| * This helps tasks filter temp files and files used by CVS. | |||||
| */ | |||||
| public boolean accept(File dir, String name) { | |||||
| // emacs save file | |||||
| if (name.endsWith("~")) { | |||||
| return false; | |||||
| } | |||||
| // emacs autosave file | |||||
| if (name.startsWith("#") && name.endsWith("#")) { | |||||
| return false; | |||||
| } | |||||
| // openwindows text editor does this I think | |||||
| if (name.startsWith("%") && name.endsWith("%")) { | |||||
| return false; | |||||
| } | |||||
| /* CVS stuff -- hopefully there won't be a case with | |||||
| * an all cap file/dir named "CVS" that somebody wants | |||||
| * to keep around... | |||||
| */ | |||||
| if (name.equals("CVS")) { | |||||
| return false; | |||||
| } | |||||
| /* If we are going to ignore CVS might as well ignore | |||||
| * this one as well... | |||||
| */ | |||||
| if (name.equals(".cvsignore")){ | |||||
| return false; | |||||
| } | |||||
| // CVS merge autosaves. | |||||
| if (name.startsWith(".#")) { | |||||
| return false; | |||||
| } | |||||
| // SCCS/CSSC/TeamWare: | |||||
| if (name.equals("SCCS")) { | |||||
| return false; | |||||
| } | |||||
| // Visual Source Save | |||||
| if (name.equals("vssver.scc")) { | |||||
| return false; | |||||
| } | |||||
| // default | |||||
| return true; | |||||
| } | |||||
| } | |||||
| @@ -1,204 +0,0 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant; | |||||
| import java.io.File; | |||||
| import java.io.FilenameFilter; | |||||
| import java.util.StringTokenizer; | |||||
| import java.util.Properties; | |||||
| import java.net.URL; | |||||
| import java.net.MalformedURLException; | |||||
| import java.lang.reflect.Method; | |||||
| /** | |||||
| * This is the Ant command line front end to end. This front end | |||||
| * works out where ant is installed and loads the ant libraries before | |||||
| * starting Ant proper. | |||||
| * | |||||
| * @author <a href="mailto:conor@apache.org">Conor MacNeill</a> | |||||
| */ | |||||
| public class Launcher { | |||||
| private static File determineAntHome11() { | |||||
| String classpath = System.getProperty("java.class.path"); | |||||
| StringTokenizer tokenizer = new StringTokenizer(classpath, System.getProperty("path.separator")); | |||||
| while (tokenizer.hasMoreTokens()) { | |||||
| String path = tokenizer.nextToken(); | |||||
| if (path.endsWith("ant.jar")) { | |||||
| File antJarFile = new File(path); | |||||
| File libDirectory = new File(antJarFile.getParent()); | |||||
| File antHome = new File(libDirectory.getParent()); | |||||
| return antHome; | |||||
| } | |||||
| } | |||||
| return null; | |||||
| } | |||||
| private static File determineAntHome(ClassLoader systemClassLoader) { | |||||
| try { | |||||
| String className = Launcher.class.getName().replace('.', '/') + ".class"; | |||||
| URL classResource = systemClassLoader.getResource(className); | |||||
| String fileComponent = classResource.getFile(); | |||||
| if (classResource.getProtocol().equals("file")) { | |||||
| // Class comes from a directory of class files rather than | |||||
| // from a jar. | |||||
| int classFileIndex = fileComponent.lastIndexOf(className); | |||||
| if (classFileIndex != -1) { | |||||
| fileComponent = fileComponent.substring(0, classFileIndex); | |||||
| } | |||||
| File classFilesDir = new File(fileComponent); | |||||
| File buildDir = new File(classFilesDir.getParent()); | |||||
| File devAntHome = new File(buildDir.getParent()); | |||||
| return devAntHome; | |||||
| } | |||||
| else if (classResource.getProtocol().equals("jar")) { | |||||
| // Class is coming from a jar. The file component of the URL | |||||
| // is actually the URL of the jar file | |||||
| int classSeparatorIndex = fileComponent.lastIndexOf("!"); | |||||
| if (classSeparatorIndex != -1) { | |||||
| fileComponent = fileComponent.substring(0, classSeparatorIndex); | |||||
| } | |||||
| URL antJarURL = new URL(fileComponent); | |||||
| File antJarFile = new File(antJarURL.getFile()); | |||||
| File libDirectory = new File(antJarFile.getParent()); | |||||
| File antHome = new File(libDirectory.getParent()); | |||||
| return antHome; | |||||
| } | |||||
| } | |||||
| catch (MalformedURLException e) { | |||||
| e.printStackTrace(); | |||||
| } | |||||
| return null; | |||||
| } | |||||
| private static void addDirJars(AntClassLoader classLoader, File jarDir) { | |||||
| String[] fileList = jarDir.list(new FilenameFilter() { | |||||
| public boolean accept(File dir, String name) { | |||||
| return name.endsWith(".jar"); | |||||
| } | |||||
| }); | |||||
| if (fileList != null) { | |||||
| for (int i = 0; i < fileList.length; ++i) { | |||||
| File jarFile = new File(jarDir, fileList[i]); | |||||
| classLoader.addPathElement(jarFile.getAbsolutePath()); | |||||
| } | |||||
| } | |||||
| } | |||||
| private static void addToolsJar(AntClassLoader antLoader) { | |||||
| String javaHome = System.getProperty("java.home"); | |||||
| if (javaHome.endsWith("jre")) { | |||||
| javaHome = javaHome.substring(0, javaHome.length() - 4); | |||||
| } | |||||
| System.out.println("Java home is " + javaHome); | |||||
| File toolsJar = new File(javaHome, "lib/tools.jar"); | |||||
| if (!toolsJar.exists()) { | |||||
| System.out.println("Unable to find tools.jar at " + toolsJar.getPath()); | |||||
| } | |||||
| else { | |||||
| antLoader.addPathElement(toolsJar.getAbsolutePath()); | |||||
| } | |||||
| } | |||||
| public static void main(String[] args) { | |||||
| File antHome = null; | |||||
| ClassLoader systemClassLoader = Launcher.class.getClassLoader(); | |||||
| if (systemClassLoader == null) { | |||||
| antHome = determineAntHome11(); | |||||
| } | |||||
| else { | |||||
| antHome = determineAntHome(systemClassLoader); | |||||
| } | |||||
| if (antHome == null) { | |||||
| System.err.println("Unable to determine ANT_HOME"); | |||||
| System.exit(1); | |||||
| } | |||||
| System.out.println("ANT_HOME is " + antHome); | |||||
| // We now create the class loader with which we are going to launch ant | |||||
| AntClassLoader antLoader = new AntClassLoader(systemClassLoader, false); | |||||
| // need to find tools.jar | |||||
| addToolsJar(antLoader); | |||||
| // add everything in the lib directory to this classloader | |||||
| File libDir = new File(antHome, "lib"); | |||||
| addDirJars(antLoader, libDir); | |||||
| File optionalDir = new File(antHome, "lib/optional"); | |||||
| addDirJars(antLoader, optionalDir); | |||||
| Properties launchProperties = new Properties(); | |||||
| launchProperties.put("ant.home", antHome.getAbsolutePath()); | |||||
| try { | |||||
| Class mainClass = antLoader.loadClass("org.apache.tools.ant.Main"); | |||||
| antLoader.initializeClass(mainClass); | |||||
| final Class[] param = {Class.forName("[Ljava.lang.String;"), | |||||
| Properties.class, ClassLoader.class}; | |||||
| final Method startMethod = mainClass.getMethod("start", param); | |||||
| final Object[] argument = {args, launchProperties, systemClassLoader}; | |||||
| startMethod.invoke(null, argument); | |||||
| } | |||||
| catch (Exception e) { | |||||
| System.out.println("Exception running Ant: " + e.getClass().getName() + ": " + e.getMessage()); | |||||
| e.printStackTrace(); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -1,118 +0,0 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 1999 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs; | |||||
| import org.apache.tools.ant.types.PatternSet; | |||||
| import java.util.Vector; | |||||
| import java.util.Enumeration; | |||||
| /** | |||||
| * This task will compile and load a new taskdef all in one step. | |||||
| * At times, this is useful for eliminating ordering dependencies | |||||
| * which otherwise would require multiple executions of Ant. | |||||
| * | |||||
| * @author Sam Ruby <a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a> | |||||
| * | |||||
| * @deprecated use <taskdef> elements nested into <target>s instead | |||||
| */ | |||||
| public class CompileTask extends Javac { | |||||
| protected Vector taskList = new Vector(); | |||||
| /** | |||||
| * add a new task entry on the task list | |||||
| */ | |||||
| public Taskdef createTaskdef() { | |||||
| Taskdef task = new Taskdef(); | |||||
| taskList.addElement(task); | |||||
| return task; | |||||
| } | |||||
| /** | |||||
| * do all the real work in init | |||||
| */ | |||||
| public void init() { | |||||
| log("!! CompileTask is deprecated. !!"); | |||||
| log("Use <taskdef> elements nested into <target>s instead"); | |||||
| // create all the include entries from the task defs | |||||
| for (Enumeration e=taskList.elements(); e.hasMoreElements(); ) { | |||||
| Taskdef task = (Taskdef)e.nextElement(); | |||||
| String source = task.getClassname().replace('.','/') + ".java"; | |||||
| PatternSet.NameEntry include = super.createInclude(); | |||||
| include.setName("**/" + source); | |||||
| } | |||||
| // execute Javac | |||||
| super.init(); | |||||
| super.execute(); | |||||
| // now define all the new tasks | |||||
| for (Enumeration e=taskList.elements(); e.hasMoreElements(); ) { | |||||
| Taskdef task = (Taskdef)e.nextElement(); | |||||
| task.init(); | |||||
| } | |||||
| } | |||||
| /** | |||||
| * have execute do nothing | |||||
| */ | |||||
| public void execute() { | |||||
| } | |||||
| } | |||||
| @@ -1,127 +0,0 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 1999 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| * | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs; | |||||
| import org.apache.tools.ant.Task; | |||||
| import java.io.OutputStream; | |||||
| import java.io.IOException; | |||||
| /** | |||||
| * Serves as an output stream to Javac. This let's us print messages | |||||
| * out to the log and detect whether or not Javac had an error | |||||
| * while compiling. | |||||
| * | |||||
| * @author James Duncan Davidson (duncan@x180.com) | |||||
| * @deprecated use returnvalue of compile to detect compilation failure. | |||||
| */ | |||||
| class JavacOutputStream extends OutputStream { | |||||
| private Task task; | |||||
| private StringBuffer line; | |||||
| private boolean errorFlag = false; | |||||
| /** | |||||
| * Constructs a new JavacOutputStream with the given task | |||||
| * as the output source for messages. | |||||
| */ | |||||
| JavacOutputStream(Task task) { | |||||
| this.task = task; | |||||
| line = new StringBuffer(); | |||||
| } | |||||
| /** | |||||
| * Write a character to the output stream. This method looks | |||||
| * to make sure that there isn't an error being reported and | |||||
| * will flush each line of input out to the project's log stream. | |||||
| */ | |||||
| public void write(int c) throws IOException { | |||||
| char cc = (char)c; | |||||
| if (cc == '\r' || cc == '\n') { | |||||
| // line feed | |||||
| if (line.length() > 0) { | |||||
| processLine(); | |||||
| } | |||||
| } else { | |||||
| line.append(cc); | |||||
| } | |||||
| } | |||||
| /** | |||||
| * Processes a line of input and determines if an error occured. | |||||
| */ | |||||
| private void processLine() { | |||||
| String s = line.toString(); | |||||
| if (s.indexOf("error") > -1) { | |||||
| errorFlag = true; | |||||
| } | |||||
| task.log(s); | |||||
| line = new StringBuffer(); | |||||
| } | |||||
| /** | |||||
| * Returns the error status of the compile. If no errors occured, | |||||
| * this method will return false, else this method will return true. | |||||
| */ | |||||
| boolean getErrorFlag() { | |||||
| return errorFlag; | |||||
| } | |||||
| } | |||||
| @@ -288,11 +288,6 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger { | |||||
| final Class clazz = | final Class clazz = | ||||
| loadClass("org.apache.tools.ant.taskdefs.optional.XalanLiaison"); | loadClass("org.apache.tools.ant.taskdefs.optional.XalanLiaison"); | ||||
| liaison = (XSLTLiaison)clazz.newInstance(); | liaison = (XSLTLiaison)clazz.newInstance(); | ||||
| } else if (proc.equals("adaptx")) { | |||||
| log("DEPRECATED - adaptx processor is deprecated. Use trax or xalan instead."); | |||||
| final Class clazz = | |||||
| loadClass("org.apache.tools.ant.taskdefs.optional.AdaptxLiaison"); | |||||
| liaison = (XSLTLiaison) clazz.newInstance(); | |||||
| } else { | } else { | ||||
| liaison = (XSLTLiaison) loadClass(proc).newInstance(); | liaison = (XSLTLiaison) loadClass(proc).newInstance(); | ||||
| } | } | ||||
| @@ -422,16 +417,11 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger { | |||||
| resolveProcessor("xalan"); | resolveProcessor("xalan"); | ||||
| } catch (Throwable e2) { | } catch (Throwable e2) { | ||||
| try { | try { | ||||
| resolveProcessor("adaptx"); | |||||
| resolveProcessor("xslp"); | |||||
| } catch (Throwable e3) { | } catch (Throwable e3) { | ||||
| try { | |||||
| resolveProcessor("xslp"); | |||||
| } catch (Throwable e4) { | |||||
| e4.printStackTrace(); | |||||
| e3.printStackTrace(); | |||||
| e2.printStackTrace(); | |||||
| throw new BuildException(e1); | |||||
| } | |||||
| e3.printStackTrace(); | |||||
| e2.printStackTrace(); | |||||
| throw new BuildException(e1); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -1,103 +0,0 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs.optional; | |||||
| import java.io.File; | |||||
| import java.io.FileOutputStream; | |||||
| import java.io.OutputStreamWriter; | |||||
| import org.apache.tools.ant.taskdefs.XSLTLiaison; | |||||
| import org.apache.tools.ant.BuildException; | |||||
| import org.exolab.adaptx.xslt.XSLTProcessor; | |||||
| import org.exolab.adaptx.xslt.XSLTReader; | |||||
| import org.exolab.adaptx.xslt.XSLTStylesheet; | |||||
| /** | |||||
| * | |||||
| * @author <a href="mailto:blandin@intalio.com">Arnaud Blandin</a> | |||||
| * @version $Revision$ $Date$ | |||||
| */ | |||||
| public class AdaptxLiaison implements XSLTLiaison { | |||||
| protected XSLTProcessor processor; | |||||
| protected XSLTStylesheet xslSheet; | |||||
| public AdaptxLiaison () { | |||||
| processor = new XSLTProcessor(); | |||||
| } | |||||
| public void setStylesheet(File fileName) throws Exception { | |||||
| XSLTReader xslReader = new XSLTReader(); | |||||
| xslSheet = xslReader.read( fileName.getAbsolutePath() ); | |||||
| }; | |||||
| public void transform(File infile, File outfile) throws Exception { | |||||
| FileOutputStream fos = new FileOutputStream(outfile); | |||||
| OutputStreamWriter out = new OutputStreamWriter(fos,"UTF8"); | |||||
| processor.process(infile.getAbsolutePath(), xslSheet, out); | |||||
| } | |||||
| public void addParam(String name, String expression){ | |||||
| processor.setProperty(name, expression); | |||||
| } | |||||
| public void setOutputtype(String type) throws Exception { | |||||
| if (!type.equals("xml")) { | |||||
| throw new BuildException("Unsupported output type: " + type); | |||||
| } | |||||
| } | |||||
| } //-- AdaptxLiaison | |||||
| @@ -1,332 +0,0 @@ | |||||
| package org.apache.tools.ant.taskdefs.optional; | |||||
| import java.io.File; | |||||
| import java.io.FileOutputStream; | |||||
| import java.io.IOException; | |||||
| import java.io.FileInputStream; | |||||
| import java.io.FileNotFoundException; | |||||
| import java.util.Vector; | |||||
| import java.util.Enumeration; | |||||
| import java.util.Comparator; | |||||
| import java.util.ListIterator; | |||||
| import java.util.StringTokenizer; | |||||
| import java.util.ArrayList; | |||||
| import org.apache.tools.ant.Task; | |||||
| import org.apache.tools.ant.BuildException; | |||||
| /** | |||||
| * Task for creating a manifest file for a jar archiv. | |||||
| * use: | |||||
| * <pre> | |||||
| * <taskdef name="manifest" classname="ManifestFile"/> | |||||
| * <target name="jar_manifest"> | |||||
| * <manifest file="manifest.mf" method="replaceAll"> | |||||
| * <entry value="Manifest-Version: 1_0"/> | |||||
| * </manifest> | |||||
| * </target> | |||||
| * </pre> | |||||
| * | |||||
| *@version 1.0 2001-10-11 | |||||
| *@author Thomas Kerle | |||||
| */ | |||||
| public class ManifestFile extends Task { | |||||
| private final static String newLine = System.getProperty("line.separator"); | |||||
| private final static String keyValueSeparator = ":"; | |||||
| private final static String UPDATE_ = "update"; | |||||
| private final static String REPLACEALL_ = "replaceAll"; | |||||
| private File manifestFile; | |||||
| private Vector entries; | |||||
| private EntryContainer container; | |||||
| private String currentMethod; | |||||
| public ManifestFile() { | |||||
| entries = new Vector(); | |||||
| container = new EntryContainer(); | |||||
| } | |||||
| /** | |||||
| * execute task | |||||
| * @exception BuildException : Failure in building | |||||
| */ | |||||
| public void execute() throws BuildException { | |||||
| checkParameters(); | |||||
| if (isUpdate(currentMethod)) { | |||||
| readFile(); | |||||
| } | |||||
| executeOperation(); | |||||
| writeFile(); | |||||
| } | |||||
| /** | |||||
| * adding entries to a container | |||||
| * @exception BuildException | |||||
| */ | |||||
| private void executeOperation() throws BuildException { | |||||
| Enumeration enum = entries.elements(); | |||||
| while (enum.hasMoreElements()) { | |||||
| Entry entry = (Entry) enum.nextElement(); | |||||
| entry.addTo (container); | |||||
| } | |||||
| } | |||||
| /** | |||||
| * creating entries by Ant | |||||
| * | |||||
| * | |||||
| */ | |||||
| public Entry createEntry() { | |||||
| Entry entry = new Entry(); | |||||
| entries.addElement(entry); | |||||
| return entry; | |||||
| } | |||||
| private boolean isUpdate (String method) { | |||||
| return method.equals(UPDATE_.toUpperCase()); | |||||
| } | |||||
| private boolean isReplaceAll (String method) { | |||||
| return method.equals(REPLACEALL_.toUpperCase()); | |||||
| } | |||||
| /** | |||||
| * Setter for the method attribute (update/replaceAll) | |||||
| * @param method Method to set task | |||||
| */ | |||||
| public void setMethod (String method) { | |||||
| currentMethod = method.toUpperCase(); | |||||
| } | |||||
| /** | |||||
| * Setter for the file attribute | |||||
| * @param filename for the manifest | |||||
| */ | |||||
| public void setFile(File f) { | |||||
| manifestFile = f; | |||||
| } | |||||
| private StringBuffer buildBuffer () { | |||||
| StringBuffer buffer = new StringBuffer (); | |||||
| ListIterator iterator = container.elements(); | |||||
| while (iterator.hasNext()) { | |||||
| Entry entry = (Entry) iterator.next(); | |||||
| String key = (String) entry.getKey(); | |||||
| String value = (String) entry.getValue(); | |||||
| String entry_string = key + keyValueSeparator + value; | |||||
| buffer.append (entry_string + this.newLine); | |||||
| } | |||||
| return buffer; | |||||
| } | |||||
| private void writeFile() throws BuildException { | |||||
| try { | |||||
| manifestFile.delete(); | |||||
| log ("Replacing or creating new manifest file " + manifestFile.getAbsolutePath()); | |||||
| if (manifestFile.createNewFile()) { | |||||
| FileOutputStream fos = new FileOutputStream(manifestFile); | |||||
| StringBuffer buffer = buildBuffer(); | |||||
| int size = buffer.length(); | |||||
| for (int i=0; i<size; i++) { | |||||
| fos.write( (char) buffer.charAt(i)); | |||||
| } | |||||
| fos.flush(); | |||||
| fos.close(); | |||||
| } else { | |||||
| throw new BuildException ("Can't create manifest file"); | |||||
| } | |||||
| } catch (IOException ioe) { | |||||
| throw new BuildException ("An input/ouput error occured" + ioe.toString()); | |||||
| } | |||||
| } | |||||
| private StringTokenizer getLineTokens (StringBuffer buffer) { | |||||
| String manifests = buffer.toString(); | |||||
| StringTokenizer strTokens = new StringTokenizer(manifests, newLine); | |||||
| return strTokens; | |||||
| } | |||||
| private void addLine (String line) { | |||||
| Entry entry = new Entry(); | |||||
| entry.setValue (line); | |||||
| entry.addTo(container); | |||||
| } | |||||
| private void readFile() throws BuildException { | |||||
| if (manifestFile.exists()) { | |||||
| this.log("update existing manifest file " + manifestFile.getAbsolutePath()); | |||||
| if (container != null) { | |||||
| try { | |||||
| FileInputStream fis = new FileInputStream(manifestFile); | |||||
| int c; | |||||
| StringBuffer buffer = new StringBuffer(""); | |||||
| boolean stop = false; | |||||
| while (!stop) { | |||||
| c = fis.read(); | |||||
| if (c == -1){ | |||||
| stop =true; | |||||
| } else { | |||||
| buffer.append( (char) c); | |||||
| } | |||||
| } | |||||
| fis.close(); | |||||
| StringTokenizer lineTokens = getLineTokens (buffer); | |||||
| while (lineTokens.hasMoreElements()) { | |||||
| String currentLine = (String) lineTokens.nextElement(); | |||||
| addLine (currentLine); | |||||
| } | |||||
| } | |||||
| catch (FileNotFoundException fnfe) { | |||||
| throw new BuildException ("File not found exception " + fnfe.toString()); | |||||
| } | |||||
| catch (IOException ioe) { | |||||
| throw new BuildException ("Unknown input/output exception " + ioe.toString()); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| private void checkParameters() throws BuildException { | |||||
| if (!checkParam(manifestFile)) { | |||||
| throw new BuildException ("file token must not be null.", location); | |||||
| } | |||||
| } | |||||
| private boolean checkParam (String param) { | |||||
| return !((param==null) || (param.equals("null"))); | |||||
| } | |||||
| private boolean checkParam (File param) { | |||||
| return !(param == null); | |||||
| } | |||||
| public class EntryContainer { | |||||
| private ArrayList list = null; | |||||
| public EntryContainer () { | |||||
| list = new ArrayList(); | |||||
| } | |||||
| public void set (Entry entry) { | |||||
| if (list.contains(entry)) { | |||||
| int index = list.indexOf(entry); | |||||
| list.remove(index); | |||||
| list.add(index, entry); | |||||
| } else { | |||||
| list.add(entry); | |||||
| } | |||||
| } | |||||
| public ListIterator elements() { | |||||
| ListIterator iterator = list.listIterator(); | |||||
| return iterator; | |||||
| } | |||||
| } | |||||
| public class Entry implements Comparator { | |||||
| //extern format | |||||
| private String value = null; | |||||
| //intern representation | |||||
| private String val = null; | |||||
| private String key = null; | |||||
| public Entry () { | |||||
| } | |||||
| public void setValue (String value) { | |||||
| this.value = new String(value); | |||||
| } | |||||
| public String getKey () { | |||||
| return key; | |||||
| } | |||||
| public String getValue() { | |||||
| return val; | |||||
| } | |||||
| private void checkFormat () throws BuildException { | |||||
| if (value==null) { | |||||
| throw new BuildException ("no argument for value"); | |||||
| } | |||||
| StringTokenizer st = new StringTokenizer(value, ManifestFile.keyValueSeparator); | |||||
| int size = st.countTokens(); | |||||
| if (size < 2 ) { | |||||
| throw new BuildException ("value has not the format of a manifest entry"); | |||||
| } | |||||
| } | |||||
| private void split () { | |||||
| StringTokenizer st = new StringTokenizer(value, ManifestFile.keyValueSeparator); | |||||
| key = (String) st.nextElement(); | |||||
| val = (String) st.nextElement(); | |||||
| } | |||||
| public int compare (Object o1, Object o2) { | |||||
| int result = -1; | |||||
| try { | |||||
| Entry e1 = (Entry) o1; | |||||
| Entry e2 = (Entry) o2; | |||||
| String key_1 = e1.getKey(); | |||||
| String key_2 = e2.getKey(); | |||||
| result = key_1.compareTo(key_2); | |||||
| } catch (Exception e) { | |||||
| } | |||||
| return result; | |||||
| } | |||||
| public boolean equals (Object obj) { | |||||
| Entry ent = new Entry(); | |||||
| boolean result = false; | |||||
| int res = ent.compare (this,(Entry) obj ); | |||||
| if (res==0) { | |||||
| result =true; | |||||
| } | |||||
| return result; | |||||
| } | |||||
| protected void addTo (EntryContainer container) throws BuildException { | |||||
| checkFormat(); | |||||
| split(); | |||||
| container.set(this); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -1,72 +0,0 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Jakarta-Regexp", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| * | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs.optional; | |||||
| import org.apache.tools.ant.taskdefs.XSLTLiaison; | |||||
| /** | |||||
| * Adaptx Liaison testcase | |||||
| * @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a> | |||||
| */ | |||||
| public class AdaptxLiaisonTest extends AbstractXSLTLiaisonTest { | |||||
| public AdaptxLiaisonTest(String name){ | |||||
| super(name); | |||||
| } | |||||
| protected XSLTLiaison createLiaison() throws Exception { | |||||
| return new AdaptxLiaison(); | |||||
| } | |||||
| } | |||||