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 2011/01/26 00:19:37 UTC
svn commit: r1063515 [2/2] - in /incubator/clerezza/trunk:
org.apache.clerezza.parent/
org.apache.clerezza.parent/org.apache.clerezza.ext.org.ops4j.pax.swissbox.tinybundles/
org.apache.clerezza.parent/org.apache.clerezza.platform.launcher.storageless.p...
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('.'))