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=1063515&r1=1063514&r2=1063515&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/pom.xml Tue Jan 25 
23:19:36 2011
@@ -31,6 +31,7 @@
                                
<module>org.apache.clerezza.ext.com.ibm.icu</module>
                                
<module>org.apache.clerezza.ext.javax.mail</module>
                                
<module>org.apache.clerezza.ext.org.json.simple</module>
+                               
<module>org.apache.clerezza.ext.org.ops4j.pax.swissbox.tinybundles</module>
                                
<module>org.apache.clerezza.internal.archetype</module>
                                
<module>org.apache.clerezza.jaxrs.extensions</module>
                                
<module>org.apache.clerezza.jaxrs.rdf.providers</module>
@@ -104,6 +105,7 @@
                                <module>org.apache.clerezza.rdf.web</module>
                                <module>org.apache.clerezza.shell</module>
                                
<module>org.apache.clerezza.shell.felixshellcommand</module>
+                               
<module>org.apache.clerezza.sourcebundle</module>
                                <module>org.apache.clerezza.sshshell</module>
                                <module>org.apache.clerezza.templating</module>
                                
<module>org.apache.clerezza.templating.seedsnipe</module>
@@ -494,6 +496,11 @@
                                <version>1.2.1</version>
                        </dependency>
                        <dependency>
+                               <groupId>org.ops4j.pax.swissbox</groupId>
+                               
<artifactId>pax-swissbox-tinybundles</artifactId>
+                               <version>1.3.0</version>
+                       </dependency>
+                       <dependency>
                                <groupId>org.ops4j.pax.exam</groupId>
                                <artifactId>pax-exam-junit</artifactId>
                                <version>1.2.3</version>
@@ -570,6 +577,11 @@
                        </dependency>
                        <dependency>
                                <groupId>org.apache.clerezza.ext</groupId>
+                               
<artifactId>org.ops4j.pax.swissbox.tinybundles</artifactId>
+                               <version>0.1-incubating-SNAPSHOT</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.clerezza.ext</groupId>
                                <artifactId>javax.mail</artifactId>
                                <version>0.4-incubating-SNAPSHOT</version>
                        </dependency>
@@ -1155,6 +1167,11 @@
                        </dependency>
                        <dependency>
                                <groupId>org.apache.clerezza</groupId>
+                               
<artifactId>org.apache.clerezza.sourcebundle</artifactId>
+                               <version>0.1-incubating-SNAPSHOT</version>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.clerezza</groupId>
                                
<artifactId>org.apache.clerezza.utils</artifactId>
                                <version>0.1-incubating-SNAPSHOT</version>
                        </dependency>

Modified: 
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/CompilerService.scala
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/CompilerService.scala?rev=1063515&r1=1063514&r2=1063515&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/CompilerService.scala
 (original)
+++ 
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/CompilerService.scala
 Tue Jan 25 23:19:36 2011
@@ -163,5 +163,27 @@ class CompilerService() extends BundleLi
                }
        }
 
+       def compileToDir(sources: List[Array[Char]], outputDirectory: 
AbstractFile): List[AbstractFile] = {
+               AccessController.checkPermission(new CompilePermission)
+               sharedCompiler.synchronized {
+                       try {
+                               
AccessController.doPrivileged[List[AbstractFile]](
+                                       new 
PrivilegedExceptionAction[List[AbstractFile]] {
+                                               def run() = {
+                                                       val out = new 
ByteArrayOutputStream
+                                                       val printWriter = new 
PrintWriter(out)
+                                                       val compiler = 
createCompiler(printWriter, outputDirectory)
+                                                       try {
+                                                               
compiler.compileToDir(sources)
+                                                       } catch {
+                                                               case c: 
CompileErrorsException => throw new CompileErrorsException(new 
String(out.toByteArray, "utf-8"))
+                                                               case e => throw 
e
+                                                       }
+                                               }
+                                       })
+                       }
+               }
+       }
+
        
 }

Modified: 
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/TrackingCompiler.scala
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/TrackingCompiler.scala?rev=1063515&r1=1063514&r2=1063515&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/TrackingCompiler.scala
 (original)
+++ 
incubator/clerezza/trunk/scala-scripting/script-engine/src/main/scala/org/apache/clerezza/scala/scripting/TrackingCompiler.scala
 Tue Jan 25 23:19:36 2011
@@ -45,13 +45,13 @@ class TrackingCompiler private (bundleCo
                writtenClasses: mutable.ListBuffer[AbstractFile])
        extends  BundleContextScalaCompiler(bundleContext : BundleContext,
                settings: Settings, reporter: Reporter) {
-       
 
        /**
-        * compiles a list of class sources returning a list of compiled classes
+        * compiles a list of classes to settings.outputDirs returning a
+        * the generated AbstractFiles
         */
        @throws(classOf[CompileErrorsException])
-       def compile(sources: List[Array[Char]]): List[Class[_]] = {
+       def compileToDir(sources: List[Array[Char]]): List[AbstractFile] = {
                writtenClasses.clear()
                var i = 0
                val sourceFiles: List[SourceFile] = for(chars <- sources) yield 
{
@@ -63,8 +63,17 @@ class TrackingCompiler private (bundleCo
                        reporter.reset
                        throw new CompileErrorsException;
                }
+               writtenClasses.toList
+       }
+
+       /**
+        * compiles a list of class sources returning a list of compiled classes
+        */
+       @throws(classOf[CompileErrorsException])
+       def compile(sources: List[Array[Char]]): List[Class[_]] = {
+               val classFiles = compileToDir(sources)
                val classLoader = classLoaderBuilder()
-               val result: List[Class[_]] = for (classFile <- 
writtenClasses.toList;
+               val result: List[Class[_]] = for (classFile <- classFiles;
                                                                                
  if (!classFile.name.contains('$'))) yield {
                        val path = classFile.path
                        val relevantPath = 
path.substring(path.indexOf('/')+1,path.lastIndexOf('.'))


Reply via email to