diff --git a/README.md b/README.md
index b3d2a29..f126d3d 100644
--- a/README.md
+++ b/README.md
@@ -58,52 +58,59 @@ This is a maven plugin that provides various regular expression based goals to M
| `copy-file` | A convenience goal that copies all files/folders specified in a source path to a target path. |
| `move-file` | A convenience goal that moves all files/folders specified in a source path to a target path. |
+### Common Configuration Properties
+
+| Configuration Property | Data Type | Required | Default | Description |
+| ---------------------- |:-----------:|:--------:| ------- | ----------- |
+| `allowMultiLineMatch` | `boolean` | | `false` | A value of `true` allows for multi-line matching. This takes substantially more memory/time to process. |
+| `charset` | `string` | | `utf-8` | |
+| `skip` | `boolean` | | `false` | |
+| `verbose` | `boolean` | | `false` | |
+
### Goal: `replace-file`
+Manipulates all the contents in the specified files based the specified regular expression replacements.
+
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:-----------:|:--------:| ------- | ----------- |
| `chunkSize` | `int` | | `1024` | The streaming buffer/chunk size in bytes, while evaluating the regular expressions. Adjust for classic speed/memory trade-off. Be aware that files are processed line-by-line, unless `allowMultiLineMatch` is set to `true`. |
| `filesets` | `FileSet[]` | Yes | | Executes against these files. |
| `regexes` | `Regex[]` | Yes | | Applies these regular expressions and replacement text against those files. |
-| `allowMultiLineMatch` | `boolean` | | `false` | A value of `true` allows for multi-line matching. This takes substantially more memory/time to process. |
-| `charset` | `string` | | `utf-8` | |
-| `skip` | `boolean` | | `false` | |
### Goal: `replace-properties`
+Copies and replaces the values of the specified properties based on the specified regular expression replacements; storing the changed values in new properties.
+
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:----------:|:--------:| -------- | ----------- |
| `properties` | `String[]` | Yes | | Executes against these properties. |
| `newPropertySuffix` | `String` | | `-regex` | All evaluated properties will be copied to new properties with the same property name plus this suffix. |
| `regexes` | `Regex[]` | Yes | | Applies these regular expressions and replacement text against those files. |
-| `allowMultiLineMatch` | `boolean` | | `false` | A value of `true` allows for multi-line matching. This takes substantially more memory/time to process. |
-| `charset` | `string` | | `utf-8` | |
-| `skip` | `boolean` | | `false` | |
### Goal: `replace-property`
+Copies and replaces the value of the specified property based on the specified regular expression replacements; storing the changed value in a new property.
+
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:----------:|:--------:| ------- | ----------- |
| `property` | `String` | Yes | | Executes against this property. |
| `newProperty` | `String` | | | The evaluated property will be copied to this property name. If not specified, it will be the same name as the `property` with a `-regex` suffix. |
| `regexes` | `Regex[]` | Yes | | Applies these regular expressions and replacement text against those files. |
-| `allowMultiLineMatch` | `boolean` | | `false` | A value of `true` allows for multi-line matching. This takes substantially more memory/time to process. |
-| `charset` | `string` | | `utf-8` | |
-| `skip` | `boolean` | | `false` | |
### Goal: `replace-text`
+Replaces the specified text based on the specified regular expression replacements; storing the result in a property.
+
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:----------:|:--------:| ------- | ----------- |
| `text` | `String` | Yes | | Execute against this text. |
| `newProperty` | `String` | Yes | | The evaluated text will be copied to this property name. |
| `regexes` | `Regex[]` | Yes | | Applies these regular expressions and replacement text against those files. |
-| `allowMultiLineMatch` | `boolean` | | `false` | A value of `true` allows for multi-line matching. This takes substantially more memory/time to process. |
-| `charset` | `string` | | `utf-8` | |
-| `skip` | `boolean` | | `false` | |
### Goal: `match-file`
+Searches the contents of the specified files based using the specified regular expressions; storing the result of the search in a property.
+
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:-----------:|:--------:| ------- | ----------- |
| `chunkSize` | `int` | | `1024` | The streaming buffer/chunk size in bytes, while evaluating the regular expressions. Adjust for classic speed/memory trade-off. Be aware that files are processed line-by-line, unless `allowMultiLineMatch` is set to `true`. |
@@ -112,12 +119,11 @@ This is a maven plugin that provides various regular expression based goals to M
| `patterns` | `String[]` | Yes | | Evaluates these regular expressions against those files. |
| `allowPartialMatch` | `boolean` | | `true` | A value of `true` allows for partial matching, rather than exact line-by-line matching. |
| `negate` | `boolean` | | `false` | A value of `true` will reverse the `true`/`false` on the resultant property value. |
-| `allowMultiLineMatch` | `boolean` | | `false` | A value of `true` allows for multi-line matching. This takes substantially more memory/time to process. |
-| `charset` | `string` | | `utf-8` | |
-| `skip` | `boolean` | | `false` | |
### Goal: `match-filename`
+Checks the filenames of the specified files based using the specified regular expressions; storing the result in a property.
+
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:-----------:|:--------:| ------- | ----------- |
| `sourceDirectory` | `File` | Yes | | Executes against this file. |
@@ -125,11 +131,11 @@ This is a maven plugin that provides various regular expression based goals to M
| `patterns` | `String[]` | Yes | | Evaluates these regular expressions the file. |
| `allowPartialMatch` | `boolean` | | `true` | A value of `true` allows for partial matching, rather than exact filename matching. |
| `negate` | `boolean` | | `false` | A value of `true` will reverse the `true`/`false` on the resultant property value. |
-| `charset` | `string` | | `utf-8` | |
-| `skip` | `boolean` | | `false` | |
### Goal: `match-properties`
+Checks the values of the specified properties based on the specified regular expressions; storing the results in new properties.
+
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:----------:|:--------:| -------- | ----------- |
| `properties` | `String[]` | Yes | | Executes against these properties. |
@@ -137,12 +143,11 @@ This is a maven plugin that provides various regular expression based goals to M
| `patterns` | `String[]` | Yes | | Evaluates these regular expressions against those properties' values. |
| `allowPartialMatch` | `boolean` | | `true` | A value of `true` allows for partial matching, rather than exact matching. |
| `negate` | `boolean` | | `false` | A value of `true` will reverse the `true`/`false` on the resultant property value. |
-| `allowMultiLineMatch` | `boolean` | | `false` | A value of `true` allows for multi-line matching. Very rare for property evaluation. |
-| `charset` | `string` | | `utf-8` | |
-| `skip` | `boolean` | | `false` | |
### Goal: `match-property`
+Checks the value of the specified property based on the specified regular expressions; storing the result in a new property.
+
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:----------:|:--------:| ------- | ----------- |
| `property` | `String` | Yes | | Executes against this property. |
@@ -150,12 +155,11 @@ This is a maven plugin that provides various regular expression based goals to M
| `patterns` | `String[]` | Yes | | Evaluates these regular expressions against the property value. |
| `allowPartialMatch` | `boolean` | | `true` | A value of `true` allows for partial matching, rather than exact matching. |
| `negate` | `boolean` | | `false` | A value of `true` will reverse the `true`/`false` on the resultant property value. |
-| `allowMultiLineMatch` | `boolean` | | `false` | A value of `true` allows for multi-line matching. Very rare for property evaluation. |
-| `charset` | `string` | | `utf-8` | |
-| `skip` | `boolean` | | `false` | |
### Goal: `match-text`
+Checks the specified text based on the specified regular expressions; storing the result in a property.
+
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:----------:|:--------:| ------- | ----------- |
| `text` | `String` | Yes | | Execute against this text. |
@@ -163,24 +167,27 @@ This is a maven plugin that provides various regular expression based goals to M
| `patterns` | `String[]` | Yes | | Evaluates these regular expressions against the property value. |
| `allowPartialMatch` | `boolean` | | `true` | A value of `true` allows for partial matching, rather than exact matching. |
| `negate` | `boolean` | | `false` | A value of `true` will reverse the `true`/`false` on the resultant property value. |
-| `allowMultiLineMatch` | `boolean` | | `false` | A value of `true` allows for multi-line matching. Very rare for property evaluation. |
-| `charset` | `string` | | `utf-8` | |
-| `skip` | `boolean` | | `false` | |
### Goal: `copy-file`
+Copies all the files in the specified source directory while applying the specified regular expression replacements to their contents; storing the files in the specified target directory.
+
| Configuration Property | Data Type | Required | Default | Description |
-| ---------------------- |:----------:|:--------:| --------- | ----------- |
+| ---------------------- |:---------:|:--------:| ---------- | ----------- |
| `sourceDirectory` | `File` | | ${basedir} | Copy all files from this directory. |
| `targetDirectory` | `File` | | ${basedir} | Copy all files to this directory. |
+| `regexes` | `Regex[]` | Yes | | Applies these regular expressions and replacement text against those files. |
| `overwrite` | `boolean` | | `true` | |
### Goal: `move-file`
+Moves all the files from the specified source directory while applying the specified regular expression replacements to their contents; storing the files in the specified target directory.
+
| Configuration Property | Data Type | Required | Default | Description |
-| ---------------------- |:----------:|:--------:| --------- | ----------- |
+| ---------------------- |:---------:|:--------:| ---------- | ----------- |
| `sourceDirectory` | `File` | | ${basedir} | Move all files from this directory. |
| `targetDirectory` | `File` | | ${basedir} | Move all files to this directory. |
+| `regexes` | `Regex[]` | Yes | | Applies these regular expressions and replacement text against those files. |
| `overwrite` | `boolean` | | `true` | |
## Model
@@ -193,4 +200,4 @@ This is a maven plugin that provides various regular expression based goals to M
| `replacement` | `String` | | `` | A regular expression replacement string. |
| `previousPattern` | `String` | | | A regular expression pattern to look back against, removing everything down to and including the pattern. |
-The `previousPattern` allows for you to match some text and remove everything before the match, up to the `prevoiusPattern. This is useful when matching a method and removing it and all its annotations.
+The `previousPattern` allows for you to match some text and remove everything before the match, up to the `prevoiusPattern`. This is useful when matching a method and removing it and all its annotations. If the `previousPattern` has no match, it will not remove any text before the primary match.
diff --git a/src/it/replace-file-content/folder1/file12.txt b/src/it/replace-file-content/folder1/file12.txt
index ffe73c8..b644d4b 100644
--- a/src/it/replace-file-content/folder1/file12.txt
+++ b/src/it/replace-file-content/folder1/file12.txt
@@ -3,4 +3,6 @@ this is a multi line test file.
it is supposed to emulate larger files and multiline pattern matching.
+sometimes this doesnŐt work with unicode characters.
+
good luck!
\ No newline at end of file
diff --git a/src/it/replace-file-content/pom.xml b/src/it/replace-file-content/pom.xml
index 8041c62..c88e586 100644
--- a/src/it/replace-file-content/pom.xml
+++ b/src/it/replace-file-content/pom.xml
@@ -160,17 +160,17 @@
${project.build.directory}/noreplace-one/folder1/file12.txt
- 925a6e3bd25cdd61695aa55d008ab4d2
+ 725d3a15f631dda5b058357129fd17fd
md5
${project.build.directory}/replace-linestart/file12.txt
- fb1f2b040970526fc99b1339f22465f1
+ 791882a340c18da89b524d7735cc085c
md5
${basedir}/folder1/file12.txt
- a7f509275e16ff57cd7756cdca70822a
+ 6fb82d67ec64b04df220a11adfba81a3
md5
diff --git a/src/main/java/com/inteligr8/maven/StandardProjectPropertyResolver.java b/src/main/java/com/inteligr8/maven/StandardProjectPropertyResolver.java
index 8e95447..0418c5d 100644
--- a/src/main/java/com/inteligr8/maven/StandardProjectPropertyResolver.java
+++ b/src/main/java/com/inteligr8/maven/StandardProjectPropertyResolver.java
@@ -21,9 +21,10 @@ import org.apache.maven.model.Profile;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
-@Component(role = ProjectPropertyResolver.class)
-public class StandardProjectPropertyResolver implements ProjectPropertyResolver {
+@Component(role = ProjectPropertyResolver.class, instantiationStrategy = "per-lookup")
+public class StandardProjectPropertyResolver extends AbstractLogEnabled implements ProjectPropertyResolver {
@Requirement
private MavenSession session;
@@ -51,34 +52,38 @@ public class StandardProjectPropertyResolver implements ProjectPropertyResolver
private Properties findPropertiesObject(String key) {
// search the user/cli properties first
Properties props = this.session.getUserProperties();
- if (props.containsKey(key))
+ if (props.containsKey(key)) {
+ this.getLogger().debug("Found in session user properties: " + key);
return props;
-
- // search the profiles next; in order (FIXME maybe we should go backwards?)
- for (Profile profile : this.project.getActiveProfiles()) {
- props = profile.getProperties();
- if (props.containsKey(key))
- return props;
}
- // now look at the project props
- props = this.project.getProperties();
- if (props.containsKey(key))
- return props;
-
- // now recursively look up the parent project props
- MavenProject ancestor = this.project.getParent();
- while (ancestor != null) {
- props = ancestor.getProperties();
- if (props.containsKey(key))
- return props;
- ancestor = ancestor.getParent();
- }
+ MavenProject ancestor = this.project;
+ while (ancestor != null) {
+ // search the profiles next; in order (FIXME maybe we should go backwards?)
+ for (Profile profile : ancestor.getActiveProfiles()) {
+ props = profile.getProperties();
+ if (props.containsKey(key)) {
+ this.getLogger().debug("Found in project profile properties: " + ancestor.getArtifact() + ": " + profile.getId() + ": " + key);
+ return props;
+ }
+ }
+
+ // now look at the project props
+ props = ancestor.getProperties();
+ if (props.containsKey(key)) {
+ this.getLogger().debug("Found in project properties: " + ancestor.getArtifact() + ": " + key);
+ return props;
+ }
+
+ ancestor = ancestor.getParent();
+ }
// search the system properties last (FIXME is this right?)
props = this.session.getSystemProperties();
- if (props.containsKey(key))
+ if (props.containsKey(key)) {
+ this.getLogger().debug("Found in system properties: " + key);
return props;
+ }
return null;
}
diff --git a/src/main/java/com/inteligr8/maven/regex/AbstractMatchMojo.java b/src/main/java/com/inteligr8/maven/regex/AbstractMatchMojo.java
index 883d8ae..24af244 100644
--- a/src/main/java/com/inteligr8/maven/regex/AbstractMatchMojo.java
+++ b/src/main/java/com/inteligr8/maven/regex/AbstractMatchMojo.java
@@ -48,8 +48,10 @@ public abstract class AbstractMatchMojo extends AbstractRegexMojo {
@Override
protected void executeOnText(Properties props, String text, String newPropertyName) {
boolean matches = this.matches(text);
- if (matches)
- this.getLog().debug("Matches!");
+ if (this.verbose)
+ this.getLog().info("Setting property: " + newPropertyName + ": " + matches);
+ else if (matches)
+ this.getLog().info("Matches!");
if (props == null)
props = this.project.getProperties();
props.setProperty(newPropertyName, String.valueOf(matches));
@@ -97,11 +99,17 @@ public abstract class AbstractMatchMojo extends AbstractRegexMojo {
Matcher matcher = pattern.matcher(text);
if (this.allowPartialMatch) {
- if (matcher.find())
+ if (matcher.find()) {
+ if (this.verbose)
+ this.getLog().info("Pattern '" + pattern + "' matches text: " + text);
return !this.negate;
+ }
} else {
- if (matcher.matches())
+ if (matcher.matches()) {
+ if (this.verbose)
+ this.getLog().info("Pattern '" + pattern + "' matches text: " + text);
return !this.negate;
+ }
}
}
diff --git a/src/main/java/com/inteligr8/maven/regex/AbstractRegexMojo.java b/src/main/java/com/inteligr8/maven/regex/AbstractRegexMojo.java
index e8db16b..c45e134 100644
--- a/src/main/java/com/inteligr8/maven/regex/AbstractRegexMojo.java
+++ b/src/main/java/com/inteligr8/maven/regex/AbstractRegexMojo.java
@@ -45,6 +45,9 @@ public abstract class AbstractRegexMojo extends AbstractMojo {
@Parameter( property = "skip", required = true, defaultValue = "false" )
protected boolean skip = false;
+
+ @Parameter( property = "verbose", required = true, defaultValue = "false" )
+ protected boolean verbose = false;
public final void execute() throws MojoExecutionException, MojoFailureException {
if (this.skip) {
diff --git a/src/main/java/com/inteligr8/maven/regex/AbstractReplaceMojo.java b/src/main/java/com/inteligr8/maven/regex/AbstractReplaceMojo.java
index 8e95148..0527dd3 100644
--- a/src/main/java/com/inteligr8/maven/regex/AbstractReplaceMojo.java
+++ b/src/main/java/com/inteligr8/maven/regex/AbstractReplaceMojo.java
@@ -24,7 +24,6 @@ import java.nio.file.StandardCopyOption;
import java.nio.file.StandardOpenOption;
import java.util.LinkedList;
import java.util.List;
-import java.util.ListIterator;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -42,7 +41,7 @@ import com.inteligr8.nio.DelimitedReadableByteChannel;
public abstract class AbstractReplaceMojo extends AbstractRegexMojo {
@Parameter( property = "regexes", required = true )
- protected List regexes;
+ protected Regex[] regexes;
// Pattern does not implement hashCode, so not using a Map
private List> compiledRegexes;
@@ -53,9 +52,13 @@ public abstract class AbstractReplaceMojo extends AbstractRegexMojo {
text = "";
String originalText = text;
text = this.replaceAll(text);
-
- if (this.getLog().isDebugEnabled() && !text.equals(originalText))
- this.getLog().debug("Manipulated value: " + text);
+
+ if (!text.equals(originalText)) {
+ if (this.verbose)
+ this.getLog().info("Setting property: " + newPropertyName + ": " + text);
+ else if (this.getLog().isDebugEnabled())
+ this.getLog().debug("Manipulated value: " + text);
+ }
if (props == null)
props = this.project.getProperties();
props.setProperty(newPropertyName, text);
@@ -205,8 +208,6 @@ public abstract class AbstractReplaceMojo extends AbstractRegexMojo {
protected String replaceAll(String text) {
if (text == null)
text = "";
- if (this.getLog().isDebugEnabled())
- this.getLog().debug("replace all: " + text.length());
for (Triple regex : this.compiledRegexes) {
this.getLog().debug("Applying regex pattern: " + regex.getLeft());
@@ -214,13 +215,27 @@ public abstract class AbstractReplaceMojo extends AbstractRegexMojo {
Matcher matcher = regex.getLeft().matcher(text);
if (regex.getRight() == null) {
- text = matcher.replaceAll(regex.getMiddle());
+ String newtext = matcher.replaceAll(regex.getMiddle());
+ if (this.verbose)
+ this.getLog().info("Pattern '" + regex.getLeft() + "' matches text: " + text + "; replaced with: " + newtext);
+ text = newtext;
} else while (matcher.find()) {
Integer previousMatchStart = this.findLastMatchIndex(regex.getRight(), text.substring(0, matcher.start()));
- text = text.substring(0, previousMatchStart) + text.substring(matcher.start());
+ if (previousMatchStart == null) {
+ // the previous pattern matches nothing; ignore
+ } else {
+ String newtext = text.substring(0, previousMatchStart) + text.substring(matcher.start());
+ if (this.verbose)
+ this.getLog().info("Pattern '" + regex.getRight() + "' matches text: " + text + "; chopped until next pattern: " + text);
+ text = newtext;
+
+ matcher = regex.getLeft().matcher(text);
+ }
- matcher = regex.getLeft().matcher(text);
- text = matcher.replaceFirst(regex.getMiddle());
+ String newtext = matcher.replaceFirst(regex.getMiddle());
+ if (this.verbose)
+ this.getLog().info("Pattern '" + regex.getLeft() + "' matches text: " + text + "; replaced with: " + newtext);
+ text = newtext;
}
}
@@ -240,7 +255,7 @@ public abstract class AbstractReplaceMojo extends AbstractRegexMojo {
protected void validateParamsPreNormalization() throws MojoFailureException {
super.validateParamsPreNormalization();
- if (this.regexes == null)
+ if (this.regexes == null || this.regexes.length == 0)
throw new MojoFailureException("A 'regexes' element is required");
}
@@ -248,22 +263,15 @@ public abstract class AbstractReplaceMojo extends AbstractRegexMojo {
protected void normalizeParameters() throws MojoFailureException {
super.normalizeParameters();
- ListIterator r = this.regexes.listIterator();
- while (r.hasNext()) {
- Regex regex = r.next();
- if (regex == null) {
- r.remove();
- } else {
- regex.normalize();
- }
- }
+ for (Regex regex : this.regexes)
+ regex.normalize();
}
@Override
protected void validateParamsPostNormalization() throws MojoFailureException {
super.validateParamsPostNormalization();
- if (this.regexes.isEmpty())
+ if (this.regexes == null || this.regexes.length == 0)
throw new MojoFailureException("At least one 'regexes' element is required");
this.compiledRegexes = new LinkedList<>();
diff --git a/src/main/java/com/inteligr8/maven/regex/CopyFileMojo.java b/src/main/java/com/inteligr8/maven/regex/CopyFileMojo.java
index 438eaaf..5f56c77 100644
--- a/src/main/java/com/inteligr8/maven/regex/CopyFileMojo.java
+++ b/src/main/java/com/inteligr8/maven/regex/CopyFileMojo.java
@@ -33,6 +33,12 @@ public class CopyFileMojo extends AbstractFileMojo {
} else {
Files.copy(sourcePath, targetPath);
}
+
+ if (this.verbose) {
+ this.getLog().info("Copied " + sourcePath + " to " + targetPath);
+ } else {
+ this.getLog().info("Copied " + sourcePath.getFileName() + " to " + targetPath);
+ }
}
}
diff --git a/src/main/java/com/inteligr8/maven/regex/MatchFileContentMojo.java b/src/main/java/com/inteligr8/maven/regex/MatchFileContentMojo.java
index bbe438c..2a59c62 100644
--- a/src/main/java/com/inteligr8/maven/regex/MatchFileContentMojo.java
+++ b/src/main/java/com/inteligr8/maven/regex/MatchFileContentMojo.java
@@ -47,7 +47,9 @@ public class MatchFileContentMojo extends AbstractMatchMojo {
this.getLog().debug("Executing file regex match");
boolean matches = this.matchesContentInFileSet();
- if (matches)
+ if (this.verbose)
+ this.getLog().info("Setting property: " + this.newProperty + ": " + matches);
+ else if (matches)
this.getLog().info("Matches!");
this.project.getProperties().setProperty(this.newProperty, String.valueOf(matches));
}
@@ -64,8 +66,11 @@ public class MatchFileContentMojo extends AbstractMatchMojo {
for (String filePathAndName : filePathsAndNames) {
Path file = baseInputPath.resolve(filePathAndName);
if (!Files.isDirectory(file))
- if (this.matches(file, this.chunkSize))
+ if (this.matches(file, this.chunkSize)) {
+ if (this.verbose)
+ this.getLog().info("A pattern matches file: " + file);
return true;
+ }
}
}
} catch (IOException ie) {
diff --git a/src/main/java/com/inteligr8/maven/regex/MatchFilenameMojo.java b/src/main/java/com/inteligr8/maven/regex/MatchFilenameMojo.java
index c201a0f..b540699 100644
--- a/src/main/java/com/inteligr8/maven/regex/MatchFilenameMojo.java
+++ b/src/main/java/com/inteligr8/maven/regex/MatchFilenameMojo.java
@@ -67,8 +67,11 @@ public class MatchFilenameMojo extends AbstractMatchMojo {
if (!Files.isDirectory(file)) {
getLog().debug("Visiting file: " + file);
- if (matches(basepath.relativize(file).toString()))
+ if (matches(basepath.relativize(file).toString())) {
+ if (MatchFilenameMojo.this.verbose)
+ MatchFilenameMojo.this.getLog().info("A pattern matches filename: " + file);
matches.setTrue();
+ }
}
return matches.isTrue() ? FileVisitResult.TERMINATE : FileVisitResult.CONTINUE;
}
@@ -81,8 +84,10 @@ public class MatchFilenameMojo extends AbstractMatchMojo {
} catch (IOException ie) {
throw new MojoExecutionException(ie.getMessage(), ie);
}
-
- if (matches.booleanValue())
+
+ if (this.verbose)
+ this.getLog().info("Setting property: " + this.newProperty + ": " + matches);
+ else if (matches.booleanValue())
this.getLog().info("Matches!");
this.project.getProperties().setProperty(this.newProperty, matches.toString());
}
diff --git a/src/main/java/com/inteligr8/maven/regex/MoveFileMojo.java b/src/main/java/com/inteligr8/maven/regex/MoveFileMojo.java
index e00273b..5146578 100644
--- a/src/main/java/com/inteligr8/maven/regex/MoveFileMojo.java
+++ b/src/main/java/com/inteligr8/maven/regex/MoveFileMojo.java
@@ -33,6 +33,12 @@ public class MoveFileMojo extends AbstractFileMojo {
} else {
Files.move(sourcePath, targetPath);
}
+
+ if (this.verbose) {
+ this.getLog().info("Moved " + sourcePath + " to " + targetPath);
+ } else {
+ this.getLog().info("Moved " + sourcePath.getFileName() + " to " + targetPath);
+ }
}
}
diff --git a/src/main/java/com/inteligr8/maven/regex/ReplaceFileContentMojo.java b/src/main/java/com/inteligr8/maven/regex/ReplaceFileContentMojo.java
index c5530e6..e6b4814 100644
--- a/src/main/java/com/inteligr8/maven/regex/ReplaceFileContentMojo.java
+++ b/src/main/java/com/inteligr8/maven/regex/ReplaceFileContentMojo.java
@@ -62,8 +62,13 @@ public class ReplaceFileContentMojo extends AbstractReplaceMojo {
if (!Files.exists(tofile.getParent()))
Files.createDirectories(tofile.getParent());
- if (!Files.isDirectory(file))
- didReplace = this.replaceAll(file, tofile, this.chunkSize) || didReplace;
+ if (!Files.isDirectory(file)) {
+ if (this.replaceAll(file, tofile, this.chunkSize)) {
+ if (this.verbose)
+ this.getLog().info("A pattern replaced in file: " + file + " => " + tofile);
+ didReplace = true;
+ }
+ }
}
}
} catch (IOException ie) {