aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIsmael Juma <ismael@juma.me.uk>2011-05-27 09:37:34 +0100
committerIsmael Juma <ismael@juma.me.uk>2011-05-27 11:22:50 +0100
commit1396678baa0a0b9b47e50bb2da4970aca1351b2e (patch)
tree6bedbe61370dfba294ae7043c3d5615914b79d85
parent3e8114ddbdf598724d0e6cee8507b6afa111f7f3 (diff)
downloadspark-1396678baa0a0b9b47e50bb2da4970aca1351b2e.tar.gz
spark-1396678baa0a0b9b47e50bb2da4970aca1351b2e.tar.bz2
spark-1396678baa0a0b9b47e50bb2da4970aca1351b2e.zip
Move REPL classes to separate module.
-rw-r--r--core/src/main/scala/spark/ClosureCleaner.scala17
-rw-r--r--core/src/main/scala/spark/Executor.scala10
-rw-r--r--project/build/SparkProject.scala6
-rw-r--r--repl/lib/jline.jar (renamed from core/lib/jline.jar)bin87543 -> 87543 bytes
-rw-r--r--repl/src/main/scala/spark/repl/ExecutorClassLoader.scala (renamed from core/src/main/scala/spark/repl/ExecutorClassLoader.scala)0
-rw-r--r--repl/src/main/scala/spark/repl/Main.scala (renamed from core/src/main/scala/spark/repl/Main.scala)0
-rw-r--r--repl/src/main/scala/spark/repl/SparkCompletion.scala (renamed from core/src/main/scala/spark/repl/SparkCompletion.scala)0
-rw-r--r--repl/src/main/scala/spark/repl/SparkCompletionOutput.scala (renamed from core/src/main/scala/spark/repl/SparkCompletionOutput.scala)0
-rw-r--r--repl/src/main/scala/spark/repl/SparkInteractiveReader.scala (renamed from core/src/main/scala/spark/repl/SparkInteractiveReader.scala)0
-rw-r--r--repl/src/main/scala/spark/repl/SparkInterpreter.scala (renamed from core/src/main/scala/spark/repl/SparkInterpreter.scala)0
-rw-r--r--repl/src/main/scala/spark/repl/SparkInterpreterLoop.scala (renamed from core/src/main/scala/spark/repl/SparkInterpreterLoop.scala)0
-rw-r--r--repl/src/main/scala/spark/repl/SparkInterpreterSettings.scala (renamed from core/src/main/scala/spark/repl/SparkInterpreterSettings.scala)0
-rw-r--r--repl/src/main/scala/spark/repl/SparkJLineReader.scala (renamed from core/src/main/scala/spark/repl/SparkJLineReader.scala)0
-rw-r--r--repl/src/main/scala/spark/repl/SparkSimpleReader.scala (renamed from core/src/main/scala/spark/repl/SparkSimpleReader.scala)0
-rw-r--r--repl/src/test/scala/spark/repl/ReplSuite.scala (renamed from core/src/test/scala/spark/repl/ReplSuite.scala)0
15 files changed, 28 insertions, 5 deletions
diff --git a/core/src/main/scala/spark/ClosureCleaner.scala b/core/src/main/scala/spark/ClosureCleaner.scala
index 0e0b3954d4..c21e49e3ae 100644
--- a/core/src/main/scala/spark/ClosureCleaner.scala
+++ b/core/src/main/scala/spark/ClosureCleaner.scala
@@ -64,10 +64,19 @@ object ClosureCleaner extends Logging {
accessedFields(cls) = Set[String]()
for (cls <- func.getClass :: innerClasses)
getClassReader(cls).accept(new FieldAccessFinder(accessedFields), 0)
-
+
+ val isInterpNull = {
+ try {
+ val klass = Class.forName("spark.repl.Main")
+ klass.getMethod("interp").invoke(null) == null
+ } catch {
+ case _: ClassNotFoundException => true
+ }
+ }
+
var outer: AnyRef = null
for ((cls, obj) <- (outerClasses zip outerObjects).reverse) {
- outer = instantiateClass(cls, outer);
+ outer = instantiateClass(cls, outer, isInterpNull);
for (fieldName <- accessedFields(cls)) {
val field = cls.getDeclaredField(fieldName)
field.setAccessible(true)
@@ -85,8 +94,8 @@ object ClosureCleaner extends Logging {
}
}
- private def instantiateClass(cls: Class[_], outer: AnyRef): AnyRef = {
- if (spark.repl.Main.interp == null) {
+ private def instantiateClass(cls: Class[_], outer: AnyRef, isInterpNull: Boolean): AnyRef = {
+ if (isInterpNull) {
// This is a bona fide closure class, whose constructor has no effects
// other than to set its fields, so use its constructor
val cons = cls.getConstructors()(0)
diff --git a/core/src/main/scala/spark/Executor.scala b/core/src/main/scala/spark/Executor.scala
index e534f48879..f32e66bef4 100644
--- a/core/src/main/scala/spark/Executor.scala
+++ b/core/src/main/scala/spark/Executor.scala
@@ -105,7 +105,15 @@ class Executor extends mesos.Executor with Logging {
val classUri = System.getProperty("spark.repl.class.uri")
if (classUri != null) {
logInfo("Using REPL class URI: " + classUri)
- loader = new repl.ExecutorClassLoader(classUri, loader)
+ loader = {
+ try {
+ val klass = Class.forName("spark.repl.ExecutorClassLoader").asInstanceOf[Class[_ <: ClassLoader]]
+ val constructor = klass.getConstructor(classUri.getClass, loader.getClass)
+ constructor.newInstance(classUri, loader)
+ } catch {
+ case _: ClassNotFoundException => loader
+ }
+ }
}
return loader
diff --git a/project/build/SparkProject.scala b/project/build/SparkProject.scala
index 508e2018b3..413091f16a 100644
--- a/project/build/SparkProject.scala
+++ b/project/build/SparkProject.scala
@@ -10,6 +10,8 @@ class SparkProject(info: ProjectInfo) extends ParentProject(info) with IdeaProje
lazy val core = project("core", "Spark Core", new CoreProject(_))
+ lazy val repl = project("repl", "Spark REPL", new ReplProject(_), core)
+
lazy val examples = project("examples", "Spark Examples", new ExamplesProject(_), core)
lazy val bagel = project("bagel", "Bagel", new BagelProject(_), core)
@@ -34,6 +36,10 @@ class SparkProject(info: ProjectInfo) extends ParentProject(info) with IdeaProje
val jetty = jettyWebapp
}
+ class ReplProject(info: ProjectInfo) extends DefaultProject(info) with BaseProject with DepJar with XmlTestReport {
+ val jetty = jettyWebapp
+ }
+
class ExamplesProject(info: ProjectInfo) extends DefaultProject(info) with BaseProject {
val colt = "colt" % "colt" % "1.2.0"
}
diff --git a/core/lib/jline.jar b/repl/lib/jline.jar
index 6ed67faab6..6ed67faab6 100644
--- a/core/lib/jline.jar
+++ b/repl/lib/jline.jar
Binary files differ
diff --git a/core/src/main/scala/spark/repl/ExecutorClassLoader.scala b/repl/src/main/scala/spark/repl/ExecutorClassLoader.scala
index 13d81ec1cf..13d81ec1cf 100644
--- a/core/src/main/scala/spark/repl/ExecutorClassLoader.scala
+++ b/repl/src/main/scala/spark/repl/ExecutorClassLoader.scala
diff --git a/core/src/main/scala/spark/repl/Main.scala b/repl/src/main/scala/spark/repl/Main.scala
index f00df5aa58..f00df5aa58 100644
--- a/core/src/main/scala/spark/repl/Main.scala
+++ b/repl/src/main/scala/spark/repl/Main.scala
diff --git a/core/src/main/scala/spark/repl/SparkCompletion.scala b/repl/src/main/scala/spark/repl/SparkCompletion.scala
index c6ed1860f0..c6ed1860f0 100644
--- a/core/src/main/scala/spark/repl/SparkCompletion.scala
+++ b/repl/src/main/scala/spark/repl/SparkCompletion.scala
diff --git a/core/src/main/scala/spark/repl/SparkCompletionOutput.scala b/repl/src/main/scala/spark/repl/SparkCompletionOutput.scala
index 5ac46e3412..5ac46e3412 100644
--- a/core/src/main/scala/spark/repl/SparkCompletionOutput.scala
+++ b/repl/src/main/scala/spark/repl/SparkCompletionOutput.scala
diff --git a/core/src/main/scala/spark/repl/SparkInteractiveReader.scala b/repl/src/main/scala/spark/repl/SparkInteractiveReader.scala
index 4f5a0a6fa0..4f5a0a6fa0 100644
--- a/core/src/main/scala/spark/repl/SparkInteractiveReader.scala
+++ b/repl/src/main/scala/spark/repl/SparkInteractiveReader.scala
diff --git a/core/src/main/scala/spark/repl/SparkInterpreter.scala b/repl/src/main/scala/spark/repl/SparkInterpreter.scala
index 10ea346658..10ea346658 100644
--- a/core/src/main/scala/spark/repl/SparkInterpreter.scala
+++ b/repl/src/main/scala/spark/repl/SparkInterpreter.scala
diff --git a/core/src/main/scala/spark/repl/SparkInterpreterLoop.scala b/repl/src/main/scala/spark/repl/SparkInterpreterLoop.scala
index a118abf3ca..a118abf3ca 100644
--- a/core/src/main/scala/spark/repl/SparkInterpreterLoop.scala
+++ b/repl/src/main/scala/spark/repl/SparkInterpreterLoop.scala
diff --git a/core/src/main/scala/spark/repl/SparkInterpreterSettings.scala b/repl/src/main/scala/spark/repl/SparkInterpreterSettings.scala
index ffa477785b..ffa477785b 100644
--- a/core/src/main/scala/spark/repl/SparkInterpreterSettings.scala
+++ b/repl/src/main/scala/spark/repl/SparkInterpreterSettings.scala
diff --git a/core/src/main/scala/spark/repl/SparkJLineReader.scala b/repl/src/main/scala/spark/repl/SparkJLineReader.scala
index 9d761c06fc..9d761c06fc 100644
--- a/core/src/main/scala/spark/repl/SparkJLineReader.scala
+++ b/repl/src/main/scala/spark/repl/SparkJLineReader.scala
diff --git a/core/src/main/scala/spark/repl/SparkSimpleReader.scala b/repl/src/main/scala/spark/repl/SparkSimpleReader.scala
index 2b24c4bf63..2b24c4bf63 100644
--- a/core/src/main/scala/spark/repl/SparkSimpleReader.scala
+++ b/repl/src/main/scala/spark/repl/SparkSimpleReader.scala
diff --git a/core/src/test/scala/spark/repl/ReplSuite.scala b/repl/src/test/scala/spark/repl/ReplSuite.scala
index 829b1d934e..829b1d934e 100644
--- a/core/src/test/scala/spark/repl/ReplSuite.scala
+++ b/repl/src/test/scala/spark/repl/ReplSuite.scala