From d5e0e78be0fb0f5526265dfa267cff1a30712ea1 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Thu, 29 Aug 2024 17:29:53 +0200 Subject: [PATCH 1/3] Upgrade to beta-4 --- .../api/plugin/testing/MojoExtension.java | 2 +- .../plugin/testing/stubs/ArtifactStub.java | 8 +-- .../testing/stubs/ProducedArtifactStub.java | 33 +++++++++++ .../api/plugin/testing/stubs/ProjectStub.java | 12 ++-- .../api/plugin/testing/stubs/SessionMock.java | 9 +-- .../api/plugin/testing/stubs/SessionStub.java | 57 ++++++++++++------- pom.xml | 2 +- 7 files changed, 86 insertions(+), 37 deletions(-) create mode 100644 maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProducedArtifactStub.java diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java index b855dde..9e96ab5 100644 --- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java @@ -342,7 +342,7 @@ private InternalSession createSession() { private Project createProject(InternalSession s) { ProjectStub stub = new ProjectStub(); if (!"pom".equals(model.getPackaging())) { - ArtifactStub artifact = new ArtifactStub( + ProducedArtifactStub artifact = new ProducedArtifactStub( model.getGroupId(), model.getArtifactId(), "", model.getVersion(), model.getPackaging()); stub.setMainArtifact(artifact); } diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java index b9b6416..aa0c958 100644 --- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java @@ -21,7 +21,7 @@ import java.util.Objects; import org.apache.maven.api.Artifact; -import org.apache.maven.api.ArtifactCoordinate; +import org.apache.maven.api.ArtifactCoordinates; import org.apache.maven.api.Version; import org.apache.maven.api.VersionConstraint; import org.apache.maven.api.annotations.Nonnull; @@ -120,8 +120,8 @@ public boolean isSnapshot() { } @Override - public ArtifactCoordinate toCoordinate() { - return new ArtifactCoordinate() { + public ArtifactCoordinates toCoordinates() { + return new ArtifactCoordinates() { @Override public String getGroupId() { return groupId; @@ -138,7 +138,7 @@ public String getClassifier() { } @Override - public VersionConstraint getVersion() { + public VersionConstraint getVersionConstraint() { return getParser().parseVersionConstraint(version); } diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProducedArtifactStub.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProducedArtifactStub.java new file mode 100644 index 0000000..9575225 --- /dev/null +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProducedArtifactStub.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.api.plugin.testing.stubs; + +import org.apache.maven.api.ProducedArtifact; + +/** + * + */ +public class ProducedArtifactStub extends ArtifactStub implements ProducedArtifact { + public ProducedArtifactStub() {} + + public ProducedArtifactStub( + String groupId, String artifactId, String classifier, String version, String extension) { + super(groupId, artifactId, classifier, version, extension); + } +} diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java index fd37fa5..b057c18 100644 --- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java @@ -39,7 +39,7 @@ public class ProjectStub implements Project { private boolean topProject; private Path rootDirectory; private Map properties = new HashMap<>(); - private Artifact mainArtifact; + private ProducedArtifact mainArtifact; public void setModel(Model model) { this.model = model; @@ -119,8 +119,8 @@ public Map plugins() { } @Override - public List getArtifacts() { - Artifact pomArtifact = new ArtifactStub(getGroupId(), getArtifactId(), "", getVersion(), "pom"); + public List getArtifacts() { + ProducedArtifact pomArtifact = new ProducedArtifactStub(getGroupId(), getArtifactId(), "", getVersion(), "pom"); return mainArtifact != null ? Arrays.asList(pomArtifact, mainArtifact) : Arrays.asList(pomArtifact); } @@ -138,13 +138,13 @@ public Path getPomPath() { @Nonnull @Override - public List getDependencies() { + public List getDependencies() { return null; } @Nonnull @Override - public List getManagedDependencies() { + public List getManagedDependencies() { return null; } @@ -212,7 +212,7 @@ public ProjectStub setPackaging(String packaging) { return this; } - public ProjectStub setMainArtifact(Artifact mainArtifact) { + public ProjectStub setMainArtifact(ProducedArtifact mainArtifact) { this.mainArtifact = mainArtifact; return this; } diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java index c620b13..7d8d180 100644 --- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java @@ -34,6 +34,7 @@ import org.apache.maven.api.Artifact; import org.apache.maven.api.LocalRepository; +import org.apache.maven.api.ProducedArtifact; import org.apache.maven.api.Project; import org.apache.maven.api.RemoteRepository; import org.apache.maven.api.Session; @@ -223,7 +224,7 @@ public static InternalSession getMockSession(LocalRepository localRepository) { Project project = iom.getArgument(1, Project.class); String type = iom.getArgument(2, String.class); Path path = iom.getArgument(3, Path.class); - Artifact artifact = session.createArtifact( + ProducedArtifact artifact = session.createProducedArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion(), null, null, type); artifactManager.setPath(artifact, path); attachedArtifacts @@ -235,7 +236,7 @@ public static InternalSession getMockSession(LocalRepository localRepository) { .attachArtifact(same(session), any(Project.class), any(), any()); doAnswer(iom -> { Project project = iom.getArgument(0, Project.class); - Artifact artifact = iom.getArgument(1, Artifact.class); + ProducedArtifact artifact = iom.getArgument(1, ProducedArtifact.class); Path path = iom.getArgument(2, Path.class); artifactManager.setPath(artifact, path); attachedArtifacts @@ -244,7 +245,7 @@ public static InternalSession getMockSession(LocalRepository localRepository) { return null; }) .when(projectManager) - .attachArtifact(any(Project.class), any(Artifact.class), any(Path.class)); + .attachArtifact(any(Project.class), any(ProducedArtifact.class), any(Path.class)); when(projectManager.getAttachedArtifacts(any())) .then(iom -> attachedArtifacts.computeIfAbsent(iom.getArgument(0, Project.class), p -> new ArrayList<>())); @@ -319,7 +320,7 @@ public static InternalSession getMockSession(LocalRepository localRepository) { Model model = new MavenStaxReader().read(request.getSource().get().openStream()); ProjectStub projectStub = new ProjectStub(); projectStub.setModel(model); - ArtifactStub artifactStub = new ArtifactStub( + ProducedArtifactStub artifactStub = new ProducedArtifactStub( model.getGroupId(), model.getArtifactId(), "", model.getVersion(), model.getPackaging()); if (!"pom".equals(model.getPackaging())) { projectStub.setMainArtifact(artifactStub); diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java index 34b1820..eab74fa 100644 --- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java @@ -27,10 +27,11 @@ import java.util.Optional; import org.apache.maven.api.Artifact; -import org.apache.maven.api.ArtifactCoordinate; +import org.apache.maven.api.ArtifactCoordinates; import org.apache.maven.api.Dependency; -import org.apache.maven.api.DependencyCoordinate; +import org.apache.maven.api.DependencyCoordinates; import org.apache.maven.api.DependencyScope; +import org.apache.maven.api.DownloadedArtifact; import org.apache.maven.api.Language; import org.apache.maven.api.Listener; import org.apache.maven.api.LocalRepository; @@ -38,6 +39,7 @@ import org.apache.maven.api.Packaging; import org.apache.maven.api.PathScope; import org.apache.maven.api.PathType; +import org.apache.maven.api.ProducedArtifact; import org.apache.maven.api.Project; import org.apache.maven.api.ProjectScope; import org.apache.maven.api.RemoteRepository; @@ -219,58 +221,71 @@ public Artifact createArtifact( } @Override - public ArtifactCoordinate createArtifactCoordinate(String s, String s1, String s2, String s3) { + public ProducedArtifact createProducedArtifact( + String groupId, String artifactId, String version, String extension) { return null; } @Override - public ArtifactCoordinate createArtifactCoordinate(String coordString) { + public ProducedArtifact createProducedArtifact( + String groupId, String artifactId, String version, String classifier, String extension, String type) { + return null; + } + + @Override + public ArtifactCoordinates createArtifactCoordinates( + String groupId, String artifactId, String version, String extension) { return null; } @Override - public ArtifactCoordinate createArtifactCoordinate( - String s, String s1, String s2, String s3, String s4, String s5) { + public ArtifactCoordinates createArtifactCoordinates(String coordString) { + return null; + } + + @Override + public ArtifactCoordinates createArtifactCoordinates( + String groupId, String artifactId, String version, String classifier, String extension, String type) { return null; } @Override - public ArtifactCoordinate createArtifactCoordinate(Artifact artifact) { + public ArtifactCoordinates createArtifactCoordinates(Artifact artifact) { return null; } @Override - public DependencyCoordinate createDependencyCoordinate(ArtifactCoordinate artifactCoordinate) { + public DependencyCoordinates createDependencyCoordinates(ArtifactCoordinates artifactCoordinates) { return null; } @Override - public DependencyCoordinate createDependencyCoordinate(Dependency dependency) { + public DependencyCoordinates createDependencyCoordinates(Dependency dependency) { return null; } @Override - public Map.Entry resolveArtifact(Artifact artifact) { + public DownloadedArtifact resolveArtifact(Artifact artifact) { return null; } @Override - public Map.Entry resolveArtifact(ArtifactCoordinate coordinate) { + public DownloadedArtifact resolveArtifact(ArtifactCoordinates coordinate) { return null; } @Override - public Map resolveArtifacts(ArtifactCoordinate... artifactCoordinates) { + public Collection resolveArtifacts(ArtifactCoordinates... artifactCoordinates) { return null; } @Override - public Map resolveArtifacts(Collection collection) { + public Collection resolveArtifacts(Collection collection) { return null; } @Override - public Map resolveArtifacts(Artifact... artifacts) { + public Collection resolveArtifacts(Artifact... artifacts) { return null; } @@ -280,12 +295,12 @@ public List flattenDependencies(Node node, PathScope scope) { } @Override - public List resolveDependencies(DependencyCoordinate dependencyCoordinate) { + public List resolveDependencies(DependencyCoordinates dependencyCoordinates) { return null; } @Override - public List resolveDependencies(List dependencyCoordinates) { + public List resolveDependencies(List dependencyCoordinatess) { return null; } @@ -295,12 +310,12 @@ public List resolveDependencies(Project project, PathScope scope) { } @Override - public Version resolveVersion(ArtifactCoordinate artifact) { + public Version resolveVersion(ArtifactCoordinates artifact) { return null; } @Override - public List resolveVersionRange(ArtifactCoordinate artifact) { + public List resolveVersionRange(ArtifactCoordinates artifact) { return null; } @@ -314,7 +329,7 @@ public void installArtifacts(Collection artifacts) {} public void deployArtifact(RemoteRepository repository, Artifact... artifacts) {} @Override - public void setArtifactPath(Artifact artifact, Path path) {} + public void setArtifactPath(ProducedArtifact artifact, Path path) {} @Override public Optional getArtifactPath(Artifact artifact) { @@ -337,7 +352,7 @@ public Node collectDependencies(Project project) { } @Override - public Node collectDependencies(DependencyCoordinate dependencyCoordinate) { + public Node collectDependencies(DependencyCoordinates dependencyCoordinates) { return null; } @@ -368,7 +383,7 @@ public VersionConstraint parseVersionConstraint(String s) { @Override public Map> resolveDependencies( - DependencyCoordinate dependencyCoordinate, PathScope scope, Collection desiredTypes) { + DependencyCoordinates dependencyCoordinates, PathScope scope, Collection desiredTypes) { return Map.of(); } diff --git a/pom.xml b/pom.xml index 40fd5ef..b54fb5e 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ under the License. 3.2.1 - 4.0.0-beta-3 + 4.0.0-beta-4-SNAPSHOT plugin-testing-archives/LATEST 17 2024-06-26T07:42:15Z From 020740cbdc948848e8ef73150e77cf8faded5a25 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Thu, 17 Oct 2024 15:49:53 +0200 Subject: [PATCH 2/3] Upgrade to beta-5 --- .../plugin/testing/stubs/ArtifactStub.java | 2 +- .../stubs/RepositorySystemSupplier.java | 56 +++++++++++++++---- .../api/plugin/testing/stubs/SessionMock.java | 2 +- .../api/plugin/testing/stubs/SessionStub.java | 27 ++++++++- pom.xml | 4 +- 5 files changed, 73 insertions(+), 18 deletions(-) diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java index aa0c958..df9e5c2 100644 --- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java @@ -25,8 +25,8 @@ import org.apache.maven.api.Version; import org.apache.maven.api.VersionConstraint; import org.apache.maven.api.annotations.Nonnull; +import org.apache.maven.internal.impl.DefaultModelVersionParser; import org.apache.maven.internal.impl.DefaultVersionParser; -import org.apache.maven.repository.internal.DefaultModelVersionParser; import org.eclipse.aether.util.version.GenericVersionScheme; /** diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/RepositorySystemSupplier.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/RepositorySystemSupplier.java index 0e709b3..e27e108 100644 --- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/RepositorySystemSupplier.java +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/RepositorySystemSupplier.java @@ -32,24 +32,25 @@ import org.apache.maven.internal.impl.DefaultPluginConfigurationExpander; import org.apache.maven.internal.impl.DefaultSuperPomProvider; import org.apache.maven.internal.impl.DefaultUrlNormalizer; -import org.apache.maven.internal.impl.model.BuildModelTransformer; import org.apache.maven.internal.impl.model.DefaultDependencyManagementImporter; import org.apache.maven.internal.impl.model.DefaultDependencyManagementInjector; import org.apache.maven.internal.impl.model.DefaultInheritanceAssembler; +import org.apache.maven.internal.impl.model.DefaultInterpolator; import org.apache.maven.internal.impl.model.DefaultModelBuilder; +import org.apache.maven.internal.impl.model.DefaultModelCacheFactory; import org.apache.maven.internal.impl.model.DefaultModelInterpolator; import org.apache.maven.internal.impl.model.DefaultModelNormalizer; import org.apache.maven.internal.impl.model.DefaultModelPathTranslator; import org.apache.maven.internal.impl.model.DefaultModelProcessor; import org.apache.maven.internal.impl.model.DefaultModelValidator; -import org.apache.maven.internal.impl.model.DefaultModelVersionProcessor; import org.apache.maven.internal.impl.model.DefaultPathTranslator; import org.apache.maven.internal.impl.model.DefaultPluginManagementInjector; import org.apache.maven.internal.impl.model.DefaultProfileInjector; import org.apache.maven.internal.impl.model.DefaultProfileSelector; -import org.apache.maven.internal.impl.model.DefaultRootLocator; import org.apache.maven.internal.impl.model.ProfileActivationFilePathInterpolator; +import org.apache.maven.internal.impl.model.rootlocator.DefaultRootLocator; import org.apache.maven.internal.impl.resolver.DefaultArtifactDescriptorReader; +import org.apache.maven.internal.impl.resolver.DefaultModelResolver; import org.apache.maven.internal.impl.resolver.DefaultVersionRangeResolver; import org.apache.maven.internal.impl.resolver.DefaultVersionResolver; import org.apache.maven.internal.impl.resolver.MavenArtifactRelocationSource; @@ -79,7 +80,34 @@ import org.eclipse.aether.impl.UpdatePolicyAnalyzer; import org.eclipse.aether.impl.VersionRangeResolver; import org.eclipse.aether.impl.VersionResolver; -import org.eclipse.aether.internal.impl.*; +import org.eclipse.aether.internal.impl.DefaultArtifactPredicateFactory; +import org.eclipse.aether.internal.impl.DefaultArtifactResolver; +import org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider; +import org.eclipse.aether.internal.impl.DefaultChecksumProcessor; +import org.eclipse.aether.internal.impl.DefaultDeployer; +import org.eclipse.aether.internal.impl.DefaultInstaller; +import org.eclipse.aether.internal.impl.DefaultLocalPathComposer; +import org.eclipse.aether.internal.impl.DefaultLocalPathPrefixComposerFactory; +import org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider; +import org.eclipse.aether.internal.impl.DefaultMetadataResolver; +import org.eclipse.aether.internal.impl.DefaultOfflineController; +import org.eclipse.aether.internal.impl.DefaultPathProcessor; +import org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager; +import org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider; +import org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher; +import org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider; +import org.eclipse.aether.internal.impl.DefaultRepositorySystem; +import org.eclipse.aether.internal.impl.DefaultRepositorySystemLifecycle; +import org.eclipse.aether.internal.impl.DefaultTrackingFileManager; +import org.eclipse.aether.internal.impl.DefaultTransporterProvider; +import org.eclipse.aether.internal.impl.DefaultUpdateCheckManager; +import org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer; +import org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory; +import org.eclipse.aether.internal.impl.LocalPathComposer; +import org.eclipse.aether.internal.impl.LocalPathPrefixComposerFactory; +import org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory; +import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory; +import org.eclipse.aether.internal.impl.TrackingFileManager; import org.eclipse.aether.internal.impl.checksum.DefaultChecksumAlgorithmFactorySelector; import org.eclipse.aether.internal.impl.checksum.Md5ChecksumAlgorithmFactory; import org.eclipse.aether.internal.impl.checksum.Sha1ChecksumAlgorithmFactory; @@ -959,9 +987,7 @@ public final ArtifactDescriptorReader getArtifactDescriptorReader() { protected ArtifactDescriptorReader createArtifactDescriptorReader() { // from maven-resolver-provider return new DefaultArtifactDescriptorReader( - getRemoteRepositoryManager(), getVersionResolver(), - getVersionRangeResolver(), getArtifactResolver(), getModelBuilder(), getRepositoryEventDispatcher(), @@ -1015,10 +1041,13 @@ protected ModelBuilder createModelBuilder() { DefaultModelProcessor modelProcessor = new DefaultModelProcessor(new DefaultModelXmlFactory(), List.of()); return new DefaultModelBuilder( modelProcessor, - new DefaultModelValidator(new DefaultModelVersionProcessor()), + new DefaultModelValidator(), new DefaultModelNormalizer(), new DefaultModelInterpolator( - new DefaultPathTranslator(), new DefaultUrlNormalizer(), new DefaultRootLocator()), + new DefaultPathTranslator(), + new DefaultUrlNormalizer(), + new DefaultRootLocator(), + new DefaultInterpolator()), new DefaultModelPathTranslator(new DefaultPathTranslator()), new DefaultModelUrlNormalizer(new DefaultUrlNormalizer()), new DefaultSuperPomProvider(modelProcessor), @@ -1028,11 +1057,14 @@ protected ModelBuilder createModelBuilder() { new DefaultPluginManagementInjector(), new DefaultDependencyManagementInjector(), new DefaultDependencyManagementImporter(), - (m, r, b) -> m, new DefaultPluginConfigurationExpander(), - new ProfileActivationFilePathInterpolator(new DefaultPathTranslator(), new DefaultRootLocator()), - new BuildModelTransformer(), - new DefaultModelVersionParser(getVersionScheme())); + new ProfileActivationFilePathInterpolator( + new DefaultPathTranslator(), new DefaultRootLocator(), new DefaultInterpolator()), + new DefaultModelVersionParser(getVersionScheme()), + List.of(), + new DefaultModelCacheFactory(), + new DefaultModelResolver(), + new DefaultInterpolator()); } private RepositorySystem repositorySystem; diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java index 7d8d180..81d6887 100644 --- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java @@ -56,11 +56,11 @@ import org.apache.maven.api.services.RepositoryFactory; import org.apache.maven.api.services.VersionParser; import org.apache.maven.api.services.xml.ModelXmlFactory; +import org.apache.maven.internal.impl.DefaultModelVersionParser; import org.apache.maven.internal.impl.DefaultModelXmlFactory; import org.apache.maven.internal.impl.DefaultVersionParser; import org.apache.maven.internal.impl.InternalSession; import org.apache.maven.model.v4.MavenStaxReader; -import org.apache.maven.repository.internal.DefaultModelVersionParser; import org.eclipse.aether.util.version.GenericVersionScheme; import org.mockito.ArgumentMatchers; diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java index eab74fa..f9c2390 100644 --- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java @@ -274,6 +274,16 @@ public DownloadedArtifact resolveArtifact(ArtifactCoordinates coordinate) { return null; } + @Override + public DownloadedArtifact resolveArtifact(ArtifactCoordinates coordinates, List repositories) { + return null; + } + + @Override + public DownloadedArtifact resolveArtifact(Artifact artifact, List repositories) { + return null; + } + @Override public Collection resolveArtifacts(ArtifactCoordinates... artifactCoordinates) { return null; @@ -289,6 +299,12 @@ public Collection resolveArtifacts(Artifact... artifacts) { return null; } + @Override + public Collection resolveArtifacts( + Collection coordinates, List repositories) { + return null; + } + @Override public List flattenDependencies(Node node, PathScope scope) { return null; @@ -319,6 +335,11 @@ public List resolveVersionRange(ArtifactCoordinates artifact) { return null; } + @Override + public List resolveVersionRange(ArtifactCoordinates artifact, List repositories) { + return null; + } + @Override public void installArtifacts(Artifact... artifacts) {} @@ -342,17 +363,17 @@ public boolean isVersionSnapshot(String version) { } @Override - public Node collectDependencies(Artifact artifact) { + public Node collectDependencies(Artifact artifact, PathScope scope) { return null; } @Override - public Node collectDependencies(Project project) { + public Node collectDependencies(Project project, PathScope scope) { return null; } @Override - public Node collectDependencies(DependencyCoordinates dependencyCoordinates) { + public Node collectDependencies(DependencyCoordinates dependencyCoordinates, PathScope scope) { return null; } diff --git a/pom.xml b/pom.xml index b54fb5e..20576b7 100644 --- a/pom.xml +++ b/pom.xml @@ -65,10 +65,12 @@ under the License. 3.2.1 - 4.0.0-beta-4-SNAPSHOT + 4.0.0-beta-5-SNAPSHOT plugin-testing-archives/LATEST 17 2024-06-26T07:42:15Z + 4.0.0-M16 + 2.0.0-M10 From 44ffbb85608a40a7a88a0ca93afa23c9870b13c6 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Fri, 18 Oct 2024 22:19:30 +0200 Subject: [PATCH 3/3] Add missing mock methods --- .../api/plugin/testing/stubs/SessionMock.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java index 81d6887..f8562d0 100644 --- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java +++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionMock.java @@ -276,6 +276,20 @@ public static InternalSession getMockSession(LocalRepository localRepository) { return new ArtifactStub( request.getGroupId(), request.getArtifactId(), classifier, request.getVersion(), extension); }); + when(artifactFactory.createProduced(any())).then(iom -> { + ArtifactFactoryRequest request = iom.getArgument(0, ArtifactFactoryRequest.class); + String classifier = request.getClassifier(); + String extension = request.getExtension(); + String type = request.getType(); + if (classifier == null) { + classifier = ""; + } + if (extension == null) { + extension = type != null ? type : ""; + } + return new ProducedArtifactStub( + request.getGroupId(), request.getArtifactId(), classifier, request.getVersion(), extension); + }); when(session.createArtifact(any(), any(), any(), any(), any(), any())).thenAnswer(iom -> { String groupId = iom.getArgument(0, String.class); String artifactId = iom.getArgument(1, String.class); @@ -308,6 +322,39 @@ public static InternalSession getMockSession(LocalRepository localRepository) { .extension(extension) .build()); }); + when(session.createProducedArtifact(any(), any(), any(), any(), any(), any())) + .thenAnswer(iom -> { + String groupId = iom.getArgument(0, String.class); + String artifactId = iom.getArgument(1, String.class); + String version = iom.getArgument(2, String.class); + String classifier = iom.getArgument(3, String.class); + String extension = iom.getArgument(4, String.class); + String type = iom.getArgument(5, String.class); + return session.getService(ArtifactFactory.class) + .createProduced(ArtifactFactoryRequest.builder() + .session(session) + .groupId(groupId) + .artifactId(artifactId) + .version(version) + .classifier(classifier) + .extension(extension) + .type(type) + .build()); + }); + when(session.createProducedArtifact(any(), any(), any(), any())).thenAnswer(iom -> { + String groupId = iom.getArgument(0, String.class); + String artifactId = iom.getArgument(1, String.class); + String version = iom.getArgument(2, String.class); + String extension = iom.getArgument(3, String.class); + return session.getService(ArtifactFactory.class) + .createProduced(ArtifactFactoryRequest.builder() + .session(session) + .groupId(groupId) + .artifactId(artifactId) + .version(version) + .extension(extension) + .build()); + }); when(session.getService(ArtifactFactory.class)).thenReturn(artifactFactory); //