Skip to content

Commit

Permalink
Use optional scalaVersion via null for java compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
lolgab committed May 30, 2024
1 parent 8f39ed5 commit 167408d
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 21 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.github.lolgab.mill.mima.worker.api;

public interface MimaWorkerApi {
java.util.Optional<String> reportBinaryIssues(
String scalaBinaryVersion,
String reportBinaryIssues(
String scalaBinaryVersionOrNull,
java.util.function.Consumer<String> logDebug,
java.util.function.Consumer<String> logError,
java.util.function.Consumer<String> logPrintln,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import scala.jdk.CollectionConverters._
class MimaWorkerImpl extends MimaWorkerApi {

def reportBinaryIssues(
scalaBinaryVersion: String,
scalaBinaryVersionOrNull: String,
logDebug: java.util.function.Consumer[String],
logError: java.util.function.Consumer[String],
logPrintln: java.util.function.Consumer[String],
Expand All @@ -25,8 +25,8 @@ class MimaWorkerImpl extends MimaWorkerApi {
forwardFilters: java.util.Map[String, Array[ProblemFilter]],
excludeAnnos: Array[String],
publishVersion: String
): java.util.Optional[String] = {
sanityCheckScalaBinaryVersion(scalaBinaryVersion)
): String = {
sanityCheckScalaBinaryVersion(scalaBinaryVersionOrNull)

val mimaLib = new MiMaLib(runClasspath.toSeq)

Expand Down Expand Up @@ -74,12 +74,10 @@ class MimaWorkerImpl extends MimaWorkerApi {
if (problemsCount > 0) {
val filteredNote =
if (filteredCount > 0) s" (filtered $filteredCount)" else ""
java.util.Optional.of(
s"Failed binary compatibility check! Found $problemsCount potential problems$filteredNote"
)
s"Failed binary compatibility check! Found $problemsCount potential problems$filteredNote"
} else {
logPrintln.accept("Binary compatibility check passed")
java.util.Optional.empty()
null
}
}

Expand All @@ -91,12 +89,12 @@ class MimaWorkerImpl extends MimaWorkerApi {
s" * $desc$howToFilter"
}

private def sanityCheckScalaBinaryVersion(scalaBinaryVersion: String) = {
scalaBinaryVersion match {
case "2.11" | "2.12" | "2.13" | "3" => // ok
case _ =>
private def sanityCheckScalaBinaryVersion(scalaBinaryVersionOrNull: String) = {
scalaBinaryVersionOrNull match {
case "3" | "2.13" | "2.12" | "2.11" | null => // ok
case other =>
throw new IllegalArgumentException(
s"MiMa supports Scala 2.11, 2.12, 2.13 and 3, not $scalaBinaryVersion"
s"MiMa supports Scala 2.11, 2.12, 2.13 and 3, not $other"
)
}
}
Expand Down
13 changes: 6 additions & 7 deletions mill-mima/src/com/github/lolgab/mill/mima/MimaBase.scala
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,9 @@ private[mima] trait MimaBase
def mimaCurrentArtifact: T[PathRef] = T { jar() }

def mimaReportBinaryIssues(): Command[Unit] = {
// only used for some sanity checks
val scalaBinVersionTask = this match {
val scalaBinVersionOrNullTask = this match {
case m: ScalaModule => T.task { scalaBinaryVersion(m.scalaVersion()) }
case _ => T.task("3")
case _ => T.task { null }
}
T.command {
def prettyDep(dep: Dep): String = {
Expand Down Expand Up @@ -167,9 +166,9 @@ private[mima] trait MimaBase
.toMap
.asJava

val errorOpt: java.util.Optional[String] =
val errorOrNull: String =
mimaWorker().reportBinaryIssues(
scalaBinVersionTask(),
scalaBinVersionOrNullTask(),
logDebug,
logError,
logPrintln,
Expand All @@ -184,8 +183,8 @@ private[mima] trait MimaBase
publishVersion()
)

if (errorOpt.isPresent()) Result.Failure(errorOpt.get())
else Result.Success(())
if (errorOrNull == null) Result.Success(())
else Result.Failure(errorOrNull)
}
}

Expand Down

0 comments on commit 167408d

Please sign in to comment.