Skip to content

Commit d0cf89c

Browse files
authored
Use Sisu Guice instead of Plexus (#127)
* Use Sisu Guice instead of Plexus
1 parent 764c2cf commit d0cf89c

File tree

11 files changed

+179
-93
lines changed

11 files changed

+179
-93
lines changed

pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,16 @@
114114
<version>${resolverVersion}</version>
115115
<scope>provided</scope>
116116
</dependency>
117+
<dependency>
118+
<groupId>javax.inject</groupId>
119+
<artifactId>javax.inject</artifactId>
120+
<version>1</version>
121+
</dependency>
122+
<dependency>
123+
<groupId>org.eclipse.sisu</groupId>
124+
<artifactId>org.eclipse.sisu.plexus</artifactId>
125+
<scope>provided</scope>
126+
</dependency>
117127

118128
<!-- maven plugin tools -->
119129
<dependency>

src/main/java/org/apache/maven/plugins/help/AbstractEffectiveMojo.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@
3333
import java.util.Properties;
3434
import java.util.Set;
3535

36+
import org.apache.maven.project.ProjectBuilder;
3637
import org.codehaus.plexus.util.xml.XMLWriter;
3738
import org.codehaus.plexus.util.xml.XmlWriterUtil;
39+
import org.eclipse.aether.RepositorySystem;
3840
import org.jdom2.Document;
3941
import org.jdom2.JDOMException;
4042
import org.jdom2.input.SAXBuilder;
@@ -48,6 +50,11 @@
4850
* @since 2.1
4951
*/
5052
public abstract class AbstractEffectiveMojo extends AbstractHelpMojo {
53+
54+
protected AbstractEffectiveMojo(ProjectBuilder projectBuilder, RepositorySystem repositorySystem) {
55+
super(projectBuilder, repositorySystem);
56+
}
57+
5158
/**
5259
* Utility method to write an XML content to a given file.
5360
*

src/main/java/org/apache/maven/plugins/help/AbstractHelpMojo.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.apache.maven.model.building.ModelBuildingRequest;
2929
import org.apache.maven.plugin.AbstractMojo;
3030
import org.apache.maven.plugin.MojoExecutionException;
31-
import org.apache.maven.plugins.annotations.Component;
3231
import org.apache.maven.plugins.annotations.Parameter;
3332
import org.apache.maven.project.DefaultProjectBuildingRequest;
3433
import org.apache.maven.project.MavenProject;
@@ -55,18 +54,6 @@ public abstract class AbstractHelpMojo extends AbstractMojo {
5554
/** The line separator for the current OS. */
5655
protected static final String LS = System.getProperty("line.separator");
5756

58-
/**
59-
* Maven Project Builder component.
60-
*/
61-
@Component
62-
protected ProjectBuilder projectBuilder;
63-
64-
/**
65-
* Component used to resolve artifacts and download their files from remote repositories.
66-
*/
67-
@Component
68-
protected RepositorySystem repositorySystem;
69-
7057
/**
7158
* Current Maven project.
7259
*/
@@ -89,6 +76,21 @@ public abstract class AbstractHelpMojo extends AbstractMojo {
8976
@Parameter(property = "output")
9077
protected File output;
9178

79+
/**
80+
* Maven Project Builder component.
81+
*/
82+
protected final ProjectBuilder projectBuilder;
83+
84+
/**
85+
* Component used to resolve artifacts and download their files from remote repositories.
86+
*/
87+
protected final RepositorySystem repositorySystem;
88+
89+
protected AbstractHelpMojo(ProjectBuilder projectBuilder, RepositorySystem repositorySystem) {
90+
this.projectBuilder = projectBuilder;
91+
this.repositorySystem = repositorySystem;
92+
}
93+
9294
/**
9395
* Utility method to write a content to a given file.
9496
*

src/main/java/org/apache/maven/plugins/help/ActiveProfilesMojo.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
*/
1919
package org.apache.maven.plugins.help;
2020

21+
import javax.inject.Inject;
22+
2123
import java.io.IOException;
2224
import java.util.List;
2325
import java.util.Map;
@@ -26,6 +28,8 @@
2628
import org.apache.maven.plugins.annotations.Mojo;
2729
import org.apache.maven.plugins.annotations.Parameter;
2830
import org.apache.maven.project.MavenProject;
31+
import org.apache.maven.project.ProjectBuilder;
32+
import org.eclipse.aether.RepositorySystem;
2933

3034
/**
3135
* Displays a list of the profiles which are currently active for this build.
@@ -44,11 +48,17 @@ public class ActiveProfilesMojo extends AbstractHelpMojo {
4448
@Parameter(defaultValue = "${reactorProjects}", required = true, readonly = true)
4549
private List<MavenProject> projects;
4650

51+
@Inject
52+
public ActiveProfilesMojo(ProjectBuilder projectBuilder, RepositorySystem repositorySystem) {
53+
super(projectBuilder, repositorySystem);
54+
}
55+
4756
// ----------------------------------------------------------------------
4857
// Public methods
4958
// ----------------------------------------------------------------------
5059

5160
/** {@inheritDoc} */
61+
@Override
5262
public void execute() throws MojoExecutionException {
5363
StringBuilder message = new StringBuilder();
5464

src/main/java/org/apache/maven/plugins/help/AllProfilesMojo.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
*/
1919
package org.apache.maven.plugins.help;
2020

21+
import javax.inject.Inject;
22+
2123
import java.io.IOException;
2224
import java.util.HashMap;
2325
import java.util.List;
@@ -29,7 +31,9 @@
2931
import org.apache.maven.plugins.annotations.Mojo;
3032
import org.apache.maven.plugins.annotations.Parameter;
3133
import org.apache.maven.project.MavenProject;
34+
import org.apache.maven.project.ProjectBuilder;
3235
import org.apache.maven.settings.SettingsUtils;
36+
import org.eclipse.aether.RepositorySystem;
3337

3438
/**
3539
* Displays a list of available profiles under the current project.
@@ -59,11 +63,17 @@ public class AllProfilesMojo extends AbstractHelpMojo {
5963
@Parameter(defaultValue = "${settings.profiles}", readonly = true, required = true)
6064
private List<org.apache.maven.settings.Profile> settingsProfiles;
6165

66+
@Inject
67+
public AllProfilesMojo(ProjectBuilder projectBuilder, RepositorySystem repositorySystem) {
68+
super(projectBuilder, repositorySystem);
69+
}
70+
6271
// ----------------------------------------------------------------------
6372
// Public methods
6473
// ----------------------------------------------------------------------
6574

6675
/** {@inheritDoc} */
76+
@Override
6777
public void execute() throws MojoExecutionException, MojoFailureException {
6878
StringBuilder descriptionBuffer = new StringBuilder();
6979

src/main/java/org/apache/maven/plugins/help/DescribeMojo.java

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
*/
1919
package org.apache.maven.plugins.help;
2020

21+
import javax.inject.Inject;
22+
2123
import java.io.File;
2224
import java.io.IOException;
2325
import java.lang.reflect.InvocationTargetException;
@@ -50,15 +52,16 @@
5052
import org.apache.maven.plugin.version.PluginVersionResolutionException;
5153
import org.apache.maven.plugin.version.PluginVersionResolver;
5254
import org.apache.maven.plugin.version.PluginVersionResult;
53-
import org.apache.maven.plugins.annotations.Component;
5455
import org.apache.maven.plugins.annotations.Mojo;
5556
import org.apache.maven.project.DefaultProjectBuildingRequest;
5657
import org.apache.maven.project.MavenProject;
58+
import org.apache.maven.project.ProjectBuilder;
5759
import org.apache.maven.project.ProjectBuildingRequest;
5860
import org.apache.maven.reporting.MavenReport;
5961
import org.apache.maven.shared.utils.logging.MessageUtils;
6062
import org.apache.maven.tools.plugin.generator.HtmlToPlainTextConverter;
6163
import org.codehaus.plexus.util.StringUtils;
64+
import org.eclipse.aether.RepositorySystem;
6265
import org.eclipse.aether.artifact.Artifact;
6366
import org.eclipse.aether.artifact.DefaultArtifact;
6467

@@ -99,32 +102,45 @@ public class DescribeMojo extends AbstractHelpMojo {
99102
/**
100103
* Component used to get a plugin descriptor from a given plugin.
101104
*/
102-
@Component
103-
protected MavenPluginManager pluginManager;
105+
protected final MavenPluginManager pluginManager;
104106

105107
/**
106108
* Component used to get a plugin by its prefix and get mojo descriptors.
107109
*/
108-
@Component
109-
private MojoDescriptorCreator mojoDescriptorCreator;
110+
private final MojoDescriptorCreator mojoDescriptorCreator;
110111

111112
/**
112113
* Component used to resolve the version for a plugin.
113114
*/
114-
@Component
115-
private PluginVersionResolver pluginVersionResolver;
115+
private final PluginVersionResolver pluginVersionResolver;
116116

117117
/**
118118
* The Maven default built-in lifecycles.
119119
*/
120-
@Component
121-
private DefaultLifecycles defaultLifecycles;
120+
private final DefaultLifecycles defaultLifecycles;
122121

123122
/**
124123
* A map from each packaging to its lifecycle mapping.
125124
*/
126-
@Component
127-
private Map<String, LifecycleMapping> lifecycleMappings;
125+
private final Map<String, LifecycleMapping> lifecycleMappings;
126+
127+
@Inject
128+
public DescribeMojo(
129+
ProjectBuilder projectBuilder,
130+
RepositorySystem repositorySystem,
131+
MavenPluginManager pluginManager,
132+
MojoDescriptorCreator mojoDescriptorCreator,
133+
PluginVersionResolver pluginVersionResolver,
134+
DefaultLifecycles defaultLifecycles,
135+
Map<String, LifecycleMapping> lifecycleMappings) {
136+
137+
super(projectBuilder, repositorySystem);
138+
this.pluginManager = pluginManager;
139+
this.mojoDescriptorCreator = mojoDescriptorCreator;
140+
this.pluginVersionResolver = pluginVersionResolver;
141+
this.defaultLifecycles = defaultLifecycles;
142+
this.lifecycleMappings = lifecycleMappings;
143+
}
128144

129145
// ----------------------------------------------------------------------
130146
// Mojo parameters

src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
*/
1919
package org.apache.maven.plugins.help;
2020

21+
import javax.inject.Inject;
22+
2123
import java.io.IOException;
2224
import java.io.StringWriter;
2325
import java.util.Collections;
@@ -35,11 +37,13 @@
3537
import org.apache.maven.plugins.annotations.Mojo;
3638
import org.apache.maven.plugins.annotations.Parameter;
3739
import org.apache.maven.project.MavenProject;
40+
import org.apache.maven.project.ProjectBuilder;
3841
import org.apache.maven.shared.utils.logging.MessageUtils;
3942
import org.codehaus.plexus.util.StringUtils;
4043
import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
4144
import org.codehaus.plexus.util.xml.XMLWriter;
4245
import org.codehaus.plexus.util.xml.XmlWriterUtil;
46+
import org.eclipse.aether.RepositorySystem;
4347

4448
/**
4549
* Displays the effective POM as an XML for this build, with the active profiles factored in, or a specified artifact.
@@ -85,6 +89,11 @@ public class EffectivePomMojo extends AbstractEffectiveMojo {
8589
@Parameter(property = "verbose", defaultValue = "false")
8690
private boolean verbose = false;
8791

92+
@Inject
93+
public EffectivePomMojo(ProjectBuilder projectBuilder, RepositorySystem repositorySystem) {
94+
super(projectBuilder, repositorySystem);
95+
}
96+
8897
// ----------------------------------------------------------------------
8998
// Public methods
9099
// ----------------------------------------------------------------------

src/main/java/org/apache/maven/plugins/help/EffectiveSettingsMojo.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
*/
1919
package org.apache.maven.plugins.help;
2020

21+
import javax.inject.Inject;
22+
2123
import java.io.IOException;
2224
import java.io.StringWriter;
2325
import java.net.InetAddress;
@@ -29,6 +31,7 @@
2931
import org.apache.maven.plugin.MojoExecutionException;
3032
import org.apache.maven.plugins.annotations.Mojo;
3133
import org.apache.maven.plugins.annotations.Parameter;
34+
import org.apache.maven.project.ProjectBuilder;
3235
import org.apache.maven.settings.Profile;
3336
import org.apache.maven.settings.Proxy;
3437
import org.apache.maven.settings.Server;
@@ -39,6 +42,7 @@
3942
import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
4043
import org.codehaus.plexus.util.xml.XMLWriter;
4144
import org.codehaus.plexus.util.xml.XmlWriterUtil;
45+
import org.eclipse.aether.RepositorySystem;
4246

4347
/**
4448
* Displays the calculated settings as XML for this project, given any profile enhancement and the inheritance
@@ -67,11 +71,17 @@ public class EffectiveSettingsMojo extends AbstractEffectiveMojo {
6771
@Parameter(property = "showPasswords", defaultValue = "false")
6872
private boolean showPasswords;
6973

74+
@Inject
75+
public EffectiveSettingsMojo(ProjectBuilder projectBuilder, RepositorySystem repositorySystem) {
76+
super(projectBuilder, repositorySystem);
77+
}
78+
7079
// ----------------------------------------------------------------------
7180
// Public methods
7281
// ----------------------------------------------------------------------
7382

7483
/** {@inheritDoc} */
84+
@Override
7585
public void execute() throws MojoExecutionException {
7686
Settings copySettings;
7787
if (showPasswords) {

0 commit comments

Comments
 (0)