Skip to content

Commit ca3fee0

Browse files
Use LocalRepositoryManager for resolving artifacts paths in tests
1 parent d8e98dd commit ca3fee0

File tree

3 files changed

+23
-70
lines changed

3 files changed

+23
-70
lines changed

plexus-compiler-test/pom.xml

-10
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,6 @@
4343
<artifactId>maven-core</artifactId>
4444
<version>${mavenVersion}</version>
4545
</dependency>
46-
<dependency>
47-
<groupId>org.apache.maven</groupId>
48-
<artifactId>maven-compat</artifactId>
49-
<version>${mavenVersion}</version>
50-
</dependency>
51-
<dependency>
52-
<groupId>org.apache.maven</groupId>
53-
<artifactId>maven-settings-builder</artifactId>
54-
<version>${mavenVersion}</version>
55-
</dependency>
5646
<dependency>
5747
<groupId>org.codehaus.plexus</groupId>
5848
<artifactId>plexus-utils</artifactId>

plexus-compiler-test/src/main/java/org/codehaus/plexus/compiler/AbstractCompilerTest.java

+20-28
Original file line numberDiff line numberDiff line change
@@ -34,28 +34,27 @@
3434
import java.util.Map;
3535
import java.util.stream.Collectors;
3636

37+
import org.apache.maven.RepositoryUtils;
3738
import org.apache.maven.artifact.Artifact;
3839
import org.apache.maven.artifact.DefaultArtifact;
3940
import org.apache.maven.artifact.handler.DefaultArtifactHandler;
40-
import org.apache.maven.artifact.repository.ArtifactRepository;
41-
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
42-
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
4341
import org.apache.maven.artifact.versioning.VersionRange;
44-
import org.apache.maven.properties.internal.SystemProperties;
45-
import org.apache.maven.settings.Settings;
46-
import org.apache.maven.settings.building.DefaultSettingsBuilderFactory;
47-
import org.apache.maven.settings.building.DefaultSettingsBuildingRequest;
48-
import org.apache.maven.settings.building.SettingsBuildingRequest;
4942
import org.codehaus.plexus.testing.PlexusTest;
5043
import org.codehaus.plexus.util.FileUtils;
5144
import org.codehaus.plexus.util.StringUtils;
45+
import org.eclipse.aether.DefaultRepositorySystemSession;
46+
import org.eclipse.aether.RepositorySystemSession;
47+
import org.eclipse.aether.impl.LocalRepositoryProvider;
48+
import org.eclipse.aether.repository.LocalRepository;
49+
import org.eclipse.aether.repository.LocalRepositoryManager;
5250
import org.hamcrest.io.FileMatchers;
5351
import org.junit.jupiter.api.BeforeEach;
5452
import org.junit.jupiter.api.Test;
5553

5654
import static org.hamcrest.MatcherAssert.assertThat;
5755
import static org.hamcrest.Matchers.containsInAnyOrder;
5856
import static org.hamcrest.Matchers.is;
57+
import static org.hamcrest.Matchers.notNullValue;
5958

6059
/**
6160
*
@@ -72,34 +71,25 @@ public abstract class AbstractCompilerTest {
7271
private Map<String, Compiler> compilers;
7372

7473
@Inject
75-
private ArtifactRepositoryLayout repositoryLayout;
74+
private LocalRepositoryProvider localRepositoryProvider;
7675

77-
private ArtifactRepository localRepository;
76+
private LocalRepositoryManager localRepositoryManager;
7877

7978
protected abstract String getRoleHint();
8079

8180
@BeforeEach
8281
final void setUpLocalRepo() throws Exception {
8382
String localRepo = System.getProperty("maven.repo.local");
83+
assertThat("system property maven.repo.local", localRepo, notNullValue());
8484

85-
if (localRepo == null) {
86-
File settingsFile = new File(System.getProperty("user.home"), ".m2/settings.xml");
87-
if (settingsFile.exists()) {
88-
SettingsBuildingRequest request = new DefaultSettingsBuildingRequest();
89-
request.setUserSettingsFile(settingsFile);
90-
request.setSystemProperties(SystemProperties.getSystemProperties());
91-
Settings settings = new DefaultSettingsBuilderFactory()
92-
.newInstance()
93-
.build(request)
94-
.getEffectiveSettings();
95-
localRepo = settings.getLocalRepository();
96-
}
97-
}
98-
if (localRepo == null) {
99-
localRepo = System.getProperty("user.home") + "/.m2/repository";
100-
}
85+
LocalRepository localRepository = new LocalRepository(localRepo);
86+
assertThat(
87+
"test prerequisite: local repository path: " + localRepository.getBasedir(),
88+
localRepository.getBasedir(),
89+
FileMatchers.aReadableFile());
10190

102-
localRepository = new DefaultArtifactRepository("local", "file://" + localRepo, repositoryLayout);
91+
RepositorySystemSession session = new DefaultRepositorySystemSession();
92+
localRepositoryManager = localRepositoryProvider.newLocalRepositoryManager(session, localRepository);
10393
}
10494

10595
protected void setCompilerDebug(boolean flag) {
@@ -338,6 +328,8 @@ protected String getJavaVersion() {
338328
}
339329

340330
protected File getLocalArtifactPath(Artifact artifact) {
341-
return new File(localRepository.getBasedir(), localRepository.pathOf(artifact));
331+
return new File(
332+
localRepositoryManager.getRepository().getBasedir(),
333+
localRepositoryManager.getPathForLocalArtifact(RepositoryUtils.toArtifact(artifact)));
342334
}
343335
}

pom.xml

+3-32
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,9 @@
149149
<artifactId>maven-surefire-plugin</artifactId>
150150
<configuration>
151151
<redirectTestOutputToFile>${redirectTestOutputToFile}</redirectTestOutputToFile>
152+
<systemPropertyVariables>
153+
<maven.repo.local>${settings.localRepository}</maven.repo.local>
154+
</systemPropertyVariables>
152155
</configuration>
153156
</plugin>
154157
<plugin>
@@ -206,36 +209,4 @@
206209
</plugins>
207210
</build>
208211

209-
<profiles>
210-
<profile>
211-
<!--
212-
Make sure maven.repo.local is passed through to the tests if set or the tests will fail to resolve artifacts
213-
(c.f. SUREFIRE-491).
214-
-->
215-
<id>maven.repo.local</id>
216-
<activation>
217-
<property>
218-
<name>maven.repo.local</name>
219-
</property>
220-
</activation>
221-
<build>
222-
<pluginManagement>
223-
<plugins>
224-
<plugin>
225-
<groupId>org.apache.maven.plugins</groupId>
226-
<artifactId>maven-surefire-plugin</artifactId>
227-
<configuration>
228-
<systemProperties combine.children="append">
229-
<property>
230-
<name>maven.repo.local</name>
231-
<value>${maven.repo.local}</value>
232-
</property>
233-
</systemProperties>
234-
</configuration>
235-
</plugin>
236-
</plugins>
237-
</pluginManagement>
238-
</build>
239-
</profile>
240-
</profiles>
241212
</project>

0 commit comments

Comments
 (0)