diff --git a/proposal/frantic/build.bat b/proposal/frantic/build.bat deleted file mode 100755 index da96ae4cc..000000000 --- a/proposal/frantic/build.bat +++ /dev/null @@ -1,55 +0,0 @@ -@echo off -rem -------------------------------------------------------------------------- -rem build.bat - Build Script for Frantic (lifted from Tomcat...thx guys) -rem -rem Environment Variable Prerequisites: -rem -rem JAVA_HOME Must point at your Java Development Kit [REQUIRED] -rem -rem --------------------------------------------------------------------------- - - -rem ----- Save Environment Variables ------------------------------------------ - -set _CLASSPATH=%CLASSPATH% -set _CLASSES=%CLASSES% - -rem ----- Verify and Set Required Environment Variables ----------------------- - -if not "%JAVA_HOME%" == "" goto gotJavaHome -echo You must set JAVA_HOME to point at your Java Development Kit installation -goto cleanup -:gotJavaHome - -rem ----- Set Up The Runtime Classpath ---------------------------------------- - -if not "%CLASSPATH%" == "" set CLASSPATH=%CLASSPATH%; -set CLASSPATH=%CLASSPATH%;./src - -rem ----- Execute The Requested Build ----------------------------------------- - -if not exist dist mkdir dist -if not exist dist\lib mkdir dist\lib -if not exist dist\lib\classes mkdir dist\lib\classes -if not exist dist\doc mkdir dist\doc -if not exist dist\doc\api mkdir dist\doc\api - -set CLASSES=dist\lib\classes - -%JAVA_HOME%\bin\javac -d %CLASSES% src/org/apache/ant/test/*.java -%JAVA_HOME%\bin\jar cvf dist\lib\frantic.jar -C dist\lib\classes . - -xcopy website\*.html dist\doc /s /y -xcopy website\*.gif dist\doc /s /y - -%JAVA_HOME%\bin\javadoc -protected -sourcepath src -d dist\doc\api -author org.apache.ant org.apache.ant.engine org.apache.ant.tasks org.apache.ant.tasks.build org.apache.ant.tasks.util - -rem ----- Restore Environment Variables --------------------------------------- -:cleanup -set CLASSPATH=%_CLASSPATH% -set CLASSES=%_CLASSES% -set _CLASSPATH= -set _CLASSES= - -:finish - diff --git a/proposal/frantic/src/org/apache/ant/AntException.java b/proposal/frantic/src/org/apache/ant/AntException.java deleted file mode 100644 index 17763b14d..000000000 --- a/proposal/frantic/src/org/apache/ant/AntException.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant; - -public class AntException extends Exception { - - public AntException() { - super(); - } - - public AntException(String message) { - super(message); - } -} diff --git a/proposal/frantic/src/org/apache/ant/engine/AntEngineListener.java b/proposal/frantic/src/org/apache/ant/engine/AntEngineListener.java deleted file mode 100644 index 7839d6469..000000000 --- a/proposal/frantic/src/org/apache/ant/engine/AntEngineListener.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.engine; - - -import java.util.*; -import org.apache.ant.AntException; -import org.apache.ant.tasks.Task; - -public interface AntEngineListener extends EventListener { - - void engineStart(AntEvent e); - void engineFinish(AntEvent e); - - void taskStart(AntEvent e); - void taskExecute(AntEvent e); - void taskFinish(AntEvent e); - void taskMessage(AntEvent e, String message); - void taskException(AntEvent e, AntException exception); - -} diff --git a/proposal/frantic/src/org/apache/ant/engine/AntEvent.java b/proposal/frantic/src/org/apache/ant/engine/AntEvent.java deleted file mode 100644 index f14d1f7a5..000000000 --- a/proposal/frantic/src/org/apache/ant/engine/AntEvent.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.engine; - - -import java.util.EventObject; -import org.apache.ant.tasks.Task; - -public class AntEvent extends EventObject { - - Task task; - - public AntEvent(Object source) { - this(source, null); - } - - public AntEvent(Object source, Task task) { - super(source); - this.task = task; - } - - public Task getTask() { - return task; - } - - public void setTask(Task task) { - this.task = task; - } -} diff --git a/proposal/frantic/src/org/apache/ant/engine/DefaultEngineListener.java b/proposal/frantic/src/org/apache/ant/engine/DefaultEngineListener.java deleted file mode 100644 index 6ccda435b..000000000 --- a/proposal/frantic/src/org/apache/ant/engine/DefaultEngineListener.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.engine; - - -import java.io.*; -import java.text.*; -import java.util.*; -import org.apache.ant.AntException; -import org.apache.ant.tasks.Task; - -public class DefaultEngineListener implements AntEngineListener { - - protected PrintStream outputStream; - protected long startTime; - - protected StringBuffer sb = new StringBuffer(); - protected int indentSpaces = 4; - protected boolean indent = true; - protected int curIndent = 0; - - protected SimpleDateFormat timestamp = new SimpleDateFormat("HH:mm:ss:SSS"); - - public DefaultEngineListener() { - this(System.out); - } - - public DefaultEngineListener(PrintStream outputStream) { - this.outputStream = outputStream; - } - - public void setIndentSpaces(int spaces) { - this.indentSpaces = spaces; - } - - public int getIndentSpaces() { - return indentSpaces; - } - - public void setIndent(boolean on) { - this.indent = on; - } - - public boolean isIndent() { - return indent; - } - - protected String padLeft(String s, int length) { - sb.setLength(0); - sb.append(s); - while (sb.length() < length) { - sb.insert(0, ' '); - } - return sb.toString(); - } - - protected void output(String message) { - if (!indent) { - outputStream.println(message); - return; - } - - // shouldn't happen, but let's be on the safe side - if (curIndent < 0) { - curIndent = 0; - } - - outputStream.println( - padLeft(message, message.length() + (indentSpaces * curIndent))); - } - - //////////////////////////////////////////////////////////////////////////// - // AntEngineListener Implementation // - //////////////////////////////////////////////////////////////////////////// - - public void engineStart(AntEvent e) { - Date now = new Date(); - output("Engine Started: " + timestamp.format(now)); - startTime = now.getTime(); - } - - public void engineFinish(AntEvent e) { - Date now = new Date(); - long elapsed = System.currentTimeMillis() - startTime; - - output("Engine Finished: " + timestamp.format(now)); - output("Elapsed Time: " + (elapsed / 1000F) + " seconds"); - } - - public void taskStart(AntEvent e) { - output("Task Started: " + e.getTask().getFullyQualifiedName()); - curIndent++; - } - - public void taskExecute(AntEvent e){ - output("Task Execution: " + e.getTask().getFullyQualifiedName()); - } - - public void taskFinish(AntEvent e){ - curIndent--; - output("Task Finished: " + e.getTask().getFullyQualifiedName()); - } - - public void taskMessage(AntEvent e, String message){ - curIndent++; - output("Task Message: " + e.getTask().getFullyQualifiedName() + ": " + - message); - curIndent--; - } - - public void taskException(AntEvent e, AntException exception){ - output("Task Exception: " + e.getTask().getFullyQualifiedName() + ": " + - exception.getMessage()); - } -} diff --git a/proposal/frantic/src/org/apache/ant/engine/HierarchicalHashtable.java b/proposal/frantic/src/org/apache/ant/engine/HierarchicalHashtable.java deleted file mode 100644 index 5876af3b5..000000000 --- a/proposal/frantic/src/org/apache/ant/engine/HierarchicalHashtable.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.apache.ant.engine; - -import java.util.*; - -public class HierarchicalHashtable extends Hashtable { - - private HierarchicalHashtable parent; - - public HierarchicalHashtable() { - this(null); - } - - public HierarchicalHashtable(HierarchicalHashtable parent) { - super(); - this.parent = parent; - } - - public HierarchicalHashtable getParent() { - return parent; - } - - public void setParent(HierarchicalHashtable parent) { - this.parent = parent; - } - - public List getPropertyNames() { - ArrayList list = new ArrayList(); - - Enumeration e = keys(); - while (e.hasMoreElements()) { - list.add(e.nextElement()); - } - - if (getParent() != null) { - list.addAll(getParent().getPropertyNames()); - } - - return list; - } - - public Object getPropertyValue(String name) { - Object value = get(name); - if (value == null && getParent() != null) { - return getParent().getPropertyValue(name); - } - return value; - } - - public void setPropertyValue(String name, Object value) { - put(name, value); - } - - public void removePropertyValue(String name) { - Object value = get(name); - if (value == null && getParent() != null) { - getParent().removePropertyValue(name); - } - if (value != null) { - remove(name); - } - } -} diff --git a/proposal/frantic/src/org/apache/ant/engine/TaskEngine.java b/proposal/frantic/src/org/apache/ant/engine/TaskEngine.java deleted file mode 100644 index 6e35fceb2..000000000 --- a/proposal/frantic/src/org/apache/ant/engine/TaskEngine.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.engine; - - -import java.util.*; -import org.apache.ant.AntException; -import org.apache.ant.tasks.Task; - -/** - * The TaskEngine interface defines the methods that a TaskEngine are required - * to implement. This interface is also passed to each Task in order for them to - * get access to some utility functions like inserting a new Task during a run, - * or forcing the execution path of Tasks to be modified. - */ -public interface TaskEngine { - - void addAntEngineListener(AntEngineListener listener); - - void removeAntEngineListener(AntEngineListener listener); - - void execute(Task task) throws AntException; - - void execute(Task root, Task task) throws AntException; - - void message(Task task, String message); - - Task getNextExecuteTask(); - - /** - * Returns a list of all property names that the current task stack is aware - * of. This is a recursive list of all property names. - */ - List getPropertyNames(); - - /** - * May be called to obtain property values that have been defined. Property - * values are maintained in a hierarchical manner as each task is executed. - * When a property is requested, if the current execution level does not - * contain the property, the execution parent is then queried. This - * continues until there is no where else to go! - *

- * Maybe this should be a Hashtable implementation and be able to return - * Object? Is that a little overkill considering these values will usually - * be Strings? Perhaps someone will have a farfetched idea of storing a - * Task in a property? - */ - Object getPropertyValue(String name); - - /** - * Adds the name-value pair to this execution stack property list. If the - * property is declared in parent tasks, I don't really see a reason for not - * adding it again to this execution list. This would achieve a nice scoped - * parameter list that is dictated by nesting levels. - *

- * This is against the current Ant (1.2) specification, but I'm not sure why - * that restriction was there. It would be simple to implement here if it - * again required. - */ - void setPropertyValue(String name, Object value); - - /** - * Removes the given property from the property list. I haven't thought too - * much about the rules behind this method. My current thinking is that the - * property is removed no matter what level of the execution stack the - * property was defined in. I think this should be good in most cases. If it - * ever surfaces that the property should just be unavailable for this stack - * level (and other's below it), then the implementation can be modified to - * keep a list of these "unavailable" properties. - */ - void removePropertyValue(String name); - -} diff --git a/proposal/frantic/src/org/apache/ant/engine/TaskEngineImpl.java b/proposal/frantic/src/org/apache/ant/engine/TaskEngineImpl.java deleted file mode 100644 index d1f574953..000000000 --- a/proposal/frantic/src/org/apache/ant/engine/TaskEngineImpl.java +++ /dev/null @@ -1,397 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.engine; - - -import java.util.*; -import org.apache.ant.AntException; -import org.apache.ant.tasks.Task; - -/** - * The engine that actually invokes each Task. In addition to specifying a Task - * to execute, it may be desirable to specify the root Task that will define - * an execution cycle. - */ -public class TaskEngineImpl implements TaskEngine { - - /** - * Analagous to a call stack, but with Tasks. - */ - protected Stack taskStack = new Stack();; - - /** - * As the task stack is built, a mirror representation will also be - * contructed that will hold property values. - */ - protected Stack propertyStack = new Stack(); - - /** - * Keeps track of AntEngineListeners. We don't have to use Vector because we - * take care of synchronization on the add, remove, and iteration operations. - */ - protected ArrayList listenerList = new ArrayList(); - - private int engineLevel = 0; - - /** - * Constructor is private so it cannot be instantiated. Users of this class - * will get an instance by using the getTaskEngine() method. This will allow - * us to have a simple Factory implementation. We may use a Singleton - * implementation, or a collection pool. The choice is up to us. - */ - private TaskEngineImpl() { - super(); - } - - /** - * Return a usable instance of a TaskEngine to the requestor. Nothing - * sophisticated yet, simple doles out a new instance each time. - */ - public static TaskEngine getTaskEngine() { - return new TaskEngineImpl(); - } - - /** - * Walk the list of Tasks backwards until the root is reached. Keep track of - * the Tasks along the way in a Stack. Return null if the root Task is not a - * parent of the provided Task. - */ - protected Stack getTaskStack(Task root, Task task) { - Stack stack = new Stack(); - while (task != null) { - stack.push(task); - if (task == root) { - return stack; - } - task = task.getParent(); - } - return null; - } - - /** - * Returns the next Task to be executed from the taskStack. The task is not - * removed from the Stack. - */ - public Task getNextExecuteTask() { - try { - return (Task)taskStack.peek(); - } catch (EmptyStackException esx) { - return null; - } - } - - /** - * If no root is specified, we will assume that the user wants to execute - * the Task with no root. This is accomplished by using the Task parameter - * as its own root. - */ - public void execute(Task task) throws AntException { - execute(task, task); - } - - /** - * This is the workhorse, however it has been made to be very simple. Given - * the ability to specify a path between root and the target Task, we build - * a trail of Tasks to connect the two. Next we execute each Task on the way - * between the two Tasks. Once we arrive at the Task to execute, we execute - * all of its chlidren. - */ - public void execute(Task root, Task task) throws AntException { - fireEngineStart(); - try { - taskStack = getTaskStack(root, task);; - if (taskStack == null) { - throw new AntException( - "The execution root Task is not an ancestor of the execution Task."); - } - - // Pop thru the stack and execute each Task we come across. - while (!taskStack.isEmpty()) { - executeTask(taskStack); - } - } finally { - fireEngineFinish(); - } - } - - /** - * A recursive routine that allows all Tasks in the stack to be executed. At - * the same time, the stack may grow to include new Tasks. - */ - protected void executeTask(Stack taskStack) throws AntException { - Task task = (Task)taskStack.pop(); - - fireTaskStart(task); - try { - // Add a new property holder for this task to the property stack. Note - // that the parent of the new holder is the current stack head. - if (task.isPropertyContainer()) { - if (propertyStack.isEmpty()) { - propertyStack.push(new HierarchicalHashtable()); - } else { - propertyStack.push(new HierarchicalHashtable( - (HierarchicalHashtable)propertyStack.peek())); - } - - } - - // Allow Task to do whatever it may need to do before touching its - // children. - task.init(this); - - // Iterate the Task's children and execute any priority Tasks. - Task[] tasks = task.getChildren(); - for (int i = 0, c = tasks.length; i < c; i++) { - if (tasks[i].getExecutionMode() == Task.EXECUTION_MODE_PRIORITY) { - taskStack.push(tasks[i]); - executeTask(taskStack); - } - } - - // Allow the Task to validate. - task.validate(); - - // Finally, execute the Task. - fireTaskExecute(task); - task.execute(this); - - // We can discard the no londer needed property holder. - if (task.isPropertyContainer()) { - propertyStack.pop(); - } - - } catch (AntException ax) { - fireTaskException(task, ax); - } finally { - fireTaskFinish(task); - } - } - - /** - * Causes an AntEvent to be generated and fired to all listeners. - */ - public void message(Task task, String message) { - fireTaskMessage(task, message); - } - - //////////////////////////////////////////////////////////////////////////// - // Listener Support // - //////////////////////////////////////////////////////////////////////////// - - public synchronized void addAntEngineListener(AntEngineListener listener) { - if (!listenerList.contains(listener)) { - listenerList.add(listener); - } - } - - public synchronized void removeAntEngineListener(AntEngineListener listener) { - if (listenerList.contains(listener)) { - listenerList.remove(listener); - } - } - - protected synchronized void fireEngineStart() { - if (engineLevel++ > 0) return; - AntEvent e = new AntEvent(this); - for (int i = 0; i < listenerList.size(); i++) { - ((AntEngineListener)listenerList.get(i)).engineStart(e); - } - - } - - protected synchronized void fireEngineFinish() { - if (--engineLevel > 0) return; - AntEvent e = new AntEvent(this); - for (int i = 0; i < listenerList.size(); i++) { - ((AntEngineListener)listenerList.get(i)).engineFinish(e); - } - - } - - protected synchronized void fireTaskStart(Task task) { - AntEvent e = new AntEvent(this, task); - for (int i = 0; i < listenerList.size(); i++) { - ((AntEngineListener)listenerList.get(i)).taskStart(e); - } - - } - - protected synchronized void fireTaskExecute(Task task) { - AntEvent e = new AntEvent(this, task); - for (int i = 0; i < listenerList.size(); i++) { - ((AntEngineListener)listenerList.get(i)).taskExecute(e); - } - - } - - protected synchronized void fireTaskFinish(Task task) { - AntEvent e = new AntEvent(this, task); - for (int i = 0; i < listenerList.size(); i++) { - ((AntEngineListener)listenerList.get(i)).taskFinish(e); - } - - } - - protected synchronized void fireTaskMessage(Task task, String message) { - AntEvent e = new AntEvent(this, task); - for (int i = 0; i < listenerList.size(); i++) { - ((AntEngineListener)listenerList.get(i)).taskMessage(e, message); - } - - } - - protected synchronized void fireTaskException(Task task, AntException exception) { - AntEvent e = new AntEvent(this, task); - for (int i = 0; i < listenerList.size(); i++) { - ((AntEngineListener)listenerList.get(i)).taskException(e, exception); - } - - } - - //////////////////////////////////////////////////////////////////////////// - // Property Support Methods // - //////////////////////////////////////////////////////////////////////////// - - /** - * This is the routine that will perform key substitution. Phrase will come - * in as "src/${someparam}" and be converted to the appropriate "normalized" - * string. I suppose while I'm doing this we should support phrases with - * nested keys, such as "src/${build${token}}". Also, we should properly - * handle cases where ${someparam} will evaluate to ${anotherparam}. - *

- * One thing that will be different from the Ant 1.2 mechanismoccurs when a - * parameter value is not found. The substitution routine inserts it back in - * the phrase unchanged. I have opted to insert a zero-length string - * instead. - *

- * I should add a switch to the engine that will give the user the ability - * to throw an exception if a key is not found. Pretty easy, except this - * method is a strange place for an AntException to be thrown. Perhaps I - * should use a RuntimeException instead... - *

- * A brief rundown on the logic here: - * I check for the first instances of a key prefix. - * If none found we return the phrase as is. - * If key prefix is found get location of next key prefix and suffix. - * If suffix is found first, we have found a key. - * If there is no suffix, we return the phrase. - */ - static final String KEY_PREFIX = "${"; - static final String KEY_SUFFIX = "}"; - protected String substitute(String phrase) { - StringBuffer sb = new StringBuffer(phrase); - int startPoint = 0; - while (startPoint >= 0 && startPoint < phrase.length()) { - int pre1 = startPoint + phrase.substring(startPoint).indexOf(KEY_PREFIX); - if (pre1 < 0) break; - int suf1 = phrase.substring(pre1 + KEY_PREFIX.length()).indexOf(KEY_SUFFIX); - if (suf1 < 0) break; - suf1 = suf1 + pre1 + KEY_PREFIX.length(); - int pre2 = phrase.substring(pre1 + KEY_PREFIX.length()).indexOf(KEY_PREFIX); - if (pre2 < 0) { - pre2 = phrase.length() + 1; - } else { - pre2 = pre2 + pre1 + KEY_PREFIX.length(); - } - - if (suf1 < pre2) { - // we have found a token - String key = sb.substring(pre1 + KEY_PREFIX.length(), suf1); - sb.delete(pre1, suf1 + 1); - Object value = getPropertyValueNoSubstitution(key); - if (value != null) { - sb.insert(pre1, value.toString()); - } - return substitute(sb.toString()); - } - startPoint = pre2; - } - return sb.toString(); - } - - public List getPropertyNames() { - if (propertyStack.isEmpty()) return new ArrayList(); - HierarchicalHashtable hash = (HierarchicalHashtable)propertyStack.peek(); - return hash.getPropertyNames(); - } - - public Object getPropertyValue(String name) { - if (propertyStack.isEmpty()) return null; - HierarchicalHashtable hash = (HierarchicalHashtable)propertyStack.peek(); - Object result = hash.getPropertyValue(name); - if (result instanceof String) { - return substitute((String)result); - } else { - return result; - } - } - - protected Object getPropertyValueNoSubstitution(String name) { - if (propertyStack.isEmpty()) return null; - HierarchicalHashtable hash = (HierarchicalHashtable)propertyStack.peek(); - return hash.getPropertyValue(name); - } - - public void setPropertyValue(String name, Object value) { - if (propertyStack.isEmpty()) return; - HierarchicalHashtable hash = (HierarchicalHashtable)propertyStack.peek(); - hash.setPropertyValue(name, value); - } - - public void removePropertyValue(String name) { - if (propertyStack.isEmpty()) return; - HierarchicalHashtable hash = (HierarchicalHashtable)propertyStack.peek(); - hash.remove(name); - } -} diff --git a/proposal/frantic/src/org/apache/ant/tasks/BaseTask.java b/proposal/frantic/src/org/apache/ant/tasks/BaseTask.java deleted file mode 100644 index 3cf4a2af7..000000000 --- a/proposal/frantic/src/org/apache/ant/tasks/BaseTask.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.tasks; - - - -import java.util.*; -import org.apache.ant.AntException; -import org.apache.ant.engine.TaskEngine; -import org.apache.ant.tasks.Task; - -public abstract class BaseTask implements Task { - - protected Task parent; - protected ArrayList children = new ArrayList(); - protected String taskName; - protected Properties properties = new Properties(); - - public BaseTask() { - super(); - } - - public void init(TaskEngine engine) throws AntException { - } - - public void execute(TaskEngine engine) throws AntException { - } - -// abstract public String getTaskTag(); - - public void validate() throws AntException {} - - public String getFullyQualifiedName() { - if (getParent() == null) return Task.NAME_SEPARATOR + taskName; - return getParent().getFullyQualifiedName() + Task.NAME_SEPARATOR + taskName; - } - - public int hashCode() { - return getFullyQualifiedName().hashCode(); - } - - public String getTaskName() { - return taskName; - } - - public void setTaskName(String taskName) { - this.taskName = taskName; - } - - public int getExecutionMode() { - return Task.EXECUTION_MODE_PRIORITY; - } - - public String getAttributeValue(String name) { - /**@todo: Implement this org.apache.ant.Task method*/ - throw new java.lang.UnsupportedOperationException("Method getAttributeValue() not yet implemented."); - } - - public Task getParent() { - return parent; - } - - /** - * We have to trust the developers to not screw up the hierarchy by changing - * the parent of a Task when it is a child of another. - */ - public void setParent(Task parent) { - this.parent = parent; - } - - public Task[] getChildren() { - return (Task[])children.toArray(new Task[children.size()]); - } - - public void addChild(Task task) { - children.add(task); - task.setParent(this); - } - - public void removeChild(Task task) { - children.remove(task); - } - - public Task getRootTask() { - if (getParent() != null) { - return getParent().getRootTask(); - } - return this; - } - - protected Task getTaskByName(String taskName) { - Task[] tasks = getChildren(); - for (int i = 0, c = tasks.length; i < c; i++) { - if (tasks[i].getTaskName().equals(taskName)) { - return tasks[i]; - } - } - return null; - } - - public Task getTask(String taskPath) { - taskPath = taskPath.trim(); - int slashPos = taskPath.indexOf("/"); - - // starts with '/' - if (slashPos == 0) { - return getRootTask().getTask(taskPath.substring(slashPos + 1)); - } else - - // starts with '../' - if (taskPath.startsWith("../") || taskPath.equals("..")) { - return getParent().getTask(taskPath.substring(3)); - } else - - // starts with './' - if (taskPath.startsWith("./") || taskPath.equals(".")) { - return getTask(taskPath.substring(2)); - } else - - // starts with 'some_level/' - if (slashPos > 0) { - String levelName = taskPath.substring(0, slashPos); - return getTaskByName(levelName).getTask(taskPath.substring(slashPos + 1)); - } - - // there are no more directories; what remains is the name of the task - if (slashPos < 0) { - if (taskPath.length() == 0) return this; - return getTaskByName(taskPath); - } - return null; - } - - public boolean isPropertyContainer() { - return false; - } - -} diff --git a/proposal/frantic/src/org/apache/ant/tasks/Task.java b/proposal/frantic/src/org/apache/ant/tasks/Task.java deleted file mode 100644 index 4c96c7a47..000000000 --- a/proposal/frantic/src/org/apache/ant/tasks/Task.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.tasks; - - -import java.util.*; -import org.apache.ant.AntException; -import org.apache.ant.engine.TaskEngine; - -/** - * Task is the core interface for all structures that will be processed by the - * TaskEngine. - */ -public interface Task { - - public static final int EXECUTION_MODE_IMPLICIT = 0; - public static final int EXECUTION_MODE_EXPLICIT = 1; - public static final int EXECUTION_MODE_PRIORITY = 2; - - public static final char NAME_SEPARATOR = '/'; - - /** - * Causes the existing Task implementation to execute. - */ - void execute(TaskEngine engine) throws AntException; - - /** - * Called when the Task first gets "noticed" by the TaskEngine. - */ - void init(TaskEngine engine) throws AntException; - - /** - * Each Task should have the ability to validate its state. This would be - * invoked by the TaskEngine prior to commencing an execution cycle. - */ - void validate() throws AntException; - - /** - * Just a simple name used to identify a Task. This name is only sufficient - * for simple debugging and GUI output. It does not uniquely identify a - * Task. - * - * @see #getFullyQualifiedName - */ - String getTaskName(); - - /** - * Although this method seems to tie the concept of XML "tags", it is not - * necessarily so. The tag name will serve as a general description of the - * type of tag represented by this class instance. It is primarily used by - * Tasks with sub-Tasks that are not assigned to a specific class - * implementation. - * - * @see org.apache.ant.tasks.UnknownTask - */ -// String getTaskTag(); - - /** - * A mechanism for locating a task relative to the current task. This - * navigation sceme will mimic a typical OS system. '..' will move back - * a level in the Task tree. If taskPath begins with '/' then the root node - * will be used as a starting point. - *

- * Returns null of no task is found at this location. - */ - Task getTask(String taskPath); - - /** - * Proceed backwards through the nodes until we come across the first Task - * in the tree. This is the root Task. - */ - Task getRootTask(); - - /** - * The "fully-qualified" name of a Task is the Task's name, prepended by its - * parent's name, prepended by its parent's name, etc. This method may be - * used by the Task's hashCode() method to calculate a hash that will - * uniquely identify a Task. - */ - String getFullyQualifiedName(); - - /** - * Determines whether this Task is executed whenever its parent is executed, - * or if its execution must be specifically requested. - *

- *
EXECUTION_MODE_EXPLICIT
- *
Requires interaction by the TaskEngine in order to execute.
- *
EXECUTION_MODE_IMPLICIT
- *
This Task is automatically executed when its parent is - * executed.
- *
EXECUTION_MODE_PRIORITY
- *
These Tasks are executed prior to its parent's execution
- *

- * The default mode should probably be EXECUTION_MODE_IMPLICIT. In the - * build domain of Ant, every Task below a Task will normally be executed. - * The major exception to this is the Target. When a Project Task is - * executed, all Target Tasks do not automatically fire, however all - * Property Tasks do execute. - */ - int getExecutionMode(); - - /** - * Determines whether a Task is suitable for holding property values. - */ - boolean isPropertyContainer(); - - /** - * Each Task will hold its attributes in some manner. This method will allow - * the Task implementation to return the value of its attribute. - */ - String getAttributeValue(String name); - - /** - * Returns this Task's parent Task. If this Task is the root Task, then this - * method will return null. - */ - Task getParent(); - - /** - * Sets the Task's parent. - */ - void setParent(Task parent); - - /** - * Returns the an array of Task objects that are subordinate to this Task. - */ - Task[] getChildren(); -} diff --git a/proposal/frantic/src/org/apache/ant/tasks/build/Project.java b/proposal/frantic/src/org/apache/ant/tasks/build/Project.java deleted file mode 100644 index bb2890422..000000000 --- a/proposal/frantic/src/org/apache/ant/tasks/build/Project.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.tasks.build; - - -import org.apache.ant.AntException; -import org.apache.ant.engine.TaskEngine; -import org.apache.ant.tasks.BaseTask; -import org.apache.ant.tasks.Task; - -public class Project extends BaseTask { - - private String def; - private String basedir; - - public Project() { - super(); - } - - public String getDefault() { - return def; - } - - public void setDefault(String newDefault) { - def = newDefault; - } - - public void setBasedir(String newBasedir) { - basedir = newBasedir; - } - - public String getBasedir() { - return basedir; - } - - //////////////////////////////////////////////////////////////////////////// - // BaseTask Implementation // - //////////////////////////////////////////////////////////////////////////// - - public void init(TaskEngine engine) throws AntException { - } - - /** - * Here is where we check and see if there are any Targets specified. We do - * this by peeking into the known taskStack and checking to see if a Target - * is next to be executed. If not, we add our default Target to the list. - */ - public void execute(TaskEngine engine) throws AntException { - // see if it is necessary to invoke the default task - Task task = engine.getNextExecuteTask(); - if (task == null && getDefault() != null) { - Task defaultTask = getTask(getDefault()); - if (defaultTask != null) { - engine.execute(defaultTask); - } - } - } - - public boolean isPropertyContainer() { - return true; - } -} diff --git a/proposal/frantic/src/org/apache/ant/tasks/build/Target.java b/proposal/frantic/src/org/apache/ant/tasks/build/Target.java deleted file mode 100644 index c9e3dc6c9..000000000 --- a/proposal/frantic/src/org/apache/ant/tasks/build/Target.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.tasks.build; - - - -import org.apache.ant.AntException; -import org.apache.ant.engine.TaskEngine; -import org.apache.ant.tasks.BaseTask; -import org.apache.ant.tasks.Task; - -public class Target extends BaseTask { - - private String depends; - private String ifCond; - private String unlessCond; - - public Target() { - super(); - } - - public String getIf() { - return ifCond; - } - - public void setIf(String condition) { - this.ifCond = condition; - } - - public String getUnless() { - return unlessCond; - } - - public void setUnless(String condition) { - this.unlessCond = condition; - } - - public void setDepends(String newDepends) { - this.depends = newDepends; - } - - public String getDepends() { - return depends; - } - - //////////////////////////////////////////////////////////////////////////// - // BaseTask Implementation // - //////////////////////////////////////////////////////////////////////////// - - public int getExecutionMode() { - return Task.EXECUTION_MODE_EXPLICIT; - } - - /** - * Note that dependencies are executed before the task at hand. - */ - public void execute(TaskEngine engine) throws AntException { - if (getDepends() != null && getDepends().length() > 0) { - Task dependencyTask = getTask(getDepends()); - if (dependencyTask == null) { - throw new AntException( - "Cannot find dependency, " + getDepends() + " from Task."); - } - - engine.execute(dependencyTask); - } - } - - public boolean isPropertyContainer() { - return true; - } -} diff --git a/proposal/frantic/src/org/apache/ant/tasks/util/Property.java b/proposal/frantic/src/org/apache/ant/tasks/util/Property.java deleted file mode 100644 index 559c83798..000000000 --- a/proposal/frantic/src/org/apache/ant/tasks/util/Property.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.tasks.util; - - - -import org.apache.ant.AntException; -import org.apache.ant.engine.TaskEngine; -import org.apache.ant.tasks.BaseTask; - -public class Property extends BaseTask { - - private String value; - private String name; - - public Property() { - super(); - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public void setName(String name) { - this.name = name; - } - - public String getName() { - return name; - } - - //////////////////////////////////////////////////////////////////////////// - // BaseTask Implementation // - //////////////////////////////////////////////////////////////////////////// - - public void execute(TaskEngine engine) throws AntException { - if (getParent() == null) { - throw new AntException("A Property Task must have a parent Task."); - } - engine.setPropertyValue(getName(), getValue()); - } -} diff --git a/proposal/frantic/src/org/apache/ant/tasks/util/PropertyDump.java b/proposal/frantic/src/org/apache/ant/tasks/util/PropertyDump.java deleted file mode 100644 index 66c3dd7d3..000000000 --- a/proposal/frantic/src/org/apache/ant/tasks/util/PropertyDump.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.tasks.util; - - - -import java.util.*; -import org.apache.ant.AntException; -import org.apache.ant.engine.TaskEngine; -import org.apache.ant.tasks.BaseTask; - -public class PropertyDump extends BaseTask { - - public PropertyDump() { - super(); - } - - //////////////////////////////////////////////////////////////////////////// - // BaseTask Implementation // - //////////////////////////////////////////////////////////////////////////// - - public void execute(TaskEngine engine) throws AntException { - List propNames = engine.getPropertyNames(); - for (Iterator i = propNames.iterator(); i.hasNext();) { - String name = (String)i.next(); - String value = engine.getPropertyValue(name).toString(); - engine.message(this, name + " = " + value); - } - } -} diff --git a/proposal/frantic/src/org/apache/ant/test/SimpleTest.java b/proposal/frantic/src/org/apache/ant/test/SimpleTest.java deleted file mode 100644 index 3abe5c440..000000000 --- a/proposal/frantic/src/org/apache/ant/test/SimpleTest.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * Copyright (c) 1999, 2000 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", "Tomcat", 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 - * . - */ -package org.apache.ant.test; - - - - -import org.apache.ant.AntException; -import org.apache.ant.engine.DefaultEngineListener; -import org.apache.ant.engine.TaskEngine; -import org.apache.ant.engine.TaskEngineImpl; -import org.apache.ant.tasks.Task; -import org.apache.ant.tasks.build.Project; -import org.apache.ant.tasks.build.Target; -import org.apache.ant.tasks.util.Property; -import org.apache.ant.tasks.util.PropertyDump; - -public class SimpleTest { - - Task target; - - public SimpleTest() { - try { - Task rootTask = buildProject(); - TaskEngine engine = TaskEngineImpl.getTaskEngine(); - engine.addAntEngineListener(new DefaultEngineListener()); - engine.execute(rootTask, target); - } catch (AntException ax) { - ax.printStackTrace(System.err); - } - } - - protected Task buildProject() { - Project project = new Project(); - project.setTaskName("project"); - project.setBasedir("somedir"); - project.setDefault("build"); - - Property property1 = new Property(); - property1.setTaskName("prop1"); - property1.setName("basedir"); - property1.setValue("/org/apache"); - project.addChild(property1); - - Property property2 = new Property(); - property2.setTaskName("prop2"); - property2.setName("dir1"); - property2.setValue("${basedir}/ant"); - project.addChild(property2); - - Target target1 = new Target(); - target1.setTaskName("clean"); - project.addChild(target1); - - PropertyDump pd = new PropertyDump(); - pd.setTaskName("dump"); - target1.addChild(pd); - - Target target2 = new Target(); - target2.setTaskName("prepare"); - target2.setDepends("../clean"); - project.addChild(target2); - - Property property3 = new Property(); - property3.setTaskName("prop3"); - property3.setName("dir2"); - property3.setValue("${dir1}/tasks"); - target2.addChild(property3); - - Target target3 = new Target(); - target3.setTaskName("build"); - target3.setDepends("../prepare"); - project.addChild(target3); - - Property property4 = new Property(); - property4.setTaskName("prop4"); - property4.setName("dir3"); - property4.setValue("r2}"); - target3.addChild(property4); - - Property property5 = new Property(); - property5.setTaskName("prop5"); - property5.setName("dir4"); - property5.setValue("${di${dir3}"); - target3.addChild(property5); - - target = target2; - - return project; - } - - public static void main(String[] args) { - SimpleTest simpleTest1 = new SimpleTest(); - } -}