Author: tchemit Date: 2010-06-29 12:55:43 +0200 (Tue, 29 Jun 2010) New Revision: 1797 Url: http://nuiton.org/repositories/revision/maven-license-plugin/1797 Log: Evolution #730: Use mavenpom 2.2.2 Evolution #726: Use maven-helper-plugin 1.2.6 Anomalie #721: Force encoding to UTF-8 if nothing is specified Added: trunk/src/it/add-third-party/no-encoding/ trunk/src/it/add-third-party/no-encoding/invoker.properties trunk/src/it/add-third-party/no-encoding/pom.xml trunk/src/it/add-third-party/no-encoding/verify.groovy Modified: trunk/pom.xml trunk/src/main/java/org/nuiton/license/plugin/AbstractAddThirdPartyMojo.java trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseMojo.java trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseWithDescriptorMojo.java trunk/src/main/java/org/nuiton/license/plugin/CommentStyleListMojo.java trunk/src/main/java/org/nuiton/license/plugin/LicenseListMojo.java trunk/src/main/java/org/nuiton/license/plugin/UpdateFileHeaderMojo.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-06-27 06:54:16 UTC (rev 1796) +++ trunk/pom.xml 2010-06-29 10:55:43 UTC (rev 1797) @@ -34,7 +34,7 @@ <parent> <groupId>org.nuiton</groupId> <artifactId>mavenpom4redmine</artifactId> - <version>2.2.1</version> + <version>2.2.2-SNAPSHOT</version> </parent> <artifactId>maven-license-plugin</artifactId> @@ -339,11 +339,6 @@ <!-- documentation is in english then french --> <locales>en,fr</locales> - <!-- TODO Remove this while using mavenpom4redmine > 2.2 --> - <!-- in release:prepare do the release process to detect - possible errors before tagging svn --> - <arguments>-DperformRelease</arguments> - </properties> <build> @@ -424,6 +419,7 @@ <artifactId>maven-invoker-plugin</artifactId> <configuration> <pomIncludes> + <pomInclude>add-third-party/no-encoding/pom.xml</pomInclude> <pomInclude>aggregate-add-third-party/pom.xml</pomInclude> <pomInclude>add-third-party/merge-licenses/pom.xml</pomInclude> <pomInclude>add-third-party/no-deps/pom.xml</pomInclude> @@ -436,7 +432,7 @@ <localRepositoryPath>${basedir}/target/local-repo</localRepositoryPath> <settingsFile>src/it/settings.xml</settingsFile> <cloneProjectsTo>${project.build.directory}/its</cloneProjectsTo> - <debug>true</debug> + <!--<debug>true</debug>--> </configuration> <executions> <execution> Added: trunk/src/it/add-third-party/no-encoding/invoker.properties =================================================================== --- trunk/src/it/add-third-party/no-encoding/invoker.properties (rev 0) +++ trunk/src/it/add-third-party/no-encoding/invoker.properties 2010-06-29 10:55:43 UTC (rev 1797) @@ -0,0 +1,21 @@ +# A comma or space separated list of goals/phases to execute, may +# specify an empty list to execute the default goal of the IT project +invoker.goals=license:add-third-party + +# Optionally, a list of goals to run during further invocations of Maven +#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run + +# A comma or space separated list of profiles to activate +#invoker.profiles=run-all run-once + +# The value for the environment variable MAVEN_OPTS +#invoker.mavenOpts=-Dfile.encoding=UTF-16 -Xms32m -Xmx256m + +# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never" +invoker.failureBehavior=fail-at-end + +# The expected result of the build, possible values are "success" (default) and "failure" +#invoker.buildResult=success + +# A boolean value controlling the -N flag, defaults to "false" +#invoker.nonRecursive=false Property changes on: trunk/src/it/add-third-party/no-encoding/invoker.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/src/it/add-third-party/no-encoding/pom.xml =================================================================== --- trunk/src/it/add-third-party/no-encoding/pom.xml (rev 0) +++ trunk/src/it/add-third-party/no-encoding/pom.xml 2010-06-29 10:55:43 UTC (rev 1797) @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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> + + <groupId>org.nuiton.license.test</groupId> + <artifactId>add-third-party-no-encoding</artifactId> + <version>@pom.version@</version> + + <name>License Test :: add-third-party-no-encoding</name> + + <properties> + <license.generateBundle>true</license.generateBundle> + <license.verbose>true</license.verbose> + </properties> + + <dependencies> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + <version>1.1.1</version> + </dependency> + </dependencies> + <build> + + <pluginManagement> + <plugins> + + <plugin> + <groupId>org.nuiton</groupId> + <artifactId>maven-license-plugin</artifactId> + <version>@pom.version@</version> + </plugin> + </plugins> + </pluginManagement> + </build> + +</project> + + Property changes on: trunk/src/it/add-third-party/no-encoding/pom.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/src/it/add-third-party/no-encoding/verify.groovy =================================================================== --- trunk/src/it/add-third-party/no-encoding/verify.groovy (rev 0) +++ trunk/src/it/add-third-party/no-encoding/verify.groovy 2010-06-29 10:55:43 UTC (rev 1797) @@ -0,0 +1,20 @@ + +file = new File(basedir, 'target/generated-sources/license/THIRD-PARTY.txt'); +assert file.exists(); +content = file.text; +assert !content.contains( 'the project has no dependencies.' ); +assert content.contains( '(The Apache Software License, Version 2.0) Commons Logging (commons-logging:commons-logging:1.1.1 - http://commons.apache.org/logging)' ); + +file = new File(basedir, 'target/generated-sources/license/META-INF/add-third-party-no-encoding-THIRD-PARTY.txt'); +assert file.exists(); +content = file.text; +assert !content.contains( 'the project has no dependencies.' ); +assert content.contains( '(The Apache Software License, Version 2.0) Commons Logging (commons-logging:commons-logging:1.1.1 - http://commons.apache.org/logging)' ); + + +file = new File(basedir, 'build.log'); +assert file.exists(); +content = file.text; +assert content.contains( 'File encoding has not been set, using platform encoding' ); + +return true; Property changes on: trunk/src/it/add-third-party/no-encoding/verify.groovy ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: trunk/src/main/java/org/nuiton/license/plugin/AbstractAddThirdPartyMojo.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/AbstractAddThirdPartyMojo.java 2010-06-27 06:54:16 UTC (rev 1796) +++ trunk/src/main/java/org/nuiton/license/plugin/AbstractAddThirdPartyMojo.java 2010-06-29 10:55:43 UTC (rev 1797) @@ -33,6 +33,7 @@ import org.apache.maven.project.ProjectBuildingException; import org.nuiton.io.SortedProperties; import org.nuiton.plugin.PluginHelper; +import org.nuiton.plugin.PluginWithEncoding; import java.io.File; import java.io.IOException; @@ -53,7 +54,7 @@ * @author tchemit <chemit@codelutin.com> * @since 2.3 */ -public abstract class AbstractAddThirdPartyMojo extends AbstractLicenseMojo { +public abstract class AbstractAddThirdPartyMojo extends AbstractLicenseMojo implements PluginWithEncoding { /** * Repertoire de sortie des classes (classpath). @@ -156,6 +157,18 @@ */ protected boolean groupByLicense; + /** + * Encoding used to read and writes files. + * <p/> + * <b>Note:</b> If nothing is filled here, we will use the system + * property {@code file.encoding}. + * + * @parameter expression="${license.encoding}" default-value="${project.build.sourceEncoding}" + * @required + * @since 2.1 + */ + private String encoding; + private LicenseMap licenseMap; private SortedSet<MavenProject> unsafeDependencies; @@ -372,6 +385,16 @@ } } + @Override + public final String getEncoding() { + return encoding; + } + + @Override + public final void setEncoding(String encoding) { + this.encoding = encoding; + } + public boolean isGroupByLicense() { return groupByLicense; } Modified: trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseMojo.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseMojo.java 2010-06-27 06:54:16 UTC (rev 1796) +++ trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseMojo.java 2010-06-29 10:55:43 UTC (rev 1797) @@ -42,7 +42,7 @@ public abstract class AbstractLicenseMojo extends AbstractPlugin { /** - * current maven session. + * Current maven session. (used to launch certain mojo once by build). * * @parameter expression="${session}" * @required @@ -50,9 +50,9 @@ * @since 2.3 */ private MavenSession session; - + /** - * Dependance du projet. + * The reacted project. * * @parameter default-value="${project}" * @required @@ -61,22 +61,16 @@ private MavenProject project; /** - * Un flag pour activer le mode verbeux. + * Flag to activate verbose mode. + * <p/> + * <b>Note:</b> Verbose mode is always on if you starts a debug maven instance + * (says via {@code -X}). * * @parameter expression="${license.verbose}" default-value="${maven.verbose}" * @since 2.1 */ private boolean verbose; - /** - * Encoding a utiliser pour lire et ecrire les fichiers. - * - * @parameter expression="${license.encoding}" default-value="${project.build.sourceEncoding}" - * @required - * @since 2.1 - */ - private String encoding; - @Override public final MavenProject getProject() { return project; @@ -97,14 +91,6 @@ this.verbose = verbose; } - public final String getEncoding() { - return encoding; - } - - public final void setEncoding(String encoding) { - this.encoding = encoding; - } - public final MavenSession getSession() { return session; } @@ -116,6 +102,7 @@ public final long getBuildTimestamp() { return session.getStartTime().getTime(); } + protected LicenseStore createLicenseStore(String... extraResolver) throws MojoExecutionException { LicenseStore store; @@ -141,8 +128,4 @@ return store; } - protected boolean hasClassPath() { - return rejectPackaging(Packaging.pom); - } - } Modified: trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseWithDescriptorMojo.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseWithDescriptorMojo.java 2010-06-27 06:54:16 UTC (rev 1796) +++ trunk/src/main/java/org/nuiton/license/plugin/AbstractLicenseWithDescriptorMojo.java 2010-06-29 10:55:43 UTC (rev 1797) @@ -36,11 +36,16 @@ import org.nuiton.license.plugin.model.descriptor.Header; import org.nuiton.license.plugin.model.descriptor.LicenseProjectDescriptor; import org.nuiton.license.plugin.model.descriptor.io.xpp3.LicenseProjectDescriptorXpp3Reader; +import org.nuiton.plugin.PluginWithEncoding; import java.io.File; import java.io.FileReader; import java.io.IOException; -import java.util.*; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; /** * Abstract mojo which using {@link #descriptor} file and owns a @@ -49,9 +54,21 @@ * @author tchemit <chemit@codelutin.com> * @since 2.1 */ -public abstract class AbstractLicenseWithDescriptorMojo extends AbstractLicenseMojo { +public abstract class AbstractLicenseWithDescriptorMojo extends AbstractLicenseMojo implements PluginWithEncoding { /** + * Encoding used to read and writes files. + * <p/> + * <b>Note:</b> If nothing is filled here, we will use the system + * property {@code file.encoding}. + * + * @parameter expression="${license.encoding}" default-value="${project.build.sourceEncoding}" + * @required + * @since 2.1 + */ + private String encoding; + + /** * The project license descriptor file. * * @parameter expression="${license.descriptor}" default-value="src/license/project.xml" @@ -160,7 +177,7 @@ // "could not find descriptor " + descriptorFile); return; } - + getLog().info("Loading descriptor " + descriptorFile); LicenseProjectDescriptor licenseProject = null; FileReader reader = new FileReader(descriptorFile); @@ -181,6 +198,17 @@ ); } + @Override + public final String getEncoding() { + return encoding; + } + + @Override + public final void setEncoding(String encoding) { + this.encoding = encoding; + } + + public File getDescriptor() { return descriptor; } Modified: trunk/src/main/java/org/nuiton/license/plugin/CommentStyleListMojo.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/CommentStyleListMojo.java 2010-06-27 06:54:16 UTC (rev 1796) +++ trunk/src/main/java/org/nuiton/license/plugin/CommentStyleListMojo.java 2010-06-29 10:55:43 UTC (rev 1797) @@ -51,7 +51,7 @@ * @parameter expression="${detail}" * @since 2.1 */ - protected boolean detail; + private boolean detail; /** * All available header transformers. @@ -59,7 +59,7 @@ * @component role="org.nuiton.license.plugin.header.transformer.FileHeaderTransformer" * @since 2.1 */ - protected Map<String, FileHeaderTransformer> transformers; + private Map<String, FileHeaderTransformer> transformers; @Override protected void init() throws Exception { @@ -104,4 +104,20 @@ getLog().info(buffer.toString()); } + + public boolean isDetail() { + return detail; + } + + public void setDetail(boolean detail) { + this.detail = detail; + } + + public Map<String, FileHeaderTransformer> getTransformers() { + return transformers; + } + + public void setTransformers(Map<String, FileHeaderTransformer> transformers) { + this.transformers = transformers; + } } Modified: trunk/src/main/java/org/nuiton/license/plugin/LicenseListMojo.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/LicenseListMojo.java 2010-06-27 06:54:16 UTC (rev 1796) +++ trunk/src/main/java/org/nuiton/license/plugin/LicenseListMojo.java 2010-06-29 10:55:43 UTC (rev 1797) @@ -29,6 +29,7 @@ import org.apache.maven.plugin.MojoFailureException; import org.nuiton.license.plugin.model.License; import org.nuiton.license.plugin.model.LicenseStore; +import org.nuiton.plugin.PluginWithEncoding; import java.io.IOException; import java.util.Arrays; @@ -44,7 +45,7 @@ * @requiresDirectInvocation * @since 1.0.1 */ -public class LicenseListMojo extends AbstractLicenseMojo { +public class LicenseListMojo extends AbstractLicenseMojo implements PluginWithEncoding { /** * La baseURL d'un resolver de license supplementaire @@ -52,7 +53,7 @@ * @parameter expression="${extraResolver}" * @since 1.0.1 */ - protected String extraResolver; + private String extraResolver; /** * Un drapeau pour afficher aussi le contenu des license. @@ -60,8 +61,20 @@ * @parameter expression="${detail}" * @since 1.0.1 */ - protected boolean detail; + private boolean detail; + /** + * Encoding used to read and writes files. + * <p/> + * <b>Note:</b> If nothing is filled here, we will use the system + * property {@code file.encoding}. + * + * @parameter expression="${license.encoding}" default-value="${project.build.sourceEncoding}" + * @required + * @since 2.1 + */ + private String encoding; + /** store of licenses */ protected LicenseStore licenseStore; @@ -115,4 +128,29 @@ getLog().info(buffer.toString()); } + @Override + public final String getEncoding() { + return encoding; + } + + @Override + public final void setEncoding(String encoding) { + this.encoding = encoding; + } + + public String getExtraResolver() { + return extraResolver; + } + + public void setExtraResolver(String extraResolver) { + this.extraResolver = extraResolver; + } + + public boolean isDetail() { + return detail; + } + + public void setDetail(boolean detail) { + this.detail = detail; + } } Modified: trunk/src/main/java/org/nuiton/license/plugin/UpdateFileHeaderMojo.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/UpdateFileHeaderMojo.java 2010-06-27 06:54:16 UTC (rev 1796) +++ trunk/src/main/java/org/nuiton/license/plugin/UpdateFileHeaderMojo.java 2010-06-29 10:55:43 UTC (rev 1797) @@ -742,6 +742,4 @@ public void setFilter(UpdateFileHeaderFilter filter) { this.filter = filter; } - - }