You are viewing a plain text version of this content. The canonical link for it is here.
Posted to npanday-commits@incubator.apache.org by br...@apache.org on 2014/08/22 01:47:11 UTC

svn commit: r1619648 - in /incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen: EmbeddedResource.java ExistingResxGenerator.java

Author: brett
Date: Fri Aug 22 01:47:11 2014
New Revision: 1619648

URL: http://svn.apache.org/r1619648
Log:
[NPANDAY-227] Improve Implementation on handling of Resources

Modified:
    incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen/EmbeddedResource.java
    incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen/ExistingResxGenerator.java

Modified: incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen/EmbeddedResource.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen/EmbeddedResource.java?rev=1619648&r1=1619647&r2=1619648&view=diff
==============================================================================
--- incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen/EmbeddedResource.java (original)
+++ incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen/EmbeddedResource.java Fri Aug 22 01:47:11 2014
@@ -21,11 +21,9 @@ package npanday.plugin.resgen;
 
 
 /**
- * Webreference Pojo
- * 
  * @author Shein Ernacio
   */
-public class EmbeddedResource 
+public class EmbeddedResource
 {
 	public String getName()
     {

Modified: incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen/ExistingResxGenerator.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen/ExistingResxGenerator.java?rev=1619648&r1=1619647&r2=1619648&view=diff
==============================================================================
--- incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen/ExistingResxGenerator.java (original)
+++ incubator/npanday/trunk/plugins/maven-resgen-plugin/src/main/java/npanday/plugin/resgen/ExistingResxGenerator.java Fri Aug 22 01:47:11 2014
@@ -23,15 +23,19 @@ import npanday.executable.ExecutableRequ
 import npanday.executable.ExecutionException;
 import npanday.registry.RepositoryRegistry;
 import npanday.vendor.SettingsUtil;
+import org.apache.maven.model.Resource;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 
@@ -98,6 +102,14 @@ public class ExistingResxGenerator exten
      * @parameter expression="${netHome}"
      */
     private File netHome;
+
+    /**
+     * Embedded resource directories. If none are specified, and no embeddedResources are present, then the default is
+     * all files in src/main/resgen
+     *
+     * @parameter
+     */
+    private List<Resource> resources = new ArrayList<Resource>();
     
     public static final String ASSEMBLY_RESOURCES_DIR = "assembly-resources";
 
@@ -141,25 +153,35 @@ public class ExistingResxGenerator exten
                 )
                     .execute();
             }
-          
-            if(embeddedResources.length == 0)
-            {
-               String sourceDirectory = project.getBasedir().getPath();
-        	   String[] resourceFilenames  = FileUtils.getFilesFromExtension(sourceDirectory, new String[]{"resx"});
-        	
-               for(String resourceFilename : resourceFilenames)
-               {
-                  getLog().debug("processing " + resourceFilename);
-            	  File file = new File(resourceFilename);
-            	  String name = resourceFilename.substring(sourceDirectory.length() + 1).replace('\\', '.');
-            	  name = project.getArtifactId() + "." + name.substring(0, name.lastIndexOf('.'));
-
-            	  commands = getCommands(file.getAbsoluteFile(), resourceDirectory, name);
-                   netExecutableFactory.getExecutable(
-                       new ExecutableRequirement( vendor, null, frameworkVersion, "RESGEN" ), commands, netHome
-                   )
-                       .execute();
-              }
+
+            List<Resource> resources = this.resources;
+            if (resources.isEmpty() && embeddedResources.length == 0) {
+                Resource resource = new Resource();
+                resource.setDirectory(new File(project.getBasedir(), "src/main/resgen").getAbsolutePath());
+                resources.add(resource);
+            }
+
+            for (Resource resource : resources) {
+                String sourceDirectory = resource.getDirectory();
+                String includes = StringUtils.join(resource.getIncludes().iterator(), ",");
+                String excludes = StringUtils.join(resource.getExcludes().iterator(), ",");
+
+                File directory = new File(sourceDirectory);
+                if (directory.exists()) {
+                    List resourceFilenames = FileUtils.getFiles(directory, includes, excludes);
+
+                    for(File file : (List<File>)resourceFilenames)
+                    {
+                        getLog().debug("processing " + file);
+                        String name = file.getPath().substring(sourceDirectory.length() + 1).replace(File.separatorChar, '.');
+                        name = project.getArtifactId() + "." + name.substring(0, name.lastIndexOf('.'));
+
+                        commands = getCommands(file.getAbsoluteFile(), resourceDirectory, name);
+                        netExecutableFactory.getExecutable(
+                                new ExecutableRequirement( vendor, null, frameworkVersion, "RESGEN" ), commands, netHome
+                        ).execute();
+                    }
+                }
             }
         }
         catch ( ExecutionException e )
@@ -170,7 +192,9 @@ public class ExistingResxGenerator exten
         catch ( PlatformUnsupportedException e )
         {
             throw new MojoExecutionException( "NPANDAY-1501-003: Platform Unsupported", e );
-        }        
+        } catch (IOException e) {
+            throw new MojoExecutionException( "NPANDAY-1501-004: Error finding resource files", e );
+        }
     }
     
     private List<String> getCommands( File sourceFile, String resourceDirectory)    throws MojoExecutionException