Commit 29321081 authored by Romain Reuillon's avatar Romain Reuillon
Browse files

[All] enh: migrate to scala 2.13

parent d170d999
Pipeline #627 passed with stages
in 15 minutes and 16 seconds
......@@ -16,6 +16,8 @@ release/*
*.iml
.idea/
.idea/*
.metals/
metals.sbt
*~
.project
.settings
......
......@@ -8,7 +8,7 @@ def settings = Seq(
resolvers += Resolver.sonatypeRepo("snapshots"),
resolvers += Resolver.sonatypeRepo("releases"),
resolvers += Resolver.sonatypeRepo("staging"),
scalaVersion in Global := "2.12.10",
scalaVersion in Global := "2.13.2",
scalacOptions ++= Seq("-deprecation"),
publishArtifact in (packageDoc in publishLocal) := false,
publishArtifact in (packageSrc in publishLocal) := false,
......@@ -104,11 +104,12 @@ lazy val scalaLang = OsgiProject(
"org.scala-lang.scala-library",
global = true,
exports = Seq("akka.*", "com.typesafe.*", "scala.*", "scalax.*", "jline.*"),
privatePackages = Seq("*", "META-INF.native.**"), imports = Seq("!org.apache.tools.ant.*", "!sun.misc.*" ,"*")) settings
privatePackages = Seq("*", "META-INF.native.**"), imports = Seq("!org.apache.sshd.*", "!org.mozilla.*", "!org.apache.tools.ant.*", "!sun.misc.*", "!javax.annotation.*", "*")) settings
(libraryDependencies ++= {
Seq(
"org.scala-lang.modules" %% "scala-xml" % "1.2.0",
"org.scala-lang.modules" %% "scala-collection-compat" % "2.1.6",
"org.scala-lang.modules" %% "scala-parallel-collections" % "0.2.0",
"org.scala-lang" % "scala-library" % scalaVersion.value,
"org.scala-lang" % "scala-reflect" % scalaVersion.value,
"org.scala-lang" % "scalap" % scalaVersion.value,
......@@ -249,7 +250,7 @@ lazy val container = OsgiProject(dir, "container", exports = Seq("container.*"),
//libraryDependencies += "com.github.luben" % "zstd-jni" % "1.4.3-1",
version := containerVersion) dependsOn(cats, squants, circe, shapeless) settings(settings: _*)
lazy val spatialsamplingVersion = "0.1"
lazy val spatialsamplingVersion = "0.2"
lazy val spatialdata = OsgiProject(dir, "org.openmole.spatialsampling",
exports = Seq("org.openmole.spatialsampling.*"),
......@@ -266,8 +267,8 @@ lazy val opencsv = OsgiProject(dir, "au.com.bytecode.opencsv") settings(
) settings(settings: _*)
lazy val arm = OsgiProject(dir, "com.jsuereth.scala-arm") settings(
libraryDependencies += "com.jsuereth" %% "scala-arm" % "2.0",
version := "2.0",
libraryDependencies += "com.michaelpollmeier" %% "scala-arm" % "2.1",
version := "2.1",
exportPackage := Seq("resource.*")) settings(settings: _*)
lazy val scalajHttp = OsgiProject(dir, "org.scalaj.scalaj-http") settings(
......
-J-Xmx3G
-J-Xmx2G
-J-Xss2M
-J-Dfile.encoding=UTF-8
-J-XX:MaxMetaspaceSize=1G
......
......@@ -176,8 +176,9 @@ class Console(script: Option[String] = None) {
loop interpret s"import $commandsName._"
}
try f(loop)
finally loop.close
f(loop)
// try f(loop)
// finally loop.close
}
}
......@@ -38,7 +38,7 @@ import org.openmole.core.serializer._
import org.openmole.core.threadprovider.ThreadProvider
import org.openmole.tool.file.uniqName
import scala.collection.JavaConversions._
import scala.jdk.CollectionConverters._
import scala.collection.mutable.HashMap
import util.{ Failure, Success }
import org.openmole.core.workflow.execution.Environment.RuntimeLog
......@@ -127,7 +127,7 @@ class Runtime {
for (repliURI executionMessage.files) {
// To avoid getting twice the same plugin
if (!usedFiles.containsKey(repliURI.originalPath)) {
if (!usedFiles.contains(repliURI.originalPath)) {
val local = getReplicatedFile(repliURI, TransferOptions())
usedFiles.put(repliURI.originalPath, local)
}
......
......@@ -24,14 +24,14 @@ import com.github.rjeschke._
import org.apache.commons.lang3.StringEscapeUtils
//import org.openmole.marketindex.GeneratedMarketEntry
import scala.collection.JavaConversions._
import scala.jdk.CollectionConverters._
import org.openmole.site.tools._
object MD {
val emiter = new txtmark.BlockEmitter {
override def emitBlock(stringBuilder: StringBuilder, list: util.List[String], s: String): Unit = {
def code = list.mkString("\n")
def code = list.asScala.mkString("\n")
val html =
if (s == "openmole") hl.openmole(code)
else hl.highlight(code, s)
......
......@@ -23,7 +23,7 @@ import stylesheet._
object Main {
private def readMore(page: Page) = pageLinkButton("Read more", page, false, Seq(classIs(btn ++ btn_default), marginTop := 20))
private def readMore(page: Page) = pageLinkButton("Read more", page, false, Seq(classIs(btn, btn_default), marginTop := 20))
def build = {
......
......@@ -24,7 +24,7 @@ import org.openmole.core.buildinfo._
object Menu {
val navClass = classIs(navbar ++ navbar_default ++ navbar_staticTop ++ navbar_fixedTop ++ navbar_inverse)
val navClass = classIs(navbar, navbar_default, navbar_staticTop, navbar_fixedTop, navbar_inverse)
val liStyle = paddingTop := 0
val inputStyle = paddingTop := 15
val navId = "omwesite"
......@@ -64,8 +64,8 @@ object Menu {
img(alt := "", src := Resource.img.mole.openmoleText.file, Seq(width := 240, padding := 15, pointer))
)
),
div(classIs(collapse ++ navbar_collapse), aria.expanded := false, paddingTop := 20, id := navId)(
ul(classIs(nav ++ navbar_nav ++ navbar_left), marginLeft := 200)(
div(classIs(collapse, navbar_collapse), aria.expanded := false, paddingTop := 20, id := navId)(
ul(classIs(nav, navbar_nav, navbar_left), marginLeft := 200)(
li(innerLink(DocumentationPages.documentation, "DOC"), liStyle),
li(innerLink(DocumentationPages.tutorials, "TUTORIALS"), liStyle),
li(innerLink(DocumentationPages.OMcommunity, "COMMUNITY"), liStyle),
......
......@@ -70,21 +70,21 @@ object SideMenu {
implicit def pageNodeToLink(pageTree: PageTree): Seq[Link] = pageTree.sons.map { pageToLink(_) }
def details(pages: Seq[Page]) = SideMenu(pages, classIs(btn ++ btn_default), otherTab = true)
def details(pages: Seq[Page]) = SideMenu(pages, classIs(btn, btn_default), otherTab = true)
def fromStrings(title: String, stringMenus: String*) =
SideMenu(preText = title, links = stringMenus.map { a Link(a, Link.intern(a)) })
val embed = SideMenu(DocumentationPages.embedPages, classIs(btn ++ btn_default), "Available tasks")
val explore = SideMenu(DocumentationPages.explorePages, classIs(btn ++ btn_default), "Available methods")
val sampling = SideMenu(DocumentationPages.samplingPages, classIs(btn ++ btn_default), "Sampling methods")
val scale = SideMenu(DocumentationPages.scalePages, classIs(btn ++ btn_default), "Available environments")
val language = SideMenu(DocumentationPages.languagePages, classIs(btn ++ btn_default), "Language")
val advanced = SideMenu(DocumentationPages.advancedConceptsPages, classIs(btn ++ btn_default), "Advanced concepts")
val developers = SideMenu(DocumentationPages.developersPages, classIs(btn ++ btn_default), "Developer's documentation")
val tutorials = SideMenu(DocumentationPages.tutoPages, classIs(btn ++ btn_default), "Tutorials")
val community = SideMenu(DocumentationPages.communityPages, classIs(btn ++ btn_default), "Community")
val download = SideMenu(DocumentationPages.downloadPages, classIs(btn ++ btn_default), "Download")
val embed = SideMenu(DocumentationPages.embedPages, classIs(btn, btn_default), "Available tasks")
val explore = SideMenu(DocumentationPages.explorePages, classIs(btn, btn_default), "Available methods")
val sampling = SideMenu(DocumentationPages.samplingPages, classIs(btn, btn_default), "Sampling methods")
val scale = SideMenu(DocumentationPages.scalePages, classIs(btn, btn_default), "Available environments")
val language = SideMenu(DocumentationPages.languagePages, classIs(btn, btn_default), "Language")
val advanced = SideMenu(DocumentationPages.advancedConceptsPages, classIs(btn, btn_default), "Advanced concepts")
val developers = SideMenu(DocumentationPages.developersPages, classIs(btn, btn_default), "Developer's documentation")
val tutorials = SideMenu(DocumentationPages.tutoPages, classIs(btn, btn_default), "Tutorials")
val community = SideMenu(DocumentationPages.communityPages, classIs(btn, btn_default), "Community")
val download = SideMenu(DocumentationPages.downloadPages, classIs(btn, btn_default), "Download")
def more(current: Page) = SideMenu(
Seq(
......
......@@ -30,7 +30,7 @@ import spray.json._
import scalaj.http._
object Site extends App {
object Site {
lazy val piwik =
RawFrag(
......@@ -55,7 +55,7 @@ object Site extends App {
""".stripMargin
)
override def main(args: Array[String]): Unit = {
def main(args: Array[String]): Unit = {
case class Parameters(
target: Option[File] = None,
test: Boolean = false,
......@@ -132,7 +132,7 @@ object Site extends App {
Menu.build(sitePage),
div(id := "main-content")(
sitePage.header(
pageTree.source.map(source tools.linkButton("Suggest edits", tools.modificationLink(source), classIs(btn ++ btn_danger))(stylesheet.suggest)
pageTree.source.map(source tools.linkButton("Suggest edits", tools.modificationLink(source), classIs(btn, btn_danger))(stylesheet.suggest)
)),
div(elementClass, id := "padding-element")(
if (pageTree.name == DocumentationPages.documentation.name) div
......
......@@ -113,7 +113,7 @@ object UserGuide {
case p if (parents.contains(DocumentationPages.tutorials.name) || current.name == DocumentationPages.tutorials.name) integratedPage(SideMenu.tutorials)
case p if (parents.contains(DocumentationPages.OMcommunity.name) || current.name == DocumentationPages.OMcommunity.name) integratedPage(SideMenu.community)
case p if (parents.contains(DocumentationPages.download.name) || current.name == DocumentationPages.download.name) integratedPage(SideMenu.download)
case _ integratedPage(SideMenu(Seq.empty, classIs(btn ++ btn_primary)))
case _ integratedPage(SideMenu(Seq.empty, classIs(btn, btn_primary)))
}
}
......
......@@ -124,7 +124,7 @@ package object tools {
}
// SCALATAGS METHODS
def classIs(s: String): AttrPair = `class` := s
def classIs(s: String*): AttrPair = `class` := s.mkString(" ")
def to(page: Page): TypedTag[String] = to(Pages.file(page), otherTab = false)
......@@ -139,19 +139,19 @@ package object tools {
def ++(s: String) = s"$ss $s"
}
def linkButton(title: String, link: String, buttonStyle: AttrPair = classIs(btn ++ btn_selected), openInOtherTab: Boolean = true) =
def linkButton(title: String, link: String, buttonStyle: AttrPair = classIs(btn, btn_selected), openInOtherTab: Boolean = true) =
a(href := link)(if (openInOtherTab) targetBlank else "")(span(buttonStyle, `type` := "button", title))
def divLinkButton(content: TypedTag[_], link: String, buttonStyle: AttrPair = classIs(btn ++ btn_default), openInOtherTab: Boolean = true) =
def divLinkButton(content: TypedTag[_], link: String, buttonStyle: AttrPair = classIs(btn, btn_default), openInOtherTab: Boolean = true) =
a(href := link)(if (openInOtherTab) targetBlank else "")(span(content)(buttonStyle, `type` := "button"))
def pageLinkButton(title: String, page: Page, openInOtherTab: Boolean = true, buttonStyle: Seq[Modifier] = Seq(classIs(btn ++ btn_default))) =
def pageLinkButton(title: String, page: Page, openInOtherTab: Boolean = true, buttonStyle: Seq[Modifier] = Seq(classIs(btn, btn_default))) =
to(page)(if (openInOtherTab) targetBlank else "")(span(buttonStyle, `type` := "button", title))
def glyphSpan(glyphicon: String, style: Seq[Modifier], page: Page, text: String = ""): TypedTag[_ <: String] =
to(page)(classIs(glyphicon), style, pointer, aria.hidden := "true")(text)
def leftGlyphButton(title: String, page: Page, glyph: String, openInOtherTab: Boolean = false, buttonStyle: Seq[Modifier] = Seq(classIs(btn ++ btn_default))) =
def leftGlyphButton(title: String, page: Page, glyph: String, openInOtherTab: Boolean = false, buttonStyle: Seq[Modifier] = Seq(classIs(btn, btn_default))) =
to(page)(if (openInOtherTab) targetBlank else "")(
span(buttonStyle, `type` := "button")(
span(classIs(glyph)),
......@@ -162,7 +162,7 @@ package object tools {
def modificationLink(source: String) =
s"https://github.com/openmole/openmole/edit/${org.openmole.core.buildinfo.version.major}-dev/openmole/bin/org.openmole.site/jvm/src/main/scalatex/$source"
def rightGlyphButton(title: String, page: Page, glyph: String, openInOtherTab: Boolean = false, buttonStyle: Seq[Modifier] = Seq(classIs(btn ++ btn_default))) =
def rightGlyphButton(title: String, page: Page, glyph: String, openInOtherTab: Boolean = false, buttonStyle: Seq[Modifier] = Seq(classIs(btn, btn_default))) =
to(page)(if (openInOtherTab) targetBlank else "")(
span(buttonStyle, `type` := "button")(
span(s"$title "),
......@@ -170,7 +170,7 @@ package object tools {
)
)
def basicButton(title: String, buttonStyle: AttrPair = classIs(btn ++ btn_default)) =
def basicButton(title: String, buttonStyle: AttrPair = classIs(btn, btn_default)) =
span(buttonStyle, `type` := "button", title)
/*def getPageTitle(page: Page) = page.title match {
......
......@@ -40,7 +40,7 @@ By selecting parents with rare output values, we try and increase the chances to
@Resource.rawFrag(Resource.img.method.pseAnim)
@br
@basicButton("Run", classIs(btn ++ btn_danger))(id := shared.pse.button, stylesheet.svgRunButton(-50))
@basicButton("Run", classIs(btn, btn_danger))(id := shared.pse.button, stylesheet.svgRunButton(-50))
......
......@@ -33,7 +33,7 @@ Finally, the profile method realizes calibrations on the other inputs for each i
@Resource.rawFrag(Resource.img.method.profileAnim)
@br
@basicButton("Run", classIs(btn ++ btn_danger))(id := shared.profile.button, stylesheet.svgRunButton(-70))
@basicButton("Run", classIs(btn, btn_danger))(id := shared.profile.button, stylesheet.svgRunButton(-70))
@br
......
......@@ -26,7 +26,7 @@ OpenMOLE is installed and works out of the box!
@br@br
@linkButton(s"Download ${org.openmole.core.buildinfo.version.value} - ${org.openmole.core.buildinfo.version.name} ", Resource.script.openmole.file, classIs(btn ++ btn_danger))
@linkButton(s"Download ${org.openmole.core.buildinfo.version.value} - ${org.openmole.core.buildinfo.version.name} ", Resource.script.openmole.file, classIs(btn, btn_danger))
@br@br
......
......@@ -19,7 +19,7 @@ affect the output(s) of a model. Basically it
@img(src := Resource.img.method.sensitivityAnim.file, stylesheet.center(80))
@basicButton("Run", classIs(btn ++ btn_danger))(id := shared.sensitivity.button, stylesheet.svgRunButton(10))
@basicButton("Run", classIs(btn, btn_danger))(id := shared.sensitivity.button, stylesheet.svgRunButton(10))
@break
......
......@@ -316,7 +316,7 @@ object Application extends JavaLogger {
}
if (res._2.isSuccess) success(file) < "success"
print("\33[1A\33[2K")
print("\u001b[1A\u001b[2K")
println(s"${res._1.getName}: ${res._2}")
res
......
......@@ -8,9 +8,6 @@ import execnpm.NpmDeps.Dep
organization := "org.openmole"
name := "openmole-root"
def macroParadise =
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.1" cross CrossVersion.Patch())
import com.typesafe.sbt.SbtScalariform.ScalariformKeys
import scalariform.formatter.preferences._
......@@ -27,7 +24,7 @@ def formatSettings =
scalariformAutoformat := true
)
lazy val scalaVersionValue = "2.12.10"
lazy val scalaVersionValue = "2.13.2"
def defaultSettings = formatSettings ++
Seq(
......@@ -39,13 +36,12 @@ def defaultSettings = formatSettings ++
resolvers += Resolver.bintrayRepo("definitelyscala", "maven"), // For plotlyjs
scalaVersion in Global := scalaVersionValue, // + "-bin-typelevel-4",
scalacOptions ++= Seq("-target:jvm-1.8", "-language:higherKinds"),
scalacOptions += "-Ypartial-unification",
//scalacOptions += "-Yinduction-heuristics",
scalacOptions ++= Seq("-Xmax-classfile-name", "140"),
//scalacOptions ++= Seq("-Xmax-classfile-name", "140"),
javacOptions ++= Seq("-source", "1.8", "-target", "1.8"),
publishArtifact in (packageDoc in install) := false,
publishArtifact in (packageSrc in install) := false,
macroParadise,
scalacOptions ++= Seq("-Ymacro-annotations", "-language:postfixOps"),
//scalaOrganization := "org.typelevel",
//scalaVersion := "2.12.4-bin-typelevel-4",
//addCompilerPlugin("org.scalameta" % "paradise" % "3.0.0-M10" cross CrossVersion.full),
......@@ -96,7 +92,7 @@ lazy val openmoleStream = OsgiProject(thirdPartiesDir, "org.openmole.tool.stream
lazy val openmoleCollection = OsgiProject(thirdPartiesDir, "org.openmole.tool.collection", imports = Seq("*")) settings (Libraries.addScalaLang(scalaVersionValue)) settings (thirdPartiesSettings: _*)
lazy val openmoleCrypto = OsgiProject(thirdPartiesDir, "org.openmole.tool.crypto", imports = Seq("*")) settings(libraryDependencies += Libraries.bouncyCastle, libraryDependencies += Libraries.jasypt) settings (thirdPartiesSettings: _*)
lazy val openmoleStatistics = OsgiProject(thirdPartiesDir, "org.openmole.tool.statistics", imports = Seq("*")) dependsOn(openmoleLogger, openmoleTypes) settings (thirdPartiesSettings: _*)
lazy val openmoleTypes = OsgiProject(thirdPartiesDir, "org.openmole.tool.types", imports = Seq("*")) settings(libraryDependencies += Libraries.shapeless, libraryDependencies += Libraries.squants) settings (thirdPartiesSettings: _*)
lazy val openmoleTypes = OsgiProject(thirdPartiesDir, "org.openmole.tool.types", imports = Seq("*")) settings(libraryDependencies += Libraries.shapeless, libraryDependencies += Libraries.squants, Libraries.addScalaLang(scalaVersionValue)) settings (thirdPartiesSettings: _*)
lazy val openmoleByteCode = OsgiProject(thirdPartiesDir, "org.openmole.tool.bytecode", imports = Seq("*")) settings (libraryDependencies += Libraries.asm) settings (thirdPartiesSettings: _*)
lazy val openmoleOSGi = OsgiProject(thirdPartiesDir, "org.openmole.tool.osgi", imports = Seq("*")) dependsOn (openmoleFile) settings (libraryDependencies += Libraries.equinoxOSGi) settings (thirdPartiesSettings: _*)
lazy val openmoleRandom = OsgiProject(thirdPartiesDir, "org.openmole.tool.random", imports = Seq("*")) settings (thirdPartiesSettings: _*) settings(libraryDependencies += Libraries.math, Libraries.addScalaLang(scalaVersionValue)) dependsOn (openmoleCache)
......@@ -104,6 +100,7 @@ lazy val openmoleNetwork = OsgiProject(thirdPartiesDir, "org.openmole.tool.netwo
lazy val openmoleException = OsgiProject(thirdPartiesDir, "org.openmole.tool.exception", imports = Seq("*")) settings (thirdPartiesSettings: _*)
lazy val openmoleOutputRedirection = OsgiProject(thirdPartiesDir, "org.openmole.tool.outputredirection", imports = Seq("*")) settings (thirdPartiesSettings: _*)
lazy val txtmark = OsgiProject(thirdPartiesDir, "com.quandora.txtmark", exports = Seq("com.github.rjeschke.txtmark.*"), imports = Seq("*")) settings (thirdPartiesSettings: _*)
......@@ -206,7 +203,7 @@ lazy val csv = OsgiProject(coreDir, "org.openmole.core.csv", imports = Seq("*"))
lazy val tools = OsgiProject(coreDir, "org.openmole.core.tools", global = true, imports = Seq("*")) settings
(libraryDependencies ++= Seq(Libraries.xstream, Libraries.exec, Libraries.math, Libraries.scalatest, Libraries.equinoxOSGi), Libraries.addScalaLang(scalaVersionValue)) dependsOn
(exception, openmoleTar, openmoleFile, openmoleLock, openmoleThread, openmoleHash, openmoleLogger, openmoleStream, openmoleCollection, openmoleStatistics, openmoleTypes, openmoleCache, openmoleRandom, openmoleNetwork, openmoleException, openmoleOutputRedirection, openmoleLogger) settings (coreSettings: _*)
(exception, openmoleTar, openmoleFile, openmoleLock, openmoleThread, openmoleHash, openmoleLogger, openmoleStream, openmoleCollection, openmoleStatistics, openmoleTypes, openmoleCache, openmoleRandom, openmoleNetwork, openmoleException, openmoleOutputRedirection, openmoleLogger, openmoleTypes) settings (coreSettings: _*)
lazy val event = OsgiProject(coreDir, "org.openmole.core.event", imports = Seq("*")) dependsOn (tools) settings (coreSettings: _*)
......@@ -268,15 +265,14 @@ lazy val logconfig = OsgiProject(
imports = Seq("*")
) settings(libraryDependencies ++= Seq(Libraries.log4j, Libraries.logback, Libraries.slf4j), defaultActivator) dependsOn (tools) settings (coreSettings: _*)
lazy val outputManager = OsgiProject(coreDir, "org.openmole.core.outputmanager", imports = Seq("*")) dependsOn (openmoleStream) settings (coreSettings: _*) settings (defaultActivator)
lazy val outputManager = OsgiProject(coreDir, "org.openmole.core.outputmanager", imports = Seq("*")) dependsOn (openmoleStream, openmoleTypes) settings (coreSettings: _*) settings (defaultActivator)
lazy val console = OsgiProject(coreDir, "org.openmole.core.console", global = true, imports = Seq("*"), exports = Seq("org.openmole.core.console.*", "$line5.*")) dependsOn (pluginManager) settings(
OsgiKeys.importPackage := Seq("*"),
Libraries.addScalaLang(scalaVersionValue),
libraryDependencies ++= Libraries.monocle,
macroParadise,
defaultActivator
) dependsOn(openmoleOSGi, workspace, fileService) settings (coreSettings: _*)
) dependsOn(openmoleOSGi, workspace, fileService, openmoleTypes) settings (coreSettings: _*)
lazy val project = OsgiProject(coreDir, "org.openmole.core.project", imports = Seq("*")) dependsOn(namespace, console, openmoleDSL, services) settings (OsgiKeys.importPackage := Seq("*")) settings (coreSettings: _*) settings (
Libraries.addScalaLang(scalaVersionValue)
......@@ -611,6 +607,7 @@ lazy val sharedGUI = OsgiProject(guiExt, "org.openmole.gui.ext.api") dependsOn(d
lazy val jsCompile = OsgiProject(guiServerDir, "org.openmole.gui.server.jscompile", imports = Seq("*")) dependsOn(pluginManager, fileService, workspace, dataGUI) settings (defaultSettings: _*) settings(
libraryDependencies += "org.scala-js" %%% "scalajs-library" % Libraries.scalajsVersion % "provided" intransitive(),
libraryDependencies += "org.scala-lang.modules" %%% "scala-collection-compat" % "2.1.4" % "provided" intransitive(),
libraryDependencies += Libraries.scalajsLogging,
libraryDependencies += Libraries.scalajsLinker,
......
......@@ -28,7 +28,7 @@ import collection.mutable.ListBuffer
import org.osgi.framework._
import collection.JavaConversions._
import scala.jdk.CollectionConverters._
import scala.util.Try
/**
......
......@@ -20,7 +20,7 @@ package org.openmole.core.console
import java.io.InputStream
import java.net.URL
import java.util
import collection.JavaConversions._
import scala.jdk.CollectionConverters._
import scala.util._
object CompositeClassLoader {
......@@ -51,7 +51,7 @@ class CompositeClassLoader(val classLoaders: ClassLoader*) extends ClassLoader {
val ret = new java.util.Vector[URL]
for {
cl classLoaders
r cl.getResources(s)
r cl.getResources(s).asScala
} ret.add(r)
ret.elements()
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment