You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2023/01/13 15:46:50 UTC
[maven-enforcer] branch master updated: [MENFORCER-458] Move Require Property,Environment to new API
This is an automated email from the ASF dual-hosted git repository.
sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-enforcer.git
The following commit(s) were added to refs/heads/master by this push:
new 5e7c61e [MENFORCER-458] Move Require Property,Environment to new API
5e7c61e is described below
commit 5e7c61eca1590ae9ab005f087ab46dbb734175c7
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Thu Jan 12 20:18:12 2023 +0100
[MENFORCER-458] Move Require Property,Environment to new API
---
.../property}/AbstractPropertyEnforcerRule.java | 17 +++----
.../property}/RequireEnvironmentVariable.java | 39 +++++++--------
.../rules/property}/RequireProperty.java | 42 ++++++++++------
.../src/site/apt/requireEnvironmentVariable.apt.vm | 19 +++++---
enforcer-rules/src/site/apt/requireProperty.apt.vm | 8 ++--
.../property}/TestRequireEnvironmentVariable.java | 32 ++++++-------
.../rules/property}/TestRequireProperty.java | 48 +++++++++++--------
.../projects/require-environment-variable/pom.xml | 56 ++++++++++++++++++++++
.../require-environment-variable/verify.groovy | 21 ++++++++
.../src/it/projects/require-property/verify.groovy | 20 ++++++++
10 files changed, 207 insertions(+), 95 deletions(-)
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractPropertyEnforcerRule.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/property/AbstractPropertyEnforcerRule.java
similarity index 87%
rename from enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractPropertyEnforcerRule.java
rename to enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/property/AbstractPropertyEnforcerRule.java
index 1072ddd..4fd10dd 100755
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractPropertyEnforcerRule.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/property/AbstractPropertyEnforcerRule.java
@@ -16,10 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.property;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
-import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
+import org.apache.maven.enforcer.rules.AbstractStandardEnforcerRule;
/**
* Abstract enforcer rule that give a foundation to validate properties from multiple sources.
@@ -27,7 +27,7 @@ import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
* @author Paul Gier
* @author <a href='mailto:marvin[at]marvinformatics[dot]com'>Marvin Froeder</a>
*/
-public abstract class AbstractPropertyEnforcerRule extends AbstractNonCacheableEnforcerRule {
+abstract class AbstractPropertyEnforcerRule extends AbstractStandardEnforcerRule {
/**
* Match the property value to a given regular expression. Defaults to <code>null</code> (any value is ok).
@@ -45,10 +45,6 @@ public abstract class AbstractPropertyEnforcerRule extends AbstractNonCacheableE
*/
private String regexMessage = null;
- public AbstractPropertyEnforcerRule() {
- super();
- }
-
/**
* Set the property value to a given regular expression. Defaults to <code>null</code> (any value is ok).
*
@@ -86,8 +82,8 @@ public abstract class AbstractPropertyEnforcerRule extends AbstractNonCacheableE
}
@Override
- public void execute(EnforcerRuleHelper helper) throws EnforcerRuleException {
- Object propValue = resolveValue(helper);
+ public void execute() throws EnforcerRuleException {
+ Object propValue = resolveValue();
// Check that the property is not null or empty string
if (propValue == null) {
@@ -123,8 +119,7 @@ public abstract class AbstractPropertyEnforcerRule extends AbstractNonCacheableE
/**
* Resolves the property value
*
- * @param helper
* @throws EnforcerRuleException
*/
- protected abstract Object resolveValue(EnforcerRuleHelper helper) throws EnforcerRuleException;
+ protected abstract Object resolveValue() throws EnforcerRuleException;
}
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireEnvironmentVariable.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/property/RequireEnvironmentVariable.java
similarity index 64%
rename from enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireEnvironmentVariable.java
rename to enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/property/RequireEnvironmentVariable.java
index 4ad9380..14c8389 100755
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireEnvironmentVariable.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/property/RequireEnvironmentVariable.java
@@ -16,17 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.property;
-import org.apache.maven.enforcer.rule.api.EnforcerRule;
-import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
+import javax.inject.Named;
/**
* This rule checks that certain environment variable is set.
*
* @author <a href='mailto:marvin[at]marvinformatics[dot]com'>Marvin Froeder</a>
*/
-public class RequireEnvironmentVariable extends AbstractPropertyEnforcerRule {
+@Named("requireEnvironmentVariable")
+public final class RequireEnvironmentVariable extends AbstractPropertyEnforcerRule {
/**
* Specify the required variable.
@@ -39,36 +39,22 @@ public class RequireEnvironmentVariable extends AbstractPropertyEnforcerRule {
* @see #setVariableName(String)
* @see #getVariableName()
*/
- public final void setVariableName(String variableName) {
+ public void setVariableName(String variableName) {
this.variableName = variableName;
}
- public final String getVariableName() {
+ public String getVariableName() {
return variableName;
}
@Override
- public String resolveValue(EnforcerRuleHelper helper) {
- String envValue = System.getenv(variableName);
- return envValue;
- }
-
- @Override
- public boolean isCacheable() {
- // environment variables won't change while maven is on the run
- return true;
- }
-
- @Override
- public boolean isResultValid(EnforcerRule cachedRule) {
- // this rule shall always have the same result, since environment
- // variables are set before maven is launched
- return true;
+ public String resolveValue() {
+ return System.getenv(variableName);
}
@Override
public String getCacheId() {
- return variableName;
+ return String.valueOf(toString().hashCode());
}
@Override
@@ -80,4 +66,11 @@ public class RequireEnvironmentVariable extends AbstractPropertyEnforcerRule {
public String getName() {
return "Environment variable";
}
+
+ @Override
+ public String toString() {
+ return String.format(
+ "RequireEnvironmentVariable[variableName=%s, message=%s, regex=%s, regexMessage=%s]",
+ variableName, getMessage(), getRegex(), getRegexMessage());
+ }
}
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireProperty.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/property/RequireProperty.java
similarity index 59%
rename from enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireProperty.java
rename to enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/property/RequireProperty.java
index e465262..cdfe411 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireProperty.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/property/RequireProperty.java
@@ -16,10 +16,15 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.property;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import java.util.Objects;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
-import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
+import org.apache.maven.enforcer.rules.utils.ExpressionEvaluator;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
/**
@@ -27,7 +32,8 @@ import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluatio
*
* @author Paul Gier
*/
-public class RequireProperty extends AbstractPropertyEnforcerRule {
+@Named("requireProperty")
+public final class RequireProperty extends AbstractPropertyEnforcerRule {
/**
* Specify the required property.
@@ -37,23 +43,24 @@ public class RequireProperty extends AbstractPropertyEnforcerRule {
*/
private String property = null;
- public final void setProperty(String property) {
+ private final ExpressionEvaluator evaluator;
+
+ @Inject
+ public RequireProperty(ExpressionEvaluator evaluator) {
+ this.evaluator = Objects.requireNonNull(evaluator);
+ }
+
+ public void setProperty(String property) {
this.property = property;
}
@Override
- public Object resolveValue(EnforcerRuleHelper helper) throws EnforcerRuleException {
- Object propValue = null;
+ public Object resolveValue() throws EnforcerRuleException {
try {
- propValue = helper.evaluate("${" + property + "}");
- } catch (ExpressionEvaluationException eee) {
- throw new EnforcerRuleException("Unable to evaluate property: " + property, eee);
+ return evaluator.evaluate("${" + property + "}");
+ } catch (ExpressionEvaluationException e) {
+ throw new EnforcerRuleException(e);
}
- return propValue;
- }
-
- protected String resolveValue() {
- return null;
}
@Override
@@ -65,4 +72,11 @@ public class RequireProperty extends AbstractPropertyEnforcerRule {
public String getName() {
return "Property";
}
+
+ @Override
+ public String toString() {
+ return String.format(
+ "RequireProperty[property=%s, message=%s, regex=%s, regexMessage=%s]",
+ property, getMessage(), getRegex(), getRegexMessage());
+ }
}
diff --git a/enforcer-rules/src/site/apt/requireEnvironmentVariable.apt.vm b/enforcer-rules/src/site/apt/requireEnvironmentVariable.apt.vm
index 1ec072a..79e63b4 100644
--- a/enforcer-rules/src/site/apt/requireEnvironmentVariable.apt.vm
+++ b/enforcer-rules/src/site/apt/requireEnvironmentVariable.apt.vm
@@ -27,16 +27,21 @@ Require Environment Variable
This rule checks that a specified environment variable is set.
-
- The following parameters are supported by this rule:
-
- * message - an optional message to the user if the rule fails.
+ The following parameters are supported by this rule:
- * variableName - The name of the environment variable to be checked for.
+ * <<message>> - an optional message to the user if the rule fails.
- []
+ * <<variableName>> - The name of the environment variable to be checked for.
+
+ * <<regex>> - an optional regular expression used to check the value of the property.
+
+ * <<regexMessage>> - an optional message to the user if the regex check fails.
+
+ []
+
+ The regex is applied to the entire value of the environment variable (i.e. using the regex "match" method),
+ and not just a substring of the environment variable value.
-
Sample Plugin Configuration:
+---+
diff --git a/enforcer-rules/src/site/apt/requireProperty.apt.vm b/enforcer-rules/src/site/apt/requireProperty.apt.vm
index 0023056..9939395 100644
--- a/enforcer-rules/src/site/apt/requireProperty.apt.vm
+++ b/enforcer-rules/src/site/apt/requireProperty.apt.vm
@@ -29,13 +29,13 @@ Require Property
The following parameters are supported by this rule:
- * property - the property to evaluate.
+ * <<property>> - the property to evaluate.
- * message - an optional message to the user if the rule fails. Default is: "Property 'xxx' is required for this build".
+ * <<message>> - an optional message to the user if the rule fails. Default is: "Property 'xxx' is required for this build".
- * regex - a regular expression used to check the value of the property.
+ * <<regex>> - an optional regular expression used to check the value of the property.
- * regexMessage - an optional message to the user if the regex check fails.
+ * <<regexMessage>> - an optional message to the user if the regex check fails.
[]
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireEnvironmentVariable.java b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/property/TestRequireEnvironmentVariable.java
similarity index 74%
rename from enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireEnvironmentVariable.java
rename to enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/property/TestRequireEnvironmentVariable.java
index a962392..9e97fd4 100755
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireEnvironmentVariable.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/property/TestRequireEnvironmentVariable.java
@@ -16,10 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.property;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
-import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
+import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.fail;
@@ -29,24 +29,20 @@ import static org.junit.jupiter.api.Assertions.fail;
*
* @author <a href='mailto:marvin[at]marvinformatics[dot]com'>Marvin Froeder</a>
*/
-public class TestRequireEnvironmentVariable {
+class TestRequireEnvironmentVariable {
+ private RequireEnvironmentVariable rule = new RequireEnvironmentVariable();
/**
* Test rule.
*
*/
@Test
- public void testRule() {
- MockProject project = new MockProject();
- project.setProperty("testProp", "This is a test.");
- EnforcerRuleHelper helper = EnforcerTestUtils.getHelper(project);
-
- RequireEnvironmentVariable rule = new RequireEnvironmentVariable();
+ void testRule() {
// this env variable should not be set
rule.setVariableName("JUNK");
try {
- rule.execute(helper);
+ rule.execute();
fail("Expected an exception.");
} catch (EnforcerRuleException e) {
// expected to catch this.
@@ -55,7 +51,7 @@ public class TestRequireEnvironmentVariable {
// PATH shall be common to windows and linux
rule.setVariableName("PATH");
try {
- rule.execute(helper);
+ rule.execute();
} catch (EnforcerRuleException e) {
fail("This should not throw an exception");
}
@@ -66,17 +62,15 @@ public class TestRequireEnvironmentVariable {
*
*/
@Test
- public void testRuleWithRegex() {
- EnforcerRuleHelper helper = EnforcerTestUtils.getHelper();
+ void testRuleWithRegex() {
- RequireEnvironmentVariable rule = new RequireEnvironmentVariable();
rule.setVariableName("PATH");
// This expression should not match the property
// value
rule.setRegex("[^abc]");
try {
- rule.execute(helper);
+ rule.execute();
fail("Expected an exception.");
} catch (EnforcerRuleException e) {
// expected to catch this.
@@ -85,9 +79,15 @@ public class TestRequireEnvironmentVariable {
// can't really predict what a PATH will looks like, just enforce it ain't empty
rule.setRegex(".{1,}");
try {
- rule.execute(helper);
+ rule.execute();
} catch (EnforcerRuleException e) {
fail("This should not throw an exception");
}
}
+
+ @Test
+ void ruleShouldBeCached() {
+ rule.setVariableName("TEST");
+ Assertions.assertThat(rule.getCacheId()).isNotEmpty();
+ }
}
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireProperty.java b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/property/TestRequireProperty.java
similarity index 68%
rename from enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireProperty.java
rename to enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/property/TestRequireProperty.java
index 68aba54..cf40ab3 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireProperty.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/property/TestRequireProperty.java
@@ -16,47 +16,58 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.property;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
-import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
+import org.apache.maven.enforcer.rules.utils.ExpressionEvaluator;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.fail;
+import static org.mockito.Mockito.when;
/**
* The Class TestRequireProperty.
*
* @author Paul Gier
*/
-public class TestRequireProperty {
+@ExtendWith(MockitoExtension.class)
+class TestRequireProperty {
+
+ @Mock
+ private ExpressionEvaluator evaluator;
+
+ @InjectMocks
+ private RequireProperty rule;
/**
* Test rule.
*
*/
@Test
- public void testRule() {
- MockProject project = new MockProject();
- project.setProperty("testProp", "This is a test.");
- EnforcerRuleHelper helper = EnforcerTestUtils.getHelper(project);
+ void testRule() throws Exception {
- RequireProperty rule = new RequireProperty();
// this property should not be set
rule.setProperty("testPropJunk");
try {
- rule.execute(helper);
+ rule.execute();
fail("Expected an exception.");
} catch (EnforcerRuleException e) {
// expected to catch this.
}
+ when(evaluator.evaluate("${testProp}")).thenReturn("This is a test.");
+
// this property should be set by the surefire
// plugin
rule.setProperty("testProp");
try {
- rule.execute(helper);
+ rule.execute();
} catch (EnforcerRuleException e) {
fail("This should not throw an exception");
}
@@ -67,19 +78,17 @@ public class TestRequireProperty {
*
*/
@Test
- public void testRuleWithRegex() {
- MockProject project = new MockProject();
- project.setProperty("testProp", "This is a test.");
- EnforcerRuleHelper helper = EnforcerTestUtils.getHelper(project);
+ void testRuleWithRegex() throws Exception {
+
+ when(evaluator.evaluate("${testProp}")).thenReturn("This is a test.");
- RequireProperty rule = new RequireProperty();
rule.setProperty("testProp");
// This expression should not match the property
// value
rule.setRegex("[^abc]");
try {
- rule.execute(helper);
+ rule.execute();
fail("Expected an exception.");
} catch (EnforcerRuleException e) {
// expected to catch this.
@@ -88,7 +97,7 @@ public class TestRequireProperty {
// this expr should match the property
rule.setRegex("[This].*[.]");
try {
- rule.execute(helper);
+ rule.execute();
} catch (EnforcerRuleException e) {
fail("This should not throw an exception");
}
@@ -98,8 +107,7 @@ public class TestRequireProperty {
* Test id.
*/
@Test
- public void testId() {
- RequireProperty rule = new RequireProperty();
- rule.getCacheId();
+ void ruleShouldNotBeCached() {
+ assertThat(rule.getCacheId()).isNull();
}
}
diff --git a/maven-enforcer-plugin/src/it/projects/require-environment-variable/pom.xml b/maven-enforcer-plugin/src/it/projects/require-environment-variable/pom.xml
new file mode 100644
index 0000000..fdc6d35
--- /dev/null
+++ b/maven-enforcer-plugin/src/it/projects/require-environment-variable/pom.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.its.enforcer</groupId>
+ <artifactId>test</artifactId>
+ <version>1.0</version>
+
+ <description>
+ </description>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>@project.version@</version>
+ <executions>
+ <execution>
+ <id>test</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <requireEnvironmentVariable>
+ <variableName>PATH</variableName>
+ </requireEnvironmentVariable>
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/maven-enforcer-plugin/src/it/projects/require-environment-variable/verify.groovy b/maven-enforcer-plugin/src/it/projects/require-environment-variable/verify.groovy
new file mode 100644
index 0000000..008b2de
--- /dev/null
+++ b/maven-enforcer-plugin/src/it/projects/require-environment-variable/verify.groovy
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+File buildLog = new File(basedir, 'build.log')
+
+assert buildLog.text.contains('[INFO] Rule 0: org.apache.maven.enforcer.rules.property.RequireEnvironmentVariable executed')
diff --git a/maven-enforcer-plugin/src/it/projects/require-property/verify.groovy b/maven-enforcer-plugin/src/it/projects/require-property/verify.groovy
new file mode 100644
index 0000000..e8bcceb
--- /dev/null
+++ b/maven-enforcer-plugin/src/it/projects/require-property/verify.groovy
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+File buildLog = new File(basedir, 'build.log')
+assert buildLog.text.contains('[INFO] Rule 0: org.apache.maven.enforcer.rules.property.RequireProperty executed')