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 2010/06/18 18:54:47 UTC

svn commit: r956047 - /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java

Author: reto
Date: Fri Jun 18 16:54:47 2010
New Revision: 956047

URL: http://svn.apache.org/viewvc?rev=956047&view=rev
Log:
compiling some scala, before saying that clerezza is running (making the first page request faster)

Modified:
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java?rev=956047&r1=956046&r2=956047&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform/src/main/java/org/apache/clerezza/platform/BootMonitor.java Fri Jun 18 16:54:47 2010
@@ -21,6 +21,10 @@ package org.apache.clerezza.platform;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
+import java.util.logging.Level;
+import javax.script.Compilable;
+import javax.script.ScriptEngineFactory;
+import javax.script.ScriptException;
 import org.apache.felix.scr.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -55,6 +59,9 @@ import org.apache.felix.scr.annotations.
 		target="(javax.ws.rs=true)")
 public class BootMonitor {
 
+	@Reference(target="(javax.script.language=scala)")
+	private ScriptEngineFactory scalaScriptEngineFactory;
+	
 	private Set<Object> rootResources =
 			Collections.synchronizedSet(new HashSet<Object>());
 
@@ -74,6 +81,12 @@ public class BootMonitor {
 					int lastSize = 0;
 					for (int i = 0; i < 100; i++) {
 						if (rootResources.size() == lastSize) {
+							//compile a script to initialize scala-compiler (needed by scal a server pages)
+							try {
+								((Compilable)scalaScriptEngineFactory.getScriptEngine()).compile("println(\"helo\")");
+							} catch (ScriptException ex) {
+								logger.warn(ex.toString());
+							}
 							started = true;
 							logger.info("The Apache Clerezza Platform is now operational.");
 							return;