Skip to content

Commit aa4e8e2

Browse files
authored
Correctly determine the version of the underlying javac tool (#357)
Ignore and deprecate 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 aa4e8e2

File tree

7 files changed

+208
-171
lines changed

7 files changed

+208
-171
lines changed

plexus-compiler-api/src/main/java/org/codehaus/plexus/compiler/CompilerConfiguration.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,10 +500,20 @@ public void setOptimize(boolean optimize) {
500500
this.optimize = optimize;
501501
}
502502

503+
/**
504+
* @deprecated Don't use any longer because this is just the configured version which does not necessarily match the version
505+
* of the actually executed compiler binary
506+
*/
507+
@Deprecated
503508
public String getCompilerVersion() {
504509
return compilerVersion;
505510
}
506511

512+
/**
513+
* @deprecated Don't use any longer because this is just the configured version which does not necessarily match the version
514+
* of the actually executed compiler binary
515+
*/
516+
@Deprecated
507517
public void setCompilerVersion(String compilerVersion) {
508518
this.compilerVersion = compilerVersion;
509519
}

plexus-compiler-test/pom.xml

Lines changed: 1 addition & 1 deletion
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

Lines changed: 12 additions & 4 deletions
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)