git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271300 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -155,8 +155,10 @@ public class ExecutionManager { | |||||
| * @param targets a list of target names to be executed. | * @param targets a list of target names to be executed. | ||||
| * @param commandProperties the properties defined by the front end to | * @param commandProperties the properties defined by the front end to | ||||
| * control the build | * control the build | ||||
| * @exception AntException if there is a problem in the build | |||||
| */ | */ | ||||
| public void runBuild(Project project, List targets, Map commandProperties) { | |||||
| public void runBuild(Project project, List targets, Map commandProperties) | |||||
| throws AntException { | |||||
| Throwable buildFailureCause = null; | Throwable buildFailureCause = null; | ||||
| try { | try { | ||||
| // start by validating the project we have been given. | // start by validating the project we have been given. | ||||
| @@ -178,6 +180,7 @@ public class ExecutionManager { | |||||
| throw e; | throw e; | ||||
| } catch (AntException e) { | } catch (AntException e) { | ||||
| buildFailureCause = e; | buildFailureCause = e; | ||||
| throw e; | |||||
| } finally { | } finally { | ||||
| eventSupport.fireBuildFinished(project, buildFailureCause); | eventSupport.fireBuildFinished(project, buildFailureCause); | ||||
| } | } | ||||
| @@ -221,6 +221,10 @@ public class Frame { | |||||
| protected void setDataValue(String name, Object value, boolean mutable) | protected void setDataValue(String name, Object value, boolean mutable) | ||||
| throws ExecutionException { | throws ExecutionException { | ||||
| Frame frame = getContainingFrame(name); | Frame frame = getContainingFrame(name); | ||||
| if (frame == null) { | |||||
| throw new ExecutionException("There is no project corresponding " | |||||
| + "to the name \"" + name + "\""); | |||||
| } | |||||
| if (frame == this) { | if (frame == this) { | ||||
| if (dataValues.containsKey(name) && !mutable) { | if (dataValues.containsKey(name) && !mutable) { | ||||
| log("Ignoring oveeride for data value " + name, | log("Ignoring oveeride for data value " + name, | ||||
| @@ -399,6 +403,10 @@ public class Frame { | |||||
| */ | */ | ||||
| protected Object getDataValue(String name) throws ExecutionException { | protected Object getDataValue(String name) throws ExecutionException { | ||||
| Frame frame = getContainingFrame(name); | Frame frame = getContainingFrame(name); | ||||
| if (frame == null) { | |||||
| throw new ExecutionException("There is no project corresponding " | |||||
| + "to the name \"" + name + "\""); | |||||
| } | |||||
| if (frame == this) { | if (frame == this) { | ||||
| return dataValues.get(name); | return dataValues.get(name); | ||||
| } else { | } else { | ||||
| @@ -417,6 +425,10 @@ public class Frame { | |||||
| */ | */ | ||||
| protected boolean isDataValueSet(String name) throws ExecutionException { | protected boolean isDataValueSet(String name) throws ExecutionException { | ||||
| Frame frame = getContainingFrame(name); | Frame frame = getContainingFrame(name); | ||||
| if (frame == null) { | |||||
| throw new ExecutionException("There is no project corresponding " | |||||
| + "to the name \"" + name + "\""); | |||||
| } | |||||
| if (frame == this) { | if (frame == this) { | ||||
| return dataValues.containsKey(name); | return dataValues.containsKey(name); | ||||
| } else { | } else { | ||||
| @@ -864,9 +876,6 @@ public class Frame { | |||||
| private void createNestedElement(AntLibFactory factory, Setter setter, | private void createNestedElement(AntLibFactory factory, Setter setter, | ||||
| Object element, BuildElement model) | Object element, BuildElement model) | ||||
| throws ExecutionException { | throws ExecutionException { | ||||
| log("The use of create methods is deprecated - class: " | |||||
| + element.getClass().getName(), MessageLevel.MSG_INFO); | |||||
| String nestedElementName = model.getType(); | String nestedElementName = model.getType(); | ||||
| try { | try { | ||||
| Object nestedElement | Object nestedElement | ||||
| @@ -55,8 +55,8 @@ package org.apache.tools.ant; | |||||
| import org.apache.ant.common.antlib.AntContext; | import org.apache.ant.common.antlib.AntContext; | ||||
| import org.apache.ant.common.antlib.Converter; | import org.apache.ant.common.antlib.Converter; | ||||
| import org.apache.ant.common.antlib.StandardLibFactory; | import org.apache.ant.common.antlib.StandardLibFactory; | ||||
| import org.apache.ant.common.util.ExecutionException; | |||||
| import org.apache.ant.common.service.EventService; | import org.apache.ant.common.service.EventService; | ||||
| import org.apache.ant.common.util.ExecutionException; | |||||
| import org.apache.ant.init.LoaderUtils; | import org.apache.ant.init.LoaderUtils; | ||||
| /** | /** | ||||
| @@ -85,7 +85,7 @@ public class Ant1Factory extends StandardLibFactory { | |||||
| if (project != null) { | if (project != null) { | ||||
| return; | return; | ||||
| } | } | ||||
| this.context = context; | this.context = context; | ||||
| // set the system classpath. In Ant2, the system classpath will not | // set the system classpath. In Ant2, the system classpath will not | ||||
| // in general, have any useful information. For Ant1 compatability | // in general, have any useful information. For Ant1 compatability | ||||
| @@ -94,8 +94,8 @@ public class Ant1Factory extends StandardLibFactory { | |||||
| project = new Project(this); | project = new Project(this); | ||||
| project.init(context); | project.init(context); | ||||
| EventService eventService = | |||||
| EventService eventService = | |||||
| (EventService)context.getCoreService(EventService.class); | (EventService)context.getCoreService(EventService.class); | ||||
| eventService.addBuildListener(project); | eventService.addBuildListener(project); | ||||
| } | } | ||||
| @@ -105,12 +105,13 @@ public class Ant1Factory extends StandardLibFactory { | |||||
| * Create an instance of the requested type class | * Create an instance of the requested type class | ||||
| * | * | ||||
| * @param typeClass the class from which an instance is required | * @param typeClass the class from which an instance is required | ||||
| * @param localName the name of the type within its library | |||||
| * @return an instance of the requested class | * @return an instance of the requested class | ||||
| * @exception ExecutionException the instance could not be created. | * @exception ExecutionException the instance could not be created. | ||||
| * @exception InstantiationException if the type cannot be instantiated | * @exception InstantiationException if the type cannot be instantiated | ||||
| * @exception IllegalAccessException if the type cannot be accessed | * @exception IllegalAccessException if the type cannot be accessed | ||||
| */ | */ | ||||
| public Object createTypeInstance(Class typeClass) | |||||
| public Object createTypeInstance(Class typeClass, String localName) | |||||
| throws InstantiationException, IllegalAccessException, | throws InstantiationException, IllegalAccessException, | ||||
| ExecutionException { | ExecutionException { | ||||
| try { | try { | ||||
| @@ -145,11 +146,12 @@ public class Ant1Factory extends StandardLibFactory { | |||||
| * Create an instance of the requested task class | * Create an instance of the requested task class | ||||
| * | * | ||||
| * @param taskClass the class from which an instance is required | * @param taskClass the class from which an instance is required | ||||
| * @param localName the name of the task within its library | |||||
| * @return an instance of the requested class | * @return an instance of the requested class | ||||
| * @exception InstantiationException if the task cannot be instantiated | * @exception InstantiationException if the task cannot be instantiated | ||||
| * @exception IllegalAccessException if the task cannot be accessed | * @exception IllegalAccessException if the task cannot be accessed | ||||
| */ | */ | ||||
| public Object createTaskInstance(Class taskClass) | |||||
| public Object createTaskInstance(Class taskClass, String localName) | |||||
| throws InstantiationException, IllegalAccessException { | throws InstantiationException, IllegalAccessException { | ||||
| Object instance = taskClass.newInstance(); | Object instance = taskClass.newInstance(); | ||||
| if (instance instanceof ProjectComponent) { | if (instance instanceof ProjectComponent) { | ||||
| @@ -72,9 +72,7 @@ import org.apache.ant.antcore.xml.ParseContext; | |||||
| import org.apache.ant.antcore.xml.XMLParseException; | import org.apache.ant.antcore.xml.XMLParseException; | ||||
| import org.apache.ant.common.event.BuildListener; | import org.apache.ant.common.event.BuildListener; | ||||
| import org.apache.ant.common.model.Project; | import org.apache.ant.common.model.Project; | ||||
| import org.apache.ant.common.util.AntException; | |||||
| import org.apache.ant.common.util.ConfigException; | import org.apache.ant.common.util.ConfigException; | ||||
| import org.apache.ant.common.util.Location; | |||||
| import org.apache.ant.common.event.MessageLevel; | import org.apache.ant.common.event.MessageLevel; | ||||
| import org.apache.ant.init.InitConfig; | import org.apache.ant.init.InitConfig; | ||||
| import org.apache.ant.init.InitUtils; | import org.apache.ant.init.InitUtils; | ||||
| @@ -297,27 +295,8 @@ public class Commandline { | |||||
| addBuildListeners(executionManager); | addBuildListeners(executionManager); | ||||
| executionManager.init(); | executionManager.init(); | ||||
| executionManager.runBuild(project, targets, definedProperties); | executionManager.runBuild(project, targets, definedProperties); | ||||
| System.exit(0); | |||||
| } catch (Throwable t) { | } catch (Throwable t) { | ||||
| if (t instanceof AntException) { | |||||
| AntException e = (AntException)t; | |||||
| Location location = e.getLocation(); | |||||
| Throwable cause = e.getCause(); | |||||
| if (location != null && location != Location.UNKNOWN_LOCATION) { | |||||
| System.out.print(location); | |||||
| } | |||||
| System.out.println(e.getMessage()); | |||||
| if (messageOutputLevel >= MessageLevel.MSG_VERBOSE) { | |||||
| t.printStackTrace(); | |||||
| } | |||||
| if (cause != null) { | |||||
| System.out.println("Root cause: " + cause.toString()); | |||||
| } | |||||
| } else { | |||||
| t.printStackTrace(System.err); | |||||
| } | |||||
| System.exit(1); | System.exit(1); | ||||
| } | } | ||||
| } | } | ||||