Skip to content

Commit

Permalink
Adapt to latest Mill API changes to support Mill 0.11 API
Browse files Browse the repository at this point in the history
  • Loading branch information
lefou committed Jun 24, 2023
1 parent 8b3f946 commit d82f646
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 22 deletions.
8 changes: 8 additions & 0 deletions build.sc
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,14 @@ trait MillOsgiModule extends ScalaModule with PublishModule with Cross.Module[St
developers = Seq(Developer("lefou", "Tobias Roeser", "https.//github.com/lefou"))
)
}
override def sources = T.sources {
super.sources() ++
(
ZincWorkerUtil.matchingVersions(deps.millPlatform) ++
ZincWorkerUtil.versionRanges(deps.millPlatform, millPlatforms.map(_._1))
)
.map(p => PathRef(millSourcePath / s"src-${p}"))
}
}

object core extends Cross[Core](millPlatforms.map(_._1))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package de.tobiasroeser.mill.osgi

import mill.{Agg,T}
import mill.api.PathRef
import mill.scalalib.JavaModule

trait OsgiBundleModulePlatform extends JavaModule {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package de.tobiasroeser.mill.osgi

import mill.{Agg,T}
import mill.api.PathRef
import mill.scalalib.JavaModule

trait OsgiBundleModulePlatform extends JavaModule {

override def compileClasspath: T[Agg[PathRef]] = T {
// restore pre-Mill-0.11.0-M8 behavior
// Mill 0.11.0-M8 uses transitiveCompileClasspath instead of transitiveLocalClass
// which does not include the resources
transitiveLocalClasspath() ++
compileResources() ++
unmanagedClasspath() ++
resolvedIvyDeps()
}

}
2 changes: 1 addition & 1 deletion core/src/de/tobiasroeser/mill/osgi/OsgiBundleModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import mill.modules.Jvm
import mill.scalalib.{JavaModule, PublishModule}
import os.Path

trait OsgiBundleModule extends JavaModule {
trait OsgiBundleModule extends OsgiBundleModulePlatform {

import OsgiBundleModule._

Expand Down
43 changes: 22 additions & 21 deletions itest/src/Interproject-dependson-includePackage-versions/build.sc
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,33 @@ import de.tobiasroeser.mill.osgi.testsupport.TestSupport._

val projVersion = "1.0.0"

def verify() = T.command {

for {
(jar1, jar2) <- Seq(
(proj1.jar(), proj2.jar()),
(manifest.proj1.jar(), manifest.proj2.jar())
)
} {
withManifest(jar1.path) { manifest =>
checkExact(manifest, "Bundle-SymbolicName", "proj1_2.12")
checkExact(manifest, "Bundle-Version", projVersion)
checkSlices(manifest, "Export-Package", Seq("proj1;", s"""version="${projVersion}""""))
}
withManifest(jar2.path) { manifest =>
checkExact(manifest, "Bundle-SymbolicName", "proj2_2.12")
checkExact(manifest, "Bundle-Version", projVersion)
checkSlices(manifest, "Export-Package", Seq("proj2;", s"""version="${projVersion}""""))
def verifyTask(jar1: PathRef, jar2: PathRef) = {
println(s"jar1: ${jar1}")
withManifest(jar1.path) { manifest =>
checkExact(manifest, "Bundle-SymbolicName", "proj1_2.12")
checkExact(manifest, "Bundle-Version", projVersion)
checkSlices(manifest, "Export-Package", Seq("proj1;", s"""version="${projVersion}""""))
}
println(s"jar2: ${jar2}")
withManifest(jar2.path) { manifest =>
checkExact(manifest, "Bundle-SymbolicName", "proj2_2.12")
checkExact(manifest, "Bundle-Version", projVersion)
checkSlices(manifest, "Export-Package", Seq("proj2;", s"""version="${projVersion}""""))

val rangeFrom = projVersion.split("[.]").take(2).mkString(".")
val rangeTo = projVersion.split("[.]").head.toInt + 1
checkSlices(manifest, "Import-Package", Seq(s"""proj1;version="[${rangeFrom},${rangeTo})""""))
}
val rangeFrom = projVersion.split("[.]").take(2).mkString(".")
val rangeTo = projVersion.split("[.]").head.toInt + 1
checkSlices(manifest, "Import-Package", Seq(s"""proj1;version="[${rangeFrom},${rangeTo})""""))
}
}

def verify() = T.command {
verifyTask(proj1.jar(), proj2.jar())
verifyTask(manifest.proj1.jar(), manifest.proj2.jar())
()
}

trait TemplateBnd extends ScalaModule with OsgiBundleModule {
override def osgiBuildMode: OsgiBundleModule.BuildMode = OsgiBundleModule.BuildMode.ReplaceJarTarget
override def scalaVersion: T[String] = "2.12.7"
override def bundleVersion = projVersion
}
Expand Down

0 comments on commit d82f646

Please sign in to comment.