Made m2e integration m2e 1.0.x compatible by providing implementation of
AbstractJavaProjectConfigurator
git-svn-id: https://svn.apache.org/repos/asf/directmemory/lightning/trunk@1398077 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lightning-maven-eclipse-helper/META-INF/MANIFEST.MF b/lightning-maven-eclipse-helper/META-INF/MANIFEST.MF
index 3353eb8..94c8655 100644
--- a/lightning-maven-eclipse-helper/META-INF/MANIFEST.MF
+++ b/lightning-maven-eclipse-helper/META-INF/MANIFEST.MF
@@ -6,5 +6,8 @@
Bundle-Vendor: Noctarius
Bundle-RequiredExecutionEnvironment: J2SE-1.5,
JavaSE-1.6
-Require-Bundle: org.eclipse.m2e.jdt;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.m2e.core;bundle-version="[1.1.0,1.2.0)"
+Require-Bundle: org.eclipse.core.resources;bundle-version="3.4.0",
+ org.eclipse.core.runtime;bundle-version="3.4.0",
+ org.eclipse.m2e.jdt;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.m2e.core;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.m2e.maven.runtime;bundle-version="[1.0.0,2.0.0)"
diff --git a/lightning-maven-eclipse-helper/plugin.xml b/lightning-maven-eclipse-helper/plugin.xml
index 5550f5c..75603b6 100644
--- a/lightning-maven-eclipse-helper/plugin.xml
+++ b/lightning-maven-eclipse-helper/plugin.xml
@@ -19,7 +19,13 @@
under the License.
-->
<plugin>
- <extension
- point="org.eclipse.m2e.core.lifecycleMappingMetadataSource">
+ <extension point="org.eclipse.m2e.core.projectConfigurators">
+ <configurator
+ class="org.apache.directmemory.lightning.m2e.LightningProjectConfigurator"
+ id="org.apache.directmemory.lightning.lightningConfigurator"
+ name="DM-Lightning Project Configurator">
+ </configurator>
+ </extension>
+ <extension point="org.eclipse.m2e.core.lifecycleMappingMetadataSource">
</extension>
</plugin>
\ No newline at end of file
diff --git a/lightning-maven-eclipse-helper/src/main/java/org/apache/directmemory/lightning/m2e/LightningBuildParticipant.java b/lightning-maven-eclipse-helper/src/main/java/org/apache/directmemory/lightning/m2e/LightningBuildParticipant.java
new file mode 100644
index 0000000..f10e921
--- /dev/null
+++ b/lightning-maven-eclipse-helper/src/main/java/org/apache/directmemory/lightning/m2e/LightningBuildParticipant.java
@@ -0,0 +1,62 @@
+package org.apache.directmemory.lightning.m2e;
+
+import java.io.File;
+import java.util.Set;
+
+import org.apache.maven.plugin.MojoExecution;
+import org.codehaus.plexus.util.Scanner;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.m2e.core.MavenPlugin;
+import org.eclipse.m2e.core.embedder.IMaven;
+import org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant;
+import org.sonatype.plexus.build.incremental.BuildContext;
+
+public class LightningBuildParticipant
+ extends MojoExecutionBuildParticipant
+{
+
+ public LightningBuildParticipant( MojoExecution execution )
+ {
+ super( execution, true );
+ }
+
+ @Override
+ public Set<IProject> build( int kind, IProgressMonitor monitor )
+ throws Exception
+ {
+ IMaven maven = MavenPlugin.getMaven();
+ BuildContext buildContext = getBuildContext();
+
+ File classesDirectory =
+ maven.getMojoParameterValue( getSession(), getMojoExecution(), "targetBuildDirectory", File.class );
+
+ if ( classesDirectory == null )
+ {
+ return null;
+ }
+
+ Scanner scanner = buildContext.newScanner( classesDirectory );
+ scanner.scan();
+
+ String[] includedFiles = scanner.getIncludedFiles();
+ if ( includedFiles == null || includedFiles.length == 0 )
+ {
+ return null;
+ }
+
+ Set<IProject> result = super.build( kind, monitor );
+
+ File generatedDirectory =
+ maven.getMojoParameterValue( getSession(), getMojoExecution(), "generatedSourceDirectory", File.class );
+ if ( generatedDirectory != null )
+ {
+ buildContext.refresh( generatedDirectory );
+ }
+
+ buildContext.refresh( classesDirectory );
+
+ return result;
+ }
+
+}
diff --git a/lightning-maven-eclipse-helper/src/main/java/org/apache/directmemory/lightning/m2e/LightningProjectConfigurator.java b/lightning-maven-eclipse-helper/src/main/java/org/apache/directmemory/lightning/m2e/LightningProjectConfigurator.java
new file mode 100644
index 0000000..dfeac43
--- /dev/null
+++ b/lightning-maven-eclipse-helper/src/main/java/org/apache/directmemory/lightning/m2e/LightningProjectConfigurator.java
@@ -0,0 +1,20 @@
+package org.apache.directmemory.lightning.m2e;
+
+import org.apache.maven.plugin.MojoExecution;
+import org.eclipse.m2e.core.lifecyclemapping.model.IPluginExecutionMetadata;
+import org.eclipse.m2e.core.project.IMavenProjectFacade;
+import org.eclipse.m2e.core.project.configurator.AbstractBuildParticipant;
+import org.eclipse.m2e.jdt.AbstractJavaProjectConfigurator;
+
+public class LightningProjectConfigurator
+ extends AbstractJavaProjectConfigurator
+{
+
+ @Override
+ public AbstractBuildParticipant getBuildParticipant( IMavenProjectFacade projectFacade, MojoExecution execution,
+ IPluginExecutionMetadata executionMetadata )
+ {
+ return new LightningBuildParticipant( execution );
+ }
+
+}