You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2013/02/15 13:51:25 UTC
svn commit: r1446560 - in /incubator/clerezza/trunk: parent/
platform.content.fsadaptor/src/main/scala/org/apache/clerezza/platform/content/fsadaptor/
platform.launcher.storageless.parent/
platform.typerendering.scala/src/main/scala/org/apache/clerezza...
Author: reto
Date: Fri Feb 15 12:51:25 2013
New Revision: 1446560
URL: http://svn.apache.org/r1446560
Log:
CLEREZZA-731: added scala 2.10 support. Scala Scripting now relying on some classes from scalate
Modified:
incubator/clerezza/trunk/parent/pom.xml
incubator/clerezza/trunk/platform.content.fsadaptor/src/main/scala/org/apache/clerezza/platform/content/fsadaptor/BundleFsLoader.scala
incubator/clerezza/trunk/platform.launcher.storageless.parent/pom.xml
incubator/clerezza/trunk/platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/RenderedPage.scala
incubator/clerezza/trunk/platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/XmlResult.scala
incubator/clerezza/trunk/scala-scripting/pom.xml
incubator/clerezza/trunk/scala-scripting/script-engine/pom.xml
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/BundleContextScalaCompiler.scala
incubator/clerezza/trunk/shell/pom.xml
incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/StreamJLineReader.scala
incubator/clerezza/trunk/slf4j-scala-api/pom.xml
Modified: incubator/clerezza/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/pom.xml?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/parent/pom.xml (original)
+++ incubator/clerezza/trunk/parent/pom.xml Fri Feb 15 12:51:25 2013
@@ -34,7 +34,6 @@
<version>0.3-incubating-SNAPSHOT</version>
<description>The direct or indirect parent of all Clerezza Artifacts</description>
<properties>
- <scala.version>2.9.2</scala.version>
<sourceReleaseAssemblyDescriptor>multimodule-source-release</sourceReleaseAssemblyDescriptor>
</properties>
<licenses>
@@ -183,7 +182,7 @@
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
- <version>2.9.1</version>
+ <version>2.15.2</version>
<executions>
<execution>
<goals>
@@ -368,12 +367,12 @@
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
- <version>${scala.version}</version>
+ <version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
- <version>${scala.version}</version>
+ <version>2.10.0</version>
</dependency>
<dependency>
<groupId>com.hp.hpl.jena</groupId>
Modified: incubator/clerezza/trunk/platform.content.fsadaptor/src/main/scala/org/apache/clerezza/platform/content/fsadaptor/BundleFsLoader.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/platform.content.fsadaptor/src/main/scala/org/apache/clerezza/platform/content/fsadaptor/BundleFsLoader.scala?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/platform.content.fsadaptor/src/main/scala/org/apache/clerezza/platform/content/fsadaptor/BundleFsLoader.scala (original)
+++ incubator/clerezza/trunk/platform.content.fsadaptor/src/main/scala/org/apache/clerezza/platform/content/fsadaptor/BundleFsLoader.scala Fri Feb 15 12:51:25 2013
@@ -283,7 +283,7 @@ class BundleFsLoader extends BundleListe
}
def unbindPathNode(pathNode: PathNode) {
- this.pathNodes -= pathNode;
+ this.pathNodes = this.pathNodes.filter(_ != pathNode);
frequentUpdateDirectory = pathNodes match {
case Nil => None
case _ => Some(new MultiPathNode(pathNodes: _*))
Modified: incubator/clerezza/trunk/platform.launcher.storageless.parent/pom.xml
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/platform.launcher.storageless.parent/pom.xml?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/platform.launcher.storageless.parent/pom.xml (original)
+++ incubator/clerezza/trunk/platform.launcher.storageless.parent/pom.xml Fri Feb 15 12:51:25 2013
@@ -76,18 +76,24 @@
<artifactId>org.json.simple</artifactId>
<scope>runtime</scope>
</dependency>
- <dependency>
- <groupId>org.apache.servicemix.bundles</groupId>
- <artifactId>org.apache.servicemix.bundles.scala-library</artifactId>
- <version>2.9.2_1</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.servicemix.bundles</groupId>
- <artifactId>org.apache.servicemix.bundles.scala-compiler</artifactId>
- <version>2.9.2_1</version>
- <scope>runtime</scope>
- </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-library</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-compiler</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-actors</artifactId>
+ <version>2.10.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-reflect</artifactId>
+ <version>2.10.0</version>
+ </dependency>
<dependency>
<groupId>org.apache.clerezza.scala</groupId>
<artifactId>script-engine</artifactId>
Modified: incubator/clerezza/trunk/platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/RenderedPage.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/RenderedPage.scala?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/RenderedPage.scala (original)
+++ incubator/clerezza/trunk/platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/RenderedPage.scala Fri Feb 15 12:51:25 2013
@@ -40,7 +40,7 @@ import org.apache.clerezza.rdf.scala.uti
* the content method to produce an XML Element suitable as response to the
* request yielding to the arguments passed to the constructor.
*/
-@deprecated("user XmlResult with SRenderlet")
+@deprecated("user XmlResult with SRenderlet", "2012")
abstract class RenderedPage(arguments: RenderedPage.Arguments) {
val RenderedPage.Arguments(
@@ -108,7 +108,7 @@ abstract class RenderedPage(arguments: R
* - $variable = value allows one to update the sharedRenderingValues hash
* - $[ClassName] allows to access an osgi service annotated to be a WebRenderingService
*/
- object $ {
+ object dollar {
def apply(key: String) = sharedRenderingValues.get(key)
def update(key: String, value: Object) = sharedRenderingValues.put(key, value)
@@ -118,6 +118,10 @@ abstract class RenderedPage(arguments: R
requestProperties.getRenderingService(clazz)
}
}
+
+ /** no idea why, but since scala 2.10 it doesn't work if the object
+ * is called $ directly */
+ val $ = dollar
def ifx[T](con: => Boolean)(f: => T): T = {
if (con) f else null.asInstanceOf[T]
Modified: incubator/clerezza/trunk/platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/XmlResult.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/XmlResult.scala?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/XmlResult.scala (original)
+++ incubator/clerezza/trunk/platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/XmlResult.scala Fri Feb 15 12:51:25 2013
@@ -106,7 +106,7 @@ abstract class XmlResult(arguments: XmlR
* - $variable = value allows one to update the sharedRenderingValues hash
* - $[ClassName] allows to access an osgi service annotated to be a WebRenderingService
*/
- object $ {
+ object dollar {
def apply(key: String) = sharedRenderingValues.get(key)
def update(key: String, value: Object) = sharedRenderingValues.put(key, value)
@@ -117,6 +117,10 @@ abstract class XmlResult(arguments: XmlR
}
}
+ /** no idea why, but since scala 2.10 it doesn't work if the object
+ * is called $ directly */
+ val $ = dollar
+
def ifx[T](con: => Boolean)(f: => T): T = {
if (con) f else null.asInstanceOf[T]
}
Modified: incubator/clerezza/trunk/scala-scripting/pom.xml
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/pom.xml?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/scala-scripting/pom.xml (original)
+++ incubator/clerezza/trunk/scala-scripting/pom.xml Fri Feb 15 12:51:25 2013
@@ -43,12 +43,17 @@
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
- <version>2.9.2</version>
+ <version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
- <version>2.9.2</version>
+ <version>2.10.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-actors</artifactId>
+ <version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
Modified: incubator/clerezza/trunk/scala-scripting/script-engine/pom.xml
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/script-engine/pom.xml?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/scala-scripting/script-engine/pom.xml (original)
+++ incubator/clerezza/trunk/scala-scripting/script-engine/pom.xml Fri Feb 15 12:51:25 2013
@@ -39,6 +39,15 @@
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-actors</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.fusesource.scalate</groupId>
+ <artifactId>scalate-core_2.10</artifactId>
+ <version>1.6.1</version>
+ </dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
@@ -51,6 +60,11 @@
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.clerezza.ext</groupId>
+ <artifactId>slf4j-scala-api</artifactId>
+ <version>1.6.2-incubating-SNAPSHOT</version>
+ </dependency>
</dependencies>
<build>
<plugins>
@@ -61,8 +75,13 @@
<instructions>
<Service-Component>OSGI-INF/serviceComponents.xml</Service-Component>
<Export-Package>org.apache.clerezza.scala.scripting,org.apache.clerezza.scala.scripting.util</Export-Package>
+ <Import-Package>!com.sun.*,!javax.servlet,!javax.servlet.*,
+ !org.fusesource.*,!org.mozilla.*,!scala.reflect.*,*
+ </Import-Package>
+ <Private-Package>org.fusesource.*</Private-Package>
<DynamicImport-Package>*</DynamicImport-Package>
<Bundle-SymbolicName>org.apache.clerezza.scala.scripting</Bundle-SymbolicName>
+ <Embed-Dependency>scalate-core_2.10</Embed-Dependency>
</instructions>
</configuration>
</plugin>
Modified: incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/BundleContextScalaCompiler.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/BundleContextScalaCompiler.scala?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/BundleContextScalaCompiler.scala (original)
+++ incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/BundleContextScalaCompiler.scala Fri Feb 15 12:51:25 2013
@@ -20,7 +20,7 @@ package org.apache.clerezza.scala.script
import org.osgi.framework.BundleContext
import org.osgi.framework.Bundle
-import java.io.File
+/*import java.io.File
import scala.tools.nsc._;
import scala.tools.nsc.interpreter._;
import scala.tools.nsc.io.{AbstractFile, PlainFile}
@@ -28,18 +28,62 @@ import scala.tools.nsc.util._
import java.net._
import scala.tools.nsc.io.AbstractFile
import scala.tools.nsc.reporters.Reporter
-import scala.tools.util.PathResolver
+import scala.tools.util.PathResolver*/
+import org.fusesource.scalate._
+import osgi.{BundleHeaders, BundleClassPathBuilder, BundleClassLoader}
+import scala.tools.nsc.Global
+import scala.tools.nsc.Settings
+import scala.tools.nsc.interpreter.ReplGlobal
+import scala.tools.nsc.io.AbstractFile
+import scala.tools.nsc.backend.JavaPlatform
+import tools.nsc.reporters.{Reporter, ConsoleReporter}
+import scala.tools.nsc.util.{ClassPath, MergedClassPath}
+import scala.reflect.internal.util.{Position, NoPosition, FakePos}
+import scala.runtime.ByteRef
+import scala.util.parsing.input.OffsetPosition
+import collection.mutable.ListBuffer
+import org.osgi.framework.Bundle
+import java.io.{PrintWriter, StringWriter, File}
+import org.slf4j.scala._
/*
* unfortunately there seems to be no way to change the classpath, so this doesn't
* listen to BundleEvents
+ * TODO: check if this is still true with Scala 2.20
*/
class BundleContextScalaCompiler(bundleContext : BundleContext,
settings: Settings, reporter: Reporter)
- extends Global(settings, reporter) {
+ extends Global(settings, reporter) with ReplGlobal with Logging { self =>
- override lazy val classPath: ClassPath[AbstractFile] = {
+ override lazy val platform: ThisPlatform = {
+ new { val global: self.type = self } with JavaPlatform {
+ override lazy val classPath = {
+ createClassPath[AbstractFile](super.classPath)
+ }
+ }
+ }
+
+ override def classPath = platform.classPath
+
+ def createClassPath[T](original: ClassPath[T]) = {
+
+ var result = ListBuffer(original)
+ for (bundle <- bundleContext.getBundles; if bundle.getResource("/") != null) {
+ try {
+ val files = BundleClassPathBuilder.fromBundle(bundle)
+ files.foreach(file => {
+ //debug("Adding bundle " + file + " to the Scala compiler classpath")
+ result += original.context.newClassPath(file)
+ })
+ } catch {
+ case e: Exception => logger.debug(e.toString)
+ }
+
+ }
+ new MergedClassPath(result.toList.reverse, original.context)
+ }
+ /*override lazy val classPath: ClassPath[AbstractFile] = {
val classPathOrig: ClassPath[AbstractFile] = new PathResolver(settings).result
var bundles: Array[Bundle] = bundleContext.getBundles
@@ -61,11 +105,11 @@ class BundleContextScalaCompiler(bundleC
new MergedClassPath[AbstractFile](classPathOrig :: classPaths,
classPathOrig.context)
- }
+ }*/
- override def rootLoader: LazyType = {
+ /*override def rootLoader: LazyType = {
new loaders.JavaPackageLoader(classPath)
- }
+ }*/
}
Modified: incubator/clerezza/trunk/shell/pom.xml
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/shell/pom.xml?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/shell/pom.xml (original)
+++ incubator/clerezza/trunk/shell/pom.xml Fri Feb 15 12:51:25 2013
@@ -51,7 +51,12 @@
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>jline</artifactId>
- <version>2.9.0-1</version>
+ <version>2.10.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-actors</artifactId>
+ <version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
@@ -87,7 +92,7 @@
scala.tools.jline.console.completer</Export-Package>
<Bundle-SymbolicName>org.apache.clerezza.shell</Bundle-SymbolicName>
<Import-Package>org.apache.clerezza.platform.security;resolution:=optional, *</Import-Package>
- <Embed-Dependency>jline</Embed-Dependency>
+ <Embed-Dependency>jline, scala-actors</Embed-Dependency>
</instructions>
</configuration>
</plugin>
Modified: incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/StreamJLineReader.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/StreamJLineReader.scala?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/StreamJLineReader.scala (original)
+++ incubator/clerezza/trunk/shell/src/main/scala/org/apache/clerezza/shell/StreamJLineReader.scala Fri Feb 15 12:51:25 2013
@@ -31,28 +31,57 @@ import java.io.OutputStream
*/
class StreamJLineReader(_completion: => Completion, in: InputStream, out: OutputStream, terminal: Terminal) extends InteractiveReader {
val interactive = false
- val consoleReader = new StreamJLineConsoleReader()
+
+ class StreamJLineConsoleReader extends ConsoleReader(in, out, null, terminal) with ConsoleReaderHelper {
+ // working around protected/trait/java insufficiencies.
+ def goBack(num: Int): Unit = back(num)
+ def readOneKey(prompt: String) = {
+ this.print(prompt)
+ this.flush()
+ this.readVirtualKey()
+ }
+ def eraseLine() = consoleReader.resetPromptLine("", "", 0)
+ def redrawLineAndFlush(): Unit = { flush() ; drawLine() ; flush() }
+ // override def readLine(prompt: String): String
- lazy val completion = _completion
+ // A hook for running code after the repl is done initializing.
+ lazy val postInit: Unit = {
+ this setBellEnabled false
+ if (history ne NoHistory)
+ this setHistory history
+
+ if (completion ne NoCompletion) {
+ val argCompletor: ArgumentCompleter =
+ new ArgumentCompleter(new JLineDelimiter, scalaToJline(completion.completer()))
+ argCompletor setStrict false
+
+ this addCompleter argCompletor
+ this setAutoprintThreshold 400 // max completion candidates without warning
+ }
+ }
+ }
+ val consoleReader = new StreamJLineConsoleReader()
+
+ lazy val completion = _completion
lazy val history: JLineHistory = JLineHistory()
- lazy val keyBindings =
- try KeyBinding parse slurp(term.getDefaultBindings)
- catch { case _: Exception => Nil }
private def term = consoleReader.getTerminal()
def reset() = term.reset()
- def init() = term.init()
+ def init() = term.init()
def scalaToJline(tc: ScalaCompleter): Completer = new Completer {
def complete(_buf: String, cursor: Int, candidates: JList[CharSequence]): Int = {
- val buf = if (_buf == null) "" else _buf
+ val buf = if (_buf == null) "" else _buf
val Candidates(newCursor, newCandidates) = tc.complete(buf, cursor)
newCandidates foreach (candidates add _)
newCursor
}
}
- class StreamJLineConsoleReader extends ConsoleReader(in, out, null, terminal) with ConsoleReaderHelper {
+ class JLineConsoleReader extends ConsoleReader with ConsoleReaderHelper {
+ if ((history: History) ne NoHistory)
+ this setHistory history
+
// working around protected/trait/java insufficiencies.
def goBack(num: Int): Unit = back(num)
def readOneKey(prompt: String) = {
@@ -67,8 +96,6 @@ class StreamJLineReader(_completion: =>
// A hook for running code after the repl is done initializing.
lazy val postInit: Unit = {
this setBellEnabled false
- if (history ne NoHistory)
- this setHistory history
if (completion ne NoCompletion) {
val argCompletor: ArgumentCompleter =
@@ -87,5 +114,5 @@ class StreamJLineReader(_completion: =>
// Alternate implementation, not sure if/when I need this.
// def eraseLine() = while (consoleReader.delete()) { }
def readOneLine(prompt: String) = consoleReader readLine prompt
- def readOneKey(prompt: String) = consoleReader readOneKey prompt
-}
+ def readOneKey(prompt: String) = consoleReader readOneKey prompt
+}
\ No newline at end of file
Modified: incubator/clerezza/trunk/slf4j-scala-api/pom.xml
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/slf4j-scala-api/pom.xml?rev=1446560&r1=1446559&r2=1446560&view=diff
==============================================================================
--- incubator/clerezza/trunk/slf4j-scala-api/pom.xml (original)
+++ incubator/clerezza/trunk/slf4j-scala-api/pom.xml Fri Feb 15 12:51:25 2013
@@ -55,14 +55,14 @@
</dependency>
<dependency>
<groupId>org.scala-tools.testing</groupId>
- <artifactId>specs_2.8.0</artifactId>
- <version>1.6.5</version>
+ <artifactId>specs_2.10</artifactId>
+ <version>1.6.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
- <version>1.8.4</version>
+ <version>1.9.5</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -84,7 +84,6 @@
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<configuration>
- <scalaVersion>${scala.version}</scalaVersion>
<charset>${project.build.sourceEncoding}</charset>
<jvmArgs>
<jvmArg>-Xmx1024m</jvmArg>
@@ -121,13 +120,7 @@
<extensions>true</extensions>
<configuration>
<instructions>
- <Bundle-RequiredExecutionEnvironment>J2SE-1.5,JavaSE-1.6</Bundle-RequiredExecutionEnvironment>
<Export-Package>org.slf4j.scala.*;version="${project.version}"</Export-Package>
- <Import-Package>
- scala.*;version="[${scala.version},${scala.version}]",
- *
- </Import-Package>
- <_versionpolicy>[$(@),$(version;=+;$(@)))</_versionpolicy>
</instructions>
</configuration>
</plugin>