peterreilly 2003/10/22 02:23:34 Modified: . build.xml src/main/org/apache/tools/ant/util ScriptRunner.java Added: src/etc/testcases/taskdefs/optional script_reference.xml src/testcases/org/apache/tools/ant/taskdefs/optional RhinoReferenceTest.java Log: Fix and test for unresolved references due inability to create the reference object to give to scripts. PR: 23915 Reported by: Jose Alberto Fernandez Revision Changes Path 1.400 +4 -2 ant/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/ant/build.xml,v retrieving revision 1.399 retrieving revision 1.400 diff -u -r1.399 -r1.400 --- build.xml 20 Oct 2003 23:27:59 -0000 1.399 +++ build.xml 22 Oct 2003 09:23:34 -0000 1.400 @@ -1453,10 +1453,12 @@ unless="some.regexp.support"/> <exclude name="${ant.package}/types/selectors/ContainsRegexpTest.java" unless="some.regexp.support"/> - <exclude name="${optional.package}/RhinoScriptTest.java" + <exclude name="${optional.package}/Rhino*.java" unless="bsf.present"/> - <exclude name="${optional.package}/RhinoScriptTest.java" + <exclude name="${optional.package}/Rhino*.java" unless="rhino.present"/> + <exclude name="${optional.package}/script/*.java" + unless="bsf.present"/> <exclude name="${optional.package}/script/*.java" unless="rhino.present"/> <exclude name="${optional.package}/BeanShellScriptTest.java" 1.2 +9 -1 ant/src/main/org/apache/tools/ant/util/ScriptRunner.java Index: ScriptRunner.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/util/ScriptRunner.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ScriptRunner.java 20 Jul 2003 09:34:21 -0000 1.1 +++ ScriptRunner.java 22 Oct 2003 09:23:34 -0000 1.2 @@ -89,7 +89,15 @@ public void addBeans(Map dictionary) { for (Iterator i = dictionary.keySet().iterator(); i.hasNext();) { String key = (String) i.next(); - addBean(key, dictionary.get(key)); + try { + Object val = dictionary.get(key); + addBean(key, val); + } catch (BuildException ex) { + // The key is in the dictionary but cannot be retrieved + // This is usually due references that refer to tasks + // that have not been taskdefed in the current run. + // Ignore + } } } 1.1 ant/src/etc/testcases/taskdefs/optional/script_reference.xml Index: script_reference.xml =================================================================== <project name="test-reference" default="script"> <target name="script"> <script language="javascript"> </script> </target> <target name="def"> <taskdef name="my.echo" classname="org.apache.tools.ant.taskdefs.Echo"/> <my.echo id="my.echo.ref" message="hello world"/> </target> </project> 1.1 ant/src/testcases/org/apache/tools/ant/taskdefs/optional/RhinoReferenceTest.java Index: RhinoReferenceTest.java =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2003 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 "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 [EMAIL PROTECTED] * * 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.BuildFileTest; /** * Tests using an undefined reference. * * @author Peter Reilly * @since Ant 1.6 */ public class RhinoReferenceTest extends BuildFileTest { public RhinoReferenceTest(String name) { super(name); } /** * The JUnit setup method */ public void setUp() { configureProject( "src/etc/testcases/taskdefs/optional/script_reference.xml"); } public void testScript() { executeTarget("script"); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]