aboutsummaryrefslogtreecommitdiff
path: root/stage1
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2016-03-08 19:38:27 -0500
committerChristopher Vogt <oss.nsp@cvogt.org>2016-03-08 20:09:00 -0500
commit56a8c4e83c976aa841c20095efa8df652b0261ad (patch)
tree8f1a7f18bbf6a256cd8067f958693f176b446a33 /stage1
parent1cac1cae6f48664188e3306eda70ce36fa2a5c0b (diff)
downloadcbt-56a8c4e83c976aa841c20095efa8df652b0261ad.tar.gz
cbt-56a8c4e83c976aa841c20095efa8df652b0261ad.tar.bz2
cbt-56a8c4e83c976aa841c20095efa8df652b0261ad.zip
fix duplicate classloader. one is enough
Diffstat (limited to 'stage1')
-rw-r--r--stage1/classloader.scala4
-rw-r--r--stage1/resolver.scala9
2 files changed, 6 insertions, 7 deletions
diff --git a/stage1/classloader.scala b/stage1/classloader.scala
index 3293dd1..50e33a2 100644
--- a/stage1/classloader.scala
+++ b/stage1/classloader.scala
@@ -8,7 +8,7 @@ import scala.collection.immutable.Seq
object ClassLoaderCache{
private val cache = NailgunLauncher.classLoaderCache
- def classLoader( classpath: ClassPath, parent: ClassLoader )(implicit logger: Logger): ClassLoader
+ def get( classpath: ClassPath )(implicit logger: Logger): ClassLoader
= cache.synchronized{
val lib = new Stage1Lib(logger)
val key = classpath.strings.sorted.mkString(":")
@@ -17,7 +17,7 @@ object ClassLoaderCache{
cache.get(key)
} else {
logger.resolver("CACHE MISS: "++key)
- val cl = new cbt.URLClassLoader( classpath, parent )
+ val cl = new cbt.URLClassLoader( classpath, ClassLoader.getSystemClassLoader )
cache.put( key, cl )
cl
}
diff --git a/stage1/resolver.scala b/stage1/resolver.scala
index 9b3276b..fae5e9d 100644
--- a/stage1/resolver.scala
+++ b/stage1/resolver.scala
@@ -45,21 +45,20 @@ abstract class Dependency{
_.right.toOption.map(_.exportedClasspath)
)
)
- val mavenClassPath = ClassPath.flatten(
+ val cachedClassPath = ClassPath.flatten(
transitiveClassPath.flatMap(
_.left.toOption
).par.map(_.exportedClasspath).seq.sortBy(_.string)
)
+
if(cacheDependencyClassLoader){
new URLClassLoader(
exportedClasspath ++ buildClassPath,
- ClassLoaderCache.classLoader(
- mavenClassPath, new URLClassLoader( mavenClassPath, ClassLoader.getSystemClassLoader )
- )
+ ClassLoaderCache.get( cachedClassPath )
)
} else {
new URLClassLoader(
- exportedClasspath ++ buildClassPath ++ mavenClassPath, ClassLoader.getSystemClassLoader
+ exportedClasspath ++ buildClassPath ++ cachedClassPath, ClassLoader.getSystemClassLoader
)
}
}