Skip to content

Commit 8051a76

Browse files
committed
use ${project.build.outputDirectory} instead of
${project.build.directory}/classes
1 parent ed29439 commit 8051a76

File tree

1,720 files changed

+22161
-22168
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,720 files changed

+22161
-22168
lines changed
Lines changed: 74 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,75 @@
1-
package de.andrena.tools.nopackagecycles;
2-
3-
import java.io.File;
4-
import java.io.IOException;
5-
import java.util.ArrayList;
6-
import java.util.Collection;
7-
8-
import jdepend.framework.JDepend;
9-
import jdepend.framework.JavaPackage;
10-
11-
import org.apache.maven.enforcer.rule.api.EnforcerRule;
12-
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
13-
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
14-
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
15-
16-
public class NoPackageCyclesRule implements EnforcerRule {
17-
18-
public static final String MAVEN_CLASSES_DIR = "classes";
19-
public static final String MAVEN_PROJECT_BUILD_DIRECTORY_VAR = "${project.build.directory}";
20-
21-
public void execute(EnforcerRuleHelper helper) throws EnforcerRuleException {
22-
try {
23-
executePackageCycleCheckIfNecessary(helper);
24-
} catch (ExpressionEvaluationException e) {
25-
throw new EnforcerRuleException("Unable to lookup an expression " + e.getLocalizedMessage(), e);
26-
} catch (IOException e) {
27-
throw new EnforcerRuleException("Unable to access target directory " + e.getLocalizedMessage(), e);
28-
}
29-
}
30-
31-
private void executePackageCycleCheckIfNecessary(EnforcerRuleHelper helper) throws ExpressionEvaluationException,
32-
IOException, EnforcerRuleException {
33-
File targetDir = new File((String) helper.evaluate(MAVEN_PROJECT_BUILD_DIRECTORY_VAR));
34-
File classesDir = new File(targetDir, MAVEN_CLASSES_DIR);
35-
helper.getLog().info("Searching directory " + classesDir.getAbsolutePath() + " for package cycles.");
36-
if (checkIsNecessary(classesDir)) {
37-
executePackageCycleCheck(classesDir);
38-
} else {
39-
helper.getLog().info("Directory " + classesDir.getAbsolutePath() + " could not be found.");
40-
}
41-
}
42-
43-
private void executePackageCycleCheck(File classesDir) throws IOException, EnforcerRuleException {
44-
JDepend jdepend = createJDepend();
45-
jdepend.addDirectory(classesDir.getAbsolutePath());
46-
jdepend.analyze();
47-
if (jdepend.containsCycles()) {
48-
throw new EnforcerRuleException("There are package cycles:" + getPackageCycles(jdepend));
49-
}
50-
}
51-
52-
protected JDepend createJDepend() {
53-
return new JDepend();
54-
}
55-
56-
private String getPackageCycles(JDepend jdepend) {
57-
@SuppressWarnings("unchecked")
58-
Collection<JavaPackage> packages = jdepend.getPackages();
59-
return new PackageCycleOutput(new ArrayList<JavaPackage>(packages)).getOutput();
60-
}
61-
62-
private boolean checkIsNecessary(File classesDir) {
63-
return classesDir.exists();
64-
}
65-
66-
public String getCacheId() {
67-
return "";
68-
}
69-
70-
public boolean isCacheable() {
71-
return false;
72-
}
73-
74-
public boolean isResultValid(EnforcerRule arg0) {
75-
return false;
76-
}
1+
package de.andrena.tools.nopackagecycles;
2+
3+
import java.io.File;
4+
import java.io.IOException;
5+
import java.util.ArrayList;
6+
import java.util.Collection;
7+
8+
import jdepend.framework.JDepend;
9+
import jdepend.framework.JavaPackage;
10+
11+
import org.apache.maven.enforcer.rule.api.EnforcerRule;
12+
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
13+
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
14+
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
15+
16+
public class NoPackageCyclesRule implements EnforcerRule {
17+
18+
public static final String MAVEN_PROJECT_BUILD_OUTPUT_DIRECTORY_VAR = "${project.build.outputDirectory}";
19+
20+
public void execute(EnforcerRuleHelper helper) throws EnforcerRuleException {
21+
try {
22+
executePackageCycleCheckIfNecessary(helper);
23+
} catch (ExpressionEvaluationException e) {
24+
throw new EnforcerRuleException("Unable to lookup an expression " + e.getLocalizedMessage(), e);
25+
} catch (IOException e) {
26+
throw new EnforcerRuleException("Unable to access target directory " + e.getLocalizedMessage(), e);
27+
}
28+
}
29+
30+
private void executePackageCycleCheckIfNecessary(EnforcerRuleHelper helper) throws ExpressionEvaluationException,
31+
IOException, EnforcerRuleException {
32+
File classesDir = new File((String) helper.evaluate(MAVEN_PROJECT_BUILD_OUTPUT_DIRECTORY_VAR));
33+
helper.getLog().info("Searching directory " + classesDir.getAbsolutePath() + " for package cycles.");
34+
if (checkIsNecessary(classesDir)) {
35+
executePackageCycleCheck(classesDir);
36+
} else {
37+
helper.getLog().info("Directory " + classesDir.getAbsolutePath() + " could not be found.");
38+
}
39+
}
40+
41+
private void executePackageCycleCheck(File classesDir) throws IOException, EnforcerRuleException {
42+
JDepend jdepend = createJDepend();
43+
jdepend.addDirectory(classesDir.getAbsolutePath());
44+
jdepend.analyze();
45+
if (jdepend.containsCycles()) {
46+
throw new EnforcerRuleException("There are package cycles:" + getPackageCycles(jdepend));
47+
}
48+
}
49+
50+
protected JDepend createJDepend() {
51+
return new JDepend();
52+
}
53+
54+
private String getPackageCycles(JDepend jdepend) {
55+
@SuppressWarnings("unchecked")
56+
Collection<JavaPackage> packages = jdepend.getPackages();
57+
return new PackageCycleOutput(new ArrayList<JavaPackage>(packages)).getOutput();
58+
}
59+
60+
private boolean checkIsNecessary(File classesDir) {
61+
return classesDir.exists();
62+
}
63+
64+
public String getCacheId() {
65+
return "";
66+
}
67+
68+
public boolean isCacheable() {
69+
return false;
70+
}
71+
72+
public boolean isResultValid(EnforcerRule arg0) {
73+
return false;
74+
}
7775
}

src/test/java/de/andrena/tools/nopackagecycles/NoPackageCyclesRuleTest.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ protected JDepend createJDepend() {
4343
public void setUp() throws Exception {
4444
jdependMock = new JDependMock();
4545
rule = new NoPackageCyclesRuleMock();
46-
temporaryFolder.newFolder(NoPackageCyclesRule.MAVEN_CLASSES_DIR);
4746
helper = new EnforcerRuleHelperMock();
4847
helper.setTargetDir(temporaryFolder.getRoot());
4948
}
@@ -65,13 +64,13 @@ public void result_IsNotValid() {
6564

6665
@Test
6766
public void execute_checkNotNecessary_ClassesDirNotFound() throws Exception {
68-
File newFolder = temporaryFolder.newFolder();
69-
helper.setTargetDir(newFolder);
67+
File nonExistentFolder = new File(temporaryFolder.getRoot(), "non-existent-classes-dir");
68+
helper.setTargetDir(nonExistentFolder);
7069
rule.execute(helper);
7170
List<String> infoLogs = helper.getLogMock().getInfo();
7271
assertThat(infoLogs, hasSize(2));
73-
assertSearchingInfo(newFolder, infoLogs);
74-
assertThat(infoLogs.get(1), is("Directory " + getTargetDirectory(newFolder) + " could not be found."));
72+
assertSearchingInfo(nonExistentFolder, infoLogs);
73+
assertThat(infoLogs.get(1), is("Directory " + nonExistentFolder.getAbsolutePath() + " could not be found."));
7574
}
7675

7776
@Test
@@ -107,11 +106,7 @@ public void execute_ContainsCycles() throws Exception {
107106
}
108107

109108
private void assertSearchingInfo(File projectDirectory, List<String> infoLogs) {
110-
assertThat(infoLogs.get(0), is("Searching directory " + getTargetDirectory(projectDirectory)
109+
assertThat(infoLogs.get(0), is("Searching directory " + projectDirectory.getAbsolutePath()
111110
+ " for package cycles."));
112111
}
113-
114-
private String getTargetDirectory(File newFolder) {
115-
return new File(newFolder, NoPackageCyclesRule.MAVEN_CLASSES_DIR).getAbsolutePath();
116-
}
117112
}

src/test/java/de/andrena/tools/nopackagecycles/mock/EnforcerRuleHelperMock.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public Object evaluate(String variable) throws ExpressionEvaluationException {
3838
if (evaluateThrowsException) {
3939
throw new ExpressionEvaluationException("");
4040
}
41-
if (NoPackageCyclesRule.MAVEN_PROJECT_BUILD_DIRECTORY_VAR.equals(variable)) {
41+
if (NoPackageCyclesRule.MAVEN_PROJECT_BUILD_OUTPUT_DIRECTORY_VAR.equals(variable)) {
4242
return targetDir.getPath();
4343
}
4444
return null;

src/test/resources/fitnesse-target/classes/META-INF/FitNesseVersion.txt renamed to src/test/resources/fitnesse-target/META-INF/FitNesseVersion.txt

File renamed without changes.

src/test/resources/fitnesse-target/classes/eg/Division.class renamed to src/test/resources/fitnesse-target/eg/Division.class

File renamed without changes.

src/test/resources/fitnesse-target/classes/eg/GetDates.class renamed to src/test/resources/fitnesse-target/eg/GetDates.class

File renamed without changes.

src/test/resources/fitnesse-target/classes/eg/bowling/Bowling.class renamed to src/test/resources/fitnesse-target/eg/bowling/Bowling.class

File renamed without changes.

src/test/resources/fitnesse-target/classes/eg/bowling/BowlingGame.class renamed to src/test/resources/fitnesse-target/eg/bowling/BowlingGame.class

File renamed without changes.

src/test/resources/fitnesse-target/classes/eg/bowling/BowlingGameTest.class renamed to src/test/resources/fitnesse-target/eg/bowling/BowlingGameTest.class

File renamed without changes.

src/test/resources/fitnesse-target/classes/eg/bowling/BowlingScorer.class renamed to src/test/resources/fitnesse-target/eg/bowling/BowlingScorer.class

File renamed without changes.

0 commit comments

Comments
 (0)