You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2010/01/07 13:54:10 UTC
svn commit: r896867 - in /sling/trunk/bundles/scripting/core: pom.xml
src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java
Author: cziegeler
Date: Thu Jan 7 12:53:08 2010
New Revision: 896867
URL: http://svn.apache.org/viewvc?rev=896867&view=rev
Log:
SLING-1269 : Make dependency to jcr optional
Modified:
sling/trunk/bundles/scripting/core/pom.xml
sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java
Modified: sling/trunk/bundles/scripting/core/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/core/pom.xml?rev=896867&r1=896866&r2=896867&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/core/pom.xml (original)
+++ sling/trunk/bundles/scripting/core/pom.xml Thu Jan 7 12:53:08 2010
@@ -53,6 +53,9 @@
<extensions>true</extensions>
<configuration>
<instructions>
+ <Import-Package>
+ javax.jcr;resolution:=optional,*
+ </Import-Package>
<Export-Package>
org.apache.sling.scripting.core;version=2.0.8
</Export-Package>
@@ -128,24 +131,12 @@
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.osgi</artifactId>
- <version>2.0.2-incubator</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.commons.mime</artifactId>
<version>2.0.2-incubator</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.jcr.api</artifactId>
- <version>2.0.2-incubator</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.scripting.api</artifactId>
<version>2.0.2-incubator</version>
<scope>provided</scope>
Modified: sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java?rev=896867&r1=896866&r2=896867&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java (original)
+++ sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java Thu Jan 7 12:53:08 2010
@@ -41,7 +41,6 @@
import java.util.Hashtable;
import java.util.Map;
-import javax.jcr.Node;
import javax.script.Bindings;
import javax.script.Invocable;
import javax.script.ScriptContext;
@@ -74,12 +73,22 @@
class DefaultSlingScript implements SlingScript, Servlet, ServletConfig {
- // name of the global variable containing the node to which the
+ /** The logger. */
+ private static final Logger LOGGER = LoggerFactory.getLogger(DefaultSlingScript.class);
+
+ // name of the global variable containing the node to which the
// resource adapts (null if the resource does not adapt to a node
private static final String NODE = "currentNode";
- /** The logger. */
- private static final Logger LOGGER = LoggerFactory.getLogger(DefaultSlingScript.class);
+ /** Contains the javax.jcr.Node class if it is available. */
+ private static Class<?> JCR_NODE_CLASS;
+ static {
+ try {
+ JCR_NODE_CLASS = DefaultSlingScript.class.getClassLoader().loadClass("javax.jcr.Node");
+ } catch (Exception ignore) {
+ LOGGER.info("Binding {} is not active as the javax.jcr.Node class is not available.", NODE);
+ }
+ }
/** Thread local containing the resource resolver. */
private static ThreadLocal<ResourceResolver> requestResourceResolver = new ThreadLocal<ResourceResolver>();
@@ -521,9 +530,11 @@
bindings.put(OUT, sling.getResponse().getWriter());
// set the current node if the resource is node based
- Node node = sling.getRequest().getResource().adaptTo(Node.class);
- if (node != null) {
- bindings.put(NODE, node);
+ if ( JCR_NODE_CLASS != null ) {
+ final Object node = sling.getRequest().getResource().adaptTo(JCR_NODE_CLASS);
+ if (node != null) {
+ bindings.put(NODE, node);
+ }
}
}