Commit 3499a717 authored by Brian Long's avatar Brian Long
Browse files

added verbose output option

parent 036a672b
Loading
Loading
Loading
Loading
+36 −29
Original line number Diff line number Diff line
@@ -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.
+2 −0
Original line number Diff line number Diff line
@@ -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
+3 −3
Original line number Diff line number Diff line
@@ -160,17 +160,17 @@
								</requireFileChecksum>
								<requireFileChecksum>
									<file>${project.build.directory}/noreplace-one/folder1/file12.txt</file>
									<checksum>925a6e3bd25cdd61695aa55d008ab4d2</checksum>
									<checksum>725d3a15f631dda5b058357129fd17fd</checksum>
									<type>md5</type>
								</requireFileChecksum>
								<requireFileChecksum>
									<file>${project.build.directory}/replace-linestart/file12.txt</file>
									<checksum>fb1f2b040970526fc99b1339f22465f1</checksum>
									<checksum>791882a340c18da89b524d7735cc085c</checksum>
									<type>md5</type>
								</requireFileChecksum>
								<requireFileChecksum>
									<file>${basedir}/folder1/file12.txt</file>
									<checksum>a7f509275e16ff57cd7756cdca70822a</checksum>
									<checksum>6fb82d67ec64b04df220a11adfba81a3</checksum>
									<type>md5</type>
								</requireFileChecksum>
							</rules>
+12 −4
Original line number Diff line number Diff line
@@ -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,13 +99,19 @@ 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;
    			}
    		}
    	}

    	return this.negate;
    }
+3 −0
Original line number Diff line number Diff line
@@ -46,6 +46,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) {
        	this.getLog().debug("Skipped execution");
Loading