Update of /var/cvs/applications/app-base/plugin/src/main/java/org/mmbase/mojo
In directory 
james.mmbase.org:/tmp/cvs-serv9529/plugin/src/main/java/org/mmbase/mojo

Modified Files:
        InstallResources.java 
Log Message:
some code to also create the 'INDEX' files


See also: 
http://cvs.mmbase.org/viewcvs/applications/app-base/plugin/src/main/java/org/mmbase/mojo


Index: InstallResources.java
===================================================================
RCS file: 
/var/cvs/applications/app-base/plugin/src/main/java/org/mmbase/mojo/InstallResources.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- InstallResources.java       16 Feb 2009 21:26:55 -0000      1.1
+++ InstallResources.java       16 Feb 2009 22:53:00 -0000      1.2
@@ -21,7 +21,6 @@
 public class InstallResources extends AbstractMojo {
 
 
-
     /**
      * @parameter default-value="${project}"
      * @required
@@ -46,15 +45,68 @@
             }
         };
 
+    private FilenameFilter xml = new FilenameFilter() {
+            public boolean accept(File dir, String name) {
+                return  name.endsWith(".xml");
+            }
+        };
+    private FilenameFilter dirs = new FilenameFilter() {
+            public boolean accept(File dir, String name) {
+                return  filter.accept(dir, name) && new File(dir, 
name).isDirectory();
+            }
+        };
+
+    protected void createIndex(File dir, File dest) throws IOException {
+        if (dir.isDirectory()) {
+            File index = new File(dir, "INDEX");
+            if (! index.exists()) {
+                File destIndex = new File(dest, "INDEX");
+                dest.mkdirs();
+                getLog().info("Generating " + destIndex);
+                BufferedWriter w = new BufferedWriter(new 
OutputStreamWriter(new FileOutputStream(destIndex), "UTF-8"));
+                String files[] = dir.list(xml);
+                for(int i = 0; i < files.length; i++) {
+                    File file = new File(dir, files[i]);
+                    w.write(files[i]);
+                    w.newLine();
+                }
+                String subdirs[] = dir.list(dirs);
+                for(int i = 0; i < subdirs.length; i++) {
+                    w.write(subdirs[i]);
+                    w.newLine();
+                    createIndex(new File(dir, subdirs[i]), new File(dest, 
subdirs[i]));
+                }
+                w.close();
+
+            }
+        }
+    }
+
     /**
      * @see org.apache.maven.plugin.Mojo#execute()
      */
     public void execute() throws MojoExecutionException, MojoFailureException {
-        if (project.getPackaging().equals("war")) {
+        String packaging  = project.getPackaging();
+        if (packaging.equals("war") || packaging.equals("jar")) {
+            try {
+                File configDir = new File(project.getBasedir(), "config");
+
+                File dest      = new File(project.getBuild().getDirectory(),
+                                          "generated-resources" + 
File.separator + "org" + File.separator + "mmbase" + File.separator + "config");
+                if (configDir.isDirectory()) {
+                    createIndex(new File(configDir, "modules"), new File(dest, 
"modules"));
+                    createIndex(new File(configDir, "components"), new 
File(dest, "components"));
+                    createIndex(new File(configDir, "builders"), new 
File(dest, "builders"));
+                }
+            } catch(IOException ioe) {
+                throw new MojoExecutionException(ioe.getMessage(), ioe);
+            }
+        }
+        if (packaging.equals("war")) {
             try {
                 File webapp = new File(project.getBuild().getDirectory(), 
project.getBuild().getFinalName());
                 File templates = new File(project.getBasedir(), "templates");
-                if (templates.exists()) {
+                if (templates.isDirectory()) {
                     String templatesTarget = (String) 
project.getProperties().get("templatesTarget");
                     if(templatesTarget == null) {
                         templatesTarget = "mmbase/" + 
project.getArtifactId().substring("mmbase-".length());
@@ -66,7 +118,7 @@
                     getLog().info("Copied " + result[0]+ " file. " + result[1] 
+ " files were not modified");
                 }
                 File blocks = new File(project.getBasedir(), "blocks");
-                if (blocks.exists()) {
+                if (blocks.isDirectory()) {
                     String blocksTarget = (String) 
project.getProperties().get("blocksTarget");
                     if (blocksTarget == null) {
                         blocksTarget = "mmbase" + File.separator + "blocks" + 
File.separator + project.getArtifactId().substring("mmbase-".length());
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to