Author: cziegeler
Date: Thu Nov 8 02:11:41 2007
New Revision: 593113
URL: http://svn.apache.org/viewvc?rev=593113&view=rev
Log:
Start implementing dynamic lookup mechanism for script engines.
Modified:
incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/MicroslingScriptResolver.java
Modified:
incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/MicroslingScriptResolver.java
URL:
http://svn.apache.org/viewvc/incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/MicroslingScriptResolver.java?rev=593113&r1=593112&r2=593113&view=diff
==============================================================================
---
incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/MicroslingScriptResolver.java
(original)
+++
incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/scripting/MicroslingScriptResolver.java
Thu Nov 8 02:11:41 2007
@@ -43,8 +43,6 @@
import org.apache.sling.microsling.resource.JcrNodeResource;
import org.apache.sling.microsling.scripting.helpers.ScriptFilenameBuilder;
import org.apache.sling.microsling.scripting.helpers.ScriptHelper;
-import org.apache.sling.scripting.freemarker.FreemarkerScriptEngine;
-import org.apache.sling.scripting.ruby.ErbScriptEngine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,12 +72,24 @@
private Map<String, SlingScriptEngine> scriptEngines;
+ private static final String[] DEFAULT_SCRIPT_ENGINES = new String[] {
+ "org.apache.sling.scripting.javascript.RhinoJavasSriptEngine",
+ "org.apache.sling.scripting.velocity.VelocityTemplatesScriptEngine",
+ "org.apache.sling.scripting.freemarker.FreemarkerScriptEngine",
+ "org.apache.sling.scripting.ruby.ErbScriptEngine"
+ };
+
public MicroslingScriptResolver() throws SlingException {
scriptEngines = new HashMap<String, SlingScriptEngine>();
- addScriptEngine(new
org.apache.sling.scripting.javascript.RhinoJavasSriptEngine());
- addScriptEngine(new
org.apache.sling.scripting.velocity.VelocityTemplatesScriptEngine());
- addScriptEngine(new FreemarkerScriptEngine());
- addScriptEngine(new ErbScriptEngine());
+ for(String engineName : DEFAULT_SCRIPT_ENGINES) {
+ try {
+ final Class engineClass =
this.getClass().getClassLoader().loadClass(engineName);
+ final SlingScriptEngine engine =
(SlingScriptEngine)engineClass.newInstance();
+ addScriptEngine(engine);
+ } catch (Exception ignore) {
+ log.warn("Unable to instantiate script engine " + engineName,
ignore);
+ }
+ }
}
/**