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/10/22 19:37:29 UTC
svn commit: r1401042 - in /incubator/easyant/core/trunk/src:
main/java/org/apache/easyant/core/descriptor/
main/java/org/apache/easyant/core/parser/ test/java/org/apache/easyant/core/
test/resources/org/apache/easyant/core/multimodule/
Author: jlboudart
Date: Mon Oct 22 19:37:29 2012
New Revision: 1401042
URL: http://svn.apache.org/viewvc?rev=1401042&view=rev
Log:
Add support to bindtarget in module inheritance
Modified:
incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/descriptor/ExtensionPointMappingDescriptor.java
incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/parser/DefaultEasyAntXmlModuleDescriptorParser.java
incubator/easyant/core/trunk/src/test/java/org/apache/easyant/core/ModuleInheritanceTest.java
incubator/easyant/core/trunk/src/test/resources/org/apache/easyant/core/multimodule/parent.ivy
Modified: incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/descriptor/ExtensionPointMappingDescriptor.java
URL: http://svn.apache.org/viewvc/incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/descriptor/ExtensionPointMappingDescriptor.java?rev=1401042&r1=1401041&r2=1401042&view=diff
==============================================================================
--- incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/descriptor/ExtensionPointMappingDescriptor.java (original)
+++ incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/descriptor/ExtensionPointMappingDescriptor.java Mon Oct 22 19:37:29 2012
@@ -17,42 +17,79 @@
*/
package org.apache.easyant.core.descriptor;
-public class ExtensionPointMappingDescriptor {
-
+import org.apache.easyant.core.ivy.InheritableScope;
+import org.apache.ivy.core.module.id.ModuleRevisionId;
+
+public class ExtensionPointMappingDescriptor implements AdvancedInheritableItem {
+
private String target;
private String extensionPoint;
private String buildConfigurations;
+ private InheritableScope inheritScope = InheritableScope.BOTH;
+ private boolean inheritable = true;
+ private final ModuleRevisionId sourceModule;
+
+ public ExtensionPointMappingDescriptor() {
+ this.sourceModule = null;
+ }
+
+ public ExtensionPointMappingDescriptor(ModuleRevisionId sourceModule) {
+ this.sourceModule = sourceModule;
+ }
+
public String getTarget() {
return target;
}
+
public void setTarget(String target) {
this.target = target;
}
-
+
public String getExtensionPoint() {
return extensionPoint;
}
+
public void setExtensionPoint(String extensionPoint) {
this.extensionPoint = extensionPoint;
}
-
+
/**
* Return a build configuration name bound to this plugin
+ *
* @return a build configuration name
*/
public String getBuildConfigurations() {
return buildConfigurations;
}
-
+
/**
* set a build configuration name bound to this plugin
- * @param buildConfigurationName a build configuration name
+ *
+ * @param buildConfigurationName
+ * a build configuration name
*/
public void setBuildConfigurations(String buildConfigurations) {
this.buildConfigurations = buildConfigurations;
}
-
-
-
+
+ public InheritableScope getInheritScope() {
+ return inheritScope;
+ }
+
+ public void setInheritScope(InheritableScope inheritScope) {
+ this.inheritScope = inheritScope;
+ }
+
+ public boolean isInheritable() {
+ return inheritable;
+ }
+
+ public void setInheritable(boolean inheritable) {
+ this.inheritable = inheritable;
+ }
+
+ public ModuleRevisionId getSourceModule() {
+ return sourceModule;
+ }
}
Modified: incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/parser/DefaultEasyAntXmlModuleDescriptorParser.java
URL: http://svn.apache.org/viewvc/incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/parser/DefaultEasyAntXmlModuleDescriptorParser.java?rev=1401042&r1=1401041&r2=1401042&view=diff
==============================================================================
--- incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/parser/DefaultEasyAntXmlModuleDescriptorParser.java (original)
+++ incubator/easyant/core/trunk/src/main/java/org/apache/easyant/core/parser/DefaultEasyAntXmlModuleDescriptorParser.java Mon Oct 22 19:37:29 2012
@@ -456,13 +456,13 @@ public class DefaultEasyAntXmlModuleDesc
}
}
- // put this variable on the context
ExtensionPointMappingDescriptor extensionPointMappingDescriptor = new ExtensionPointMappingDescriptor();
extensionPointMappingDescriptor.setBuildConfigurations(conf);
- // TODO: add a facility to get plugin alias if this is a
- // declared as a subelement
extensionPointMappingDescriptor.setTarget(target);
extensionPointMappingDescriptor.setExtensionPoint(toExtensionPoint);
+
+ handleInheritedScopeAttribute(attributes, extensionPointMappingDescriptor);
+
easyAntModuleDescriptor.addExtensionPointMapping(extensionPointMappingDescriptor);
}
@@ -557,6 +557,7 @@ public class DefaultEasyAntXmlModuleDesc
.getParser();
mergeEasyantProperties(parser.getEasyAntModuleDescriptor().getProperties());
mergeEasyantPlugins(parser.getEasyAntModuleDescriptor().getPlugins());
+ mergeBindTargets(parser.getEasyAntModuleDescriptor().getExtensionPointsMappings());
}
}
@@ -576,13 +577,14 @@ public class DefaultEasyAntXmlModuleDesc
.getParser();
if (extendTypes.contains("properties")) {
-
mergeEasyantProperties(parser.getEasyAntModuleDescriptor().getProperties());
-
}
if (extendTypes.contains("plugins")) {
mergeEasyantPlugins(parser.getEasyAntModuleDescriptor().getPlugins());
}
+ if (extendTypes.contains("bindtarget")) {
+ mergeBindTargets(parser.getEasyAntModuleDescriptor().getExtensionPointsMappings());
+ }
}
}
@@ -631,6 +633,20 @@ public class DefaultEasyAntXmlModuleDesc
}
}
+ protected void mergeBindTargets(List<ExtensionPointMappingDescriptor> extensionPointsMappings) {
+ for (ExtensionPointMappingDescriptor extensionPointMappingDescriptor : extensionPointsMappings) {
+ if (extensionPointMappingDescriptor.isInheritable()) {
+ StringBuilder sb = new StringBuilder("Merging extension-point binding : ");
+ sb.append(extensionPointMappingDescriptor.toString());
+ if (extensionPointMappingDescriptor.getSourceModule() != null) {
+ sb.append(" from ").append(extensionPointMappingDescriptor.getSourceModule().toString());
+ }
+ Message.debug(sb.toString());
+ easyAntModuleDescriptor.addExtensionPointMapping(extensionPointMappingDescriptor);
+ }
+ }
+ }
+
/**
* Get the default parent location
*
@@ -640,5 +656,4 @@ public class DefaultEasyAntXmlModuleDesc
return "../parent.ivy";
}
}
-
}
Modified: incubator/easyant/core/trunk/src/test/java/org/apache/easyant/core/ModuleInheritanceTest.java
URL: http://svn.apache.org/viewvc/incubator/easyant/core/trunk/src/test/java/org/apache/easyant/core/ModuleInheritanceTest.java?rev=1401042&r1=1401041&r2=1401042&view=diff
==============================================================================
--- incubator/easyant/core/trunk/src/test/java/org/apache/easyant/core/ModuleInheritanceTest.java (original)
+++ incubator/easyant/core/trunk/src/test/java/org/apache/easyant/core/ModuleInheritanceTest.java Mon Oct 22 19:37:29 2012
@@ -52,4 +52,10 @@ public class ModuleInheritanceTest exten
expectPropertyUnset("validate", "my.property");
}
+ @Test
+ public void shouldInheritBindTarget() {
+ // this property is loaded by source-jar:init and should be bind to validate extensionPoint only if bindtarget
+ // has been inherited
+ expectPropertySet("validate", "src.publish.conf", "source");
+ }
}
Modified: incubator/easyant/core/trunk/src/test/resources/org/apache/easyant/core/multimodule/parent.ivy
URL: http://svn.apache.org/viewvc/incubator/easyant/core/trunk/src/test/resources/org/apache/easyant/core/multimodule/parent.ivy?rev=1401042&r1=1401041&r2=1401042&view=diff
==============================================================================
--- incubator/easyant/core/trunk/src/test/resources/org/apache/easyant/core/multimodule/parent.ivy (original)
+++ incubator/easyant/core/trunk/src/test/resources/org/apache/easyant/core/multimodule/parent.ivy Mon Oct 22 19:37:29 2012
@@ -19,6 +19,7 @@
<ea:property name="test.property" value="myvalue"/>
<ea:plugin module="source-jar" revision="0.9" inherit-scope="child" />
<ea:plugin module="documentation" revision="0.9" inheritable="false" my.property="myvalue"/>
+ <ea:bindtarget target="source-jar:init" extensionOf="validate" inherit-scope="child"/>
</info>
<configurations>
<conf name="default" visibility="public" description="runtime dependencies and master artifact can be used with this conf"/>