Author: janandith
Date: Thu Jun 5 10:58:11 2008
New Revision: 12
Added:
trunk/sling-scala/.classpath
trunk/sling-scala/.project
trunk/sling-scala/.settings/
trunk/sling-scala/.settings/org.eclipse.jdt.core.prefs
trunk/sling-scala/.settings/org.maven.ide.eclipse.prefs
trunk/sling-scala/pom.xml
trunk/sling-scala/src/
trunk/sling-scala/src/main/
trunk/sling-scala/src/main/java/
trunk/sling-scala/src/main/java/org/
trunk/sling-scala/src/main/java/org/apache/
trunk/sling-scala/src/main/java/org/apache/sling/
trunk/sling-scala/src/main/java/org/apache/sling/scripting/
trunk/sling-scala/src/main/java/org/apache/sling/scripting/scala/
trunk/sling-scala/src/main/java/org/apache/sling/scripting/scala/ScalaScriptEngine.java
trunk/sling-scala/src/main/java/org/apache/sling/scripting/scala/ScalaScriptEngineFactory.java
trunk/sling-scala/src/main/resources/
trunk/sling-scala/src/main/resources/META-INF/
trunk/sling-scala/src/main/resources/META-INF/services/
trunk/sling-scala/src/main/resources/META-INF/services/javax.script.ScriptEngineFactory
trunk/sling-scala/src/test/
trunk/sling-scala/src/test/java/
trunk/sling-scala/src/test/resources/
trunk/sling-scala/target/
trunk/sling-scala/target-eclipse/
trunk/sling-scala/target-eclipse/classes/
trunk/sling-scala/target-eclipse/test-classes/
trunk/sling-scala/target/classes/
trunk/sling-scala/target/classes/META-INF/
trunk/sling-scala/target/classes/META-INF/MANIFEST.MF
trunk/sling-scala/target/classes/META-INF/services/
trunk/sling-scala/target/classes/META-INF/services/javax.script.ScriptEngineFactory
trunk/sling-scala/target/classes/org/
trunk/sling-scala/target/classes/org/apache/
trunk/sling-scala/target/classes/org/apache/sling/
trunk/sling-scala/target/classes/org/apache/sling/scripting/
trunk/sling-scala/target/classes/org/apache/sling/scripting/scala/
trunk/sling-scala/target/classes/org/apache/sling/scripting/scala/ScalaScriptEngine.class
(contents, props changed)
trunk/sling-scala/target/classes/org/apache/sling/scripting/scala/ScalaScriptEngineFactory.class
(contents, props changed)
trunk/sling-scala/target/org.apache.sling.scripting.scala-2.0.0-incubator-SNAPSHOT-sources.jar
(contents, props changed)
trunk/sling-scala/target/org.apache.sling.scripting.scala-2.0.0-incubator-SNAPSHOT.jar
(contents, props changed)
trunk/sling-scala/target/test-classes/
Log:
Added: trunk/sling-scala/.classpath
==============================================================================
--- (empty file)
+++ trunk/sling-scala/.classpath Thu Jun 5 10:58:11 2008
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target-eclipse/classes"
path="src/main/java"/>
+ <classpathentry kind="src" output="target-eclipse/test-classes"
path="src/test/java">
+ <attributes>
+ <attribute name="maven.type" value="test"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="src/main/resources"
path="src/main/resources"/>
+ <classpathentry excluding="**" kind="src" output="src/test/resources"
path="src/test/resources"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con"
path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target-eclipse/classes"/>
+</classpath>
Added: trunk/sling-scala/.project
==============================================================================
--- (empty file)
+++ trunk/sling-scala/.project Thu Jun 5 10:58:11 2008
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>scala</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ </natures>
+</projectDescription>
Added: trunk/sling-scala/.settings/org.eclipse.jdt.core.prefs
==============================================================================
--- (empty file)
+++ trunk/sling-scala/.settings/org.eclipse.jdt.core.prefs Thu Jun 5
10:58:11 2008
@@ -0,0 +1,5 @@
+#Tue May 27 23:10:35 IST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.source=1.3
Added: trunk/sling-scala/.settings/org.maven.ide.eclipse.prefs
==============================================================================
--- (empty file)
+++ trunk/sling-scala/.settings/org.maven.ide.eclipse.prefs Thu Jun 5
10:58:11 2008
@@ -0,0 +1,9 @@
+#Tue May 27 23:10:34 IST 2008
+activeProfiles=
+eclipse.preferences.version=1
+filterResources=false
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+useMavenFolders=false
+version=1
Added: trunk/sling-scala/pom.xml
==============================================================================
--- (empty file)
+++ trunk/sling-scala/pom.xml Thu Jun 5 10:58:11 2008
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<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>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>sling</artifactId>
+ <version>1-incubator-SNAPSHOT</version>
+ <relativePath>../../parent/pom.xml</relativePath>
+ </parent>
+
+ <artifactId>org.apache.sling.scripting.scala</artifactId>
+ <version>2.0.0-incubator-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>Sling - Scripting - Scala Support</name>
+ <description>Support for Scala scripting</description>
+
+ <properties>
+ <scala-version>2.7.1</scala-version>
+ </properties>
+
+
+ <repositories>
+ <repository>
+ <id>scala-tools.org</id>
+ <name>Scala-tools Maven2 Repository</name>
+ <url>http://scala-tools.org/repo-releases</url>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>scala-tools.org</id>
+ <name>Scala-tools Maven2 Repository</name>
+ <url>http://scala-tools.org/repo-releases</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Private-Package>
+ org.apache.sling.scripting.scala
+ </Private-Package>
+ <ScriptEngine-Name>${pom.name}</ScriptEngine-Name>
+
<ScriptEngine-Version>${pom.version}</ScriptEngine-Version>
+ </instructions>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.scala-tools</groupId>
+ <artifactId>maven-scala-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>compile</goal>
+ <goal>testCompile</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <scalaVersion>${scala-version}</scalaVersion>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.api</artifactId>
+ <version>2.0.0-incubator-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.scripting.api</artifactId>
+ <version>2.0.0-incubator-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-library</artifactId>
+ <version>${scala-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-compiler</artifactId>
+ <version>${scala-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.jcr</groupId>
+ <artifactId>jcr</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
Added:
trunk/sling-scala/src/main/java/org/apache/sling/scripting/scala/ScalaScriptEngine.java
==============================================================================
--- (empty file)
+++
trunk/sling-scala/src/main/java/org/apache/sling/scripting/scala/ScalaScriptEngine.java
Thu Jun 5 10:58:11 2008
@@ -0,0 +1,91 @@
+/*
+ * ScalaScriptEngineFactory.java
+ *
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package org.apache.sling.scripting.scala;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.StringWriter;
+
+import javax.script.ScriptEngineFactory;
+import javax.script.ScriptContext;
+import javax.script.Bindings;
+import javax.script.ScriptException;
+
+
+import scala.tools.nsc.Interpreter;
+import scala.tools.nsc.Settings;
+
+import org.apache.sling.scripting.api.AbstractSlingScriptEngine;
+/**
+ *
+ * @author Janandith
+ */
+
+public class ScalaScriptEngine extends AbstractSlingScriptEngine{
+
+ Settings interpreterSettings = null;
+ Interpreter interpreter = null;
+ PrintWriter logPrinter = null;
+ StringWriter interpreterOut = null;
+
+ /** Creates a new instance of ScalaScriptEngine */
+ public ScalaScriptEngine(ScriptEngineFactory factory) {
+
+ super(factory);
+ try{
+
+ interpreterOut = new StringWriter();
+ logPrinter = new PrintWriter(interpreterOut);
+ interpreterSettings = new Settings();
+
+
+ interpreter = new Interpreter(interpreterSettings ,
logPrinter);
+
+ }catch(Exception e){
+
+ e.printStackTrace();
+
+ }
+
+ }
+
+ public Object eval(Reader script , ScriptContext scriptContext)
throws ScriptException {
+
+ Object result =null;
+
+ try {
+ StringBuffer scriptString = new StringBuffer();
+ BufferedReader bufferedScript = new BufferedReader(script);
+ String nextLine = bufferedScript.readLine();
+
+ while (nextLine != null) {
+ scriptString.append(nextLine);
+ scriptString.append("\n");
+ nextLine = bufferedScript.readLine();
+ }
+
+ result = interpreter.interpret(scriptString.toString());
+
+ scriptContext.getWriter().write(interpreterOut.toString());
+ }
+ catch(Exception ex)
+ {
+ ex.printStackTrace();
+ }
+
+ return result;
+
+ }
+
+
+
+}
Added:
trunk/sling-scala/src/main/java/org/apache/sling/scripting/scala/ScalaScriptEngineFactory.java
==============================================================================
--- (empty file)
+++
trunk/sling-scala/src/main/java/org/apache/sling/scripting/scala/ScalaScriptEngineFactory.java
Thu Jun 5 10:58:11 2008
@@ -0,0 +1,55 @@
+/*
+ * ScalaScriptEngineFactory.java
+ *
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package org.apache.sling.scripting.scala;
+
+import javax.script.ScriptEngine;
+
+import scala.tools.nsc.*;
+
+import org.apache.sling.scripting.api.AbstractScriptEngineFactory;
+
+/**
+ *
+ * @author Janandith
+ */
+
+public class ScalaScriptEngineFactory extends
AbstractScriptEngineFactory {
+
+ public final static String SCALA_SCRIPT_EXTENSION = "scala";
+
+ public final static String SCALA_MIME_TYPE = "text/scala";
+
+ public final static String SHORT_NAME = "scala";
+
+ /** Creates a new instance of ScalaScriptEngineFactory */
+ public ScalaScriptEngineFactory() {
+
+ setExtensions(SCALA_SCRIPT_EXTENSION);
+ setMimeTypes(SCALA_MIME_TYPE);
+ setNames(SHORT_NAME);
+ }
+
+ public ScriptEngine getScriptEngine(){
+
+ return new ScalaScriptEngine(this);
+ }
+
+ public String getLanguageName(){
+
+ return "scala";
+ }
+
+ public String getLanguageVersion(){
+
+ return "2.7.1";
+ }
+
+}
+
+
Added:
trunk/sling-scala/src/main/resources/META-INF/services/javax.script.ScriptEngineFactory
==============================================================================
--- (empty file)
+++
trunk/sling-scala/src/main/resources/META-INF/services/javax.script.ScriptEngineFactory
Thu Jun 5 10:58:11 2008
@@ -0,0 +1 @@
+org.apache.sling.scripting.scala.ScalaScriptEngineFactory;
\ No newline at end of file
Added: trunk/sling-scala/target/classes/META-INF/MANIFEST.MF
==============================================================================
--- (empty file)
+++ trunk/sling-scala/target/classes/META-INF/MANIFEST.MF Thu Jun 5
10:58:11 2008
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Private-Package: org.apache.sling.scripting.scala
+Built-By: janandith
+Bundle-Category: sling
+Tool: Bnd-0.0.238
+Bundle-Name: Sling - Scripting - Scala Support
+ScriptEngine-Version: 2.0.0-incubator-SNAPSHOT
+Created-By: Apache Maven Bundle Plugin
+ScriptEngine-Name: Sling - Scripting - Scala Support
+Bundle-Vendor: The Apache Software Foundation
+Build-Jdk: 1.6.0_03
+Bundle-Version: 2.0.0.incubator-SNAPSHOT
+Bnd-LastModified: 1212425313368
+Bundle-ManifestVersion: 2
+Bundle-Description: Support for Scala scripting
+Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
+Import-Package: javax.script,org.apache.sling.scripting.api;version="2
+ .0.0.incubator-SNAPSHOT",scala.tools.nsc
+Bundle-SymbolicName: org.apache.sling.scripting.scala
+Bundle-DocURL: http://incubator.apache.org/sling
+
Added:
trunk/sling-scala/target/classes/META-INF/services/javax.script.ScriptEngineFactory
==============================================================================
--- (empty file)
+++
trunk/sling-scala/target/classes/META-INF/services/javax.script.ScriptEngineFactory
Thu Jun 5 10:58:11 2008
@@ -0,0 +1 @@
+org.apache.sling.scripting.scala.ScalaScriptEngineFactory;
\ No newline at end of file
Added:
trunk/sling-scala/target/classes/org/apache/sling/scripting/scala/ScalaScriptEngine.class
==============================================================================
Binary file. No diff available.
Added:
trunk/sling-scala/target/classes/org/apache/sling/scripting/scala/ScalaScriptEngineFactory.class
==============================================================================
Binary file. No diff available.
Added:
trunk/sling-scala/target/org.apache.sling.scripting.scala-2.0.0-incubator-SNAPSHOT-sources.jar
==============================================================================
Binary file. No diff available.
Added:
trunk/sling-scala/target/org.apache.sling.scripting.scala-2.0.0-incubator-SNAPSHOT.jar
==============================================================================
Binary file. No diff available.