SLING-6173 - HTL compiled scripts need to set the SlingBindings as request attributes on eval
* the SlingBindings are now set as request attributes by compiled HTL scripts
* added unit + integration tests
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1765682 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index d92aafe..b645ff7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -192,11 +192,18 @@
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.models.api</artifactId>
- <version>1.1.0</version>
+ <version>1.2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -207,8 +214,20 @@
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.scripting.sightly.compiler.java</artifactId>
+ <version>1.0.4</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.scripting.sightly</artifactId>
- <version>1.0.2</version>
+ <version>1.0.24</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.osgi</artifactId>
+ <version>2.4.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
diff --git a/src/main/java/org/apache/sling/scripting/sightly/testing/models/RequestModel.java b/src/main/java/org/apache/sling/scripting/sightly/testing/models/RequestModel.java
index be91165..ba4d4e6 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/testing/models/RequestModel.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/testing/models/RequestModel.java
@@ -22,9 +22,11 @@
import javax.inject.Named;
import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.models.annotations.Model;
-import org.apache.sling.models.annotations.Source;
import org.apache.sling.models.annotations.Via;
+import org.apache.sling.models.annotations.injectorspecific.ScriptVariable;
@Model(adaptables = SlingHttpServletRequest.class)
public class RequestModel {
@@ -36,6 +38,10 @@
// get it from request attributes
private String requestArgument;
+ @ScriptVariable
+ private ValueMap properties;
+ private String jcrType;
+
public String getTitle() {
return title != null ? title : "FAILED";
}
@@ -43,4 +49,9 @@
public String getRequestArgument() {
return requestArgument != null ? requestArgument : "FAILED";
}
+
+ public String getJCRType() {
+ return PropertiesUtil.toString(properties.get("jcr:primaryType"), "FAILED");
+ }
+
}
diff --git a/src/main/java/org/apache/sling/scripting/sightly/testing/models/package-info.java b/src/main/java/org/apache/sling/scripting/sightly/testing/models/package-info.java
index cca8945..51fcbdb 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/testing/models/package-info.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/testing/models/package-info.java
@@ -15,7 +15,7 @@
* limitations under the License.
******************************************************************************/
-@Version("1.1.0")
+@Version("1.2.0")
package org.apache.sling.scripting.sightly.testing.models;
import org.osgi.annotation.versioning.Version;
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/use/use.html b/src/main/resources/SLING-INF/apps/sightly/scripts/use/use.html
index 62de9dc..a64f9b6 100644
--- a/src/main/resources/SLING-INF/apps/sightly/scripts/use/use.html
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/use/use.html
@@ -30,6 +30,7 @@
data-sly-use.testEnum="TestEnumHolder">
<div id="reqmodel">${reqmodel.title}</div>
<div id="reqmodel-reqarg">${reqmodel.requestArgument}</div>
+ <div id="reqmodel-bindings">${reqmodel.getJCRType}</div>
<div id="resmodel">${resmodel.title}</div>
<div id="reqadapt">${reqadapt.title}</div>
<div id="resadapt">${resadapt.title}</div>