Author: eworley
Date: Thu Jan  3 23:11:25 2008
New Revision: 608765

URL: http://svn.apache.org/viewvc?rev=608765&view=rev
Log:
Refactored source processors to have a common abstract base class

Added:
    
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractSourceProcessorMojo.java
Modified:
    
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/SourceProcessorMojo.java
    
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestSourceProcessorMojo.java

Added: 
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractSourceProcessorMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractSourceProcessorMojo.java?rev=608765&view=auto
==============================================================================
--- 
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractSourceProcessorMojo.java
 (added)
+++ 
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractSourceProcessorMojo.java
 Thu Jan  3 23:11:25 2008
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.dotnet.plugin.compiler;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.maven.dotnet.ProgrammingLanguage;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.DirectoryScanner;
+import org.codehaus.plexus.util.FileUtils;
+
+public abstract class AbstractSourceProcessorMojo
+    extends AbstractMojo
+{
+    /**
+     * The maven project.
+     *
+     * @parameter expression="${project}"
+     * @required
+     */
+    protected MavenProject project;
+
+    /**
+     * @parameter expression = "${includes}"
+     */
+    private String[] includes;
+
+    /**
+     * @parameter expression = "${excludes}"
+     */
+    private String[] excludes;
+
+    /**
+     * .NET Language. The default value is <code>C_SHARP</code>. Not case or 
white-space sensitive.
+     *
+     * @parameter expression="${language}" default-value = "C_SHARP"
+     * @required
+     */
+    private String language;
+    
+    /**
+     * @return <code>File</code> The source directory to process
+     */
+    protected abstract File getSourceDirectory();
+    
+    /**
+     * @return <code>File</code> The output directory where the processed 
source
+     * will be placed
+     */
+    protected abstract File getOutputDirectory();
+
+    protected void processSources()
+        throws MojoExecutionException
+    {
+        File sourceDirectory = getSourceDirectory();
+
+        if ( !sourceDirectory.exists() )
+        {
+            getLog().info( "NMAVEN-904-001: No source files to copy" );
+            return;
+        }
+        DirectoryScanner directoryScanner = new DirectoryScanner();
+        directoryScanner.setBasedir( sourceDirectory );
+
+        List<String> excludeList = new 
ArrayList<String>(Arrays.asList(excludes));
+        //target files
+        excludeList.add( "obj/**" );
+        excludeList.add( "bin/**" );
+        excludeList.add( "target/**" );
+        //Misc
+        excludeList.add( "Resources/**" );
+        excludeList.add( "Test/**" );
+
+        List<String> includeList = new 
ArrayList<String>(Arrays.asList(includes));
+        includeList.add( "**/*." + ProgrammingLanguage.valueOf( language 
).getClassFileExtension() );
+
+        directoryScanner.setIncludes( includeList.toArray( includes ) );
+        directoryScanner.setExcludes( excludeList.toArray( excludes ) );
+        directoryScanner.addDefaultExcludes();
+
+        File outputDirectory = getOutputDirectory();
+        directoryScanner.scan();
+        String[] files = directoryScanner.getIncludedFiles();
+        getLog().info( "NMAVEN-904-002: Copying source files: From = " + 
sourceDirectory + ",  To = " +
+            outputDirectory + ", File Count = " + files.length );
+
+        super.getPluginContext().put( "SOURCE_FILES_UP_TO_DATE", Boolean.TRUE 
);
+        for ( String file : files )
+        {
+            try
+            {
+                File sourceFile = new File( sourceDirectory, file );
+                File targetFile = new File( outputDirectory, file );
+                if ( sourceFile.lastModified() > targetFile.lastModified() )
+                {
+                    super.getPluginContext().put( "SOURCE_FILES_UP_TO_DATE", 
Boolean.FALSE );
+                    FileUtils.copyFile( sourceFile, targetFile );
+                    targetFile.setLastModified( System.currentTimeMillis() );
+                }
+            }
+            catch ( IOException e )
+            {
+                throw new MojoExecutionException( "NMAVEN-904-000: Unable to 
process sources", e );
+            }
+        }
+        
+        // Update the scanner to scan the output directory, and rescan
+        List<String> outputDirExcludes = new ArrayList<String>(excludeList);
+        // Ignore meta-inf, including assembly info
+        outputDirExcludes.add( "META-INF/**" );
+        directoryScanner.setExcludes( outputDirExcludes.toArray( new String[0] 
) );
+        directoryScanner.setBasedir( outputDirectory );
+        directoryScanner.scan();
+        
+        // Synchronize the target folder with the source.  Specifically delete 
the targetFile if
+        // the source file no longer exists
+        for ( String file : directoryScanner.getIncludedFiles() )
+        {
+               File sourceFile = new File( sourceDirectory, file );
+               File targetFile = new File( outputDirectory, file );
+             
+            if ( !sourceFile.exists() && targetFile.exists() )
+            {
+               if ( !targetFile.delete() ) 
+               {
+                       getLog().warn( "Unable to delete stale target file " + 
targetFile.getPath() );
+               }
+            }
+        }
+    }
+}

Modified: 
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/SourceProcessorMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/SourceProcessorMojo.java?rev=608765&r1=608764&r2=608765&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/SourceProcessorMojo.java
 (original)
+++ 
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/SourceProcessorMojo.java
 Thu Jan  3 23:11:25 2008
@@ -18,20 +18,10 @@
  */
 package org.apache.maven.dotnet.plugin.compiler;
 
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.dotnet.ProgrammingLanguage;
-import org.apache.maven.dotnet.BuildDirectories;
-import org.apache.maven.project.MavenProject;
-
-import org.codehaus.plexus.util.DirectoryScanner;
-import org.codehaus.plexus.util.FileUtils;
-
 import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.ArrayList;
+
+import org.apache.maven.dotnet.BuildDirectories;
+import org.apache.maven.plugin.MojoExecutionException;
 
 /**
  * Copies source files to target directory.
@@ -42,113 +32,25 @@
  */
 
 public class SourceProcessorMojo
-    extends AbstractMojo
+    extends AbstractSourceProcessorMojo
 {
 
-    /**
-     * The maven project.
-     *
-     * @parameter expression="${project}"
-     * @required
-     */
-    private MavenProject project;
-
-    /**
-     * @parameter expression = "${includes}"
-     */
-    private String[] includes;
-
-    /**
-     * @parameter expression = "${excludes}"
-     */
-    private String[] excludes;
-
-    /**
-     * .NET Language. The default value is <code>C_SHARP</code>. Not case or 
white-space sensitive.
-     *
-     * @parameter expression="${language}" default-value = "C_SHARP"
-     * @required
-     */
-    private String language;
-
     public void execute()
         throws MojoExecutionException
     {
-        File sourceDirectory = new File( 
project.getBuild().getSourceDirectory() );
-        File outputDirectory =
-            new File( project.getBuild().getDirectory(), 
BuildDirectories.BUILD_SOURCES.getBuildDirectoryName() );
-
-        if ( !sourceDirectory.exists() )
-        {
-            getLog().info( "NMAVEN-904-001: No source files to copy" );
-            return;
-        }
-        DirectoryScanner directoryScanner = new DirectoryScanner();
-        directoryScanner.setBasedir( sourceDirectory );
-
-        List<String> excludeList = new 
ArrayList<String>(Arrays.asList(excludes));
-        //target files
-        excludeList.add( "obj/**" );
-        excludeList.add( "bin/**" );
-        excludeList.add( "target/**" );
-        //Misc
-        excludeList.add( "Resources/**" );
-        excludeList.add( "Test/**" );
-
-        List<String> includeList = new 
ArrayList<String>(Arrays.asList(includes));
-        includeList.add( "**/*." + ProgrammingLanguage.valueOf( language 
).getClassFileExtension() );
-
-        directoryScanner.setIncludes( includeList.toArray( includes ) );
-        directoryScanner.setExcludes( excludeList.toArray( excludes ) );
-        directoryScanner.addDefaultExcludes();
-
-        directoryScanner.scan();
-        String[] files = directoryScanner.getIncludedFiles();
-        getLog().info( "NMAVEN-904-002: Copying source files: From = " + 
sourceDirectory + ",  To = " +
-            outputDirectory + ", File Count = " + files.length );
-
-        super.getPluginContext().put( "SOURCE_FILES_UP_TO_DATE", Boolean.TRUE 
);
-        for ( String file : files )
-        {
-            try
-            {
-                File sourceFile = new File( sourceDirectory, file );
-                File targetFile = new File( outputDirectory, file );
-                if ( sourceFile.lastModified() > targetFile.lastModified() )
-                {
-                    super.getPluginContext().put( "SOURCE_FILES_UP_TO_DATE", 
Boolean.FALSE );
-                    FileUtils.copyFile( sourceFile, targetFile );
-                    targetFile.setLastModified( System.currentTimeMillis() );
-                }
-            }
-            catch ( IOException e )
-            {
-                throw new MojoExecutionException( "NMAVEN-904-000: Unable to 
process sources", e );
-            }
-        }
-        
-        // Update the scanner to scan the output directory, and rescan
-        List<String> outputDirExcludes = new ArrayList<String>(excludeList);
-        // Ignore meta-inf, including assembly info
-        outputDirExcludes.add( "META-INF/**" );
-        directoryScanner.setExcludes( outputDirExcludes.toArray( new String[0] 
) );
-        directoryScanner.setBasedir( outputDirectory );
-        directoryScanner.scan();
-        
-        // Synchronize the target folder with the source.  Specifically delete 
the targetFile if
-        // the source file no longer exists
-        for ( String file : directoryScanner.getIncludedFiles() )
-        {
-               File sourceFile = new File( sourceDirectory, file );
-               File targetFile = new File( outputDirectory, file );
-             
-            if ( !sourceFile.exists() && targetFile.exists() )
-            {
-               if ( !targetFile.delete() ) 
-               {
-                       getLog().warn( "Unable to delete stale target file " + 
targetFile.getPath() );
-               }
-            }
-        }
+        processSources();
+    }
+
+    @Override
+    protected File getOutputDirectory()
+    {
+        return new File( project.getBuild().getDirectory(), 
+                         
BuildDirectories.BUILD_SOURCES.getBuildDirectoryName() );
+    }
+
+    @Override
+    protected File getSourceDirectory()
+    {
+        return new File( project.getBuild().getSourceDirectory() );
     }
 }

Modified: 
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestSourceProcessorMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestSourceProcessorMojo.java?rev=608765&r1=608764&r2=608765&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestSourceProcessorMojo.java
 (original)
+++ 
incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestSourceProcessorMojo.java
 Thu Jan  3 23:11:25 2008
@@ -18,20 +18,10 @@
  */
 package org.apache.maven.dotnet.plugin.compiler;
 
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.dotnet.ProgrammingLanguage;
-import org.apache.maven.dotnet.BuildDirectories;
-import org.apache.maven.project.MavenProject;
-
-import org.codehaus.plexus.util.DirectoryScanner;
-import org.codehaus.plexus.util.FileUtils;
-
 import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.ArrayList;
+
+import org.apache.maven.dotnet.BuildDirectories;
+import org.apache.maven.plugin.MojoExecutionException;
 
 /**
  * Copies test source files to target directory.
@@ -40,36 +30,10 @@
  * @phase process-test-sources
  * @description Copies source files to target directory.
  */
-
 public class TestSourceProcessorMojo
-    extends AbstractMojo
+    extends AbstractSourceProcessorMojo
 {
-    /**
-     * The maven project.
-     *
-     * @parameter expression="${project}"
-     * @required
-     */
-    private MavenProject project;
-
-    /**
-     * @parameter expression = "${includes}"
-     */
-    private String[] includes;
-
-    /**
-     * @parameter expression = "${excludes}"
-     */
-    private String[] excludes;
-
-    /**
-     * .NET Language. The default value is <code>C_SHARP</code>. Not case or 
white-space sensitive.
-     *
-     * @parameter expression="${language}" default-value = "C_SHARP"
-     * @required
-     */
-    private String language;
-
+    
     public void execute()
         throws MojoExecutionException
     {
@@ -80,75 +44,19 @@
             return;
         }
         
-        File testSourceDirectory = new File( 
project.getBuild().getTestSourceDirectory() );
-        File outputDirectory =
-            new File( project.getBuild().getDirectory(), 
BuildDirectories.TEST_SOURCES.getBuildDirectoryName() );
+        processSources();
+    }
 
-        if ( !testSourceDirectory.exists() )
-        {
-            getLog().info( "NMAVEN-904-001: No test source files to copy" );
-            return;
-        }
-        DirectoryScanner directoryScanner = new DirectoryScanner();
-        directoryScanner.setBasedir( testSourceDirectory );
-
-        List<String> excludeList = new 
ArrayList<String>(Arrays.asList(excludes));
-        List<String> includeList = new 
ArrayList<String>(Arrays.asList(includes));
-        includeList.add( "**/*." + ProgrammingLanguage.valueOf( language 
).getClassFileExtension() );
-
-        directoryScanner.setIncludes( includeList.toArray( includes ) );
-        directoryScanner.setExcludes( excludeList.toArray( excludes ) );
-        
-        directoryScanner.addDefaultExcludes();
-
-        directoryScanner.scan();
-        String[] files = directoryScanner.getIncludedFiles();
-        getLog().info( "NMAVEN-904-002: Copying test source files: From = " + 
testSourceDirectory + ",  To = " +
-            outputDirectory + ", File Count = " + files.length );
+    @Override
+    protected File getOutputDirectory()
+    {
+        return new File( project.getBuild().getDirectory(), 
+                         BuildDirectories.TEST_SOURCES.getBuildDirectoryName() 
);
+    }
 
-        super.getPluginContext().put( "TEST SOURCE_FILES_UP_TO_DATE", 
Boolean.TRUE );
-        for ( String file : files )
-        {
-            try
-            {
-                File sourceFile = new File( testSourceDirectory, file );
-                File targetFile = new File( outputDirectory, file );
-                if ( sourceFile.lastModified() > targetFile.lastModified() )
-                {
-                    super.getPluginContext().put( "TEST 
SOURCE_FILES_UP_TO_DATE", Boolean.FALSE );
-                    FileUtils.copyFile( sourceFile, targetFile );
-                    targetFile.setLastModified( System.currentTimeMillis() );
-                }
-            }
-            catch ( IOException e )
-            {
-                throw new MojoExecutionException( "NMAVEN-904-000: Unable to 
process test sources", e );
-            }
-        }
-        
-        // Update the scanner to scan the output directory, and rescan
-        directoryScanner.setBasedir(outputDirectory);
-        List<String> outputDirExcludes = new ArrayList<String>(excludeList);
-        // Ignore meta-inf, including assembly info
-        outputDirExcludes.add( "META-INF/**" );
-        directoryScanner.setExcludes( outputDirExcludes.toArray( new String[0] 
) );
-        directoryScanner.setBasedir( outputDirectory );
-        directoryScanner.scan();
-        
-       // Synchronize the target folder with the source.  Specifically delete 
the targetFile if
-        // the source file no longer exists
-        for ( String file : directoryScanner.getIncludedFiles() )
-        {
-               File sourceFile = new File( testSourceDirectory, file );
-               File targetFile = new File( outputDirectory, file );
-             
-            if ( !sourceFile.exists() && targetFile.exists() )
-            {
-               if ( !targetFile.delete() ) 
-               {
-                       getLog().warn( "Unable to delete stale target file " + 
targetFile.getPath() );
-               }
-            }
-        }
+    @Override
+    protected File getSourceDirectory()
+    {
+        return new File( project.getBuild().getTestSourceDirectory() );
     }
 }


Reply via email to