You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ju...@apache.org on 2010/01/25 21:34:24 UTC
svn commit: r902967 - in /sling/trunk/bundles: jcr/resource/
jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/scripting/
scripting/core/
scripting/core/src/main/java/org/apache/sling/scripting/core/impl/
Author: justin
Date: Mon Jan 25 20:34:23 2010
New Revision: 902967
URL: http://svn.apache.org/viewvc?rev=902967&view=rev
Log:
SLING-1304 - moving currentNode script binding to jcr.resource bundle
Added:
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/scripting/
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/scripting/CurrentNodeBindingsValuesProvider.java
Modified:
sling/trunk/bundles/jcr/resource/pom.xml
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/jcr/resource/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/pom.xml?rev=902967&r1=902966&r2=902967&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/pom.xml (original)
+++ sling/trunk/bundles/jcr/resource/pom.xml Mon Jan 25 20:34:23 2010
@@ -7,9 +7,9 @@
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
-
+
http://www.apache.org/licenses/LICENSE-2.0
-
+
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -59,6 +59,9 @@
<extensions>true</extensions>
<configuration>
<instructions>
+ <Import-Package>
+ org.apache.sling.scripting.api.*;resolution:=optional,*
+ </Import-Package>
<Export-Package>
org.apache.sling.jcr.resource;version=${pom.version}
</Export-Package>
@@ -115,6 +118,12 @@
<version>2.0.8</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.scripting.api</artifactId>
+ <version>2.0.3-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
@@ -173,7 +182,7 @@
<version>1.6.0</version>
<scope>provided</scope>
</dependency>
-
+
<!-- Testing -->
<dependency>
<groupId>org.apache.sling</groupId>
Added: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/scripting/CurrentNodeBindingsValuesProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/scripting/CurrentNodeBindingsValuesProvider.java?rev=902967&view=auto
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/scripting/CurrentNodeBindingsValuesProvider.java (added)
+++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/scripting/CurrentNodeBindingsValuesProvider.java Mon Jan 25 20:34:23 2010
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.sling.jcr.resource.internal.scripting;
+
+import javax.jcr.Node;
+import javax.script.Bindings;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.scripting.api.BindingsValuesProvider;
+
+/**
+ * BindingsValuesProvider for currentNode object.
+ *
+ * @scr.component immediate="true" metatype="no"
+ * @scr.service
+ *
+ * @scr.property name="service.description" value="CurrentNode BindingsValuesProvider"
+ * @scr.property name="service.vendor" value="The Apache Software Foundation"
+ */
+public class CurrentNodeBindingsValuesProvider implements BindingsValuesProvider {
+
+ /**
+ * {@inheritDoc}
+ */
+ public void addBindings(Bindings bindings) {
+ Resource resource = (Resource) bindings.get("resource");
+ Node node = resource.adaptTo(Node.class);
+ if (node != null) {
+ bindings.put("currentNode", node);
+ }
+
+ }
+
+}
Modified: sling/trunk/bundles/scripting/core/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/core/pom.xml?rev=902967&r1=902966&r2=902967&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/core/pom.xml (original)
+++ sling/trunk/bundles/scripting/core/pom.xml Mon Jan 25 20:34:23 2010
@@ -53,9 +53,6 @@
<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>
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=902967&r1=902966&r2=902967&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 Mon Jan 25 20:34:23 2010
@@ -79,20 +79,6 @@
/** 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";
-
- /** 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>();
@@ -536,14 +522,6 @@
bindings.put(RESPONSE, sling.getResponse());
bindings.put(RESOURCE, sling.getRequest().getResource());
bindings.put(OUT, sling.getResponse().getWriter());
-
- // set the current node if the resource is node based
- if ( JCR_NODE_CLASS != null ) {
- final Object node = sling.getRequest().getResource().adaptTo(JCR_NODE_CLASS);
- if (node != null) {
- bindings.put(NODE, node);
- }
- }
}
Object logObject = slingBindings.get(LOG);