diff --git a/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java b/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
index 6b1bc3236..5f5519e33 100644
--- a/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
+++ b/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/Maven3ScopeManagerConfiguration.java
@@ -33,6 +33,7 @@
import org.eclipse.aether.internal.impl.scope.ScopeManagerDump;
import org.eclipse.aether.scope.DependencyScope;
import org.eclipse.aether.scope.ResolutionScope;
+import org.eclipse.aether.util.artifact.JavaScopes;
import static org.eclipse.aether.impl.scope.BuildScopeQuery.all;
import static org.eclipse.aether.impl.scope.BuildScopeQuery.byBuildPath;
@@ -44,22 +45,24 @@
/**
* Maven3 scope configurations. Configures scope manager to support Maven3 scopes.
*
- * This manager supports the old Maven 3 dependency scopes + new "compile-only".
+ * This manager supports the old Maven 3 dependency scopes + new scopes.
*
- * Note: Maven3 CANNOT support Maven 4 scopes "test-only" and "test-runtime", as it does not distinguish
+ * Note: Maven3 CANNOT support new scopes "test-only" and "test-runtime", as it does not distinguish
* resolution scope (the class {@code ResolutionScope} has only "TEST", instead of "TEST_COMPILE" and "TEST_RUNTIME").
+ * This scope manager configuration is not used in Maven 3!
*
* @since 2.0.11
*/
public final class Maven3ScopeManagerConfiguration implements ScopeManagerConfiguration {
public static final Maven3ScopeManagerConfiguration INSTANCE = new Maven3ScopeManagerConfiguration();
public static final String DS_NONE = "none";
- public static final String DS_COMPILE = "compile"; // JavaScopes.COMPILE;
+ public static final String DS_COMPILE = JavaScopes.COMPILE;
+ public static final String DS_RUNTIME = JavaScopes.RUNTIME;
+ public static final String DS_PROVIDED = JavaScopes.PROVIDED;
+ public static final String DS_SYSTEM = JavaScopes.SYSTEM;
+ public static final String DS_TEST = JavaScopes.TEST;
+
public static final String DS_COMPILE_ONLY = "compile-only";
- public static final String DS_RUNTIME = "runtime"; // JavaScopes.RUNTIME;
- public static final String DS_PROVIDED = "provided"; // JavaScopes.PROVIDED;
- public static final String DS_SYSTEM = "system"; // JavaScopes.SYSTEM;
- public static final String DS_TEST = "test"; // JavaScopes.TEST;
public static final String DS_TEST_ONLY = "test-only";
public static final String DS_TEST_RUNTIME = "test-runtime";
diff --git a/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java b/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java
index 834c8bc4f..3aadc9c6b 100644
--- a/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java
+++ b/maven-resolver-supplier-mvn3/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java
@@ -26,13 +26,13 @@
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession.CloseableSession;
import org.eclipse.aether.RepositorySystemSession.SessionBuilder;
-import org.eclipse.aether.artifact.ArtifactTypeRegistry;
import org.eclipse.aether.artifact.DefaultArtifactType;
import org.eclipse.aether.collection.DependencyGraphTransformer;
import org.eclipse.aether.collection.DependencyManager;
import org.eclipse.aether.collection.DependencySelector;
import org.eclipse.aether.collection.DependencyTraverser;
import org.eclipse.aether.impl.scope.InternalScopeManager;
+import org.eclipse.aether.impl.scope.ScopeManagerConfiguration;
import org.eclipse.aether.internal.impl.scope.ManagedDependencyContextRefiner;
import org.eclipse.aether.internal.impl.scope.ManagedScopeDeriver;
import org.eclipse.aether.internal.impl.scope.ManagedScopeSelector;
@@ -41,12 +41,17 @@
import org.eclipse.aether.internal.impl.scope.ScopeManagerImpl;
import org.eclipse.aether.resolution.ArtifactDescriptorPolicy;
import org.eclipse.aether.util.artifact.DefaultArtifactTypeRegistry;
+import org.eclipse.aether.util.artifact.JavaScopes;
import org.eclipse.aether.util.graph.manager.ClassicDependencyManager;
+import org.eclipse.aether.util.graph.manager.TransitiveDependencyManager;
import org.eclipse.aether.util.graph.selector.AndDependencySelector;
import org.eclipse.aether.util.graph.selector.ExclusionDependencySelector;
import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
import org.eclipse.aether.util.graph.transformer.ConfigurableVersionSelector;
import org.eclipse.aether.util.graph.transformer.ConflictResolver;
+import org.eclipse.aether.util.graph.transformer.JavaDependencyContextRefiner;
+import org.eclipse.aether.util.graph.transformer.JavaScopeDeriver;
+import org.eclipse.aether.util.graph.transformer.JavaScopeSelector;
import org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelector;
import org.eclipse.aether.util.graph.traverser.FatArtifactTraverser;
import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
@@ -60,7 +65,7 @@
*
* Extend this class and override methods to customize, if needed.
*
- * Resolver created as this is NOT using {@link org.eclipse.aether.scope.ScopeManager}!
+ * Resolver session created as this may or may not use {@link org.eclipse.aether.scope.ScopeManager}.
*
* @since 2.0.0
*/
@@ -68,19 +73,33 @@ public class SessionBuilderSupplier implements Supplier {
protected final RepositorySystem repositorySystem;
protected final InternalScopeManager scopeManager;
+ /**
+ * Creates Resolver 2 session using Maven 3 elements without {@link InternalScopeManager}.
+ */
public SessionBuilderSupplier(RepositorySystem repositorySystem) {
+ this(repositorySystem, null);
+ }
+
+ /**
+ * Creates Resolver 2 session using Maven 3 elements with or without {@link InternalScopeManager}.
+ */
+ public SessionBuilderSupplier(
+ RepositorySystem repositorySystem, ScopeManagerConfiguration scopeManagerConfiguration) {
this.repositorySystem = requireNonNull(repositorySystem);
- this.scopeManager = new ScopeManagerImpl(Maven3ScopeManagerConfiguration.INSTANCE);
+ this.scopeManager =
+ scopeManagerConfiguration == null ? null : new ScopeManagerImpl(scopeManagerConfiguration); // nullable
}
- protected void configureSessionBuilder(SessionBuilder session) {
+ public void configureSessionBuilder(SessionBuilder session) {
session.setSystemProperties(System.getProperties());
boolean caseSensitive = !Os.IS_WINDOWS;
System.getenv().forEach((key, value) -> {
key = "env." + (caseSensitive ? key : key.toUpperCase(Locale.ENGLISH));
session.setSystemProperty(key, value);
});
- session.setScopeManager(scopeManager);
+ if (getScopeManager() != null) {
+ session.setScopeManager(getScopeManager());
+ }
session.setDependencyTraverser(getDependencyTraverser());
session.setDependencyManager(getDependencyManager());
session.setDependencySelector(getDependencySelector());
@@ -89,39 +108,67 @@ protected void configureSessionBuilder(SessionBuilder session) {
session.setArtifactDescriptorPolicy(getArtifactDescriptorPolicy());
}
- protected InternalScopeManager getScopeManager() {
+ public InternalScopeManager getScopeManager() {
return this.scopeManager;
}
- protected DependencyTraverser getDependencyTraverser() {
+ public DependencyTraverser getDependencyTraverser() {
return new FatArtifactTraverser();
}
- protected DependencyManager getDependencyManager() {
- return new ClassicDependencyManager(getScopeManager());
+ public DependencyManager getDependencyManager() {
+ return this.getDependencyManager(false);
+ }
+
+ public DependencyManager getDependencyManager(boolean transitive) {
+ if (getScopeManager() == null) {
+ return transitive ? new TransitiveDependencyManager() : new ClassicDependencyManager();
+ } else {
+ return transitive
+ ? new TransitiveDependencyManager(getScopeManager())
+ : new ClassicDependencyManager(getScopeManager());
+ }
}
- protected DependencySelector getDependencySelector() {
- return new AndDependencySelector(
- ScopeDependencySelector.legacy(
- null,
- Arrays.asList(
- Maven3ScopeManagerConfiguration.DS_TEST, Maven3ScopeManagerConfiguration.DS_PROVIDED)),
- OptionalDependencySelector.fromDirect(),
- new ExclusionDependencySelector());
+ public DependencySelector getDependencySelector() {
+ if (getScopeManager() == null) {
+ return new AndDependencySelector(
+ ScopeDependencySelector.legacy(null, Arrays.asList(JavaScopes.TEST, JavaScopes.PROVIDED)),
+ OptionalDependencySelector.fromDirect(),
+ new ExclusionDependencySelector());
+ } else {
+ return new AndDependencySelector(
+ ScopeDependencySelector.legacy(
+ null,
+ Arrays.asList(
+ Maven3ScopeManagerConfiguration.DS_TEST,
+ Maven3ScopeManagerConfiguration.DS_PROVIDED)),
+ OptionalDependencySelector.fromDirect(),
+ new ExclusionDependencySelector());
+ }
}
- protected DependencyGraphTransformer getDependencyGraphTransformer() {
- return new ChainedDependencyGraphTransformer(
- new ConflictResolver(
- new ConfigurableVersionSelector(),
- new ManagedScopeSelector(getScopeManager()),
- new SimpleOptionalitySelector(),
- new ManagedScopeDeriver(getScopeManager())),
- new ManagedDependencyContextRefiner(getScopeManager()));
+ public DependencyGraphTransformer getDependencyGraphTransformer() {
+ if (getScopeManager() == null) {
+ return new ChainedDependencyGraphTransformer(
+ new ConflictResolver(
+ new ConfigurableVersionSelector(),
+ new JavaScopeSelector(),
+ new SimpleOptionalitySelector(),
+ new JavaScopeDeriver()),
+ new JavaDependencyContextRefiner());
+ } else {
+ return new ChainedDependencyGraphTransformer(
+ new ConflictResolver(
+ new ConfigurableVersionSelector(),
+ new ManagedScopeSelector(getScopeManager()),
+ new SimpleOptionalitySelector(),
+ new ManagedScopeDeriver(getScopeManager())),
+ new ManagedDependencyContextRefiner(getScopeManager()));
+ }
}
- protected ArtifactTypeRegistry getArtifactTypeRegistry() {
+ public DefaultArtifactTypeRegistry getArtifactTypeRegistry() {
DefaultArtifactTypeRegistry stereotypes = new DefaultArtifactTypeRegistry();
stereotypes.add(new DefaultArtifactType("pom"));
stereotypes.add(new DefaultArtifactType("maven-plugin", "jar", "", "java"));
@@ -131,6 +178,7 @@ protected ArtifactTypeRegistry getArtifactTypeRegistry() {
stereotypes.add(new DefaultArtifactType("test-jar", "jar", "tests", "java"));
stereotypes.add(new DefaultArtifactType("javadoc", "jar", "javadoc", "java"));
stereotypes.add(new DefaultArtifactType("java-source", "jar", "sources", "java", false, false));
+ stereotypes.add(new DefaultArtifactType("fatjar", "jar", "", "java", true, true));
stereotypes.add(new DefaultArtifactType("war", "war", "", "java", false, true));
stereotypes.add(new DefaultArtifactType("ear", "ear", "", "java", false, true));
stereotypes.add(new DefaultArtifactType("rar", "rar", "", "java", false, true));
@@ -138,7 +186,7 @@ protected ArtifactTypeRegistry getArtifactTypeRegistry() {
return stereotypes;
}
- protected ArtifactDescriptorPolicy getArtifactDescriptorPolicy() {
+ public ArtifactDescriptorPolicy getArtifactDescriptorPolicy() {
return new SimpleArtifactDescriptorPolicy(true, true);
}
diff --git a/maven-resolver-supplier-mvn3/src/test/java/org/eclipse/aether/supplier/RepositorySystemSupplierTest.java b/maven-resolver-supplier-mvn3/src/test/java/org/eclipse/aether/supplier/RepositorySystemSupplierTest.java
index 4924558a6..6e49a2ed4 100644
--- a/maven-resolver-supplier-mvn3/src/test/java/org/eclipse/aether/supplier/RepositorySystemSupplierTest.java
+++ b/maven-resolver-supplier-mvn3/src/test/java/org/eclipse/aether/supplier/RepositorySystemSupplierTest.java
@@ -44,7 +44,7 @@ public class RepositorySystemSupplierTest {
@Test
void smoke() throws Exception {
try (RepositorySystem system = new RepositorySystemSupplier().get();
- CloseableSession session = new SessionBuilderSupplier(system)
+ CloseableSession session = new SessionBuilderSupplier(system, Maven3ScopeManagerConfiguration.INSTANCE)
.get()
.withLocalRepositoryBaseDirectories(new File("target/local-repo").toPath())
.build()) {
@@ -66,7 +66,7 @@ void smoke() throws Exception {
@Test
void smokeV2Feature() throws Exception {
try (RepositorySystem system = new RepositorySystemSupplier().get();
- CloseableSession session = new SessionBuilderSupplier(system)
+ CloseableSession session = new SessionBuilderSupplier(system, Maven3ScopeManagerConfiguration.INSTANCE)
.get()
.withLocalRepositoryBaseDirectories(new File("target/local-repo").toPath())
.build()) {
diff --git a/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java b/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java
index deb32e9ea..d588a23ff 100644
--- a/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java
+++ b/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java
@@ -20,24 +20,22 @@
import java.util.Arrays;
import java.util.Locale;
-import java.util.Objects;
import java.util.function.Supplier;
import org.apache.maven.api.DependencyScope;
import org.apache.maven.repository.internal.artifact.FatArtifactTraverser;
-import org.apache.maven.repository.internal.scopes.Maven4ScopeManagerConfiguration;
-import org.apache.maven.repository.internal.type.DefaultTypeProvider;
import org.apache.maven.utils.Os;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.RepositorySystemSession.CloseableSession;
import org.eclipse.aether.RepositorySystemSession.SessionBuilder;
-import org.eclipse.aether.artifact.ArtifactTypeRegistry;
+import org.eclipse.aether.artifact.DefaultArtifactType;
import org.eclipse.aether.collection.DependencyGraphTransformer;
import org.eclipse.aether.collection.DependencyManager;
import org.eclipse.aether.collection.DependencySelector;
import org.eclipse.aether.collection.DependencyTraverser;
import org.eclipse.aether.impl.scope.InternalScopeManager;
+import org.eclipse.aether.impl.scope.ScopeManagerConfiguration;
import org.eclipse.aether.internal.impl.scope.ManagedDependencyContextRefiner;
import org.eclipse.aether.internal.impl.scope.ManagedScopeDeriver;
import org.eclipse.aether.internal.impl.scope.ManagedScopeSelector;
@@ -53,9 +51,14 @@
import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
import org.eclipse.aether.util.graph.transformer.ConfigurableVersionSelector;
import org.eclipse.aether.util.graph.transformer.ConflictResolver;
+import org.eclipse.aether.util.graph.transformer.JavaDependencyContextRefiner;
+import org.eclipse.aether.util.graph.transformer.JavaScopeDeriver;
+import org.eclipse.aether.util.graph.transformer.JavaScopeSelector;
import org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelector;
import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
+import static java.util.Objects.requireNonNull;
+
/**
* A simple {@link Supplier} of {@link SessionBuilder} instances, that on each call supplies newly
* constructed instance. To create session out of builder, use {@link SessionBuilder#build()}. For proper closing
@@ -69,86 +72,133 @@ public class SessionBuilderSupplier {
protected final RepositorySystem repositorySystem;
protected final InternalScopeManager scopeManager;
+ /**
+ * Creates Resolver 2 session using Maven 4 elements without {@link InternalScopeManager}.
+ */
public SessionBuilderSupplier(RepositorySystem repositorySystem) {
- this.repositorySystem = Objects.requireNonNull(repositorySystem);
- this.scopeManager = new ScopeManagerImpl(Maven4ScopeManagerConfiguration.INSTANCE);
+ this(repositorySystem, null);
+ }
+
+ /**
+ * Creates Resolver 2 session using Maven 4 elements with or without {@link InternalScopeManager}.
+ */
+ public SessionBuilderSupplier(
+ RepositorySystem repositorySystem, ScopeManagerConfiguration scopeManagerConfiguration) {
+ this.repositorySystem = requireNonNull(repositorySystem);
+ this.scopeManager = scopeManagerConfiguration == null ? null : new ScopeManagerImpl(scopeManagerConfiguration);
}
- /** @deprecated */
- @Deprecated
- public SessionBuilderSupplier() {
- this.repositorySystem = null;
- this.scopeManager = new ScopeManagerImpl(Maven4ScopeManagerConfiguration.INSTANCE);
+ public void configureSessionBuilder(RepositorySystemSession.SessionBuilder session) {
+ session.setSystemProperties(System.getProperties());
+ boolean caseSensitive = !Os.IS_WINDOWS;
+ System.getenv().forEach((key, value) -> {
+ key = "env." + (caseSensitive ? key : key.toUpperCase(Locale.ENGLISH));
+ session.setSystemProperty(key, value);
+ });
+ if (getScopeManager() != null) {
+ session.setScopeManager(getScopeManager());
+ }
+ session.setDependencyTraverser(getDependencyTraverser());
+ session.setDependencyManager(getDependencyManager());
+ session.setDependencySelector(getDependencySelector());
+ session.setDependencyGraphTransformer(getDependencyGraphTransformer());
+ session.setArtifactTypeRegistry(getArtifactTypeRegistry());
+ session.setArtifactDescriptorPolicy(getArtifactDescriptorPolicy());
}
- protected InternalScopeManager getScopeManager() {
+ public InternalScopeManager getScopeManager() {
return this.scopeManager;
}
- protected DependencyTraverser getDependencyTraverser() {
+ public DependencyTraverser getDependencyTraverser() {
return new FatArtifactTraverser();
}
- protected DependencyManager getDependencyManager() {
+ public DependencyManager getDependencyManager() {
return this.getDependencyManager(true);
}
public DependencyManager getDependencyManager(boolean transitive) {
- return transitive
- ? new TransitiveDependencyManager(getScopeManager())
- : new ClassicDependencyManager(getScopeManager());
+ if (getScopeManager() == null) {
+ return transitive ? new TransitiveDependencyManager() : new ClassicDependencyManager();
+ } else {
+ return transitive
+ ? new TransitiveDependencyManager(getScopeManager())
+ : new ClassicDependencyManager(getScopeManager());
+ }
}
- protected DependencySelector getDependencySelector() {
- return new AndDependencySelector(new DependencySelector[] {
- ScopeDependencySelector.legacy(
- null, Arrays.asList(DependencyScope.TEST.id(), DependencyScope.PROVIDED.id())),
- OptionalDependencySelector.fromDirect(),
- new ExclusionDependencySelector()
- });
+ public DependencySelector getDependencySelector() {
+ if (getScopeManager() == null) {
+ return new AndDependencySelector(
+ ScopeDependencySelector.legacy(
+ null, Arrays.asList(DependencyScope.TEST.id(), DependencyScope.PROVIDED.id())),
+ OptionalDependencySelector.fromDirect(),
+ new ExclusionDependencySelector());
+ } else {
+ return new AndDependencySelector(
+ ScopeDependencySelector.legacy(
+ null, Arrays.asList(DependencyScope.TEST.id(), DependencyScope.PROVIDED.id())),
+ OptionalDependencySelector.fromDirect(),
+ new ExclusionDependencySelector());
+ }
}
- protected DependencyGraphTransformer getDependencyGraphTransformer() {
- return new ChainedDependencyGraphTransformer(
- new ConflictResolver(
- new ConfigurableVersionSelector(),
- new ManagedScopeSelector(getScopeManager()),
- new SimpleOptionalitySelector(),
- new ManagedScopeDeriver(getScopeManager())),
- new ManagedDependencyContextRefiner(getScopeManager()));
+ public DependencyGraphTransformer getDependencyGraphTransformer() {
+ if (getScopeManager() == null) {
+ return new ChainedDependencyGraphTransformer(
+ new ConflictResolver(
+ new ConfigurableVersionSelector(),
+ new JavaScopeSelector(),
+ new SimpleOptionalitySelector(),
+ new JavaScopeDeriver()),
+ new JavaDependencyContextRefiner());
+ } else {
+ return new ChainedDependencyGraphTransformer(
+ new ConflictResolver(
+ new ConfigurableVersionSelector(),
+ new ManagedScopeSelector(getScopeManager()),
+ new SimpleOptionalitySelector(),
+ new ManagedScopeDeriver(getScopeManager())),
+ new ManagedDependencyContextRefiner(getScopeManager()));
+ }
}
- protected ArtifactTypeRegistry getArtifactTypeRegistry() {
+ public DefaultArtifactTypeRegistry getArtifactTypeRegistry() {
DefaultArtifactTypeRegistry stereotypes = new DefaultArtifactTypeRegistry();
- new DefaultTypeProvider().types().forEach(stereotypes::add);
+ stereotypes.add(new DefaultArtifactType("pom"));
+ stereotypes.add(new DefaultArtifactType("maven-plugin", "jar", "", "java"));
+ stereotypes.add(new DefaultArtifactType("jar", "jar", "", "java"));
+ stereotypes.add(new DefaultArtifactType("ejb", "jar", "", "java"));
+ stereotypes.add(new DefaultArtifactType("ejb-client", "jar", "client", "java"));
+ stereotypes.add(new DefaultArtifactType("test-jar", "jar", "tests", "java"));
+ stereotypes.add(new DefaultArtifactType("javadoc", "jar", "javadoc", "java"));
+ stereotypes.add(new DefaultArtifactType("java-source", "jar", "sources", "java", false, false));
+ stereotypes.add(new DefaultArtifactType("fatjar", "jar", "", "java", true, true));
+ stereotypes.add(new DefaultArtifactType("war", "war", "", "java", false, true));
+ stereotypes.add(new DefaultArtifactType("ear", "ear", "", "java", false, true));
+ stereotypes.add(new DefaultArtifactType("rar", "rar", "", "java", false, true));
+ stereotypes.add(new DefaultArtifactType("par", "par", "", "java", false, true));
return stereotypes;
}
- protected ArtifactDescriptorPolicy getArtifactDescriptorPolicy() {
+ public ArtifactDescriptorPolicy getArtifactDescriptorPolicy() {
return new SimpleArtifactDescriptorPolicy(true, true);
}
- protected void configureSessionBuilder(RepositorySystemSession.SessionBuilder session) {
- session.setDependencyTraverser(this.getDependencyTraverser());
- session.setDependencyManager(this.getDependencyManager());
- session.setDependencySelector(this.getDependencySelector());
- session.setDependencyGraphTransformer(this.getDependencyGraphTransformer());
- session.setArtifactTypeRegistry(this.getArtifactTypeRegistry());
- session.setArtifactDescriptorPolicy(this.getArtifactDescriptorPolicy());
- session.setScopeManager(this.getScopeManager());
-
- session.setSystemProperties(System.getProperties());
- boolean caseSensitive = !Os.IS_WINDOWS;
- System.getenv().forEach((key, value) -> {
- key = "env." + (caseSensitive ? key : key.toUpperCase(Locale.ENGLISH));
- session.setSystemProperty(key, value);
- });
- }
-
+ /**
+ * Creates a new Maven-like repository system session by initializing the session with values typical for
+ * Maven-based resolution. In more detail, this method configures settings relevant for the processing of dependency
+ * graphs, most other settings remain at their generic default value. Use the various setters to further configure
+ * the session with authentication, mirror, proxy and other information required for your environment. At least,
+ * local repository manager needs to be configured to make session be able to create session instance.
+ *
+ * @return SessionBuilder configured with minimally required things for "Maven-based resolution". At least LRM must
+ * be set on builder to make it able to create session instances.
+ */
public RepositorySystemSession.SessionBuilder get() {
- Objects.requireNonNull(this.repositorySystem, "repositorySystem");
- RepositorySystemSession.SessionBuilder builder = this.repositorySystem.createSessionBuilder();
- this.configureSessionBuilder(builder);
+ RepositorySystemSession.SessionBuilder builder = repositorySystem.createSessionBuilder();
+ configureSessionBuilder(builder);
return builder;
}
}
diff --git a/src/site/markdown/third-party-integrations.md b/src/site/markdown/third-party-integrations.md
index d0e1d218b..c0807c42f 100644
--- a/src/site/markdown/third-party-integrations.md
+++ b/src/site/markdown/third-party-integrations.md
@@ -39,10 +39,6 @@ and supplies new, ready-to-use `RepositorySystem` instance for each call. Class
no instance caching or anything alike is present: all that is concern of caller, just like proper shutdown
of the created resolver instances is.
-The `RepositorySystemSession` should be created using the
-`org.apache.maven.repository.internal.MavenRepositorySystemUtils#newSession()` method
-and local repository added to it in usual way (there is no change in this area).
-
The supplier class is written in a way, to allow easy customization if needed: just extend the class and override
method as needed (all methods are protected).