You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by se...@apache.org on 2013/06/25 02:51:04 UTC
svn commit: r1496315 -
/maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java
Author: sebb
Date: Tue Jun 25 00:51:03 2013
New Revision: 1496315
URL: http://svn.apache.org/r1496315
Log:
Allow list of digests to be provided on command-line
Allow extension name to be overridden
Modified:
maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java
Modified: maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java?rev=1496315&r1=1496314&r2=1496315&view=diff
==============================================================================
--- maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java (original)
+++ maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java Tue Jun 25 00:51:03 2013
@@ -69,10 +69,19 @@ public class DigestMojo extends Abstract
private String files;
/**
+ * List of digests (algorithms) to create, comma-separated (intended for command-line usage).
+ * Overrides algorithms; uses same syntax
+ */
+ @Parameter (property="maven.digest.digests")
+ private String digests;
+
+ /**
* The list of algorithm names with which to create digests.
* If none specified, the default is {@code MD5} and {@code SHA1}.
* By default the file extension is assumed to be the algorithm name
* converted to lower-case, and any "-" characters removed.
+ * The extension name can be provided by suffixing the algorithm name
+ * with ">" followed by the extension, for example: "SHA-1>sha".
*/
@Parameter
private Set<String> algorithms;
@@ -87,8 +96,15 @@ public class DigestMojo extends Abstract
String files[] = scanForSources();
Log log = getLog();
if (files.length == 0) {
- log.warn("No files found. Please configure at least one <include> item or use -Ddigest.files");
+ log.warn("No files found. Please configure at least one <include> item or use -Dmaven.digest.files");
} else {
+ if (digests != null && digests.length() > 0) {
+ String [] digest = digests.split(",");
+ algorithms = new HashSet<String>(digest.length);
+ for (String d : digest) {
+ algorithms.add(d);
+ }
+ }
if (algorithms == null || algorithms.size() == 0) {
algorithms = new HashSet<String>(2);
algorithms.add("MD5");
@@ -97,7 +113,7 @@ public class DigestMojo extends Abstract
try {
for(String file : files) {
for(String algorithm : algorithms) {
- String[] parts = algorithm.split("|");
+ String[] parts = algorithm.split(">");
String extension;
if (parts.length == 2) {
algorithm = parts[0];
@@ -126,10 +142,12 @@ public class DigestMojo extends Abstract
}
private void createDigest(String algorithm, String extension, String file) throws Exception {
+ // Unfortunately DigestUtils.getDigest is not public
+ // Do this before opening file in case not found
+ MessageDigest digest = MessageDigest.getInstance(algorithm);
FileInputStream is = new FileInputStream(file);
PrintWriter pw = new PrintWriter(file+extension, "UTF-8");
- // Unfortunately DigestUtils.getDigest is not public
- pw.print(digestHex(MessageDigest.getInstance(algorithm), is));
+ pw.print(digestHex(digest, is));
if (appendFilename) {
pw.println(" *" + file);
} else {
Re: svn commit: r1496315 - /maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java
Posted by Olivier Lamy <ol...@apache.org>.
Great.
Quick note have a look at
http://maven.apache.org/developers/conventions/code.html
:-)
2013/6/25 <se...@apache.org>:
> Author: sebb
> Date: Tue Jun 25 00:51:03 2013
> New Revision: 1496315
>
> URL: http://svn.apache.org/r1496315
> Log:
> Allow list of digests to be provided on command-line
> Allow extension name to be overridden
>
> Modified:
> maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java
>
> Modified: maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java
> URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java?rev=1496315&r1=1496314&r2=1496315&view=diff
> ==============================================================================
> --- maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java (original)
> +++ maven/sandbox/trunk/plugins/maven-digest-plugin/src/main/java/org/apache/maven/plugins/digest/DigestMojo.java Tue Jun 25 00:51:03 2013
> @@ -69,10 +69,19 @@ public class DigestMojo extends Abstract
> private String files;
>
> /**
> + * List of digests (algorithms) to create, comma-separated (intended for command-line usage).
> + * Overrides algorithms; uses same syntax
> + */
> + @Parameter (property="maven.digest.digests")
> + private String digests;
> +
> + /**
> * The list of algorithm names with which to create digests.
> * If none specified, the default is {@code MD5} and {@code SHA1}.
> * By default the file extension is assumed to be the algorithm name
> * converted to lower-case, and any "-" characters removed.
> + * The extension name can be provided by suffixing the algorithm name
> + * with ">" followed by the extension, for example: "SHA-1>sha".
> */
> @Parameter
> private Set<String> algorithms;
> @@ -87,8 +96,15 @@ public class DigestMojo extends Abstract
> String files[] = scanForSources();
> Log log = getLog();
> if (files.length == 0) {
> - log.warn("No files found. Please configure at least one <include> item or use -Ddigest.files");
> + log.warn("No files found. Please configure at least one <include> item or use -Dmaven.digest.files");
> } else {
> + if (digests != null && digests.length() > 0) {
> + String [] digest = digests.split(",");
> + algorithms = new HashSet<String>(digest.length);
> + for (String d : digest) {
> + algorithms.add(d);
> + }
> + }
> if (algorithms == null || algorithms.size() == 0) {
> algorithms = new HashSet<String>(2);
> algorithms.add("MD5");
> @@ -97,7 +113,7 @@ public class DigestMojo extends Abstract
> try {
> for(String file : files) {
> for(String algorithm : algorithms) {
> - String[] parts = algorithm.split("|");
> + String[] parts = algorithm.split(">");
> String extension;
> if (parts.length == 2) {
> algorithm = parts[0];
> @@ -126,10 +142,12 @@ public class DigestMojo extends Abstract
> }
>
> private void createDigest(String algorithm, String extension, String file) throws Exception {
> + // Unfortunately DigestUtils.getDigest is not public
> + // Do this before opening file in case not found
> + MessageDigest digest = MessageDigest.getInstance(algorithm);
> FileInputStream is = new FileInputStream(file);
> PrintWriter pw = new PrintWriter(file+extension, "UTF-8");
> - // Unfortunately DigestUtils.getDigest is not public
> - pw.print(digestHex(MessageDigest.getInstance(algorithm), is));
> + pw.print(digestHex(digest, is));
> if (appendFilename) {
> pw.println(" *" + file);
> } else {
>
>
--
Olivier Lamy
Ecetera: http://ecetera.com.au
http://twitter.com/olamy | http://linkedin.com/in/olamy
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org