Skip to content

Commit eb32403

Browse files
committed
Correctly determine the version of the underlying javac tool
Ignore CompilerConfiguration values as they are unreliable (and don't represent the used javac version) Make test execution more resilient by interpolating settings.xml correctly and make sure commons-lang 2.0 is resolved prior to unit testing This closes #356
1 parent c5edddc commit eb32403

File tree

6 files changed

+188
-171
lines changed

6 files changed

+188
-171
lines changed

plexus-compiler-test/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
</dependency>
5151
<dependency>
5252
<groupId>org.apache.maven</groupId>
53-
<artifactId>maven-settings</artifactId>
53+
<artifactId>maven-settings-builder</artifactId>
5454
<version>${mavenVersion}</version>
5555
</dependency>
5656
<dependency>

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

+12-4
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,13 @@
4141
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
4242
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
4343
import org.apache.maven.artifact.versioning.VersionRange;
44+
import org.apache.maven.properties.internal.SystemProperties;
4445
import org.apache.maven.settings.Settings;
45-
import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
46+
import org.apache.maven.settings.building.DefaultSettingsBuilderFactory;
47+
import org.apache.maven.settings.building.DefaultSettingsBuildingRequest;
48+
import org.apache.maven.settings.building.SettingsBuildingRequest;
4649
import org.codehaus.plexus.testing.PlexusTest;
4750
import org.codehaus.plexus.util.FileUtils;
48-
import org.codehaus.plexus.util.ReaderFactory;
4951
import org.codehaus.plexus.util.StringUtils;
5052
import org.hamcrest.io.FileMatchers;
5153
import org.junit.jupiter.api.BeforeEach;
@@ -83,7 +85,13 @@ final void setUpLocalRepo() throws Exception {
8385
if (localRepo == null) {
8486
File settingsFile = new File(System.getProperty("user.home"), ".m2/settings.xml");
8587
if (settingsFile.exists()) {
86-
Settings settings = new SettingsXpp3Reader().read(ReaderFactory.newXmlReader(settingsFile));
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();
8795
localRepo = settings.getLocalRepository();
8896
}
8997
}
@@ -116,7 +124,7 @@ protected List<String> getClasspath() throws Exception {
116124
File file = getLocalArtifactPath("commons-lang", "commons-lang", "2.0", "jar");
117125

118126
assertThat(
119-
"test prerequisite: commons-lang library must be available in local repository, expected ",
127+
"test prerequisite: commons-lang library must be available in local repository at " + file,
120128
file,
121129
FileMatchers.aReadableFile());
122130

0 commit comments

Comments
 (0)