Author: tchemit Date: 2010-10-17 00:48:32 +0200 (Sun, 17 Oct 2010) New Revision: 1847 Url: http://nuiton.org/repositories/revision/maven-license-plugin/1847 Log: Make extension override easier and fully fonctional Modified: trunk/pom.xml trunk/src/main/java/org/nuiton/license/plugin/UpdateFileHeaderMojo.java trunk/src/main/java/org/nuiton/license/plugin/header/transformer/AbstractFileHeaderTransformer.java trunk/src/main/java/org/nuiton/license/plugin/header/transformer/AptFileHeaderTransformer.java trunk/src/main/java/org/nuiton/license/plugin/header/transformer/FileHeaderTransformer.java trunk/src/main/java/org/nuiton/license/plugin/header/transformer/JavaFileHeaderTransformer.java trunk/src/main/java/org/nuiton/license/plugin/header/transformer/PropertiesFileHeaderTransformer.java trunk/src/main/java/org/nuiton/license/plugin/header/transformer/RstFileHeaderTransformer.java trunk/src/main/java/org/nuiton/license/plugin/header/transformer/XmlFileHeaderTransformer.java trunk/src/test/java/org/nuiton/license/plugin/header/transformer/AbstractFileHeaderTransformerTest.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-10-16 17:05:40 UTC (rev 1846) +++ trunk/pom.xml 2010-10-16 22:48:32 UTC (rev 1847) @@ -437,21 +437,21 @@ <artifactId>maven-invoker-plugin</artifactId> <configuration> <pomIncludes> - <!--<pomInclude>ano-816/pom.xml</pomInclude>--> - <!--<pomInclude>ano-947/pom.xml</pomInclude>--> + <pomInclude>ano-816/pom.xml</pomInclude> + <pomInclude>ano-947/pom.xml</pomInclude> <pomInclude>evol-952/pom.xml</pomInclude> - <!--<pomInclude>evol-818/excluded-included/pom.xml</pomInclude>--> - <!--<pomInclude>evol-818/multimodule-filters/pom.xml</pomInclude>--> - <!--<pomInclude>evol-884/update-project-license/pom.xml</pomInclude>--> - <!--<pomInclude>evol-884/update-file-header/pom.xml</pomInclude>--> - <!--<pomInclude>evol-884/update-file-header-specific/pom.xml</pomInclude>--> - <!--<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>--> - <!--<pomInclude>add-third-party/with-deps/pom.xml</pomInclude>--> - <!--<pomInclude>update-file-header/pom.xml</pomInclude>--> - <!--<pomInclude>update-project-license/pom.xml</pomInclude>--> + <pomInclude>evol-818/excluded-included/pom.xml</pomInclude> + <pomInclude>evol-818/multimodule-filters/pom.xml</pomInclude> + <pomInclude>evol-884/update-project-license/pom.xml</pomInclude> + <pomInclude>evol-884/update-file-header/pom.xml</pomInclude> + <pomInclude>evol-884/update-file-header-specific/pom.xml</pomInclude> + <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> + <pomInclude>add-third-party/with-deps/pom.xml</pomInclude> + <pomInclude>update-file-header/pom.xml</pomInclude> + <pomInclude>update-project-license/pom.xml</pomInclude> </pomIncludes> <postBuildHookScript>verify</postBuildHookScript> <localRepositoryPath>${basedir}/target/local-repo</localRepositoryPath> Modified: trunk/src/main/java/org/nuiton/license/plugin/UpdateFileHeaderMojo.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/UpdateFileHeaderMojo.java 2010-10-16 17:05:40 UTC (rev 1846) +++ trunk/src/main/java/org/nuiton/license/plugin/UpdateFileHeaderMojo.java 2010-10-16 22:48:32 UTC (rev 1847) @@ -460,9 +460,19 @@ extensionToCommentStyle = new TreeMap<String, String>(); - // always clean accepted extension on all transformer - for (FileHeaderTransformer transformer : transformers.values()) { - transformer.resetAcceptedExtensions(); + // add default extensions from header transformers + for (Map.Entry<String, FileHeaderTransformer> entry : transformers.entrySet()) { + String commentStyle = entry.getKey(); + FileHeaderTransformer transformer = entry.getValue(); + + String[] extensions = transformer.getDefaultAcceptedExtensions(); + for (String extension : extensions) { + if (isVerbose()) { + getLog().info("Associate extension " + extension + + " to comment style " + commentStyle); + } + extensionToCommentStyle.put(extension, commentStyle); + } } if (extraExtensions != null) { @@ -470,48 +480,23 @@ // fill extra extensions for each transformer for (Map.Entry<String, String> entry : extraExtensions.entrySet()) { String extension = entry.getKey(); + if (extensionToCommentStyle.containsKey(extension)) { - String commentStyle = entry.getValue(); - FileHeaderTransformer transformer = getTransformer(commentStyle); - if (transformer.acceptExtension(extension)) { - - // this extension is already accepted + // override existing extension mapping getLog().warn("The extension " + extension + " is already accepted for comment style " + - commentStyle + ", skip it."); - continue; + extensionToCommentStyle.get(extension)); } - transformer.addAcceptedExtension(extension); + String commentStyle = entry.getValue(); + + // check transformer exists + getTransformer(commentStyle); + if (isVerbose()) { getLog().info("Associate extension '" + extension + "' to comment style '" + commentStyle + "'"); } - } - } - - // fill the cache of known extension now : in that way we can know - // directly while looking for a comment style from an extension in later - // code - for (Map.Entry<String, FileHeaderTransformer> entry : - transformers.entrySet()) { - String commentStyle = entry.getKey(); - FileHeaderTransformer transformer = entry.getValue(); - String[] extensions = transformer.getAcceptedExtensions(); - for (String extension : extensions) { - - // check that extension is not in conflict with another one - if (extensionToCommentStyle.containsKey(extension)) { - String conflictCommentStyle = - extensionToCommentStyle.get(extension); - throw new MojoFailureException( - "The extension " + extension + - " associated with the comment style " + - commentStyle + " was already associated with " + - "another comment style : " + conflictCommentStyle); - } - - // can safely add this extension extensionToCommentStyle.put(extension, commentStyle); } } Modified: trunk/src/main/java/org/nuiton/license/plugin/header/transformer/AbstractFileHeaderTransformer.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/header/transformer/AbstractFileHeaderTransformer.java 2010-10-16 17:05:40 UTC (rev 1846) +++ trunk/src/main/java/org/nuiton/license/plugin/header/transformer/AbstractFileHeaderTransformer.java 2010-10-16 22:48:32 UTC (rev 1847) @@ -27,8 +27,6 @@ import org.nuiton.license.plugin.header.FileHeader; -import java.util.ArrayList; -import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -81,9 +79,6 @@ /** comment line prefix (to add for header content) */ protected String commentLinePrefix; - /** List of accepted extensions. */ - protected List<String> acceptedExtensions; - protected AbstractFileHeaderTransformer(String name, String description, String commentStartTag, @@ -91,7 +86,6 @@ String commentLinePrefix) { this.name = name; this.description = description; - acceptedExtensions = new ArrayList<String>(); // checks comment start tag is different from comment prefix if (commentStartTag.equals(commentLinePrefix)) { @@ -128,35 +122,6 @@ } @Override - public boolean acceptExtension(String fileExtension) { - - // always test on a safe trimed lower case extension - String safeExtension = fileExtension.trim().toLowerCase(); - return acceptedExtensions.contains(safeExtension); - } - - @Override - public void resetAcceptedExtensions() { - acceptedExtensions.clear(); - addAcceptedExtension(getDefaultAcceptedExtension()); - } - - @Override - public void addAcceptedExtension(String extension) { - // keep trim low case extension - String safeExtension = extension.trim().toLowerCase(); - - if (!acceptedExtensions.contains(safeExtension)) { - acceptedExtensions.add(safeExtension); - } - } - - @Override - public String[] getAcceptedExtensions() { - return acceptedExtensions.toArray(new String[acceptedExtensions.size()]); - } - - @Override public void setDescription(String description) { this.description = description; } Modified: trunk/src/main/java/org/nuiton/license/plugin/header/transformer/AptFileHeaderTransformer.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/header/transformer/AptFileHeaderTransformer.java 2010-10-16 17:05:40 UTC (rev 1846) +++ trunk/src/main/java/org/nuiton/license/plugin/header/transformer/AptFileHeaderTransformer.java 2010-10-16 22:48:32 UTC (rev 1847) @@ -54,7 +54,7 @@ } @Override - public String getDefaultAcceptedExtension() { - return "apt"; + public String[] getDefaultAcceptedExtensions() { + return new String[]{"apt"}; } } Modified: trunk/src/main/java/org/nuiton/license/plugin/header/transformer/FileHeaderTransformer.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/header/transformer/FileHeaderTransformer.java 2010-10-16 17:05:40 UTC (rev 1846) +++ trunk/src/main/java/org/nuiton/license/plugin/header/transformer/FileHeaderTransformer.java 2010-10-16 22:48:32 UTC (rev 1847) @@ -70,50 +70,13 @@ String getDescription(); /** - * Returns the default accepted extension for the transformer. + * Get the default accepted extensions for this transformer. * - * @return the default accepted extension for the transformer. - * @since 2.4.1 + * @return the default accepted extensions. */ - String getDefaultAcceptedExtension(); + String[] getDefaultAcceptedExtensions(); /** - * Tests if the given file extension can be apply to this transformer. - * - * @param fileExtension the file extension to test. - * @return {@code true} if extension is accepted for the given extension, - * {@code false} otherwise. - * @since 2.4.1 - */ - boolean acceptExtension(String fileExtension); - - /** - * Reset the accepted extensions, says that after invoking this method only - * the default extension associated with the transformer will be accepted. - * - * @see #getDefaultAcceptedExtension() - * @see #acceptExtension(String) - * @since 2.4.1 - */ - void resetAcceptedExtensions(); - - /** - * Add a new accepted extension. - * - * @param extension the new accepted extension to add. - * @since 2.4.1 - */ - void addAcceptedExtension(String extension); - - /** - * Returns all accepted extensions for this transformer. - * - * @return all aceepted extensions for this transformer. - * @since 2.4.1 - */ - String[] getAcceptedExtensions(); - - /** * Obtains the process tag which indicates the begin of the header content. * <p/> * By default, (says if you do not explicitly invoke the Modified: trunk/src/main/java/org/nuiton/license/plugin/header/transformer/JavaFileHeaderTransformer.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/header/transformer/JavaFileHeaderTransformer.java 2010-10-16 17:05:40 UTC (rev 1846) +++ trunk/src/main/java/org/nuiton/license/plugin/header/transformer/JavaFileHeaderTransformer.java 2010-10-16 22:48:32 UTC (rev 1847) @@ -54,7 +54,8 @@ } @Override - public String getDefaultAcceptedExtension() { - return "java"; + public String[] getDefaultAcceptedExtensions() { + return new String[]{"java"}; } + } Modified: trunk/src/main/java/org/nuiton/license/plugin/header/transformer/PropertiesFileHeaderTransformer.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/header/transformer/PropertiesFileHeaderTransformer.java 2010-10-16 17:05:40 UTC (rev 1846) +++ trunk/src/main/java/org/nuiton/license/plugin/header/transformer/PropertiesFileHeaderTransformer.java 2010-10-16 22:48:32 UTC (rev 1847) @@ -54,7 +54,7 @@ } @Override - public String getDefaultAcceptedExtension() { - return "properties"; + public String[] getDefaultAcceptedExtensions() { + return new String[]{"properties"}; } } Modified: trunk/src/main/java/org/nuiton/license/plugin/header/transformer/RstFileHeaderTransformer.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/header/transformer/RstFileHeaderTransformer.java 2010-10-16 17:05:40 UTC (rev 1846) +++ trunk/src/main/java/org/nuiton/license/plugin/header/transformer/RstFileHeaderTransformer.java 2010-10-16 22:48:32 UTC (rev 1847) @@ -54,7 +54,7 @@ } @Override - public String getDefaultAcceptedExtension() { - return "rst"; + public String[] getDefaultAcceptedExtensions() { + return new String[]{"rst"}; } } Modified: trunk/src/main/java/org/nuiton/license/plugin/header/transformer/XmlFileHeaderTransformer.java =================================================================== --- trunk/src/main/java/org/nuiton/license/plugin/header/transformer/XmlFileHeaderTransformer.java 2010-10-16 17:05:40 UTC (rev 1846) +++ trunk/src/main/java/org/nuiton/license/plugin/header/transformer/XmlFileHeaderTransformer.java 2010-10-16 22:48:32 UTC (rev 1847) @@ -55,6 +55,11 @@ } @Override + public String[] getDefaultAcceptedExtensions() { + return new String[]{"xml", "html", "jaxx"}; + } + + @Override public String addHeader(String header, String content) { String result; @@ -85,9 +90,4 @@ } return result; } - - @Override - public String getDefaultAcceptedExtension() { - return "xml"; - } } Modified: trunk/src/test/java/org/nuiton/license/plugin/header/transformer/AbstractFileHeaderTransformerTest.java =================================================================== --- trunk/src/test/java/org/nuiton/license/plugin/header/transformer/AbstractFileHeaderTransformerTest.java 2010-10-16 17:05:40 UTC (rev 1846) +++ trunk/src/test/java/org/nuiton/license/plugin/header/transformer/AbstractFileHeaderTransformerTest.java 2010-10-16 22:48:32 UTC (rev 1847) @@ -87,8 +87,8 @@ new AbstractFileHeaderTransformer("name", "description", "commentPrefix", "commentEndtag", "commentPrefix") { @Override - public String getDefaultAcceptedExtension() { - return getName(); + public String[] getDefaultAcceptedExtensions() { + return new String[]{getName()}; } }; } @@ -97,9 +97,10 @@ public void testIllegalTransformer2() throws Exception { new AbstractFileHeaderTransformer("name", "description", "commentstartTag", "commentPrefix", "commentPrefix") { + @Override - public String getDefaultAcceptedExtension() { - return getName(); + public String[] getDefaultAcceptedExtensions() { + return new String[]{getName()}; } }; }