diff --git a/project/OSGi.scala b/project/OSGi.scala index 24e40e133e..0591dfb5a2 100644 --- a/project/OSGi.scala +++ b/project/OSGi.scala @@ -143,10 +143,25 @@ object OSGi { "!scala.util.parsing.*", scalaImport(scalaVersion)) def pekkoImport(version: String, packageName: String = "org.apache.pekko.*") = { + // see https://github.com/apache/pekko/issues/2509 for background + // on why the version that is input might not be in the expected format val versionComponents = version.split('.') - val nextMinorVersion = versionComponents(1).toInt + 1 - versionedImport(packageName, s"${versionComponents.head}.${versionComponents(1)}", - s"${versionComponents.head}.$nextMinorVersion") + if (versionComponents.length < 2) { + useDefaultImportRange(version, packageName) + } else { + try { + val nextMinorVersion = versionComponents(1).toInt + 1 + versionedImport(packageName, s"${versionComponents.head}.${versionComponents(1)}", + s"${versionComponents.head}.$nextMinorVersion") + } catch { + case _: NumberFormatException => + useDefaultImportRange(version, packageName) + } + } + } + private def useDefaultImportRange(version: String, packageName: String) = { + System.err.println(s"Invalid Pekko version: $version for OSGi import package versioning, defaulting to [0.0,10.0)") + versionedImport(packageName, "0.0", "10.0") } def configImport(packageName: String = "com.typesafe.config.*") = versionedImport(packageName, "1.4.0", "1.5.0") def scalaImport(version: String) = {