aboutsummaryrefslogtreecommitdiff
path: root/stage1
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2016-04-07 00:30:54 -0400
committerChristopher Vogt <oss.nsp@cvogt.org>2016-04-07 00:31:27 -0400
commitce8bab3856ec8755fb3b99be324f090770ddfe1f (patch)
tree43f0cbea4fa66414f59763b589d029fd43cb7e6b /stage1
parent1e2063c934028bd765f761038c607b1c78e6d161 (diff)
downloadcbt-ce8bab3856ec8755fb3b99be324f090770ddfe1f.tar.gz
cbt-ce8bab3856ec8755fb3b99be324f090770ddfe1f.tar.bz2
cbt-ce8bab3856ec8755fb3b99be324f090770ddfe1f.zip
Fix stage2 classloader not being stored in transient cache
and thus being re-created on second and subsequent runs. Also use classloader from cache for Builds rather than new one, which should properly make Build dependencies work.
Diffstat (limited to 'stage1')
-rw-r--r--stage1/ClassLoaderCache.scala12
-rw-r--r--stage1/Stage1.scala4
2 files changed, 14 insertions, 2 deletions
diff --git a/stage1/ClassLoaderCache.scala b/stage1/ClassLoaderCache.scala
index 10d872d..44b8d7d 100644
--- a/stage1/ClassLoaderCache.scala
+++ b/stage1/ClassLoaderCache.scala
@@ -15,5 +15,15 @@ class ClassLoaderCache(logger: Logger){
new ConcurrentHashMap[AnyRef,ClassLoader],
Some(logger)
)
- override def toString = s"""ClassLoaderCache("""+ persistent.keys.keySet.toVector.map(_.toString).sorted.map(" "++_).mkString("\n","\n","\n") +""")"""
+ override def toString = (
+ s"ClassLoaderCache("
+ ++
+ persistent.keys.keySet.toVector.map(_.toString.split(":").mkString("\n")).sorted.mkString("\n\n","\n\n","\n\n")
+ ++
+ "---------"
+ ++
+ transient.keys.keySet.toVector.map(_.toString.split(":").mkString("\n")).sorted.mkString("\n\n","\n\n^","\n\n")
+ ++
+ ")"
+ )
}
diff --git a/stage1/Stage1.scala b/stage1/Stage1.scala
index b68387f..77b88a2 100644
--- a/stage1/Stage1.scala
+++ b/stage1/Stage1.scala
@@ -71,8 +71,10 @@ object Stage1{
)
logger.stage1(s"calling CbtDependency.classLoader")
- if(cbtHasChanged){
+ if(cbtHasChanged) {
NailgunLauncher.stage2classLoader = CbtDependency().classLoader(classLoaderCache)
+ }else{
+ classLoaderCache.transient.get( CbtDependency().classpath.string, NailgunLauncher.stage2classLoader )
}
logger.stage1(s"Run Stage2")