Author: bodewig Date: Thu Nov 20 00:45:52 2008 New Revision: 719198 URL: http://svn.apache.org/viewvc?rev=719198&view=rev Log: allow target-group attribute to use a comma-separated list
Modified: ant/core/trunk/src/main/org/apache/tools/ant/Target.java ant/core/trunk/src/main/org/apache/tools/ant/helper/ProjectHelper2.java Modified: ant/core/trunk/src/main/org/apache/tools/ant/Target.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/Target.java?rev=719198&r1=719197&r2=719198&view=diff ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/Target.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/Target.java Thu Nov 20 00:45:52 2008 @@ -125,14 +125,15 @@ * depends on. Must not be <code>null</code>. */ public void setDepends(String depS) { - for (Iterator iter = parseDepends(depS, getName()).iterator(); + for (Iterator iter = parseDepends(depS, getName(), "depends").iterator(); iter.hasNext(); ) { addDependency((String) iter.next()); } } public static List/*<String>*/ parseDepends(String depends, - String targetName) { + String targetName, + String attributeName) { ArrayList list = new ArrayList(); if (depends.length() > 0) { StringTokenizer tok = @@ -142,11 +143,11 @@ // Make sure the dependency is not empty string if ("".equals(token) || ",".equals(token)) { - throw new BuildException("Syntax Error: depends " - + "attribute of target \"" + throw new BuildException("Syntax Error: " + + attributeName + + " attribute of target \"" + targetName - + "\" has an empty string as " - + "dependency."); + + "\" contains an empty string."); } list.add(token); @@ -156,8 +157,9 @@ if (tok.hasMoreTokens()) { token = tok.nextToken(); if (!tok.hasMoreTokens() || !",".equals(token)) { - throw new BuildException("Syntax Error: Depend " - + "attribute for target \"" + throw new BuildException("Syntax Error: " + + attributeName + + " attribute for target \"" + targetName + "\" ends with a \",\" " + "character"); Modified: ant/core/trunk/src/main/org/apache/tools/ant/helper/ProjectHelper2.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/helper/ProjectHelper2.java?rev=719198&r1=719197&r2=719198&view=diff ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/helper/ProjectHelper2.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/helper/ProjectHelper2.java Thu Nov 20 00:45:52 2008 @@ -876,9 +876,6 @@ + " specify a name attribute"); } name = prefix + sep + name; - if (targetGroup != null) { - targetGroup = prefix + sep + targetGroup; - } } // Check if this target is in the current build file @@ -904,7 +901,8 @@ target.setDepends(depends); } else { for (Iterator iter = - Target.parseDepends(depends, name).iterator(); + Target.parseDepends(depends, name, "depends") + .iterator(); iter.hasNext(); ) { target.addDependency(prefix + sep + iter.next()); } @@ -921,20 +919,29 @@ project.addOrReplaceTarget(newName, newTarget); } if (targetGroup != null) { - if (!projectTargets.containsKey(targetGroup)) { - throw new BuildException("can't add target " - + name + " to target-group " - + targetGroup - + " because the target-group" - + " is unknown."); - } - Target t = (Target) projectTargets.get(targetGroup); - if (!(t instanceof TargetGroup)) { - throw new BuildException("referenced target " - + targetGroup - + " is not a target-group"); + for (Iterator iter = + Target.parseDepends(targetGroup, name, "target-group") + .iterator(); + iter.hasNext(); ) { + String tgName = (String) iter.next(); + if (isInIncludeMode()) { + tgName = prefix + sep + tgName; + } + if (!projectTargets.containsKey(tgName)) { + throw new BuildException("can't add target " + + name + " to target-group " + + tgName + + " because the target-group" + + " is unknown."); + } + Target t = (Target) projectTargets.get(tgName); + if (!(t instanceof TargetGroup)) { + throw new BuildException("referenced target " + + tgName + + " is not a target-group"); + } + t.addDependency(name); } - t.addDependency(name); } }