Author: reto
Date: Sat Nov 6 10:30:43 2010
New Revision: 1031993
URL: http://svn.apache.org/viewvc?rev=1031993&view=rev
Log:
CLEREZZA-353: added binding for bundleContext
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.shell/src/main/scala/org/apache/clerezza/shell/ShellFactory.scala
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.shell/src/main/scala/org/apache/clerezza/shell/Shell.scala?rev=1031993&r1=1031992&r2=1031993&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.shell/src/main/scala/org/apache/clerezza/shell/Shell.scala
Sat Nov 6 10:30:43 2010
@@ -61,6 +61,7 @@ class Shell(factory: InterpreterFactory,
private var bundleContext: BundleContext = null
+ private var bindings = Set[(String, String, Any)]()
val interpreterLoop = new InterpreterLoop(new BufferedReader(new
InputStreamReader(System.in)), new PrintWriter(System.out, true)) {
@@ -69,6 +70,9 @@ class Shell(factory: InterpreterFactory,
interpreter.interpret("import org.apache.clerezza._")
interpreter.interpret("val a = 33")
interpreter.interpret("println(\"enjoy!\")")
+ for (binding <- bindings) {
+ interpreter.bind(binding._1, binding._2,
binding._3)
+ }
}
override val prompt = "zz>"
@@ -138,6 +142,10 @@ class Shell(factory: InterpreterFactory,
interpreterLoop.closeInterpreter()
}
+ def bind(name: String, boundType: String, value: Any) {
+ bindings += ((name, boundType, value))
+ }
+
}
\ No newline at end of file
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.shell/src/main/scala/org/apache/clerezza/shell/ShellFactory.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.shell/src/main/scala/org/apache/clerezza/shell/ShellFactory.scala?rev=1031993&r1=1031992&r2=1031993&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.shell/src/main/scala/org/apache/clerezza/shell/ShellFactory.scala
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.shell/src/main/scala/org/apache/clerezza/shell/ShellFactory.scala
Sat Nov 6 10:30:43 2010
@@ -25,24 +25,27 @@ import org.osgi.service.component.Compon
import java.io.OutputStreamWriter
import org.apache.clerezza.scala.scripting.InterpreterFactory
+import org.osgi.framework.BundleContext
class ShellFactory() {
var factory: InterpreterFactory = null
-
+ var bundleContext: BundleContext = null
def activate(componentContext: ComponentContext)= {
- //bundleContext = componentContext.getBundleContext
+ bundleContext = componentContext.getBundleContext
}
def deactivate(componentContext: ComponentContext) = {
- //bundleContext = componentContext.getBundleContext
+ bundleContext = componentContext.getBundleContext
}
def createShell() = {
- new Shell(factory, System.in, new
OutputStreamWriter(System.out))
+ val shell = new Shell(factory, System.in, new
OutputStreamWriter(System.out))
+ shell.bind("bundleContext", classOf[BundleContext].getName,
bundleContext)
+ shell
}
def bindInterpreterFactory(f: InterpreterFactory) = {