Skip to content

Commit ef8ed4c

Browse files
Migrate component injection to JSR-330
1 parent 704a35c commit ef8ed4c

File tree

6 files changed

+83
-99
lines changed

6 files changed

+83
-99
lines changed

src/main/java/org/apache/maven/plugins/jar/AbstractJarMojo.java

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.apache.maven.execution.MavenSession;
3030
import org.apache.maven.plugin.AbstractMojo;
3131
import org.apache.maven.plugin.MojoExecutionException;
32-
import org.apache.maven.plugins.annotations.Component;
3332
import org.apache.maven.plugins.annotations.Parameter;
3433
import org.apache.maven.project.MavenProject;
3534
import org.apache.maven.project.MavenProjectHelper;
@@ -56,12 +55,6 @@ public abstract class AbstractJarMojo extends AbstractMojo {
5655

5756
private static final String SEPARATOR = FileSystems.getDefault().getSeparator();
5857

59-
@Component
60-
private ToolchainsJdkSpecification toolchainsJdkSpecification;
61-
62-
@Component
63-
private ToolchainManager toolchainManager;
64-
6558
/**
6659
* List of files to include. Specified as fileset patterns which are relative to the input directory whose contents
6760
* is being packaged into the JAR.
@@ -88,24 +81,6 @@ public abstract class AbstractJarMojo extends AbstractMojo {
8881
@Parameter(defaultValue = "${project.build.finalName}", readonly = true)
8982
private String finalName;
9083

91-
/**
92-
* The Jar archiver.
93-
*/
94-
@Component
95-
private Map<String, Archiver> archivers;
96-
97-
/**
98-
* The {@link MavenProject}.
99-
*/
100-
@Parameter(defaultValue = "${project}", readonly = true, required = true)
101-
private MavenProject project;
102-
103-
/**
104-
* The {@link MavenSession}.
105-
*/
106-
@Parameter(defaultValue = "${session}", readonly = true, required = true)
107-
private MavenSession session;
108-
10984
/**
11085
* The archive configuration to use. See <a href="http://maven.apache.org/shared/maven-archiver/index.html">Maven
11186
* Archiver Reference</a>.
@@ -124,12 +99,6 @@ public abstract class AbstractJarMojo extends AbstractMojo {
12499
@Deprecated
125100
private boolean useDefaultManifestFile;
126101

127-
/**
128-
*
129-
*/
130-
@Component
131-
private MavenProjectHelper projectHelper;
132-
133102
/**
134103
* Require the jar plugin to build a new JAR even if none of the contents appear to have changed. By default, this
135104
* plugin looks to see if the output jar exists and inputs have not changed. If these conditions are true, the
@@ -210,6 +179,42 @@ public abstract class AbstractJarMojo extends AbstractMojo {
210179
@Parameter(property = "maven.jar.attach", defaultValue = "true")
211180
protected boolean attach;
212181

182+
/**
183+
* The {@link MavenProject}.
184+
*/
185+
private final MavenProject project;
186+
187+
/**
188+
* The {@link MavenSession}.
189+
*/
190+
private final MavenSession session;
191+
192+
private final ToolchainsJdkSpecification toolchainsJdkSpecification;
193+
194+
private final ToolchainManager toolchainManager;
195+
196+
/**
197+
* The Jar archiver.
198+
*/
199+
private final Map<String, Archiver> archivers;
200+
201+
private final MavenProjectHelper projectHelper;
202+
203+
AbstractJarMojo(
204+
MavenProject project,
205+
MavenSession session,
206+
ToolchainsJdkSpecification toolchainsJdkSpecification,
207+
ToolchainManager toolchainManager,
208+
Map<String, Archiver> archivers,
209+
MavenProjectHelper projectHelper) {
210+
this.project = project;
211+
this.session = session;
212+
this.toolchainsJdkSpecification = toolchainsJdkSpecification;
213+
this.toolchainManager = toolchainManager;
214+
this.archivers = archivers;
215+
this.projectHelper = projectHelper;
216+
}
217+
213218
/**
214219
* Return the specific output directory to serve as the root for the archive.
215220
* @return get classes directory.

src/main/java/org/apache/maven/plugins/jar/JarMojo.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,20 @@
1818
*/
1919
package org.apache.maven.plugins.jar;
2020

21+
import javax.inject.Inject;
22+
2123
import java.io.File;
24+
import java.util.Map;
2225

26+
import org.apache.maven.execution.MavenSession;
2327
import org.apache.maven.plugins.annotations.LifecyclePhase;
2428
import org.apache.maven.plugins.annotations.Mojo;
2529
import org.apache.maven.plugins.annotations.Parameter;
2630
import org.apache.maven.plugins.annotations.ResolutionScope;
31+
import org.apache.maven.project.MavenProject;
32+
import org.apache.maven.project.MavenProjectHelper;
33+
import org.apache.maven.toolchain.ToolchainManager;
34+
import org.codehaus.plexus.archiver.Archiver;
2735

2836
/**
2937
* Build a JAR from the current project.
@@ -53,6 +61,17 @@ public class JarMojo extends AbstractJarMojo {
5361
@Parameter
5462
private String classifier;
5563

64+
@Inject
65+
JarMojo(
66+
MavenProject project,
67+
MavenSession session,
68+
ToolchainsJdkSpecification toolchainsJdkSpecification,
69+
ToolchainManager toolchainManager,
70+
Map<String, Archiver> archivers,
71+
MavenProjectHelper projectHelper) {
72+
super(project, session, toolchainsJdkSpecification, toolchainManager, archivers, projectHelper);
73+
}
74+
5675
/**
5776
* {@inheritDoc}
5877
*/

src/main/java/org/apache/maven/plugins/jar/TestJarMojo.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,34 @@
1818
*/
1919
package org.apache.maven.plugins.jar;
2020

21+
import javax.inject.Inject;
22+
2123
import java.io.File;
24+
import java.util.Map;
2225

26+
import org.apache.maven.execution.MavenSession;
2327
import org.apache.maven.plugin.MojoExecutionException;
2428
import org.apache.maven.plugins.annotations.LifecyclePhase;
2529
import org.apache.maven.plugins.annotations.Mojo;
2630
import org.apache.maven.plugins.annotations.Parameter;
2731
import org.apache.maven.plugins.annotations.ResolutionScope;
32+
import org.apache.maven.project.MavenProject;
33+
import org.apache.maven.project.MavenProjectHelper;
34+
import org.apache.maven.toolchain.ToolchainManager;
35+
import org.codehaus.plexus.archiver.Archiver;
2836

2937
/**
3038
* Build a JAR of the test classes for the current project.
3139
*
3240
* @author <a href="[email protected]">Emmanuel Venisse</a>
3341
* @version $Id$
3442
*/
35-
// CHECKSTYLE_OFF: LineLength
3643
@Mojo(
3744
name = "test-jar",
3845
defaultPhase = LifecyclePhase.PACKAGE,
3946
requiresProject = true,
4047
threadSafe = true,
4148
requiresDependencyResolution = ResolutionScope.TEST)
42-
// CHECKSTYLE_ON: LineLength
4349
public class TestJarMojo extends AbstractJarMojo {
4450

4551
/**
@@ -61,6 +67,17 @@ public class TestJarMojo extends AbstractJarMojo {
6167
@Parameter(defaultValue = "tests")
6268
private String classifier;
6369

70+
@Inject
71+
TestJarMojo(
72+
MavenProject project,
73+
MavenSession session,
74+
ToolchainsJdkSpecification toolchainsJdkSpecification,
75+
ToolchainManager toolchainManager,
76+
Map<String, Archiver> archivers,
77+
MavenProjectHelper projectHelper) {
78+
super(project, session, toolchainsJdkSpecification, toolchainManager, archivers, projectHelper);
79+
}
80+
6481
/**
6582
* {@inheritDoc}
6683
*/

src/test/java/org/apache/maven/plugins/jar/JarMojoTest.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,15 @@
1818
*/
1919
package org.apache.maven.plugins.jar;
2020

21+
import javax.inject.Inject;
22+
2123
import org.apache.maven.api.plugin.testing.InjectMojo;
2224
import org.apache.maven.api.plugin.testing.MojoTest;
25+
import org.apache.maven.project.MavenProject;
2326
import org.junit.jupiter.api.Test;
2427

25-
import static org.junit.jupiter.api.Assertions.assertEquals;
2628
import static org.junit.jupiter.api.Assertions.assertNotNull;
29+
import static org.junit.jupiter.api.Assertions.assertSame;
2730

2831
/**
2932
* Test for {@link JarMojo}
@@ -33,13 +36,16 @@
3336
@MojoTest
3437
class JarMojoTest {
3538

39+
@Inject
40+
private MavenProject project;
41+
3642
/**
3743
* Tests the discovery and configuration of the mojo.
3844
*/
3945
@Test
40-
@InjectMojo(goal = "jar", pom = "classpath:/unit/jar-basic-test/pom.xml")
46+
@InjectMojo(goal = "jar")
4147
void testJarTestEnvironment(JarMojo mojo) {
4248
assertNotNull(mojo);
43-
assertEquals("foo", mojo.getProject().getGroupId());
49+
assertSame(project, mojo.getProject());
4450
}
4551
}

src/test/resources/unit/jar-basic-test/pom.xml

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/test/resources/unit/jar-basic-test/src/main/java/TestCompile1.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)