Skip to content

Commit bf1ed68

Browse files
committed
Upgrade to Maven 4.0.0-alpha-9
1 parent 347d946 commit bf1ed68

22 files changed

+362
-305
lines changed

pom.xml

+34-36
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ under the License.
6969

7070
<properties>
7171
<javaVersion>8</javaVersion>
72-
<mavenVersion>4.0.0-alpha-8</mavenVersion>
72+
<mavenVersion>4.0.0-alpha-9</mavenVersion>
7373
<!-- Keep in sync with resolver used in maven above -->
7474
<slf4jVersion>1.7.5</slf4jVersion>
7575
<!-- Keep in sync with resolver used in maven above -->
@@ -84,7 +84,8 @@ under the License.
8484
<mavenInstallPluginVersion>3.1.0</mavenInstallPluginVersion>
8585
<mavenJarPluginVersion>3.3.0</mavenJarPluginVersion>
8686
<mavenJavadocPluginVersion>3.4.1</mavenJavadocPluginVersion>
87-
<mavenPluginToolsVersion>3.9.0</mavenPluginToolsVersion>
87+
<mavenPluginPluginVersion>3.10.3-SNAPSHOT</mavenPluginPluginVersion>
88+
<mavenPluginTestingHarnessVersion>4.0.0-alpha-3-SNAPSHOT</mavenPluginTestingHarnessVersion>
8889
<mavenResourcesPluginVersion>3.3.0</mavenResourcesPluginVersion>
8990
<mavenSourcePluginVersion>3.2.1</mavenSourcePluginVersion>
9091
<mavenSurefirePluginVersion>${surefire.version}</mavenSurefirePluginVersion>
@@ -100,14 +101,23 @@ under the License.
100101
<groupId>org.apache.maven</groupId>
101102
<artifactId>maven-api-core</artifactId>
102103
<version>${mavenVersion}</version>
103-
<scope>provided</scope>
104+
</dependency>
105+
<dependency>
106+
<groupId>org.apache.maven</groupId>
107+
<artifactId>maven-api-model</artifactId>
108+
<version>${mavenVersion}</version>
109+
</dependency>
110+
<dependency>
111+
<groupId>jakarta.inject</groupId>
112+
<artifactId>jakarta.inject-api</artifactId>
113+
<version>2.0.1</version>
104114
</dependency>
105115

106116
<!-- Test -->
107117
<dependency>
108118
<groupId>org.apache.maven.plugin-testing</groupId>
109119
<artifactId>maven-plugin-testing-harness</artifactId>
110-
<version>4.0.0-alpha-2</version>
120+
<version>${mavenPluginTestingHarnessVersion}</version>
111121
<scope>test</scope>
112122
</dependency>
113123
<dependency>
@@ -118,47 +128,35 @@ under the License.
118128
<scope>test</scope>
119129
</dependency>
120130
<dependency>
121-
<groupId>org.apache.maven</groupId>
122-
<artifactId>maven-resolver-provider</artifactId>
123-
<version>${mavenVersion}</version>
131+
<groupId>org.mockito</groupId>
132+
<artifactId>mockito-junit-jupiter</artifactId>
133+
<version>4.11.0</version>
124134
<scope>test</scope>
125135
</dependency>
126-
<!-- <dependency>-->
127-
<!-- <groupId>org.apache.maven.resolver</groupId>-->
128-
<!-- <artifactId>maven-resolver-connector-basic</artifactId>-->
129-
<!-- <version>${resolverVersion}</version>-->
130-
<!-- <scope>test</scope>-->
131-
<!-- </dependency>-->
132-
<!-- <dependency>-->
133-
<!-- <groupId>org.apache.maven.resolver</groupId>-->
134-
<!-- <artifactId>maven-resolver-transport-file</artifactId>-->
135-
<!-- <version>${resolverVersion}</version>-->
136-
<!-- <scope>test</scope>-->
137-
<!-- </dependency>-->
138-
<!-- <dependency>-->
139-
<!-- <groupId>org.apache.maven.resolver</groupId>-->
140-
<!-- <artifactId>maven-resolver-transport-http</artifactId>-->
141-
<!-- <version>${resolverVersion}</version>-->
142-
<!-- <scope>test</scope>-->
143-
<!-- </dependency>-->
144-
<!-- <dependency>-->
145-
<!-- <groupId>org.mockito</groupId>-->
146-
<!-- <artifactId>mockito-core</artifactId>-->
147-
<!-- <version>2.28.2</version>-->
148-
<!-- <scope>test</scope>-->
149-
<!-- </dependency>-->
150136
<dependency>
151-
<groupId>org.mockito</groupId>
152-
<artifactId>mockito-junit-jupiter</artifactId>
153-
<version>2.28.2</version>
137+
<groupId>org.slf4j</groupId>
138+
<artifactId>slf4j-api</artifactId>
139+
<version>${slf4jVersion}</version>
154140
<scope>test</scope>
155141
</dependency>
156142
<dependency>
157143
<groupId>org.slf4j</groupId>
158-
<artifactId>slf4j-nop</artifactId>
144+
<artifactId>slf4j-simple</artifactId>
159145
<version>${slf4jVersion}</version>
160146
<scope>test</scope>
161147
</dependency>
148+
<dependency>
149+
<groupId>org.junit.jupiter</groupId>
150+
<artifactId>junit-jupiter-api</artifactId>
151+
<version>5.10.0</version>
152+
<scope>test</scope>
153+
</dependency>
154+
155+
<dependency>
156+
<groupId>org.apache.maven.plugin-tools</groupId>
157+
<artifactId>maven-plugin-annotations</artifactId>
158+
<scope>none</scope>
159+
</dependency>
162160

163161
</dependencies>
164162

@@ -167,7 +165,7 @@ under the License.
167165
<plugin>
168166
<groupId>org.apache.maven.plugins</groupId>
169167
<artifactId>maven-plugin-plugin</artifactId>
170-
<version>${mavenPluginToolsVersion}</version>
168+
<version>${mavenPluginPluginVersion}</version>
171169
</plugin>
172170
<plugin>
173171
<groupId>com.diffplug.spotless</groupId>

src/it/deploy-attached-sources/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ under the License.
7777
<version>@project.version@</version>
7878
<configuration>
7979
<!-- Deployments will be written to ${basedir}/target -->
80-
<altDeploymentRepository>mine::default::file://${basedir}/target</altDeploymentRepository>
80+
<altDeploymentRepository>mine::default::file://${project.basedir}/target</altDeploymentRepository>
8181
</configuration>
8282
</plugin>
8383
</plugins>

src/it/deploy-attached-sources/test.properties

+5-5
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
# under the License.
1717

1818
# Properties passed to invocations of the deploy plugin
19-
pomFile = ${basedir}/pom.xml
19+
pomFile = ${project.basedir}/pom.xml
2020

21-
file = ${basedir}/target/${project.artifactId}-${project.version}.jar
22-
sources = ${basedir}/target/${project.artifactId}-${project.version}-sources.jar
23-
javadoc = ${basedir}/target/${project.artifactId}-${project.version}-javadoc.jar
21+
file = ${project.basedir}/target/${project.artifactId}-${project.version}.jar
22+
sources = ${project.basedir}/target/${project.artifactId}-${project.version}-sources.jar
23+
javadoc = ${project.basedir}/target/${project.artifactId}-${project.version}-javadoc.jar
2424

25-
url = file://${basedir}/target/repo
25+
url = file://${project.basedir}/target/repo

src/it/deploy-default-packaging/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ under the License.
7777
<version>@project.version@</version>
7878
<configuration>
7979
<!-- Deployments will be written to ${basedir}/target -->
80-
<altDeploymentRepository>mine::default::file://${basedir}/target</altDeploymentRepository>
80+
<altDeploymentRepository>mine::default::file://${project.basedir}/target</altDeploymentRepository>
8181
</configuration>
8282
</plugin>
8383
</plugins>

src/it/deploy-default-packaging/test.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@
1919
groupId = org.apache.maven.test
2020
artifactId = test
2121
version = 1.1
22-
file = ${basedir}/lib/test-1.1.jar
23-
url = file://${basedir}/target/repo
22+
file = ${project.basedir}/lib/test-1.1.jar
23+
url = file://${project.basedir}/target/repo

src/it/setup-mock-phase-maven-plugin/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ under the License.
4545
<plugin>
4646
<groupId>org.apache.maven.plugins</groupId>
4747
<artifactId>maven-plugin-plugin</artifactId>
48-
<version>@mavenPluginToolsVersion@</version>
48+
<version>@mavenPluginPluginVersion@</version>
4949
<configuration>
5050
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
5151
</configuration>

src/main/java/org/apache/maven/plugins/deploy/AbstractDeployMojo.java

+5-7
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,14 @@
1818
*/
1919
package org.apache.maven.plugins.deploy;
2020

21+
import jakarta.inject.Inject;
2122
import org.apache.maven.api.RemoteRepository;
2223
import org.apache.maven.api.Session;
2324
import org.apache.maven.api.Version;
2425
import org.apache.maven.api.plugin.Log;
2526
import org.apache.maven.api.plugin.Mojo;
2627
import org.apache.maven.api.plugin.MojoException;
27-
import org.apache.maven.api.plugin.annotations.Component;
2828
import org.apache.maven.api.plugin.annotations.Parameter;
29-
import org.apache.maven.api.services.VersionParser;
3029

3130
/**
3231
* Abstract class for Deploy mojo's.
@@ -36,10 +35,10 @@ public abstract class AbstractDeployMojo implements Mojo {
3635

3736
private static final String FIXED_MAVEN_VERSION = "3.9.0";
3837

39-
@Component
38+
@Inject
4039
protected Log logger;
4140

42-
@Component
41+
@Inject
4342
protected Session session;
4443

4544
/**
@@ -74,9 +73,8 @@ public int getRetryFailedDeploymentCount() {
7473
*/
7574
protected void warnIfAffectedPackagingAndMaven(final String packaging) {
7675
if (AFFECTED_MAVEN_PACKAGING.equals(packaging)) {
77-
VersionParser parser = session.getService(VersionParser.class);
78-
Version fixedMavenVersion = parser.parseVersion(FIXED_MAVEN_VERSION);
79-
Version currentMavenVersion = parser.parseVersion(session.getMavenVersion());
76+
Version fixedMavenVersion = session.parseVersion(FIXED_MAVEN_VERSION);
77+
Version currentMavenVersion = session.parseVersion(session.getMavenVersion());
8078
if (fixedMavenVersion.compareTo(currentMavenVersion) > 0) {
8179
getLog().warn("");
8280
getLog().warn("You are about to deploy a maven-plugin using Maven " + currentMavenVersion + ".");

src/main/java/org/apache/maven/plugins/deploy/DeployFileMojo.java

+14-5
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import java.util.jar.JarFile;
3434
import java.util.regex.Pattern;
3535

36+
import jakarta.inject.Inject;
3637
import org.apache.maven.api.Artifact;
3738
import org.apache.maven.api.RemoteRepository;
3839
import org.apache.maven.api.model.Model;
@@ -52,7 +53,7 @@
5253
*
5354
* @author <a href="mailto:[email protected]">Allan Ramirez</a>
5455
*/
55-
@Mojo(name = "deploy-file", requiresProject = false)
56+
@Mojo(name = "deploy-file", projectRequired = false)
5657
@SuppressWarnings("unused")
5758
public class DeployFileMojo extends AbstractDeployMojo {
5859
private static final String TAR = "tar.";
@@ -180,6 +181,15 @@ public class DeployFileMojo extends AbstractDeployMojo {
180181
@Parameter(property = "maven.deploy.file.skip", defaultValue = "false")
181182
private String skip = Boolean.FALSE.toString();
182183

184+
@Inject
185+
private ArtifactManager artifactManager;
186+
187+
@Inject
188+
private ArtifactDeployer artifactDeployer;
189+
190+
@Inject
191+
private ModelXmlFactory modelXmlFactory;
192+
183193
void initProperties() throws MojoException {
184194
Path deployedPom;
185195
if (pomFile != null) {
@@ -284,7 +294,6 @@ public void execute() throws MojoException {
284294
throw new MojoException("Cannot deploy artifact from the local repository: " + file);
285295
}
286296

287-
ArtifactManager artifactManager = session.getService(ArtifactManager.class);
288297
artifactManager.setPath(artifact, file);
289298
deployables.add(artifact);
290299

@@ -393,7 +402,7 @@ public void execute() throws MojoException {
393402
.retryFailedDeploymentCount(Math.max(1, Math.min(10, getRetryFailedDeploymentCount())))
394403
.build();
395404

396-
session.getService(ArtifactDeployer.class).deploy(deployRequest);
405+
artifactDeployer.deploy(deployRequest);
397406
} catch (ArtifactDeployerException e) {
398407
throw new MojoException(e.getMessage(), e);
399408
} finally {
@@ -452,7 +461,7 @@ private void processModel(Model model) {
452461
*/
453462
Model readModel(Path pomFile) throws MojoException {
454463
try (InputStream is = Files.newInputStream(pomFile)) {
455-
return session.getService(ModelXmlFactory.class).read(is);
464+
return modelXmlFactory.read(is);
456465
} catch (FileNotFoundException e) {
457466
throw new MojoException("POM not found " + pomFile, e);
458467
} catch (IOException e) {
@@ -473,7 +482,7 @@ private Path generatePomFile() throws MojoException {
473482
try {
474483
Path pomFile = File.createTempFile("mvndeploy", ".pom").toPath();
475484
try (Writer writer = Files.newBufferedWriter(pomFile)) {
476-
session.getService(ModelXmlFactory.class).write(model, writer);
485+
modelXmlFactory.write(model, writer);
477486
}
478487
return pomFile;
479488
} catch (IOException e) {

src/main/java/org/apache/maven/plugins/deploy/DeployMojo.java

+18-11
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.regex.Matcher;
2626
import java.util.regex.Pattern;
2727

28+
import jakarta.inject.Inject;
2829
import org.apache.maven.api.Artifact;
2930
import org.apache.maven.api.MojoExecution;
3031
import org.apache.maven.api.Project;
@@ -33,15 +34,13 @@
3334
import org.apache.maven.api.model.Plugin;
3435
import org.apache.maven.api.model.PluginExecution;
3536
import org.apache.maven.api.plugin.MojoException;
36-
import org.apache.maven.api.plugin.annotations.Component;
3737
import org.apache.maven.api.plugin.annotations.LifecyclePhase;
3838
import org.apache.maven.api.plugin.annotations.Mojo;
3939
import org.apache.maven.api.plugin.annotations.Parameter;
4040
import org.apache.maven.api.services.ArtifactDeployer;
4141
import org.apache.maven.api.services.ArtifactDeployerRequest;
4242
import org.apache.maven.api.services.ArtifactManager;
4343
import org.apache.maven.api.services.ProjectManager;
44-
import org.apache.maven.api.services.RepositoryFactory;
4544

4645
/**
4746
* Deploys an artifact to remote repository.
@@ -55,10 +54,10 @@ public class DeployMojo extends AbstractDeployMojo {
5554

5655
private static final Pattern ALT_REPO_SYNTAX_PATTERN = Pattern.compile("(.+?)::(.+)");
5756

58-
@Component
57+
@Inject
5958
private Project project;
6059

61-
@Component
60+
@Inject
6261
private MojoExecution mojoExecution;
6362

6463
/**
@@ -138,12 +137,23 @@ public class DeployMojo extends AbstractDeployMojo {
138137
@Parameter(defaultValue = "false", property = "allowIncompleteProjects")
139138
private boolean allowIncompleteProjects;
140139

140+
@Inject
141+
private ArtifactDeployer artifactDeployer;
142+
143+
@Inject
144+
private ArtifactManager artifactManager;
145+
146+
@Inject
147+
private ProjectManager projectManager;
148+
141149
private enum State {
142150
SKIPPED,
143151
DEPLOYED,
144152
TO_BE_DEPLOYED
145153
}
146154

155+
public DeployMojo() {}
156+
147157
private void putState(State state) {
148158
session.getPluginContext(project).put(State.class.getName(), state);
149159
}
@@ -194,7 +204,7 @@ private boolean allProjectsMarked() {
194204
}
195205

196206
private boolean hasDeployExecution(Project p) {
197-
String key = mojoExecution.getPlugin().getKey();
207+
String key = mojoExecution.getPlugin().getModel().getKey();
198208
Plugin plugin = p.getBuild().getPluginsAsMap().get(key);
199209
if (plugin != null) {
200210
for (PluginExecution execution : plugin.getExecutions()) {
@@ -238,8 +248,7 @@ private void deployAllAtOnce() {
238248

239249
private void deploy(ArtifactDeployerRequest request) {
240250
try {
241-
ArtifactDeployer artifactInstaller = session.getService(ArtifactDeployer.class);
242-
artifactInstaller.deploy(request);
251+
artifactDeployer.deploy(request);
243252
} catch (MojoException e) {
244253
throw e;
245254
} catch (Exception e) {
@@ -248,8 +257,6 @@ private void deploy(ArtifactDeployerRequest request) {
248257
}
249258

250259
private ArtifactDeployerRequest createDeployerRequest() {
251-
ArtifactManager artifactManager = session.getService(ArtifactManager.class);
252-
ProjectManager projectManager = session.getService(ProjectManager.class);
253260
Predicate<Artifact> isValidPath =
254261
a -> artifactManager.getPath(a).filter(Files::isRegularFile).isPresent();
255262

@@ -369,11 +376,11 @@ RemoteRepository getDeploymentRepository(boolean isSnapshot) throws MojoExceptio
369376
&& dm.getSnapshotRepository() != null
370377
&& isNotEmpty(dm.getSnapshotRepository().getId())
371378
&& isNotEmpty(dm.getSnapshotRepository().getUrl())) {
372-
repo = getSession().getService(RepositoryFactory.class).createRemote(dm.getSnapshotRepository());
379+
repo = session.createRemoteRepository(dm.getSnapshotRepository());
373380
} else if (dm.getRepository() != null
374381
&& isNotEmpty(dm.getRepository().getId())
375382
&& isNotEmpty(dm.getRepository().getUrl())) {
376-
repo = getSession().getService(RepositoryFactory.class).createRemote(dm.getRepository());
383+
repo = session.createRemoteRepository(dm.getRepository());
377384
}
378385
}
379386
}

0 commit comments

Comments
 (0)