4 Commits
Author SHA1 Message Date
brian.long 46b55e0ddc v1.0.1 pom 2021-04-14 09:26:58 -04:00
brian.long 1adf5afc87 Merge branch 'develop' into stable 2021-04-14 09:19:32 -04:00
brian.long 9f58601815 supporting "negate" for matching 2021-04-14 09:19:07 -04:00
brian.long 49ef3dd8a2 supporting null (non-existing) properties and text 2021-04-14 09:18:38 -04:00
5 changed files with 39 additions and 40 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
<groupId>com.inteligr8</groupId>
<artifactId>regex-maven-plugin</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
<packaging>maven-plugin</packaging>
<name>A Maven plugin for regex operations</name>
@@ -39,6 +39,9 @@ public abstract class AbstractMatchMojo extends AbstractRegexMojo {
@Parameter( property = "patterns", required = true )
protected List<String> patterns;
@Parameter( property = "negate", required = true, defaultValue = "false" )
protected boolean negate = false;
private List<Pattern> compiledPatterns;
@@ -47,6 +50,8 @@ public abstract class AbstractMatchMojo extends AbstractRegexMojo {
boolean matches = this.matches(text);
if (matches)
this.getLog().debug("Matches!");
if (props == null)
props = this.project.getProperties();
props.setProperty(newPropertyName, String.valueOf(matches));
}
@@ -79,30 +84,28 @@ public abstract class AbstractMatchMojo extends AbstractRegexMojo {
if (this.allowMultiLineMatch)
return this.matches(strbuilder.toString());
return false;
return this.negate;
}
protected boolean matches(String text) {
if (text == null)
text = "";
for (Pattern pattern : this.compiledPatterns) {
this.getLog().debug("Applying regex pattern: " + pattern);
if (text == null) {
// TODO we want to capture this somehow
this.getLog().debug("Operating on value: " + text);
Matcher matcher = pattern.matcher(text);
if (this.allowPartialMatch) {
if (matcher.find())
return !this.negate;
} else {
this.getLog().debug("Operating on value: " + text);
Matcher matcher = pattern.matcher(text);
if (this.allowPartialMatch) {
if (matcher.find())
return true;
} else {
if (matcher.matches())
return true;
}
if (matcher.matches())
return !this.negate;
}
}
return false;
return this.negate;
}
@Override
@@ -82,12 +82,10 @@ public abstract class AbstractRegexMojo extends AbstractMojo {
this.getLog().debug("Finding property: " + propertyName);
Properties props = this.propResolver.resolveScope(propertyName);
if (props == null) {
this.getLog().info("Property not found: " + propertyName);
return;
}
if (props == null)
this.getLog().debug("Property not found: " + propertyName);
String propertyValue = props.getProperty(propertyName);
String propertyValue = props == null ? null : props.getProperty(propertyName);
this.executeOnText(props, propertyValue, newPropertyName);
}
@@ -45,11 +45,15 @@ public abstract class AbstractReplaceMojo extends AbstractRegexMojo {
@Override
protected void executeOnText(Properties props, String text, String newPropertyName) {
if (text == null)
text = "";
String originalText = text;
text = this.replaceAll(text);
if (this.getLog().isDebugEnabled() && !text.equals(originalText))
this.getLog().debug("Manipulated value: " + text);
if (props == null)
props = this.project.getProperties();
props.setProperty(newPropertyName, text);
}
@@ -106,20 +110,17 @@ public abstract class AbstractReplaceMojo extends AbstractRegexMojo {
}
protected String replaceFirst(String text) {
if (text == null)
text = "";
if (this.getLog().isDebugEnabled())
this.getLog().debug("replace first: " + text.length());
for (Pair<Pattern, String> regex : this.compiledRegexes) {
this.getLog().debug("Applying regex pattern: " + regex.getLeft());
if (text == null) {
// TODO we want to capture this somehow
} else {
this.getLog().debug("Operating on value: " + text);
Matcher matcher = regex.getLeft().matcher(text);
text = matcher.replaceFirst(regex.getRight());
}
this.getLog().debug("Operating on value: " + text);
Matcher matcher = regex.getLeft().matcher(text);
text = matcher.replaceFirst(regex.getRight());
}
return text;
@@ -180,20 +181,17 @@ 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 (Pair<Pattern, String> regex : this.compiledRegexes) {
this.getLog().debug("Applying regex pattern: " + regex.getLeft());
if (text == null) {
// TODO we want to capture this somehow
} else {
this.getLog().debug("Operating on value: " + text);
Matcher matcher = regex.getLeft().matcher(text);
text = matcher.replaceAll(regex.getRight());
}
this.getLog().debug("Operating on value: " + text);
Matcher matcher = regex.getLeft().matcher(text);
text = matcher.replaceAll(regex.getRight());
}
return text;
@@ -69,7 +69,7 @@ public class MatchFileContentMojo extends AbstractMatchMojo {
throw new MojoExecutionException("Execution failed due to an I/O related issue", ie);
}
return false;
return this.negate;
}
@Override