Title: [116] trunk/maven2-plugin: applied paches from XDOCLET-62 & XDOCLET-62,
Revision
116
Author
ko5tik
Date
2009-01-06 14:00:14 -0600 (Tue, 06 Jan 2009)

Log Message

applied paches from XDOCLET-62 & XDOCLET-62, 
Thanks fo patches Guillaume.

Modified Paths

Diff

Modified: trunk/maven2-plugin/pom.xml (115 => 116)

--- trunk/maven2-plugin/pom.xml	2008-09-20 13:43:11 UTC (rev 115)
+++ trunk/maven2-plugin/pom.xml	2009-01-06 20:00:14 UTC (rev 116)
@@ -1,4 +1,5 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <artifactId>maven2-xdoclet2-plugin</artifactId>
     <groupId>org.codehaus.xdoclet</groupId>
@@ -33,9 +34,17 @@
             </roles>
         </developer>
     </developers>
+    <contributors>
+        <contributor>
+            <name>Guillaume Lasnier</name>
+        </contributor>
+    </contributors>
+
     <scm>
-        <connection>scm:cvs:pserver:anonym...@cvs.xdoclet.codehaus.org:/home/projects/xdoclet/scm:maven2-plugin</connection>
-        <developerConnection>scm:cvs:ext:ko5...@cvs.xdoclet.codehaus.org:/home/projects/xdoclet/scm:maven2-plugin</developerConnection>
+        <connection>scm:cvs:pserver:anonym...@cvs.xdoclet.codehaus.org:/home/projects/xdoclet/scm:maven2-plugin
+        </connection>
+        <developerConnection>scm:cvs:ext:ko5...@cvs.xdoclet.codehaus.org:/home/projects/xdoclet/scm:maven2-plugin
+        </developerConnection>
     </scm>
     <build>
         <extensions>
@@ -123,7 +132,7 @@
     </pluginRepositories>
       -->
     <distributionManagement>
-       <repository>
+        <repository>
             <id>codehaus.org</id>
             <name>Codehaus PicoContainer Repository</name>
             <url>dav:https://dav.codehaus.org/repository/xdoclet/</url>

Modified: trunk/maven2-plugin/src/main/java/org/codehaus/xdoclet/Config.java (115 => 116)

--- trunk/maven2-plugin/src/main/java/org/codehaus/xdoclet/Config.java	2008-09-20 13:43:11 UTC (rev 115)
+++ trunk/maven2-plugin/src/main/java/org/codehaus/xdoclet/Config.java	2009-01-06 20:00:14 UTC (rev 116)
@@ -13,10 +13,13 @@
  */
 public class Config {
     private boolean addToSources = true;
+    private boolean addToResources = true;    
     private List components = Collections.EMPTY_LIST;
     private String encoding = System.getProperty("file.encoding");
     private String excludes = "";
     private String includes = "**/*.java";
+    private String resourcesExcludes = "**/*.java";
+    private String resourcesIncludes = "**/*";
     private Map params = Collections.EMPTY_MAP;
 
     public List getComponents() {
@@ -35,6 +38,14 @@
         return includes;
     }
 
+    public String getResourcesExcludes() {
+        return resourcesExcludes;
+    }
+
+    public String getResourcesIncludes() {
+        return resourcesIncludes;
+    }
+
     public Map getParams() {
         return params;
     }
@@ -48,6 +59,14 @@
         this.addToSources = addToSources;
     }
 
+    public boolean isAddToResources() {
+        return addToResources;
+    }
+
+    public void setAddToResources(boolean addToResources) {
+        this.addToResources = addToResources;
+    }
+
     public void setComponents(List components) {
 		this.components = components;
 	}
@@ -64,6 +83,14 @@
         this.includes = includes;
     }
 
+    public void setResourcesExcludes(String resourcesExcludes) {
+        this.resourcesExcludes = resourcesExcludes;
+    }
+
+    public void setResourcesIncludes(String resourcesIncludes) {
+        this.resourcesIncludes = resourcesIncludes;
+    }
+
     public void setParams(Map params) {
         this.params = params;
     }
@@ -73,9 +100,12 @@
         return "Config{" +
                 ", includes=" + includes +
                 ", excludes=" + excludes +
+                ", resourcesIncludes=" + resourcesIncludes +
+                ", resourcesExcludes=" + resourcesExcludes +
                 ", encoding='" + encoding + '\'' +
                 ", addToSources='" + addToSources + '\'' +
+                ", addToResources='" + addToResources + '\'' +
                 ", params=" + params +
                 '}';
     }
-}
\ No newline at end of file
+}

Modified: trunk/maven2-plugin/src/main/java/org/codehaus/xdoclet/XDocletMojo.java (115 => 116)

--- trunk/maven2-plugin/src/main/java/org/codehaus/xdoclet/XDocletMojo.java	2008-09-20 13:43:11 UTC (rev 115)
+++ trunk/maven2-plugin/src/main/java/org/codehaus/xdoclet/XDocletMojo.java	2009-01-06 20:00:14 UTC (rev 116)
@@ -13,8 +13,10 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter;
+import org.codehaus.plexus.util.DirectoryScanner;
+import org.codehaus.plexus.util.FileUtils;
 import org.generama.JellyTemplateEngine;
-import org.generama.VelocityTemplateEngine;
+import org.generama.MergeableVelocityTemplateEngine;
 import org.generama.defaults.FileWriterMapper;
 import org.generama.velocity.ClasspathFileResourceVelocityComponent;
 import org.nanocontainer.DefaultNanoContainer;
@@ -32,8 +34,11 @@
 import org.picocontainer.defaults.SimpleReference;
 import org.xdoclet.QDoxMetadataProvider;
 
+import java.io.File;
+import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.UndeclaredThrowableException;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -76,7 +81,7 @@
 			pico.registerComponentImplementation(QDoxMetadataProvider.class);
 			pico.registerComponentImplementation(FileWriterMapper.class);
 			pico.registerComponentImplementation(JellyTemplateEngine.class);
-			pico.registerComponentImplementation(VelocityTemplateEngine.class);
+			pico.registerComponentImplementation(MergeableVelocityTemplateEngine.class);
 
 			Maven2SourceProvider sourceProvider = new Maven2SourceProvider(
 					config, compileSourceRoots, dependenciesSourcesURLs);
@@ -179,6 +184,20 @@
 	 */
 	private String sourceArtifacts;
 
+    /**
+     * The output directory into which to copy the sources.
+     * 
+     * @parameter _expression_="${project.build.outputDirectory}/generated-resources/xdoclet"
+     */
+    private String sourcesOuputDirectory;
+
+    /**
+     * The output directory into which to copy the resources.
+     * 
+     * @parameter _expression_="${project.build.outputDirectory}/generated-resources/xdoclet"
+     */
+    private String resourcesOutputDirectory;
+
 	public void execute() throws MojoExecutionException, MojoFailureException {
 		final List dependenciesSourcesURLs = new ArrayList();
 
@@ -240,17 +259,31 @@
 						+ e.getMessage(), e);
 			}
 
-			if (config.isAddToSources()) {
-				// TODO if java-generating plugin
-				getLog().debug("Adding " + outputPath + " to compiler path");
-				project.addCompileSourceRoot(outputPath);
-				// TODO else
-				final Resource resource = new Resource();
-				getLog().debug("Adding " + outputPath + " to resources");
-				resource.setDirectory(outputPath);
-				resource.addInclude("**/*");
-				project.addResource(resource);
-			}
+            final File outpathFile = new File(outputPath);
+            if (outpathFile.exists()) {
+                // TODO if java-generating plugin
+                if (config.isAddToSources()) {
+                    if (!outputPath.equals(sourcesOuputDirectory)) {
+                        copyOutput(outpathFile, new File(sourcesOuputDirectory), config.getExcludes(), config.getIncludes());
+                    }
+
+                    getLog().debug("Adding " + sourcesOuputDirectory + " to compiler path");
+                    project.addCompileSourceRoot(sourcesOuputDirectory);
+                    // TODO else
+                }
+                if (config.isAddToResources()) {
+                    if (!outputPath.equals(resourcesOutputDirectory)) {
+                        copyOutput(outpathFile, new File(resourcesOutputDirectory), config.getResourcesExcludes(), config.getResourcesIncludes());
+                    }
+
+                    final Resource resource = new Resource();
+                    getLog().debug("Adding " + resourcesOutputDirectory + " to resources");
+                    resource.setDirectory(resourcesOutputDirectory);
+                    resource.addInclude(config.getResourcesIncludes());
+                    resource.addExclude(config.getResourcesExcludes());
+                    project.addResource(resource);
+                }
+            }
 		}
 	}
 
@@ -270,7 +303,36 @@
 		return out;
 	}
 
-	public void setConfigs(List configs) {
+    void copyOutput(File inputDir, File outputDir, String excludes, String includes) throws MojoExecutionException {
+        DirectoryScanner scanner = new DirectoryScanner();
+        scanner.setExcludes(Util.toTrimmedStringArray(excludes));
+        scanner.setIncludes(Util.toTrimmedStringArray(includes));
+        scanner.setBasedir(inputDir);
+        scanner.addDefaultExcludes();
+        scanner.scan();
+        List includedFiles = Arrays.asList(scanner.getIncludedFiles());
+        for (Iterator j = includedFiles.iterator(); j.hasNext();) {
+            String name = (String) j.next();
+
+            File source = new File(inputDir, name);
+
+            File destinationFile = new File(outputDir, name);
+
+            if (!destinationFile.getParentFile().exists()) {
+                destinationFile.getParentFile().mkdirs();
+            }
+
+            try {
+                if (destinationFile.lastModified() < source.lastModified()) {
+                    FileUtils.copyFile(source, destinationFile);
+                }
+            } catch (IOException e) {
+                throw new MojoExecutionException("Error copying resources", e);
+            }
+        }
+    }
+
+    public void setConfigs(List configs) {
 		this.configs = configs;
 	}
 


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to