Skip to content

Commit

Permalink
Expose more ResolutionParams fields in Java API
Browse files Browse the repository at this point in the history
alexarchambault committed Nov 11, 2024
1 parent 2f93748 commit 307e12d
Showing 3 changed files with 69 additions and 4 deletions.
51 changes: 48 additions & 3 deletions interface/src/main/java/coursierapi/ResolutionParams.java
Original file line number Diff line number Diff line change
@@ -13,6 +13,9 @@ public class ResolutionParams implements Serializable {
private boolean useSystemOsInfo;
private boolean useSystemJdkVersion;
private String scalaVersion;
private Boolean keepProvidedDependencies;
private Boolean forceDepMgmtVersions;
private Boolean enableDependencyOverrides;

private ResolutionParams() {
maxIterations = null;
@@ -23,6 +26,9 @@ private ResolutionParams() {
useSystemOsInfo = true;
useSystemJdkVersion = true;
scalaVersion = null;
keepProvidedDependencies = null;
forceDepMgmtVersions = null;
enableDependencyOverrides = null;
}

@Override
@@ -37,7 +43,10 @@ public boolean equals(Object o) {
Objects.equals(forcedProperties, that.forcedProperties) &&
Objects.equals(profiles, that.profiles) &&
Objects.equals(exclusions, that.exclusions) &&
Objects.equals(scalaVersion, that.scalaVersion);
Objects.equals(scalaVersion, that.scalaVersion) &&
Objects.equals(keepProvidedDependencies, that.keepProvidedDependencies) &&
Objects.equals(forceDepMgmtVersions, that.forceDepMgmtVersions) &&
Objects.equals(enableDependencyOverrides, that.enableDependencyOverrides);
}

@Override
@@ -50,7 +59,10 @@ public int hashCode() {
exclusions,
useSystemOsInfo,
useSystemJdkVersion,
scalaVersion);
scalaVersion,
keepProvidedDependencies,
forceDepMgmtVersions,
enableDependencyOverrides);
}

@Override
@@ -64,6 +76,9 @@ public String toString() {
", useSystemOsInfo=" + useSystemOsInfo +
", useSystemJdkVersion=" + useSystemJdkVersion +
", scalaVersion='" + scalaVersion + '\'' +
", keepProvidedDependencies=" + keepProvidedDependencies +
", forceDepMgmtVersions=" + forceDepMgmtVersions +
", enableDependencyOverrides=" + enableDependencyOverrides +
'}';
}

@@ -80,7 +95,10 @@ public static ResolutionParams of(ResolutionParams params) {
.withExclusions(params.exclusions)
.withUseSystemOsInfo(params.useSystemOsInfo)
.withUseSystemJdkVersion(params.useSystemJdkVersion)
.withScalaVersion(params.scalaVersion);
.withScalaVersion(params.scalaVersion)
.withKeepProvidedDependencies(params.keepProvidedDependencies)
.withForceDepMgmtVersions(params.forceDepMgmtVersions)
.withEnableDependencyOverrides(params.enableDependencyOverrides);
}

public ResolutionParams withMaxIterations(Integer maxIterations) {
@@ -164,6 +182,21 @@ public ResolutionParams withScalaVersion(String scalaVersion) {
return this;
}

public ResolutionParams withKeepProvidedDependencies(Boolean keepProvidedDependencies) {
this.keepProvidedDependencies = keepProvidedDependencies;
return this;
}

public ResolutionParams withForceDepMgmtVersions(Boolean forceDepMgmtVersions) {
this.forceDepMgmtVersions = forceDepMgmtVersions;
return this;
}

public ResolutionParams withEnableDependencyOverrides(Boolean enableDependencyOverrides) {
this.enableDependencyOverrides = enableDependencyOverrides;
return this;
}

public Integer getMaxIterations() {
return maxIterations;
}
@@ -195,4 +228,16 @@ public boolean getUseSystemJdkVersion() {
public String getScalaVersion() {
return scalaVersion;
}

public Boolean getKeepProvidedDependencies() {
return keepProvidedDependencies;
}

public Boolean getForceDepMgmtVersions() {
return forceDepMgmtVersions;
}

public Boolean getEnableDependencyOverrides() {
return enableDependencyOverrides;
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package coursier.internal.api

import java.io.{File, OutputStreamWriter}
import java.lang.{Long => JLong}
import java.lang.{Boolean => JBoolean, Long => JLong}
import java.time.LocalDateTime
import java.{util => ju}
import java.util.concurrent.ExecutorService
@@ -257,6 +257,9 @@ object ApiHelper {
.withUseSystemOsInfo(params.useSystemOsInfo)
.withUseSystemJdkVersion(params.useSystemJdkVersion)
.withScalaVersion(params.scalaVersionOpt.orNull)
.withKeepProvidedDependencies(params.keepProvidedDependencies.map(b => b: JBoolean).orNull)
.withForceDepMgmtVersions(params.forceDepMgmtVersions.map(b => b: JBoolean).orNull)
.withEnableDependencyOverrides(params.enableDependencyOverrides.map(b => b: JBoolean).orNull)
}

def resolutionParams(params: coursierapi.ResolutionParams): ResolutionParams = {
@@ -271,6 +274,9 @@ object ApiHelper {
.withUseSystemOsInfo(params.getUseSystemOsInfo)
.withUseSystemJdkVersion(params.getUseSystemJdkVersion)
.withScalaVersionOpt(Option(params.getScalaVersion))
.withKeepProvidedDependencies(Option(params.getKeepProvidedDependencies).map(b => b: Boolean))
.withForceDepMgmtVersions(Option(params.getForceDepMgmtVersions).map(b => b: Boolean))
.withEnableDependencyOverrides(Option(params.getEnableDependencyOverrides).map(b => b: Boolean))
}

def cache(cache: coursierapi.Cache): FileCache[Task] = {
14 changes: 14 additions & 0 deletions interface/src/test/scala/coursierapi/ResolutionParamsTests.scala
Original file line number Diff line number Diff line change
@@ -54,6 +54,20 @@ object ResolutionParamsTests extends TestSuite {
assert(params != ResolutionParams.create())
assert(params == params0)
}

test {
val params = ResolutionParams.create()
.withMaxIterations(31)
.forceVersion(Module.of("org", "foo"), "1.2")
.forceVersion(Module.of("org", "bzz"), "1.3")
.withKeepProvidedDependencies(false)
.withForceDepMgmtVersions(true)
.withEnableDependencyOverrides(true)
val params0 = ApiHelper.resolutionParams(ApiHelper.resolutionParams(params))

assert(params != ResolutionParams.create())
assert(params == params0)
}
}

}

0 comments on commit 307e12d

Please sign in to comment.