From fcd003b384ccbe49c7f1f2d3a19e7627149e7e07 Mon Sep 17 00:00:00 2001 From: Christopher Vogt Date: Thu, 10 Nov 2016 01:43:04 -0500 Subject: more sanity checks for cbt's classloaders --- nailgun_launcher/NailgunLauncher.java | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) (limited to 'nailgun_launcher') diff --git a/nailgun_launcher/NailgunLauncher.java b/nailgun_launcher/NailgunLauncher.java index 6639218..dede00b 100644 --- a/nailgun_launcher/NailgunLauncher.java +++ b/nailgun_launcher/NailgunLauncher.java @@ -44,8 +44,8 @@ public class NailgunLauncher{ res .classLoader .loadClass("cbt.Stage1") - .getMethod( "getBuild", Object.class, Boolean.class ) - .invoke(null, context, res.changed); + .getMethod( "getBuild", Object.class, BuildStage1Result.class ) + .invoke(null, context, res); } public static void main( String[] args ) throws Throwable { @@ -92,13 +92,13 @@ public class NailgunLauncher{ .loadClass("cbt.Stage1") .getMethod( "run", - String[].class, File.class, File.class, Boolean.class, - File.class, Long.class, ConcurrentHashMap.class, ConcurrentHashMap.class + String[].class, File.class, File.class, BuildStage1Result.class, + Long.class, ConcurrentHashMap.class, ConcurrentHashMap.class ) .invoke( null, - (Object) args, new File(cache), new File(CBT_HOME), res.changed, - new File(compatibilityTarget), start, classLoaderCache.keys, classLoaderCache.values + (Object) args, new File(cache), new File(CBT_HOME), res, + start, classLoaderCache.keys, classLoaderCache.values ) ); } catch (java.lang.reflect.InvocationTargetException e) { @@ -186,15 +186,10 @@ public class NailgunLauncher{ return new BuildStage1Result( changed, - stage1classLoader + stage1classLoader, + stage1Classpath, + nailgunClasspath, + compatibilityTarget ); } } -class BuildStage1Result{ - Boolean changed; - ClassLoader classLoader; - BuildStage1Result( Boolean changed, ClassLoader classLoader ){ - this.changed = changed; - this.classLoader = classLoader; - } -} -- cgit v1.2.3 From 3b56ccd0b7737c5b29f55ab169de49fb6709770f Mon Sep 17 00:00:00 2001 From: Christopher Vogt Date: Thu, 10 Nov 2016 01:43:34 -0500 Subject: comment regarding trigger files --- nailgun_launcher/BuildStage1Result.java | 15 +++++++++++++++ stage1/cbt.scala | 3 +++ 2 files changed, 18 insertions(+) create mode 100644 nailgun_launcher/BuildStage1Result.java (limited to 'nailgun_launcher') diff --git a/nailgun_launcher/BuildStage1Result.java b/nailgun_launcher/BuildStage1Result.java new file mode 100644 index 0000000..312871d --- /dev/null +++ b/nailgun_launcher/BuildStage1Result.java @@ -0,0 +1,15 @@ +package cbt; +public class BuildStage1Result{ + public Boolean changed; + public ClassLoader classLoader; + public String stage1Classpath; + public String nailgunClasspath; + public String compatibilityClasspath; + public BuildStage1Result( Boolean changed, ClassLoader classLoader, String stage1Classpath, String nailgunClasspath, String compatibilityClasspath ){ + this.changed = changed; + this.classLoader = classLoader; + this.stage1Classpath = stage1Classpath; + this.nailgunClasspath = nailgunClasspath; + this.compatibilityClasspath = compatibilityClasspath; + } +} diff --git a/stage1/cbt.scala b/stage1/cbt.scala index a324d29..bf82556 100644 --- a/stage1/cbt.scala +++ b/stage1/cbt.scala @@ -35,6 +35,9 @@ object `package`{ } implicit class BuildInterfaceExtensions(build: BuildInterface){ import build._ + // TODO: if every build has a method triggers a callback if files change + // then we wouldn't need this and could provide this method from a + // plugin rather than hard-coding trigger files stuff in cbt def triggerLoopFiles: Seq[File] = triggerLoopFilesArray.to def crossScalaVersions: Seq[String] = crossScalaVersionsArray.to } -- cgit v1.2.3