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.

Reply via email to