- 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: