Author: reto
Date: Tue Jun 15 16:04:47 2010
New Revision: 954944
URL: http://svn.apache.org/viewvc?rev=954944&view=rev
Log:
CLEREZZA-221: Scala updates to 2.8.0
Removed:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.scala/
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.dashboard/org.apache.clerezza.platform.dashboard.tests/pom.xml
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/org.apache.clerezza.platform.launcher.storageless/src/main/java/org/apache/clerezza/platform/launcher/Main.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/FelixClerezzaPlatformTest.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/pom.xml
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/implicit-header.txt
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/TypeRenderingException.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/CollectedIter.scala
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/Preamble.scala
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/RichGraphNode.scala
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/test/scala/org/apache/clerezza/rdf/scala/utils/RichGraphNodeTest.scala
incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml
incubator/clerezza/trunk/scala-scripting/ (props changed)
incubator/clerezza/trunk/scala-scripting/pom.xml
incubator/clerezza/trunk/scala-scripting/scala-compiler-osgi/pom.xml
incubator/clerezza/trunk/scala-scripting/scala-library-osgi/pom.xml
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/resources/OSGI-INF/serviceComponents.xml
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/ScriptEngineFactory.scala
incubator/clerezza/trunk/scala-scripting/tests/src/test/scala/org/apache/clerezza/scala/tests/ScriptEngineFactoryTest.scala
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.dashboard/org.apache.clerezza.platform.dashboard.tests/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.dashboard/org.apache.clerezza.platform.dashboard.tests/pom.xml?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.dashboard/org.apache.clerezza.platform.dashboard.tests/pom.xml
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.dashboard/org.apache.clerezza.platform.dashboard.tests/pom.xml
Tue Jun 15 16:04:47 2010
@@ -153,11 +153,7 @@
<artifactId>com.ibm.icu</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.apache.clerezza</groupId>
- <artifactId>org.apache.clerezza.scala</artifactId>
- <scope>provided</scope>
- </dependency>
+
<dependency>
<groupId>asm</groupId>
<artifactId>asm-all</artifactId>
@@ -170,15 +166,18 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.scala-lang-osgi</groupId>
- <artifactId>scala-library</artifactId>
- <version>2.7.5</version>
+ <groupId>org.apache.clerezza.scala</groupId>
+ <artifactId>scala-library-osgi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.clerezza.scala</groupId>
+ <artifactId>scala-compiler-osgi</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.scala-lang-osgi</groupId>
- <artifactId>scala-compiler</artifactId>
- <version>2.7.5</version>
+ <groupId>org.apache.clerezza.scala</groupId>
+ <artifactId>script-engine</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/org.apache.clerezza.platform.launcher.storageless/src/main/java/org/apache/clerezza/platform/launcher/Main.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/org.apache.clerezza.platform.launcher.storageless/src/main/java/org/apache/clerezza/platform/launcher/Main.java?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/org.apache.clerezza.platform.launcher.storageless/src/main/java/org/apache/clerezza/platform/launcher/Main.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/org.apache.clerezza.platform.launcher.storageless/src/main/java/org/apache/clerezza/platform/launcher/Main.java
Tue Jun 15 16:04:47 2010
@@ -255,6 +255,13 @@ public class Main implements BundleActiv
}
configProps.put("org.ops4j.pax.url.mvn.repositories",
getCommaSeparatedListOfMavenRepos());
+ String extraPackages = (String)
configProps.get("org.osgi.framework.system.packages.extra");
+ if (extraPackages == null) {
+ extraPackages = "";
+ }
+ configProps.put("org.osgi.framework.system.packages.extra",
+ "sun.misc;"
+ + extraPackages);
return configProps;
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.parent/pom.xml
Tue Jun 15 16:04:47 2010
@@ -75,15 +75,18 @@
<scope>runtime</scope>
</dependency>
<dependency>
- <groupId>org.scala-lang-osgi</groupId>
- <artifactId>scala-library</artifactId>
- <version>${scala.version}</version>
+ <groupId>org.apache.clerezza.scala</groupId>
+ <artifactId>scala-library-osgi</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
- <groupId>org.scala-lang-osgi</groupId>
- <artifactId>scala-compiler</artifactId>
- <version>${scala.version}</version>
+ <groupId>org.apache.clerezza.scala</groupId>
+ <artifactId>scala-compiler-osgi</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.clerezza.scala</groupId>
+ <artifactId>script-engine</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
@@ -282,10 +285,6 @@
</dependency>
<dependency>
<groupId>org.apache.clerezza</groupId>
- <artifactId>org.apache.clerezza.scala</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.clerezza</groupId>
<artifactId>org.apache.clerezza.templating</artifactId>
<scope>runtime</scope>
</dependency>
@@ -437,12 +436,6 @@
</dependencies>
<repositories>
<repository>
- <!-- org.scala-lang-osgi is not in central repo -->
- <id>scala-tools</id>
- <name>Scala tools</name>
- <url>http://scala-tools.org/repo-releases/</url>
- </repository>
- <repository>
<id>sun</id>
<name>sun java repository</name>
<releases>
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
Tue Jun 15 16:04:47 2010
@@ -87,19 +87,18 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
- <type>jar</type>
</dependency>
<dependency>
- <groupId>org.scala-lang-osgi</groupId>
- <artifactId>scala-library</artifactId>
- <version>${scala.version}</version>
- <scope>provided</scope>
+ <groupId>org.apache.clerezza.scala</groupId>
+ <artifactId>scala-library-osgi</artifactId>
</dependency>
<dependency>
- <groupId>org.scala-lang-osgi</groupId>
- <artifactId>scala-compiler</artifactId>
- <version>${scala.version}</version>
- <scope>provided</scope>
+ <groupId>org.apache.clerezza.scala</groupId>
+ <artifactId>scala-compiler-osgi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.clerezza.scala</groupId>
+ <artifactId>script-engine</artifactId>
</dependency>
<dependency>
<groupId>org.apache.clerezza</groupId>
@@ -213,10 +212,6 @@
</dependency>
<dependency>
<groupId>org.apache.clerezza</groupId>
- <artifactId>org.apache.clerezza.scala</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.clerezza</groupId>
<artifactId>org.apache.clerezza.templating</artifactId>
<scope>provided</scope>
</dependency>
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/FelixClerezzaPlatformTest.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/FelixClerezzaPlatformTest.java?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/FelixClerezzaPlatformTest.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/FelixClerezzaPlatformTest.java
Tue Jun 15 16:04:47 2010
@@ -107,8 +107,8 @@ public class FelixClerezzaPlatformTest {
"org.apache.clerezza.platform.graphprovider.content").versionAsInProject(),
mavenBundle().groupId("org.apache.clerezza").artifactId(
"org.apache.clerezza.templating").versionAsInProject(),
-
mavenBundle().groupId("org.apache.clerezza").artifactId(
-
"org.apache.clerezza.scala").versionAsInProject(),
+
mavenBundle().groupId("org.apache.clerezza.scala").artifactId(
+ "script-engine").versionAsInProject(),
mavenBundle().groupId("org.apache.clerezza").artifactId(
"org.apache.clerezza.platform.typerendering.scalaserverpages").versionAsInProject(),
mavenBundle().groupId("org.apache.clerezza").artifactId(
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/pom.xml?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/pom.xml
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/pom.xml
Tue Jun 15 16:04:47 2010
@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>org.apache.clerezza.parent</artifactId>
@@ -22,11 +23,11 @@
</dependency>
<dependency>
<groupId>org.apache.clerezza</groupId>
- <artifactId>org.apache.clerezza.scala</artifactId>
+
<artifactId>org.apache.clerezza.platform.typerendering.core</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.clerezza</groupId>
-
<artifactId>org.apache.clerezza.platform.typerendering.core</artifactId>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-library</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
Tue Jun 15 16:04:47 2010
@@ -25,6 +25,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URI;
import java.util.Map;
@@ -34,7 +35,12 @@ import java.security.PrivilegedActionExc
import java.security.PrivilegedExceptionAction;
import java.util.HashMap;
import java.util.logging.Level;
+import javax.script.Compilable;
+import javax.script.CompiledScript;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineFactory;
import javax.script.ScriptException;
+import javax.script.SimpleBindings;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriInfo;
@@ -44,11 +50,12 @@ import org.apache.clerezza.platform.type
import org.apache.clerezza.platform.typerendering.RenderingException;
import org.apache.clerezza.platform.typerendering.Renderlet;
import org.apache.clerezza.rdf.utils.GraphNode;
-import org.apache.clerezza.scala.service.CompiledScript;
-import org.apache.clerezza.scala.service.ScalaService;
import
org.apache.clerezza.platform.typerendering.RenderingspecificationException;
import org.apache.clerezza.platform.typerendering.TypeRenderingException;
-import scala.Seq;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import scala.collection.Seq;
/**
*
@@ -56,16 +63,16 @@ import scala.Seq;
*
* @author rbn, pmg
*
- * @scr.component
- * @scr.service
interface="org.apache.clerezza.platform.typerendering.Renderlet"
*
*/
+...@component
+...@service(Renderlet.class)
public class ScalaServerPagesRenderlet implements Renderlet {
- /**
- * @scr.reference
- */
- private ScalaService scalaService;
+
+ @Reference(target="(javax.script.language=scala)")
+ private ScriptEngineFactory scalaScriptEngineFactory;
+
private static final Logger logger =
LoggerFactory.getLogger(ScalaServerPagesRenderlet.class);
private int byteHeaderLines = 0;
private Type multiStringObjectMapType;
@@ -83,14 +90,7 @@ public class ScalaServerPagesRenderlet i
public ScalaServerPagesRenderlet() {
}
- /**
- * constructor used by tests
- *
- * @param scalaService
- */
- ScalaServerPagesRenderlet(ScalaService scalaService) {
- this.scalaService = scalaService;
- }
+
private final String lineSeparator =
System.getProperty("line.separator");
private final byte[] byteHeader;
@@ -115,6 +115,9 @@ public class ScalaServerPagesRenderlet i
private final byte[] byteCloser = (';' + lineSeparator).getBytes();
+ //TODO a map with SoftReferences as keys
+ private Map<byte[], CompiledScript> compiledScripts = new
HashMap<byte[], CompiledScript>();
+
@Override
public void render(GraphNode res, GraphNode context,
CallbackRenderer callbackRenderer, URI
renderingSpecification,
@@ -132,22 +135,13 @@ public class ScalaServerPagesRenderlet i
}
//add the closing ";"
baos.write(byteCloser);
- final Map<String, Type> map = new HashMap<String,
Type>();
- map.put("res", GraphNode.class);
- map.put("context", GraphNode.class);
- map.put("renderer", CallbackRenderer.class);
- map.put("mode", String.class);
- if (requestProperties != null) {
- map.put("uriInfo", UriInfo.class);
- //ignoring as parameterized types are not yet
supported
- //map.put("httpHeaders",
multiStringObjectMapType);
- }
String scriptName =
extractFileName(renderingSpecification);
logger.debug("compiling script: " + scriptName);
- final CompiledScript cs =
scalaService.interpretScalaScript(
- new String(baos.toByteArray(),
"UTF-8"), map, scriptName, getByteHeaderLines());
+ final byte[] scriptBytes = baos.toByteArray();
+ final CompiledScript cs =
getCompiledScript(scriptBytes);
+
logger.debug("compiled");
- final Map<String, Object> values = new HashMap<String,
Object>();
+ final SimpleBindings values = new SimpleBindings();
values.put("res", res);
values.put("context", context);
values.put("renderer", callbackRenderer);
@@ -163,7 +157,11 @@ public class ScalaServerPagesRenderlet i
@Override
public Object run() {
- return cs.execute(values);
+ try {
+ return cs.eval(values);
+ } catch (ScriptException ex) {
+ throw new
RuntimeException(ex);
+ }
}
});
} catch (PrivilegedActionException ex) {
@@ -227,4 +225,20 @@ public class ScalaServerPagesRenderlet i
return path.substring(path.lastIndexOf("/") + 1,
path.lastIndexOf("."));
}
+ private CompiledScript getCompiledScript(byte[] scriptBytes) throws
ScriptException {
+ CompiledScript cs = compiledScripts.get(scriptBytes);
+ if (cs == null) {
+ try {
+ cs =
((Compilable)scalaScriptEngineFactory.getScriptEngine())
+ .compile(new
String(scriptBytes, "UTF-8"));
+ } catch (UnsupportedEncodingException ex) {
+ throw new RuntimeException(ex);
+ }
+ compiledScripts.put(scriptBytes, cs);
+ }
+ return cs;
+ }
+
+
+
}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/implicit-header.txt
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/implicit-header.txt?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/implicit-header.txt
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/implicit-header.txt
Tue Jun 15 16:04:47 2010
@@ -1,7 +1,16 @@
import org.apache.clerezza.rdf.ontologies._
import org.apache.clerezza.rdf.core._
import org.apache.clerezza.rdf.utils._
+import org.apache.clerezza.rdf.scala.utils._
import org.apache.clerezza.rdf.scala.utils.Preamble._
+import org.apache.clerezza.platform.typerendering.CallbackRenderer
+import javax.ws.rs.core.UriInfo
+
+val renderer = $("renderer").asInstanceOf[CallbackRenderer]
+val res = $("res").asInstanceOf[GraphNode]
+val context = $("context").asInstanceOf[GraphNode]
+val mode = $("mode").asInstanceOf[String]
+val uriInfo = $("uriInfo").asInstanceOf[UriInfo]
def render(resource : GraphNode, mode : String) = {
def parseNodeSeq(string : String) = {
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/TypeRenderingException.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/TypeRenderingException.java?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/TypeRenderingException.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/TypeRenderingException.java
Tue Jun 15 16:04:47 2010
@@ -34,7 +34,7 @@ public abstract class TypeRenderingExcep
public TypeRenderingException(String message, URI
renderingSpecification,
GraphNode renderNode, GraphNode context) {
- super(message);
+ super(message+" in "+renderingSpecification);
this.node = renderNode;
this.renderingSpecification = renderingSpecification;
this.context = context;
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/CollectedIter.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/CollectedIter.scala?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/CollectedIter.scala
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/CollectedIter.scala
Tue Jun 15 16:04:47 2010
@@ -21,10 +21,10 @@ package org.apache.clerezza.rdf.scala.ut
import java.util.Iterator
import _root_.scala.collection
import collection.mutable._
-import collection.jcl.Conversions._
-import collection.jcl.Buffer
+import collection.immutable
+import _root_.scala.collection.JavaConversions._
-class CollectedIter[T](iter: Iterator[T]) extends Seq[T] {
+class CollectedIter[T](iter: Iterator[T]) extends immutable.Seq[T] {
def this(jList : java.util.List[T]) = this(jList.iterator())
@@ -44,8 +44,8 @@ class CollectedIter[T](iter: Iterator[T]
* returns a new fully expanded and sorted CollectedIter
*/
def sort(lt : (T,T) => Boolean) = {
- new CollectedIter(java.util.Arrays.asList(
- elements.toList.sort(lt).toArray: _*))
+ val sortedElems = iterator.toList.sortWith(lt)
+ new CollectedIter[T](sortedElems)
}
/**
@@ -81,8 +81,8 @@ class CollectedIter[T](iter: Iterator[T]
}
}
- override def elements = {
+ override def iterator = {
ensureReadTill(Integer.MAX_VALUE)
- collectedElems.elements
+ collectedElems.iterator
}
}
\ No newline at end of file
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/Preamble.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/Preamble.scala?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/Preamble.scala
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/Preamble.scala
Tue Jun 15 16:04:47 2010
@@ -18,8 +18,8 @@
*/
package org.apache.clerezza.rdf.scala.utils
-import rdf.utils.GraphNode
-import rdf.core._
+import org.apache.clerezza.rdf.utils.GraphNode
+import org.apache.clerezza.rdf.core._
/**
* This object provides the implicit conversions. Typically this is used by
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/RichGraphNode.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/RichGraphNode.scala?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/RichGraphNode.scala
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/RichGraphNode.scala
Tue Jun 15 16:04:47 2010
@@ -18,10 +18,11 @@
*/
package org.apache.clerezza.rdf.scala.utils
-import rdf.utils.GraphNode
-import rdf.core.{UriRef, Resource, Literal, TypedLiteral, LiteralFactory}
+import org.apache.clerezza.rdf.utils.GraphNode
+import org.apache.clerezza.rdf.core.{UriRef, Resource, Literal, TypedLiteral,
LiteralFactory}
import java.util.Iterator
-import _root_.scala.collection.jcl.Conversions
+import _root_.scala.collection.JavaConversions
+import _root_.scala.collection.JavaConversions._
import _root_.scala.reflect.Manifest
class RichGraphNode(node: GraphNode) extends GraphNode(node.getNode,
node.getGraph) {
@@ -42,7 +43,7 @@ class RichGraphNode(node: GraphNode) ext
/**
* returns a List with the elements of the rdf:List represented by this
node
*/
- def !! = (for (listElem <- Conversions.convertList(node.asList)) yield {
+ def !! = (for (listElem <- node.asList) yield {
new RichGraphNode(new GraphNode(listElem,
node.getGraph))
}).toList
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/test/scala/org/apache/clerezza/rdf/scala/utils/RichGraphNodeTest.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/test/scala/org/apache/clerezza/rdf/scala/utils/RichGraphNodeTest.scala?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/test/scala/org/apache/clerezza/rdf/scala/utils/RichGraphNodeTest.scala
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.scala.utils/src/test/scala/org/apache/clerezza/rdf/scala/utils/RichGraphNodeTest.scala
Tue Jun 15 16:04:47 2010
@@ -18,10 +18,10 @@
*/
package org.apache.clerezza.rdf.scala.utils
-import rdf.utils._
-import rdf.core._
-import rdf.core.impl._
-import rdf.ontologies._
+import org.apache.clerezza.rdf.utils._
+import org.apache.clerezza.rdf.core._
+import org.apache.clerezza.rdf.core.impl._
+import org.apache.clerezza.rdf.ontologies._
import org.junit._
import Preamble._
@@ -100,9 +100,9 @@ class RichGraphNodeTest {
Assert.assertEquals(new
PlainLiteralImpl("foo"),(node/SKOS.related).asList().get(1))
Assert.assertEquals(new PlainLiteralImpl("foo"),
(node/SKOS.related%0!!)(1)!)
Assert.assertEquals(new PlainLiteralImpl("foo"),
- (for (value <-
node/SKOS.related%0!!) yield value!)(1))
+ (for (value <-
node/SKOS.related%0!!) yield value!).toList(1))
Assert.assertEquals(new PlainLiteralImpl("bar"),
- (for (value <-
node/SKOS.related%0!!) yield value!)(2))
+ (for (value <-
node/SKOS.related%0!!) yield value!).toList(2))
Assert.assertEquals(new PlainLiteralImpl("foo"),
node/SKOS.related%0%!!1!)
}
Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml Tue Jun 15
16:04:47 2010
@@ -9,7 +9,7 @@
<version>0.2-incubating-SNAPSHOT</version>
<description>The direct or indirect parent of all Clerezza
Artifacts</description>
<properties>
- <scala.version>2.7.5</scala.version>
+ <scala.version>2.8.0.RC5</scala.version>
</properties>
<licenses>
<license>
@@ -89,7 +89,6 @@
<module>org.apache.clerezza.rdf.simple.storage</module>
<module>org.apache.clerezza.rdf.utils</module>
<module>org.apache.clerezza.rdf.web</module>
- <module>org.apache.clerezza.scala</module>
<module>org.apache.clerezza.templating</module>
<module>org.apache.clerezza.templating.seedsnipe</module>
<module>org.apache.clerezza.tools.offline</module>
@@ -354,12 +353,6 @@
<url>http://repository.apache.org/content/groups/snapshots-group</url>
<layout>default</layout>
</repository>
- <!-- group id org.scala-lang-osgi only available here -->
- <repository>
- <id>scala-tools.org</id>
- <name>Scala-Tools Maven2 Repository</name>
- <url>http://scala-tools.org/repo-releases</url>
- </repository>
</repositories>
<pluginRepositories>
<!-- for a version that fixes PAXEXAM-159 and 160 -->
@@ -699,9 +692,19 @@
<version>0.4-incubating-SNAPSHOT</version>
</dependency>
<dependency>
- <groupId>org.apache.clerezza</groupId>
-
<artifactId>org.apache.clerezza.scala</artifactId>
- <version>0.3-incubating-SNAPSHOT</version>
+
<groupId>org.apache.clerezza.scala</groupId>
+
<artifactId>scala-library-osgi</artifactId>
+
<version>0.1-incubating-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+
<groupId>org.apache.clerezza.scala</groupId>
+
<artifactId>scala-compiler-osgi</artifactId>
+
<version>0.1-incubating-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+
<groupId>org.apache.clerezza.scala</groupId>
+ <artifactId>script-engine</artifactId>
+
<version>0.1-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.clerezza</groupId>
Propchange: incubator/clerezza/trunk/scala-scripting/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Jun 15 16:04:47 2010
@@ -1 +1,2 @@
target
+.pom.xml.swp
Modified: incubator/clerezza/trunk/scala-scripting/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/pom.xml?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
--- incubator/clerezza/trunk/scala-scripting/pom.xml (original)
+++ incubator/clerezza/trunk/scala-scripting/pom.xml Tue Jun 15 16:04:47 2010
@@ -20,6 +20,7 @@
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
+<!-- test failures with RC>2, see
http://groups.google.com/group/scalatest-users/browse_thread/thread/1c68b6ebba676bc8
-->
<version>2.8.0.RC2</version>
</dependency>
<dependency>
@@ -82,4 +83,4 @@
</plugin>
</plugins>
</build>
-</project>
\ No newline at end of file
+</project>
Modified: incubator/clerezza/trunk/scala-scripting/scala-compiler-osgi/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/scala-compiler-osgi/pom.xml?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
--- incubator/clerezza/trunk/scala-scripting/scala-compiler-osgi/pom.xml
(original)
+++ incubator/clerezza/trunk/scala-scripting/scala-compiler-osgi/pom.xml Tue
Jun 15 16:04:47 2010
@@ -35,7 +35,7 @@
<Embed-Dependency>*</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Export-Package>scala.*</Export-Package>
-
<Import-Package>!ch.epfl.lamp.*,!sun.*,
+ <Import-Package>!sun.*,
!org.apache.tools.ant,!jline</Import-Package>
<DynamicImport-Package>*</DynamicImport-Package>
</instructions>
Modified: incubator/clerezza/trunk/scala-scripting/scala-library-osgi/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/scala-library-osgi/pom.xml?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
--- incubator/clerezza/trunk/scala-scripting/scala-library-osgi/pom.xml
(original)
+++ incubator/clerezza/trunk/scala-scripting/scala-library-osgi/pom.xml Tue Jun
15 16:04:47 2010
@@ -30,6 +30,7 @@
<Embed-Dependency>*</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Export-Package>scala.*</Export-Package>
+ <Import-Package>!sun.misc, *
</Import-Package>
<!--
<DynamicImport-Package>*</DynamicImport-Package> -->
</instructions>
</configuration>
Modified:
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/resources/OSGI-INF/serviceComponents.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/script-engine/src/main/resources/OSGI-INF/serviceComponents.xml?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/resources/OSGI-INF/serviceComponents.xml
(original)
+++
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/resources/OSGI-INF/serviceComponents.xml
Tue Jun 15 16:04:47 2010
@@ -17,6 +17,7 @@
<provide interface="javax.script.ScriptEngineFactory"/>
</service>
<property name="service.pid"
value="org.apache.clerezza.scala.scripting.ScriptEngineFactory"/>
+ <property name="javax.script.language" value="scala" />
<reference name="interpreterFactory"
interface="org.apache.clerezza.scala.scripting.InterpreterFactory"
cardinality="1..1"
Modified:
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/ScriptEngineFactory.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/ScriptEngineFactory.scala?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/ScriptEngineFactory.scala
(original)
+++
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/ScriptEngineFactory.scala
Tue Jun 15 16:04:47 2010
@@ -193,39 +193,11 @@ class ScriptEngineFactory() extends Jav
compile(scriptStringWriter.toString)
}
- val virtualDirectory = new VirtualDirectory("(memory)", None)
- var classCounter = 0
-
- override def compile(script: String): CompiledScript = {
- val objectName = "CompiledScript"+classCounter
- classCounter += 1
- val classCode = "object " + objectName + """ {
- | def run($: Map[String, Object]) = {
- |""".stripMargin + script +"""
- | }
- |}""".stripMargin
- val sources: List[SourceFile] = List(new
BatchSourceFile("<script>", classCode))
- (new compiler.Run).compileSources(sources)
-
- new CompiledScript() {
- override def eval(context: ScriptContext) = {
- var map = Map[String, Object]()
- import
_root_.scala.collection.JavaConversions._
- for ( scope <- context.getScopes;
- if
(context.getBindings(scope.intValue) != null);
- entry <-
context.getBindings(scope.intValue)) {
- map = map + (entry._1 ->
entry._2)
- }
- val classLoader = new
AbstractFileClassLoader(virtualDirectory, this.getClass.getClassLoader())
- val runMethod =
classLoader.findClass(objectName).getMethod("run", classOf[Map[String, Object]])
- runMethod.invoke(null, map)
- }
- override def getEngine = MyScriptEngine.this
- }
- }
-
+ var classCounter = 0
+ val virtualDirectory = new VirtualDirectory("(memory)", None)
+ val msgWriter = new StringWriter
lazy val compiler = {
val settings = new Settings
settings.outputDirs setSingleOutput virtualDirectory
@@ -233,11 +205,48 @@ class ScriptEngineFactory() extends Jav
new BundleContextScalaCompiler(bundleContext, settings,
new ConsoleReporter(settings, null, out) {
override def printMessage(msg: String) {
- out println msg
- out.flush()
+ msgWriter write msg
+ //out.flush()
}
})
}
+
+ override def compile(script: String): CompiledScript = {
+ //inefficient but thread safe
+ compiler.synchronized {
+ val objectName = "CompiledScript"+classCounter
+ classCounter += 1
+ val classCode = "object " + objectName + """ {
+ | def run($: Map[String, Object])
= {
+ |""".stripMargin + script +"""
+ | }
+ |}""".stripMargin
+ val sources: List[SourceFile] = List(new
BatchSourceFile("<script>", classCode))
+ (new compiler.Run).compileSources(sources)
+ if (compiler.reporter.hasErrors) {
+ throw new
ScriptException(msgWriter.toString, "script", -1);
+ }
+ new CompiledScript() {
+ override def eval(context:
ScriptContext) = {
+ var map = Map[String, Object]()
+ import
_root_.scala.collection.JavaConversions._
+ for ( scope <-
context.getScopes;
+ if
(context.getBindings(scope.intValue) != null);
+ entry <-
context.getBindings(scope.intValue)) {
+ map = map + (entry._1
-> entry._2)
+ }
+ val classLoader = new
AbstractFileClassLoader(virtualDirectory, this.getClass.getClassLoader())
+ val runMethod =
classLoader.findClass(objectName).getMethod("run", classOf[Map[String, Object]])
+ runMethod.invoke(null, map)
+ }
+ override def getEngine =
MyScriptEngine.this
+ }
+ }
+ }
+
+
+
+
/**
* returns an accessible class or interface that is implemented
by class,
Modified:
incubator/clerezza/trunk/scala-scripting/tests/src/test/scala/org/apache/clerezza/scala/tests/ScriptEngineFactoryTest.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/tests/src/test/scala/org/apache/clerezza/scala/tests/ScriptEngineFactoryTest.scala?rev=954944&r1=954943&r2=954944&view=diff
==============================================================================
---
incubator/clerezza/trunk/scala-scripting/tests/src/test/scala/org/apache/clerezza/scala/tests/ScriptEngineFactoryTest.scala
(original)
+++
incubator/clerezza/trunk/scala-scripting/tests/src/test/scala/org/apache/clerezza/scala/tests/ScriptEngineFactoryTest.scala
Tue Jun 15 16:04:47 2010
@@ -32,7 +32,7 @@ import org.junit.Before;
import org.junit.Test;
import org.ops4j.pax.exam.Inject;
import org.osgi.framework.BundleContext;
-import javax.script.{ScriptEngineFactory, Bindings, ScriptException}
+import javax.script.{ScriptEngineFactory, Bindings, ScriptException,
Compilable}
import org.osgi.util.tracker.ServiceTracker
import scala.actors.Actor
import scala.math.random
@@ -128,15 +128,23 @@ s"""
bindings.put("s",s)
Assert.assertEquals(s, engine.eval("s", bindings))
bundleContext.installBundle("http://repo2.maven.org/maven2/org/wymiwyg/wrhapi/0.8.2/wrhapi-0.8.2.jar");
- println("sleeping")
- Thread.sleep(1000)
+ Thread.sleep(100)
val script = """
-import org.wymiwyg.wrhapi._
-val h : Handler = null
-s"""
+ |import org.wymiwyg.wrhapi._
+ |val h : Handler = null
+ |s""".stripMargin
Assert.assertEquals(s, engine.eval(script, bindings))
}
+ @Test
+ def compiledScript(): Unit = {
+ val string = "hello"
+ val script = "\""+string+"\""
+ val engine = factory.getScriptEngine.asInstanceOf[Compilable]
+ val compiledScript = engine.compile(script)
+ Assert.assertEquals(string, compiledScript.eval())
+ }
+
//This seems hard to realize before
https://lampsvn.epfl.ch/trac/scala/ticket/3513 is fixed
/*...@test
def checkException(): Unit = {