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/10 22:32:30 UTC
[maven-enforcer] branch master updated: [MENFORCER-458] Move RequireFiles* 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 48ca986 [MENFORCER-458] Move RequireFiles* to new API
48ca986 is described below
commit 48ca986b14ab3d4e7a69bbf41155e1e93a76d3f9
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Mon Jan 9 23:28:40 2023 +0100
[MENFORCER-458] Move RequireFiles* to new API
---
.../rules/AbstractStandardEnforcerRule.java | 2 +-
.../rules/files}/AbstractRequireFiles.java | 74 ++++++-----------
.../rules/files}/RequireFilesDontExist.java | 7 +-
.../rules/files}/RequireFilesExist.java | 7 +-
.../rules/files}/RequireFilesSize.java | 60 ++++++--------
.../src/site/apt/requireFilesDontExist.apt.vm | 8 +-
.../src/site/apt/requireFilesExist.apt.vm | 8 +-
.../src/site/apt/requireFilesSize.apt.vm | 12 +--
.../rules/files}/TestRequireFilesDontExist.java | 61 +++++++-------
.../rules/files}/TestRequireFilesExist.java | 66 ++++++++-------
.../rules/files}/TestRequireFilesSize.java | 95 ++++++++++++++--------
.../require-files-dont-exist/verify.groovy | 24 +-----
.../it/projects/require-files-exist/verify.groovy | 24 +-----
.../it/projects/require-files-size/verify.groovy | 24 +-----
14 files changed, 207 insertions(+), 265 deletions(-)
diff --git a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java
index 8a2ae95..b426f6e 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java
@@ -26,7 +26,7 @@ import org.apache.maven.enforcer.rule.api.AbstractEnforcerRule;
* @author Slawomir Jaranowski
* @since 3.2.0
*/
-abstract class AbstractStandardEnforcerRule extends AbstractEnforcerRule {
+public abstract class AbstractStandardEnforcerRule extends AbstractEnforcerRule {
private String message;
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractRequireFiles.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/AbstractRequireFiles.java
similarity index 64%
rename from enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractRequireFiles.java
rename to enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/AbstractRequireFiles.java
index 2bf704d..34988b4 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractRequireFiles.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/AbstractRequireFiles.java
@@ -16,25 +16,26 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.files;
import java.io.File;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
-import org.apache.maven.enforcer.rule.api.EnforcerRule;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleError;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
-import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
+import org.apache.maven.enforcer.rules.AbstractStandardEnforcerRule;
/**
* Contains the common code to compare an array of files against a requirement.
*
* @author <a href="mailto:brianf@apache.org">Brian Fox</a>
*/
-public abstract class AbstractRequireFiles extends AbstractStandardEnforcerRule {
+abstract class AbstractRequireFiles extends AbstractStandardEnforcerRule {
- /** Array of files to check. */
- private File[] files;
+ /** List of files to check. */
+ private List<File> files = Collections.emptyList();
/** if null file handles should be allowed. If they are allowed, it means treat it as a success. */
private boolean allowNulls = false;
@@ -60,10 +61,10 @@ public abstract class AbstractRequireFiles extends AbstractStandardEnforcerRule
abstract String getErrorMsg();
@Override
- public void execute(EnforcerRuleHelper helper) throws EnforcerRuleException {
+ public void execute() throws EnforcerRuleException {
- if (!allowNulls && files.length == 0) {
- throw new EnforcerRuleException("The file list is empty and Null files are disabled.");
+ if (!allowNulls && files.isEmpty()) {
+ throw new EnforcerRuleError("The file list is empty and Null files are disabled.");
}
List<File> failures = new ArrayList<>();
@@ -76,7 +77,7 @@ public abstract class AbstractRequireFiles extends AbstractStandardEnforcerRule
}
if (satisfyAny) {
- int passed = files.length - failures.size();
+ int passed = files.size() - failures.size();
if (passed == 0) {
fail(failures);
}
@@ -109,58 +110,31 @@ public abstract class AbstractRequireFiles extends AbstractStandardEnforcerRule
@Override
public String getCacheId() {
- return Integer.toString(hashCode(files));
+ return Integer.toString(files.hashCode());
}
- /**
- * Calculates a hash code for the specified array as <code>Arrays.hashCode()</code> would do. Unfortunately, the
- * mentioned method is only available for Java 1.5 and later.
- *
- * @param items The array for which to compute the hash code, may be <code>null</code>.
- * @return The hash code for the array.
- */
- private static int hashCode(Object[] items) {
- int hash = 0;
- if (items != null) {
- hash = 1;
- for (Object item : items) {
- hash = 31 * hash + (item == null ? 0 : item.hashCode());
- }
- }
- return hash;
+ void setFilesList(List<File> files) {
+ this.files = files;
}
- @Override
- public boolean isCacheable() {
- return true;
- }
+ // method using for testing purpose ...
- @Override
- public boolean isResultValid(EnforcerRule cachedRule) {
- return true;
- }
-
- public File[] getFiles() {
+ List<File> getFiles() {
return files;
}
- public void setFiles(File[] files) {
- this.files = files;
- }
-
- public boolean isAllowNulls() {
- return allowNulls;
- }
-
- public void setAllowNulls(boolean allowNulls) {
+ void setAllowNulls(boolean allowNulls) {
this.allowNulls = allowNulls;
}
- public boolean isSatisfyAny() {
- return satisfyAny;
+ void setSatisfyAny(boolean satisfyAny) {
+ this.satisfyAny = satisfyAny;
}
- public void setSatisfyAny(boolean satisfyAny) {
- this.satisfyAny = satisfyAny;
+ @Override
+ public String toString() {
+ return String.format(
+ "%s[message=%s, files=%s, allowNulls=%b, satisfyAny=%b, level=%s]",
+ getClass().getSimpleName(), getMessage(), files, allowNulls, satisfyAny, getLevel());
}
}
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFilesDontExist.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/RequireFilesDontExist.java
similarity index 86%
rename from enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFilesDontExist.java
rename to enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/RequireFilesDontExist.java
index 4868fd2..116dd04 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFilesDontExist.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/RequireFilesDontExist.java
@@ -16,14 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.files;
+
+import javax.inject.Named;
import java.io.File;
/**
* The Class RequireFilesDontExist.
*/
-public class RequireFilesDontExist extends AbstractRequireFiles {
+@Named("requireFilesDontExist")
+public final class RequireFilesDontExist extends AbstractRequireFiles {
@Override
boolean checkFile(File file) {
// if we get here and the handle is null, treat it as a success
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFilesExist.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/RequireFilesExist.java
similarity index 92%
rename from enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFilesExist.java
rename to enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/RequireFilesExist.java
index c794d9b..9318dbc 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFilesExist.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/RequireFilesExist.java
@@ -16,7 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.files;
+
+import javax.inject.Named;
import java.io.File;
import java.io.IOException;
@@ -24,7 +26,8 @@ import java.io.IOException;
/**
* The Class RequireFilesExist.
*/
-public class RequireFilesExist extends AbstractRequireFiles {
+@Named("requireFilesExist")
+public final class RequireFilesExist extends AbstractRequireFiles {
@Override
boolean checkFile(File file) {
// if we get here and the handle is null, treat it as a success
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFilesSize.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/RequireFilesSize.java
similarity index 68%
rename from enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFilesSize.java
rename to enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/RequireFilesSize.java
index 72679c1..d032c0d 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireFilesSize.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/files/RequireFilesSize.java
@@ -16,16 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.files;
+
+import javax.inject.Inject;
+import javax.inject.Named;
import java.io.File;
+import java.util.Collections;
+import java.util.Objects;
-import org.apache.maven.enforcer.rule.api.EnforcerRule;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
-import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
-import org.apache.maven.plugin.logging.Log;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
/**
* Rule to validate the main artifact is within certain size constraints.
@@ -33,7 +34,8 @@ import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluatio
* @author brianf
* @author Roman Stumm
*/
-public class RequireFilesSize extends AbstractRequireFiles {
+@Named("requireFilesSize")
+public final class RequireFilesSize extends AbstractRequireFiles {
private static final long MAXSIZE = 10000;
@@ -46,37 +48,29 @@ public class RequireFilesSize extends AbstractRequireFiles {
/** The error msg. */
private String errorMsg;
- /** The log. */
- private Log log;
+ private final MavenProject project;
+
+ @Inject
+ public RequireFilesSize(MavenProject project) {
+ this.project = Objects.requireNonNull(project);
+ }
@Override
- public void execute(EnforcerRuleHelper helper) throws EnforcerRuleException {
- this.log = helper.getLog();
+ public void execute() throws EnforcerRuleException {
// if the file is already defined, use that. Otherwise get the main artifact.
- if (getFiles().length == 0) {
- try {
- MavenProject project = (MavenProject) helper.evaluate("${project}");
- setFiles(new File[1]);
- getFiles()[0] = project.getArtifact().getFile();
-
- super.execute(helper);
- } catch (ExpressionEvaluationException e) {
- throw new EnforcerRuleException("Unable to retrieve the project.", e);
- }
+ if (getFiles().isEmpty()) {
+ setFilesList(Collections.singletonList(project.getArtifact().getFile()));
+ super.execute();
} else {
- super.execute(helper);
+ super.execute();
}
}
@Override
- public boolean isCacheable() {
- return false;
- }
-
- @Override
- public boolean isResultValid(EnforcerRule cachedRule) {
- return false;
+ public String getCacheId() {
+ // non cached rule - return null
+ return null;
}
@Override
@@ -97,7 +91,7 @@ public class RequireFilesSize extends AbstractRequireFiles {
return false;
} else {
- this.log.debug(file
+ getLog().debug(() -> file
+ " size ("
+ length
+ ") is OK ("
@@ -119,18 +113,10 @@ public class RequireFilesSize extends AbstractRequireFiles {
return this.errorMsg;
}
- public long getMaxsize() {
- return maxsize;
- }
-
public void setMaxsize(long maxsize) {
this.maxsize = maxsize;
}
- public long getMinsize() {
- return minsize;
- }
-
public void setMinsize(long minsize) {
this.minsize = minsize;
}
diff --git a/enforcer-rules/src/site/apt/requireFilesDontExist.apt.vm b/enforcer-rules/src/site/apt/requireFilesDontExist.apt.vm
index 89a197a..6d8b21d 100644
--- a/enforcer-rules/src/site/apt/requireFilesDontExist.apt.vm
+++ b/enforcer-rules/src/site/apt/requireFilesDontExist.apt.vm
@@ -30,13 +30,13 @@ Require Files Don't Exist
The following parameters are supported by this rule:
- * message - an optional message to the user if the rule fails.
+ * <<message>> - an optional message to the user if the rule fails.
- * files - A list of files to check.
+ * <<files>> - A list of files to check.
- * allowNulls - If null files should be allowed. If allowed, they will be treated as if they do not exist. Default is false.
+ * <<allowNulls>> - If null files should be allowed. If allowed, they will be treated as if they do not exist. Default is false.
- * satisfyAny - Allows that one of files can make the rule pass, instead of all the files. Default is false.
+ * <<satisfyAny>> - Allows that one of files can make the rule pass, instead of all the files. Default is false.
[]
diff --git a/enforcer-rules/src/site/apt/requireFilesExist.apt.vm b/enforcer-rules/src/site/apt/requireFilesExist.apt.vm
index c7b7132..e314b07 100644
--- a/enforcer-rules/src/site/apt/requireFilesExist.apt.vm
+++ b/enforcer-rules/src/site/apt/requireFilesExist.apt.vm
@@ -30,13 +30,13 @@ Require Files Exist
The following parameters are supported by this rule:
- * message - an optional message to the user if the rule fails.
+ * <<message>> - an optional message to the user if the rule fails.
- * files - A list of files to check.
+ * <<files>> - A list of files to check.
- * allowNulls - If null files should be allowed. If allowed, they will be treated as if they do exist. Default is false.
+ * <<allowNulls>> - If null files should be allowed. If allowed, they will be treated as if they do exist. Default is false.
- * satisfyAny - Allows that one of files can make the rule pass, instead of all the files. Default is false.
+ * <<satisfyAny>> - Allows that one of files can make the rule pass, instead of all the files. Default is false.
[]
diff --git a/enforcer-rules/src/site/apt/requireFilesSize.apt.vm b/enforcer-rules/src/site/apt/requireFilesSize.apt.vm
index 301765e..7e7d7f0 100644
--- a/enforcer-rules/src/site/apt/requireFilesSize.apt.vm
+++ b/enforcer-rules/src/site/apt/requireFilesSize.apt.vm
@@ -30,17 +30,17 @@ Require File Size
The following parameters are supported by this rule:
- * message - an optional message to the user if the rule fails.
+ * <<message>> - an optional message to the user if the rule fails.
- * files - A list of files to check. If this list is empty, the main project artifact will be checked.
+ * <<files>> - A list of files to check. If this list is empty, the main project artifact will be checked.
- * maxsize - maximum size in bytes for this file.
+ * <<maxsize>> - maximum size in bytes for this file.
- * minsize - minimum size in bytes for this file.
+ * <<minsize>> - minimum size in bytes for this file.
- * allowNulls - If null files should be allowed. If allowed, they will be treated as if they do exist. Default is false.
+ * <<allowNulls>> - If null files should be allowed. If allowed, they will be treated as if they do exist. Default is false.
- * satisfyAny - Allows that one of files can make the rule pass, instead of all the files. Default is false.
+ * <<satisfyAny>> - Allows that one of files can make the rule pass, instead of all the files. Default is false.
[]
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/files/TestRequireFilesDontExist.java
similarity index 64%
rename from enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java
rename to enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/files/TestRequireFilesDontExist.java
index 33839ed..93a1a0e 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesDontExist.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/files/TestRequireFilesDontExist.java
@@ -16,36 +16,41 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.files;
import java.io.File;
import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collections;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
/**
* Test the "require files don't exist" rule.
*
* @author <a href="brianf@apache.org">Brian Fox</a>
*/
-public class TestRequireFilesDontExist {
+class TestRequireFilesDontExist {
@TempDir
public File temporaryFolder;
private final RequireFilesDontExist rule = new RequireFilesDontExist();
@Test
- public void testFileExists() throws IOException {
+ void testFileExists() throws IOException {
File f = File.createTempFile("junit", null, temporaryFolder);
- rule.setFiles(new File[] {f});
+ rule.setFilesList(Collections.singletonList(f));
try {
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
fail("Expected an Exception.");
} catch (EnforcerRuleException e) {
assertNotNull(e.getMessage());
@@ -54,10 +59,10 @@ public class TestRequireFilesDontExist {
}
@Test
- public void testEmptyFile() {
- rule.setFiles(new File[] {null});
+ void testEmptyFile() {
+ rule.setFilesList(Collections.singletonList(null));
try {
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
fail("Should get exception");
} catch (EnforcerRuleException e) {
assertNotNull(e.getMessage());
@@ -65,22 +70,22 @@ public class TestRequireFilesDontExist {
}
@Test
- public void testEmptyFileAllowNull() {
- rule.setFiles(new File[] {null});
+ void testEmptyFileAllowNull() {
+ rule.setFilesList(Collections.singletonList(null));
rule.setAllowNulls(true);
try {
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
} catch (EnforcerRuleException e) {
fail("Unexpected Exception:" + e.getLocalizedMessage());
}
}
@Test
- public void testEmptyFileList() {
- rule.setFiles(new File[] {});
- assertEquals(0, rule.getFiles().length);
+ void testEmptyFileList() {
+ rule.setFilesList(Collections.emptyList());
+ assertTrue(rule.getFiles().isEmpty());
try {
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
fail("Should get exception");
} catch (EnforcerRuleException e) {
assertNotNull(e.getMessage());
@@ -88,31 +93,31 @@ public class TestRequireFilesDontExist {
}
@Test
- public void testEmptyFileListAllowNull() {
- rule.setFiles(new File[] {});
- assertEquals(0, rule.getFiles().length);
+ void testEmptyFileListAllowNull() {
+ rule.setFilesList(Collections.emptyList());
+ assertTrue(rule.getFiles().isEmpty());
rule.setAllowNulls(true);
try {
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
} catch (EnforcerRuleException e) {
fail("Unexpected Exception:" + e.getLocalizedMessage());
}
}
@Test
- public void testFileDoesNotExist() throws EnforcerRuleException, IOException {
+ void testFileDoesNotExist() throws EnforcerRuleException, IOException {
File f = File.createTempFile("junit", null, temporaryFolder);
f.delete();
assertFalse(f.exists());
- rule.setFiles(new File[] {f});
+ rule.setFilesList(Collections.singletonList(f));
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
}
@Test
- public void testFileDoesNotExistSatisfyAny() throws EnforcerRuleException, IOException {
+ void testFileDoesNotExistSatisfyAny() throws EnforcerRuleException, IOException {
File f = File.createTempFile("junit", null, temporaryFolder);
f.delete();
@@ -122,17 +127,17 @@ public class TestRequireFilesDontExist {
assertTrue(g.exists());
- rule.setFiles(new File[] {f, g.getCanonicalFile()});
+ rule.setFilesList(Arrays.asList(f, g.getCanonicalFile()));
rule.setSatisfyAny(true);
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
}
/**
* Test id.
*/
@Test
- public void testId() {
- rule.getCacheId();
+ void testId() {
+ assertNotNull(rule.getCacheId());
}
}
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/files/TestRequireFilesExist.java
similarity index 53%
rename from enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java
rename to enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/files/TestRequireFilesExist.java
index 34cc1bb..33c7261 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesExist.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/files/TestRequireFilesExist.java
@@ -16,10 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.files;
import java.io.File;
import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collections;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
import org.junit.jupiter.api.Test;
@@ -32,83 +34,79 @@ import static org.junit.jupiter.api.Assertions.*;
*
* @author <a href="brett@apache.org">Brett Porter</a>
*/
-public class TestRequireFilesExist {
+class TestRequireFilesExist {
@TempDir
public File temporaryFolder;
private final RequireFilesExist rule = new RequireFilesExist();
@Test
- public void testFileExists() throws Exception {
+ void testFileExists() throws Exception {
File f = File.createTempFile("junit", null, temporaryFolder);
- rule.setFiles(new File[] {f.getCanonicalFile()});
+ rule.setFilesList(Collections.singletonList(f.getCanonicalFile()));
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
}
@Test
- public void testFileOsIndependentExists() {
- rule.setFiles(new File[] {new File("POM.xml")});
+ void testFileOsIndependentExists() {
+ rule.setFilesList(Collections.singletonList(new File("POM.xml")));
- EnforcerRuleException e =
- assertThrows(EnforcerRuleException.class, () -> rule.execute(EnforcerTestUtils.getHelper()));
+ EnforcerRuleException e = assertThrows(EnforcerRuleException.class, () -> rule.execute());
assertNotNull(e.getMessage());
}
@Test
- public void testEmptyFile() {
- rule.setFiles(new File[] {null});
+ void testEmptyFile() {
+ rule.setFilesList(Collections.singletonList(null));
- EnforcerRuleException e =
- assertThrows(EnforcerRuleException.class, () -> rule.execute(EnforcerTestUtils.getHelper()));
+ EnforcerRuleException e = assertThrows(EnforcerRuleException.class, () -> rule.execute());
assertNotNull(e.getMessage());
}
@Test
- public void testEmptyFileAllowNull() throws Exception {
- rule.setFiles(new File[] {null});
+ void testEmptyFileAllowNull() throws Exception {
+ rule.setFilesList(Collections.singletonList(null));
rule.setAllowNulls(true);
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
}
@Test
- public void testEmptyFileList() {
- rule.setFiles(new File[] {});
- assertEquals(0, rule.getFiles().length);
+ void testEmptyFileList() {
+ rule.setFilesList(Collections.emptyList());
+ assertTrue(rule.getFiles().isEmpty());
- EnforcerRuleException e =
- assertThrows(EnforcerRuleException.class, () -> rule.execute(EnforcerTestUtils.getHelper()));
+ EnforcerRuleException e = assertThrows(EnforcerRuleException.class, () -> rule.execute());
assertNotNull(e.getMessage());
}
@Test
- public void testEmptyFileListAllowNull() throws Exception {
- rule.setFiles(new File[] {});
- assertEquals(0, rule.getFiles().length);
+ void testEmptyFileListAllowNull() throws Exception {
+ rule.setFilesList(Collections.emptyList());
+ assertTrue(rule.getFiles().isEmpty());
rule.setAllowNulls(true);
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
}
@Test
- public void testFileDoesNotExist() throws Exception {
+ void testFileDoesNotExist() throws Exception {
File f = File.createTempFile("junit", null, temporaryFolder);
f.delete();
assertFalse(f.exists());
- rule.setFiles(new File[] {f});
+ rule.setFilesList(Collections.singletonList(f));
- EnforcerRuleException e =
- assertThrows(EnforcerRuleException.class, () -> rule.execute(EnforcerTestUtils.getHelper()));
+ EnforcerRuleException e = assertThrows(EnforcerRuleException.class, () -> rule.execute());
assertNotNull(e.getMessage());
}
@Test
- public void testFileExistsSatisfyAny() throws EnforcerRuleException, IOException {
+ void testFileExistsSatisfyAny() throws EnforcerRuleException, IOException {
File f = File.createTempFile("junit", null, temporaryFolder);
f.delete();
@@ -118,17 +116,17 @@ public class TestRequireFilesExist {
assertTrue(g.exists());
- rule.setFiles(new File[] {f, g.getCanonicalFile()});
+ rule.setFilesList(Arrays.asList(f, g.getCanonicalFile()));
rule.setSatisfyAny(true);
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
}
/**
* Test id.
*/
@Test
- public void testId() {
- rule.getCacheId();
+ void testId() {
+ assertNotNull(rule.getCacheId());
}
}
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/files/TestRequireFilesSize.java
similarity index 59%
rename from enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java
rename to enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/files/TestRequireFilesSize.java
index 8dbbd3e..f0a7a04 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireFilesSize.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/files/TestRequireFilesSize.java
@@ -16,46 +16,74 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.plugins.enforcer;
+package org.apache.maven.enforcer.rules.files;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collections;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.enforcer.rule.api.EnforcerLogger;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
import org.apache.maven.plugin.testing.ArtifactStubFactory;
+import org.apache.maven.project.MavenProject;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.io.TempDir;
-
-import static org.junit.jupiter.api.Assertions.*;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+import static org.mockito.Mockito.when;
/**
* Test the "require files exist" rule.
*
* @author <a href="brianf@apache.org">Brian Fox</a>
*/
-public class TestRequireFilesSize {
+@ExtendWith(MockitoExtension.class)
+class TestRequireFilesSize {
@TempDir
public File temporaryFolder;
- private final RequireFilesSize rule = new RequireFilesSize();
+ @Mock
+ private MavenProject project;
+
+ @Mock
+ private EnforcerLogger log;
+
+ @InjectMocks
+ private RequireFilesSize rule;
+
+ @BeforeEach
+ void setup() {
+ rule.setLog(log);
+ }
@Test
- public void testFileExists() throws EnforcerRuleException, IOException {
+ void testFileExists() throws EnforcerRuleException, IOException {
File f = File.createTempFile("junit", null, temporaryFolder);
- rule.setFiles(new File[] {f});
+ rule.setFilesList(Collections.singletonList(f));
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
}
@Test
- public void testEmptyFile() {
- rule.setFiles(new File[] {null});
+ void testEmptyFile() {
+ rule.setFilesList(Collections.singletonList(null));
try {
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
fail("Should get exception");
} catch (EnforcerRuleException e) {
assertNotNull(e.getMessage());
@@ -63,42 +91,41 @@ public class TestRequireFilesSize {
}
@Test
- public void testEmptyFileAllowNull() throws EnforcerRuleException {
- rule.setFiles(new File[] {null});
+ void testEmptyFileAllowNull() throws EnforcerRuleException {
+ rule.setFilesList(Collections.singletonList(null));
rule.setAllowNulls(true);
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
}
@Test
- public void testEmptyFileList() throws EnforcerRuleException, IOException {
- rule.setFiles(new File[] {});
+ void testEmptyFileList() throws EnforcerRuleException, IOException {
+ rule.setFilesList(Collections.emptyList());
- assertEquals(0, rule.getFiles().length);
+ assertTrue(rule.getFiles().isEmpty());
- MockProject project = new MockProject();
File f = File.createTempFile("junit", null, temporaryFolder);
ArtifactStubFactory factory = new ArtifactStubFactory();
Artifact a = factory.getReleaseArtifact();
a.setFile(f);
- project.setArtifact(a);
+ when(project.getArtifact()).thenReturn(a);
// sanity check the mockProject
assertSame(f, project.getArtifact().getFile());
- rule.execute(EnforcerTestUtils.getHelper(project));
+ rule.execute();
}
@Test
- public void testFileDoesNotExist() throws IOException {
+ void testFileDoesNotExist() throws IOException {
File f = File.createTempFile("junit", null, temporaryFolder);
f.delete();
assertFalse(f.exists());
- rule.setFiles(new File[] {f});
+ rule.setFilesList(Collections.singletonList(f));
try {
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
fail("Should get exception");
} catch (EnforcerRuleException e) {
assertNotNull(e.getMessage());
@@ -106,12 +133,12 @@ public class TestRequireFilesSize {
}
@Test
- public void testFileTooSmall() throws IOException {
+ void testFileTooSmall() throws IOException {
File f = File.createTempFile("junit", null, temporaryFolder);
- rule.setFiles(new File[] {f});
+ rule.setFilesList(Collections.singletonList(f));
rule.setMinsize(10);
try {
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
fail("Should get exception");
} catch (EnforcerRuleException e) {
assertNotNull(e.getMessage());
@@ -119,17 +146,17 @@ public class TestRequireFilesSize {
}
@Test
- public void testFileTooBig() throws IOException {
+ void testFileTooBig() throws IOException {
File f = File.createTempFile("junit", null, temporaryFolder);
try (BufferedWriter out = new BufferedWriter(new FileWriter(f))) {
out.write("123456789101112131415");
}
- rule.setFiles(new File[] {f});
+ rule.setFilesList(Collections.singletonList(f));
rule.setMaxsize(10);
assertTrue(f.length() > 10);
try {
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
fail("Should get exception");
} catch (EnforcerRuleException e) {
assertNotNull(e.getMessage());
@@ -137,7 +164,7 @@ public class TestRequireFilesSize {
}
@Test
- public void testRequireFilesSizeSatisfyAny() throws EnforcerRuleException, IOException {
+ void testRequireFilesSizeSatisfyAny() throws EnforcerRuleException, IOException {
File f = File.createTempFile("junit", null, temporaryFolder);
try (BufferedWriter out = new BufferedWriter(new FileWriter(f))) {
out.write("123456789101112131415");
@@ -146,18 +173,18 @@ public class TestRequireFilesSize {
File g = File.createTempFile("junit", null, temporaryFolder);
- rule.setFiles(new File[] {f, g});
+ rule.setFilesList(Arrays.asList(f, g));
rule.setMaxsize(10);
rule.setSatisfyAny(true);
- rule.execute(EnforcerTestUtils.getHelper());
+ rule.execute();
}
/**
* Test id.
*/
@Test
- public void testId() {
- rule.getCacheId();
+ void testId() {
+ assertNull(rule.getCacheId());
}
}
diff --git a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java b/maven-enforcer-plugin/src/it/projects/require-files-dont-exist/verify.groovy
similarity index 64%
copy from enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java
copy to maven-enforcer-plugin/src/it/projects/require-files-dont-exist/verify.groovy
index 8a2ae95..0a22367 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java
+++ b/maven-enforcer-plugin/src/it/projects/require-files-dont-exist/verify.groovy
@@ -16,25 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.enforcer.rules;
+def buildLog = new File(basedir, 'build.log').text
-import org.apache.maven.enforcer.rule.api.AbstractEnforcerRule;
-
-/**
- * Abstract help rule.
- *
- * @author Slawomir Jaranowski
- * @since 3.2.0
- */
-abstract class AbstractStandardEnforcerRule extends AbstractEnforcerRule {
-
- private String message;
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-}
+// rule executed
+assert buildLog.contains('[INFO] Rule 0: org.apache.maven.enforcer.rules.files.RequireFilesDontExist executed')
diff --git a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java b/maven-enforcer-plugin/src/it/projects/require-files-exist/verify.groovy
similarity index 64%
copy from enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java
copy to maven-enforcer-plugin/src/it/projects/require-files-exist/verify.groovy
index 8a2ae95..b0b02f1 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java
+++ b/maven-enforcer-plugin/src/it/projects/require-files-exist/verify.groovy
@@ -16,25 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.enforcer.rules;
+def buildLog = new File(basedir, 'build.log').text
-import org.apache.maven.enforcer.rule.api.AbstractEnforcerRule;
-
-/**
- * Abstract help rule.
- *
- * @author Slawomir Jaranowski
- * @since 3.2.0
- */
-abstract class AbstractStandardEnforcerRule extends AbstractEnforcerRule {
-
- private String message;
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-}
+// rule executed
+assert buildLog.contains('[INFO] Rule 0: org.apache.maven.enforcer.rules.files.RequireFilesExist executed')
diff --git a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java b/maven-enforcer-plugin/src/it/projects/require-files-size/verify.groovy
similarity index 64%
copy from enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java
copy to maven-enforcer-plugin/src/it/projects/require-files-size/verify.groovy
index 8a2ae95..e710b4b 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/AbstractStandardEnforcerRule.java
+++ b/maven-enforcer-plugin/src/it/projects/require-files-size/verify.groovy
@@ -16,25 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.enforcer.rules;
+def buildLog = new File(basedir, 'build.log').text
-import org.apache.maven.enforcer.rule.api.AbstractEnforcerRule;
-
-/**
- * Abstract help rule.
- *
- * @author Slawomir Jaranowski
- * @since 3.2.0
- */
-abstract class AbstractStandardEnforcerRule extends AbstractEnforcerRule {
-
- private String message;
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-}
+// rule executed
+assert buildLog.contains('[INFO] Rule 0: org.apache.maven.enforcer.rules.files.RequireFilesSize executed')