Author: cziegeler
Date: Fri Aug 31 11:29:11 2012
New Revision: 1379421

URL: http://svn.apache.org/viewvc?rev=1379421&view=rev
Log:
FELIX-3643 : Use BuildContext for scanning changed files

Modified:
    felix/trunk/scrplugin/maven-scr-plugin/pom.xml
    
felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/MavenProjectScanner.java
    
felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/SCRDescriptorMojo.java
    
felix/trunk/scrplugin/maven-scr-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml

Modified: felix/trunk/scrplugin/maven-scr-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/felix/trunk/scrplugin/maven-scr-plugin/pom.xml?rev=1379421&r1=1379420&r2=1379421&view=diff
==============================================================================
--- felix/trunk/scrplugin/maven-scr-plugin/pom.xml (original)
+++ felix/trunk/scrplugin/maven-scr-plugin/pom.xml Fri Aug 31 11:29:11 2012
@@ -66,6 +66,11 @@
             <version>1.7.1-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
+<dependency>
+    <groupId>org.sonatype.plexus</groupId>
+    <artifactId>plexus-build-api</artifactId>
+    <version>0.0.7</version>
+</dependency>
     </dependencies>
     
     <build>

Modified: 
felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/MavenProjectScanner.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/MavenProjectScanner.java?rev=1379421&r1=1379420&r2=1379421&view=diff
==============================================================================
--- 
felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/MavenProjectScanner.java
 (original)
+++ 
felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/MavenProjectScanner.java
 Fri Aug 31 11:29:11 2012
@@ -29,7 +29,8 @@ import org.apache.felix.scrplugin.Log;
 import org.apache.felix.scrplugin.Source;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.DirectoryScanner;
+import org.codehaus.plexus.util.Scanner;
+import org.sonatype.plexus.build.incremental.BuildContext;
 
 
 public class MavenProjectScanner {
@@ -42,7 +43,10 @@ public class MavenProjectScanner {
 
     private final Log log;
 
-    public MavenProjectScanner( final MavenProject project,
+    private final BuildContext buildContext;
+
+    public MavenProjectScanner( final BuildContext buildContext,
+            final MavenProject project,
             final String includeString,
             final String excludeString,
             final Log log) {
@@ -50,6 +54,7 @@ public class MavenProjectScanner {
         this.includeString = includeString;
         this.excludeString = excludeString;
         this.log = log;
+        this.buildContext = buildContext;
     }
 
     /**
@@ -82,8 +87,7 @@ public class MavenProjectScanner {
                 continue;
             }
             log.debug( "Scanning source tree " + tree );
-            final DirectoryScanner scanner = new DirectoryScanner();
-            scanner.setBasedir( directory );
+            final Scanner scanner = this.buildContext.newScanner(directory, 
false);
 
             if ( excludes != null && excludes.length > 0 ) {
                 scanner.setExcludes( excludes );

Modified: 
felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/SCRDescriptorMojo.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/SCRDescriptorMojo.java?rev=1379421&r1=1379420&r2=1379421&view=diff
==============================================================================
--- 
felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/SCRDescriptorMojo.java
 (original)
+++ 
felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/SCRDescriptorMojo.java
 Fri Aug 31 11:29:11 2012
@@ -47,6 +47,7 @@ import org.apache.maven.plugin.AbstractM
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.project.MavenProject;
+import org.sonatype.plexus.build.incremental.BuildContext;
 
 /**
  * The <code>SCRDescriptorMojo</code> generates a service descriptor file based
@@ -174,6 +175,11 @@ public class SCRDescriptorMojo extends A
     private List<String> supportedProjectTypes = Arrays.asList( new String[]
         { "jar", "bundle" } );
 
+    /**
+     * @component
+     */
+    private BuildContext buildContext;
+
     public void execute() throws MojoExecutionException, MojoFailureException {
         final String projectType = project.getArtifact().getType();
 
@@ -189,6 +195,7 @@ public class SCRDescriptorMojo extends A
 
         // create project
         final MavenProjectScanner scanner = new MavenProjectScanner(
+                        this.buildContext,
                 this.project, this.sourceIncludes, this.sourceExcludes, 
scrLog);
 
         final Project project = new Project();
@@ -227,6 +234,8 @@ public class SCRDescriptorMojo extends A
             this.setServiceComponentHeader(result.getScrFiles());
             this.updateProjectResources();
 
+            // refreshing the target files does not seem to be the right thing
+            //this.updateBuildContext(result);
         } catch (final SCRDescriptorException sde) {
             throw new MojoExecutionException(sde.getSourceLocation() + " : " + 
sde.getMessage(), sde);
         } catch (final SCRDescriptorFailureException sdfe) {
@@ -235,6 +244,19 @@ public class SCRDescriptorMojo extends A
         }
     }
 
+    private void updateBuildContext(final Result result) {
+        if ( result.getMetatypeFiles() != null ) {
+            for(final String name : result.getMetatypeFiles() ) {
+                this.buildContext.refresh(new File(this.outputDirectory, 
name.replace('/', File.separatorChar)));
+            }
+        }
+        if ( result.getScrFiles() != null ) {
+            for(final String name : result.getScrFiles() ) {
+                this.buildContext.refresh(new File(this.outputDirectory, 
name.replace('/', File.separatorChar)));
+            }
+        }
+    }
+
     private URL[] getClassPath() throws MojoFailureException {
         @SuppressWarnings("unchecked")
         final List<Artifact> artifacts = this.project.getCompileArtifacts();

Modified: 
felix/trunk/scrplugin/maven-scr-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml
URL: 
http://svn.apache.org/viewvc/felix/trunk/scrplugin/maven-scr-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml?rev=1379421&r1=1379420&r2=1379421&view=diff
==============================================================================
--- 
felix/trunk/scrplugin/maven-scr-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml
 (original)
+++ 
felix/trunk/scrplugin/maven-scr-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml
 Fri Aug 31 11:29:11 2012
@@ -25,7 +25,7 @@
         </goals>
       </pluginExecutionFilter>
       <action>
-        <ignore/>
+        <execute/>
       </action>
     </pluginExecution>
   </pluginExecutions>


Reply via email to