Skip to content

Commit 2c2be03

Browse files
authored
[MRESOLVER-588] Fix for both supplier (#724)
Maven3 supplier lacks `env.` entries from session system properties. Maven4 supplier has no system properties at all set. Supersedes #539 --- https://issues.apache.org/jira/browse/MRESOLVER-588 Co-authored-by: @HannesWell
1 parent 1e86dae commit 2c2be03

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ public static RepositorySystem newRepositorySystem(final String factory) {
6464
public static SessionBuilder newRepositorySystemSession(RepositorySystem system) {
6565
SessionBuilder result = new SessionBuilderSupplier(system)
6666
.get()
67-
.setSystemProperties(System.getProperties())
6867
.withLocalRepositoryBaseDirectories(Path.of("target/local-repo"))
6968
.setRepositoryListener(new ConsoleRepositoryListener())
7069
.setTransferListener(new ConsoleTransferListener())

maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@
1919
package org.eclipse.aether.supplier;
2020

2121
import java.util.Arrays;
22+
import java.util.Locale;
2223
import java.util.function.Supplier;
2324

25+
import org.apache.maven.utils.Os;
2426
import org.eclipse.aether.RepositorySystem;
2527
import org.eclipse.aether.RepositorySystemSession.CloseableSession;
2628
import org.eclipse.aether.RepositorySystemSession.SessionBuilder;
@@ -70,6 +72,11 @@ public SessionBuilderSupplier(RepositorySystem repositorySystem) {
7072

7173
protected void configureSessionBuilder(SessionBuilder session) {
7274
session.setSystemProperties(System.getProperties());
75+
boolean caseSensitive = !Os.IS_WINDOWS;
76+
System.getenv().forEach((key, value) -> {
77+
key = "env." + (caseSensitive ? key : key.toUpperCase(Locale.ENGLISH));
78+
session.setSystemProperty(key, value);
79+
});
7380
session.setDependencyTraverser(getDependencyTraverser());
7481
session.setDependencyManager(getDependencyManager());
7582
session.setDependencySelector(getDependencySelector());

maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@
1818
*/
1919
package org.eclipse.aether.supplier;
2020

21+
import java.util.Locale;
2122
import java.util.function.Supplier;
2223

2324
import org.apache.maven.repository.internal.MavenSessionBuilderSupplier;
25+
import org.apache.maven.utils.Os;
2426
import org.eclipse.aether.RepositorySystem;
2527
import org.eclipse.aether.RepositorySystemSession.CloseableSession;
2628
import org.eclipse.aether.RepositorySystemSession.SessionBuilder;
@@ -38,4 +40,15 @@ public class SessionBuilderSupplier extends MavenSessionBuilderSupplier {
3840
public SessionBuilderSupplier(RepositorySystem repositorySystem) {
3941
super(repositorySystem);
4042
}
43+
44+
@Override
45+
protected void configureSessionBuilder(SessionBuilder session) {
46+
super.configureSessionBuilder(session);
47+
session.setSystemProperties(System.getProperties());
48+
boolean caseSensitive = !Os.IS_WINDOWS;
49+
System.getenv().forEach((key, value) -> {
50+
key = "env." + (caseSensitive ? key : key.toUpperCase(Locale.ENGLISH));
51+
session.setSystemProperty(key, value);
52+
});
53+
}
4154
}

0 commit comments

Comments
 (0)