From 2621a2e7f6542ef94eceb66469e425d3af438a9c Mon Sep 17 00:00:00 2001 From: Slawomir Jaranowski Date: Sat, 17 Feb 2024 11:27:29 +0100 Subject: [PATCH] Use LocalRepositoryManager for resolving artifacts paths in tests --- plexus-compiler-test/pom.xml | 10 ---- .../plexus/compiler/AbstractCompilerTest.java | 48 ++++++++----------- pom.xml | 35 ++------------ 3 files changed, 23 insertions(+), 70 deletions(-) diff --git a/plexus-compiler-test/pom.xml b/plexus-compiler-test/pom.xml index d3f45562..36d9132f 100644 --- a/plexus-compiler-test/pom.xml +++ b/plexus-compiler-test/pom.xml @@ -43,16 +43,6 @@ maven-core ${mavenVersion} - - org.apache.maven - maven-compat - ${mavenVersion} - - - org.apache.maven - maven-settings-builder - ${mavenVersion} - org.codehaus.plexus plexus-utils diff --git a/plexus-compiler-test/src/main/java/org/codehaus/plexus/compiler/AbstractCompilerTest.java b/plexus-compiler-test/src/main/java/org/codehaus/plexus/compiler/AbstractCompilerTest.java index 85374c54..09ab0b6b 100644 --- a/plexus-compiler-test/src/main/java/org/codehaus/plexus/compiler/AbstractCompilerTest.java +++ b/plexus-compiler-test/src/main/java/org/codehaus/plexus/compiler/AbstractCompilerTest.java @@ -34,21 +34,19 @@ import java.util.Map; import java.util.stream.Collectors; +import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.DefaultArtifact; import org.apache.maven.artifact.handler.DefaultArtifactHandler; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.DefaultArtifactRepository; -import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.artifact.versioning.VersionRange; -import org.apache.maven.properties.internal.SystemProperties; -import org.apache.maven.settings.Settings; -import org.apache.maven.settings.building.DefaultSettingsBuilderFactory; -import org.apache.maven.settings.building.DefaultSettingsBuildingRequest; -import org.apache.maven.settings.building.SettingsBuildingRequest; import org.codehaus.plexus.testing.PlexusTest; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.StringUtils; +import org.eclipse.aether.DefaultRepositorySystemSession; +import org.eclipse.aether.RepositorySystemSession; +import org.eclipse.aether.impl.LocalRepositoryProvider; +import org.eclipse.aether.repository.LocalRepository; +import org.eclipse.aether.repository.LocalRepositoryManager; import org.hamcrest.io.FileMatchers; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -56,6 +54,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; /** * @@ -72,34 +71,25 @@ public abstract class AbstractCompilerTest { private Map compilers; @Inject - private ArtifactRepositoryLayout repositoryLayout; + private LocalRepositoryProvider localRepositoryProvider; - private ArtifactRepository localRepository; + private LocalRepositoryManager localRepositoryManager; protected abstract String getRoleHint(); @BeforeEach final void setUpLocalRepo() throws Exception { String localRepo = System.getProperty("maven.repo.local"); + assertThat("system property maven.repo.local", localRepo, notNullValue()); - if (localRepo == null) { - File settingsFile = new File(System.getProperty("user.home"), ".m2/settings.xml"); - if (settingsFile.exists()) { - SettingsBuildingRequest request = new DefaultSettingsBuildingRequest(); - request.setUserSettingsFile(settingsFile); - request.setSystemProperties(SystemProperties.getSystemProperties()); - Settings settings = new DefaultSettingsBuilderFactory() - .newInstance() - .build(request) - .getEffectiveSettings(); - localRepo = settings.getLocalRepository(); - } - } - if (localRepo == null) { - localRepo = System.getProperty("user.home") + "/.m2/repository"; - } + LocalRepository localRepository = new LocalRepository(localRepo); + assertThat( + "test prerequisite: local repository path: " + localRepository.getBasedir(), + localRepository.getBasedir(), + FileMatchers.aReadableFile()); - localRepository = new DefaultArtifactRepository("local", "file://" + localRepo, repositoryLayout); + RepositorySystemSession session = new DefaultRepositorySystemSession(); + localRepositoryManager = localRepositoryProvider.newLocalRepositoryManager(session, localRepository); } protected void setCompilerDebug(boolean flag) { @@ -338,6 +328,8 @@ protected String getJavaVersion() { } protected File getLocalArtifactPath(Artifact artifact) { - return new File(localRepository.getBasedir(), localRepository.pathOf(artifact)); + return new File( + localRepositoryManager.getRepository().getBasedir(), + localRepositoryManager.getPathForLocalArtifact(RepositoryUtils.toArtifact(artifact))); } } diff --git a/pom.xml b/pom.xml index 13171985..b532a228 100644 --- a/pom.xml +++ b/pom.xml @@ -149,6 +149,9 @@ maven-surefire-plugin ${redirectTestOutputToFile} + + ${settings.localRepository} + @@ -206,36 +209,4 @@ - - - - maven.repo.local - - - maven.repo.local - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - maven.repo.local - ${maven.repo.local} - - - - - - - - -