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('.'))