Introduces extension points for tests compile and generic properties to define sources
We have many plugins relying on sources (compile-[language] compile-test-[language] source-jar javadoc scaladoc sonar pmd checkstyle) Those plugin should not bind directly to language specific property src.main.[language]
git-svn-id: https://svn.apache.org/repos/asf/ant/easyant/plugins/trunk@1507617 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/abstract-compile/module.ivy b/abstract-compile/module.ivy
index ee5cbcb..d73b97a 100644
--- a/abstract-compile/module.ivy
+++ b/abstract-compile/module.ivy
@@ -15,7 +15,7 @@
limitations under the License.
-->
<ivy-module version="2.0" xmlns:ea="http://www.easyant.org">
- <info organisation="org.apache.easyant.plugins" module="abstract-compile" revision="0.9">
+ <info organisation="org.apache.easyant.plugins" module="abstract-compile" revision="0.10">
<extends organisation="org.apache.easyant.plugins" module="parent-plugin" revision="0.1" location="../parent.ivy" />
<description>Abstract base plugin, that any modules providing
compilation features should include. abstract-compile
diff --git a/abstract-compile/src/main/resources/abstract-compile.ant b/abstract-compile/src/main/resources/abstract-compile.ant
index 195b42c..ed16060 100644
--- a/abstract-compile/src/main/resources/abstract-compile.ant
+++ b/abstract-compile/src/main/resources/abstract-compile.ant
@@ -24,6 +24,25 @@
<ea:parameter property="target.test.integration.classes" default="${target}/integration-test/classes"
description="destination directory for compiled integration test classes" />
+ <target name="abstract-compile:init" extensionOf="abstract-compile:compile-ready">
+ <!-- concrete compile plugin should define thoses properties -->
+ <ea:parameter property="main.sources" required="true" description="directory where sources to be compiled are. This property should be reused by other plugins to locate sources."/>
+ <ea:parameter property="main.sources.includes" required="true" description="Pattern describing files included in compilation process. This property should be reused by other plugins to locate sources" />
+ <ea:parameter property="main.sources.excludes" required="true" description="Pattern describing files excluded in compilation process. This property should be reused by other plugins to locate sources" />
+ </target>
+
+ <target name="abstract-compile:init-test" extensionOf="abstract-compile:test-compile-ready">
+ <!-- concrete compile plugin should define thoses properties -->
+ <ea:parameter property="test.sources" required="true" description="directory where sources to be compiled are. This property should be reused by other plugins to locate sources."/>
+ <ea:parameter property="test.sources.includes" required="true" description="Pattern describing files included in compilation process. This property should be reused by other plugins to locate sources" />
+ <ea:parameter property="test.sources.excludes" required="true" description="Pattern describing files excluded in compilation process. This property should be reused by other plugins to locate sources" />
+
+ <ea:parameter property="test.integration.sources" required="true" description="directory where integration test sources to be compiled are. This property should be reused by other plugins to locate sources."/>
+ <ea:parameter property="test.integration.sources.includes" required="true" description="Pattern describing files included in integration test compilation process. This property should be reused by other plugins to locate sources" />
+ <ea:parameter property="test.integration.sources.excludes" required="true" description="Pattern describing files excluded in integration test compilation process. This property should be reused by other plugins to locate sources" />
+
+ </target>
+
<ea:plugin module="abstract-provisioning" revision="0.9" />
<!-- We expect at this point to have every source available, even the ones which are generated -->
@@ -32,6 +51,12 @@
<extension-point name="abstract-compile:compile" depends="abstract-compile:compile-ready"
description="defines the compile step" />
+ <extension-point name="abstract-compile:test-compile-ready" depends="abstract-provisioning:provisioning"
+ description="defines the requirements to test-compile. It's the good place if you want to process or generate sources" />
+ <extension-point name="abstract-compile:test-compile" depends="abstract-compile:test-compile-ready"
+ description="defines the test-compile step" />
+
+
<!-- Creates a empty classpath for compilation if it doesn't exist yet -->
<ea:path pathid="compile.main.classpath" overwrite="false" description="classpath for main sources"/>