Skip to content

Commit 8b8ac7a

Browse files
Improve example of custom rule (#890)
* Improve example of custom rule - use constructor for components injection - use a sisu version from the project * add maven.compiler.release to example
1 parent 1992401 commit 8b8ac7a

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

enforcer-api/src/custom-rule-sample/pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
<properties>
3535
<api.version>${project.version}</api.version>
3636
<mavenVersion>${mavenVersion}</mavenVersion>
37-
<!-- use JDK 1.8 or 11 -->
38-
<maven.compiler.source>1.8</maven.compiler.source>
39-
<maven.compiler.target>1.8</maven.compiler.target>
37+
<maven.compiler.source>8</maven.compiler.source>
38+
<maven.compiler.target>8</maven.compiler.target>
39+
<maven.compiler.release>8</maven.compiler.release>
4040
</properties>
4141

4242
<dependencies>
@@ -66,7 +66,7 @@
6666
<!-- generate index of project components -->
6767
<groupId>org.eclipse.sisu</groupId>
6868
<artifactId>sisu-maven-plugin</artifactId>
69-
<version>0.9.0.M1</version>
69+
<version>${version.sisu-maven-plugin}</version>
7070
<executions>
7171
<execution>
7272
<goals>

enforcer-api/src/custom-rule-sample/src/main/java/org/example/custom/rule/MyCustomRule.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import javax.inject.Named;
2525

2626
import java.util.List;
27+
import java.util.Objects;
2728

2829
import org.apache.maven.enforcer.rule.api.AbstractEnforcerRule;
2930
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
@@ -49,14 +50,18 @@ public class MyCustomRule extends AbstractEnforcerRule {
4950

5051
// Inject needed Maven components
5152

52-
@Inject
53-
private MavenProject project;
53+
private final MavenProject project;
5454

55-
@Inject
56-
private MavenSession session;
55+
private final MavenSession session;
56+
57+
private final RuntimeInformation runtimeInformation;
5758

5859
@Inject
59-
private RuntimeInformation runtimeInformation;
60+
public MyCustomRule(MavenProject project, MavenSession session, RuntimeInformation runtimeInformation) {
61+
this.project = Objects.requireNonNull(project);
62+
this.session = Objects.requireNonNull(session);
63+
this.runtimeInformation = Objects.requireNonNull(runtimeInformation);
64+
}
6065

6166
public void execute() throws EnforcerRuleException {
6267

0 commit comments

Comments
 (0)