You are viewing a plain text version of this content. The canonical link for it is here.
Posted to easyant-commits@incubator.apache.org by jl...@apache.org on 2012/07/26 22:55:26 UTC

svn commit: r1366226 - /incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/EasyAntProjectHelper.java

Author: jlboudart
Date: Thu Jul 26 22:55:25 2012
New Revision: 1366226

URL: http://svn.apache.org/viewvc?rev=1366226&view=rev
Log:
Fix extensionStack content in EasyAntProjectHelper
even if this helper class is suposed to be removed, since we are still using legacy plugins we need phases support

Modified:
    incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/EasyAntProjectHelper.java

Modified: incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/EasyAntProjectHelper.java
URL: http://svn.apache.org/viewvc/incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/EasyAntProjectHelper.java?rev=1366226&r1=1366225&r2=1366226&view=diff
==============================================================================
--- incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/EasyAntProjectHelper.java (original)
+++ incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/ant/EasyAntProjectHelper.java Thu Jul 26 22:55:25 2012
@@ -123,6 +123,7 @@ public class EasyAntProjectHelper extend
             String depends = "";
             String extensionPoint = null;
             String phase = null;
+            OnMissingExtensionPoint extensionPointMissing = null; 
 
             Project project = context.getProject();
 
@@ -168,6 +169,12 @@ public class EasyAntProjectHelper extend
                     target.setDescription(value);
                 } else if (key.equals("extensionOf")) {
                     extensionPoint = value;
+                } else if (key.equals("onMissingExtensionPoint")) {
+                    try {
+                        extensionPointMissing = OnMissingExtensionPoint.valueOf(value);
+                    } catch (IllegalArgumentException e) {
+                        throw new BuildException("Invalid onMissingExtensionPoint " + value);
+                    }
                 } else if (key.equals("phase")) {
                     phase = value;
                 } else {
@@ -247,6 +254,11 @@ public class EasyAntProjectHelper extend
                 context.getCurrentTargets().put(newName, newTarget);
                 project.addOrReplaceTarget(newName, newTarget);
             }
+            if (extensionPointMissing != null && extensionPoint == null) { 
+                throw new BuildException("onMissingExtensionPoint attribute cannot " +
+                        "be specified unless extensionOf is specified", 
+                        target.getLocation()); 
+            }
             if (extensionPoint != null) {
                 ProjectHelper helper = (ProjectHelper) context.getProject()
                         .getReference(ProjectHelper.PROJECTHELPER_REFERENCE);
@@ -256,11 +268,14 @@ public class EasyAntProjectHelper extend
                     if (isInIncludeMode()) {
                         tgName = prefix + sep + tgName;
                     }
+                    if (extensionPointMissing == null) {
+                        extensionPointMissing = OnMissingExtensionPoint.FAIL; 
+                    }
 
                     // defer extensionpoint resolution until the full
                     // import stack has been processed
                     helper.getExtensionStack().add(
-                            new String[] { tgName, name });
+                            new String[] { tgName, name, extensionPointMissing.name()});
                 }
             }
             if (phase != null) {