You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:12:39 UTC

[sling-org-apache-sling-scripting-sightly-testing-content] 01/16: SLING-4704 - Move the Sightly scripting engine artifacts from contrib to bundles

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.scripting.sightly.testing-content-1.0.6
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-testing-content.git

commit dfe5b106fe27b1acced2d74e17d662aa8e825ca2
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Tue May 12 15:39:47 2015 +0000

    SLING-4704 - Move the Sightly scripting engine artifacts from contrib to bundles
    
    * moved Sightly artifacts from contrib to bundles
    * updated SCM info
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/testing-content@1678979 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            | 206 +++++++++++++++++++
 .../testing/adaptable/RequestAdapterUseObject.java |  25 +++
 .../adaptable/ResourceAdapterUseObject.java        |  25 +++
 .../adaptable/impl/RequestAdapterFactory.java      |  60 ++++++
 .../impl/RequestAdapterUseObjectImpl.java          |  35 ++++
 .../adaptable/impl/ResourceAdapterFactory.java     |  58 ++++++
 .../impl/ResourceAdapterUseObjectImpl.java         |  35 ++++
 .../sightly/testing/models/RequestModel.java       |  40 ++++
 .../sightly/testing/models/ResourceModel.java      |  37 ++++
 .../scripts/includedresource/includedresource.html |  20 ++
 .../apps/sightly/scripts/resource/dot.html         |  19 ++
 .../apps/sightly/scripts/resource/resource.html    |  33 +++
 .../scripts/siblingdeps/component/component.html   |  27 +++
 .../scripts/siblingdeps/component/dependency.js    |  23 +++
 .../apps/sightly/scripts/siblingdeps/dependency.js |  23 +++
 .../apps/sightly/scripts/siblingdeps/script.js     |  23 +++
 .../apps/sightly/scripts/template/bad-id.html      |  19 ++
 .../apps/sightly/scripts/template/template.html    |  20 ++
 .../SLING-INF/apps/sightly/scripts/text/text.html  |  20 ++
 .../apps/sightly/scripts/use/ErrorPojo.java        |  38 ++++
 .../apps/sightly/scripts/use/javaerror.html        |  29 +++
 .../SLING-INF/apps/sightly/scripts/use/jsuse.html  |  32 +++
 .../SLING-INF/apps/sightly/scripts/use/jsuse.js    |  26 +++
 .../SLING-INF/apps/sightly/scripts/use/use.html    |  32 +++
 .../apps/sightly/scripts/useinheritance.json       |  14 ++
 .../sightly/scripts/useinheritance/child/S.java    |  23 +++
 .../sightly/scripts/useinheritance/child/s.ecma    |   1 +
 .../apps/sightly/scripts/useinheritance/child/s.js |  23 +++
 .../scripts/useinheritance/child/templates.html    |  19 ++
 .../scripts/useinheritance/grandparent/S.java      |  23 +++
 .../useinheritance/grandparent/grandparent.html    |  30 +++
 .../scripts/useinheritance/grandparent/s.ecma      |   1 +
 .../scripts/useinheritance/grandparent/s.js        |  23 +++
 .../useinheritance/grandparent/templates.html      |  19 ++
 .../sightly/scripts/useinheritance/parent/S.java   |  23 +++
 .../sightly/scripts/useinheritance/parent/s.ecma   |   1 +
 .../sightly/scripts/useinheritance/parent/s.js     |  23 +++
 .../scripts/useinheritance/parent/templates.html   |  19 ++
 .../SLING-INF/apps/sightlyperf/loop/loop.jsp       |  25 +++
 .../SLING-INF/apps/sightlyperf/test/Test.java      |  95 +++++++++
 .../SLING-INF/apps/sightlyperf/test/jsp-el.jsp     |  35 ++++
 .../SLING-INF/apps/sightlyperf/test/mode.jsp       |  19 ++
 .../SLING-INF/apps/sightlyperf/test/sly-java.html  |  27 +++
 .../SLING-INF/apps/sightlyperf/test/sly-js.html    |  27 +++
 .../SLING-INF/apps/sightlyperf/test/test.js        |  34 +++
 .../SLING-INF/apps/sightlyperf/test/test.jsp       |  59 ++++++
 .../SLING-INF/apps/sightlytck/install.json         |  11 +
 .../SLING-INF/apps/sightlytck/locales/de.json      |  21 ++
 src/main/resources/SLING-INF/sightly.json          |  32 +++
 src/main/resources/SLING-INF/sightlyperf.json      | 227 +++++++++++++++++++++
 src/main/resources/SLING-INF/sightlytck.json       | 100 +++++++++
 51 files changed, 1859 insertions(+)

diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..be05001
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <!-- ======================================================================= -->
+    <!-- P A R E N T   P R O J E C T                                             -->
+    <!-- ======================================================================= -->
+    <parent>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling</artifactId>
+        <version>22</version>
+        <relativePath />
+    </parent>
+
+    <!-- ======================================================================= -->
+    <!-- P R O J E C T                                                           -->
+    <!-- ======================================================================= -->
+    <artifactId>org.apache.sling.scripting.sightly.testing-content</artifactId>
+    <version>1.0.5-SNAPSHOT</version>
+    <packaging>bundle</packaging>
+
+    <name>Apache Sling Scripting Sightly Integration Tests Content</name>
+
+    <description>
+        This bundle contains:
+            - Content adapted from the Adobe Sightly TCK meant to test the org.apache.sling.scripting.sightly implementations.
+            - Content meant to test performance of the org.apache.sling.scripting.sightly implementation.
+    </description>
+
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/testing-content</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/testing-content</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/testing-content</url>
+    </scm>
+
+    <properties>
+        <sling.java.version>6</sling.java.version>
+    </properties>
+
+
+    <!-- ======================================================================= -->
+    <!-- B U I L D                                                               -->
+    <!-- ======================================================================= -->
+    <build>
+        <resources>
+            <resource>
+                <directory>${basedir}/src/main/resources</directory>
+            </resource>
+            <resource>
+                <directory>${project.build.outputDirectory}/SLING-INF/sightlytck</directory>
+                <targetPath>SLING-INF/sightlytck</targetPath>
+            </resource>
+        </resources>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <!-- Extend RAT configuration from parent pom -->
+                    <groupId>org.apache.rat</groupId>
+                    <artifactId>apache-rat-plugin</artifactId>
+                    <configuration>
+                        <excludes combine.children="append">
+                            <exclude>src/main/resources/SLING-INF/**/*.json</exclude>
+                            <exclude>src/main/resources/SLING-INF/**/*.ecma</exclude>
+                        </excludes>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>unpack</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>unpack</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>io.sightly</groupId>
+                                    <artifactId>io.sightly.tck</artifactId>
+                                    <version>1.1.2</version>
+                                    <type>jar</type>
+                                    <outputDirectory>${project.build.directory}/sightlytck/</outputDirectory>
+                                    <includes>**/*.html,**/*.js,**/*.java</includes>
+                                </artifactItem>
+                            </artifactItems>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>2.7</version>
+                <executions>
+                    <execution>
+                        <id>copy-resources</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.outputDirectory}/SLING-INF/sightlytck/scripts</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>${project.build.directory}/sightlytck/testfiles/scripts/</directory>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Sling-Initial-Content>SLING-INF;overwrite=true</Sling-Initial-Content>
+                        <Sling-Model-Packages>org.apache.sling.scripting.sightly.testing.models</Sling-Model-Packages>
+                        <Require-Capability>io.sightly; filter:="(&amp;(version&gt;=1.0)(!(version&gt;=2.0)))"</Require-Capability>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>maven-sling-plugin</artifactId>
+                <configuration>
+                    <failOnError>true</failOnError>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jslint-maven-plugin</artifactId>
+                <version>1.0.1</version>
+                <configuration>
+                    <sourceJsFolder>${basedir}/src/main/resources/SLING-INF</sourceJsFolder>
+                    <includes>
+                        <include>**/*.json</include>
+                    </includes>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>jslint</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-scr-plugin</artifactId>
+                <dependencies>
+                    <dependency>
+                        <groupId>javax.jcr</groupId>
+                        <artifactId>jcr</artifactId>
+                        <version>2.0</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <!-- Test bundle dependencies -->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.models.api</artifactId>
+            <version>1.1.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.api</artifactId>
+            <version>2.1.0</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/RequestAdapterUseObject.java b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/RequestAdapterUseObject.java
new file mode 100644
index 0000000..24733ff
--- /dev/null
+++ b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/RequestAdapterUseObject.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * 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.scripting.sightly.testing.adaptable;
+
+public interface RequestAdapterUseObject {
+
+    public String getTitle();
+
+}
diff --git a/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/ResourceAdapterUseObject.java b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/ResourceAdapterUseObject.java
new file mode 100644
index 0000000..dc8b88b
--- /dev/null
+++ b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/ResourceAdapterUseObject.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * 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.scripting.sightly.testing.adaptable;
+
+public interface ResourceAdapterUseObject {
+
+    public String getTitle();
+
+}
diff --git a/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/RequestAdapterFactory.java b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/RequestAdapterFactory.java
new file mode 100644
index 0000000..e1bcf72
--- /dev/null
+++ b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/RequestAdapterFactory.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * 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.scripting.sightly.testing.adaptable.impl;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.adapter.AdapterFactory;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.scripting.sightly.testing.adaptable.RequestAdapterUseObject;
+
+@Component
+@Service
+@Properties({
+        @Property(
+                name = AdapterFactory.ADAPTABLE_CLASSES,
+                value = {
+                        "org.apache.sling.api.SlingHttpServletRequest"
+                }
+        ),
+        @Property(
+                name = AdapterFactory.ADAPTER_CLASSES,
+                value = {
+                        "org.apache.sling.scripting.sightly.testing.adaptable.RequestAdapterUseObject"
+                }
+        )
+})
+public class RequestAdapterFactory implements AdapterFactory {
+
+    @Override
+    public <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type) {
+        if (type == RequestAdapterUseObject.class && adaptable instanceof SlingHttpServletRequest) {
+            SlingHttpServletRequest request = (SlingHttpServletRequest) adaptable;
+            Resource resource = request.getResource();
+            ValueMap properties = resource.adaptTo(ValueMap.class);
+            String title = (String) properties.get("jcr:title");
+            return (AdapterType) new RequestAdapterUseObjectImpl(title);
+        }
+        return null;
+    }
+}
diff --git a/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/RequestAdapterUseObjectImpl.java b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/RequestAdapterUseObjectImpl.java
new file mode 100644
index 0000000..c7997e2
--- /dev/null
+++ b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/RequestAdapterUseObjectImpl.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * 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.scripting.sightly.testing.adaptable.impl;
+
+import org.apache.sling.scripting.sightly.testing.adaptable.RequestAdapterUseObject;
+
+public class RequestAdapterUseObjectImpl implements RequestAdapterUseObject {
+
+    private String title;
+
+    public RequestAdapterUseObjectImpl(String title) {
+        this.title = title;
+    }
+
+    @Override
+    public String getTitle() {
+        return title != null ? title : "FAILED";
+    }
+}
diff --git a/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/ResourceAdapterFactory.java b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/ResourceAdapterFactory.java
new file mode 100644
index 0000000..671ac71
--- /dev/null
+++ b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/ResourceAdapterFactory.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * 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.scripting.sightly.testing.adaptable.impl;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.api.adapter.AdapterFactory;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.scripting.sightly.testing.adaptable.ResourceAdapterUseObject;
+
+@Component
+@Service
+@Properties({
+        @Property(
+                name = AdapterFactory.ADAPTABLE_CLASSES,
+                value = {
+                        "org.apache.sling.api.resource.Resource"
+                }
+        ),
+        @Property(
+                name = AdapterFactory.ADAPTER_CLASSES,
+                value = {
+                        "org.apache.sling.scripting.sightly.testing.adaptable.ResourceAdapterUseObject"
+                }
+        )
+})
+public class ResourceAdapterFactory implements AdapterFactory {
+
+    @Override
+    public <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type) {
+        if (type == ResourceAdapterUseObject.class && adaptable instanceof Resource) {
+            Resource resource = (Resource) adaptable;
+            ValueMap properties = resource.adaptTo(ValueMap.class);
+            String title = (String) properties.get("jcr:title");
+            return (AdapterType) new ResourceAdapterUseObjectImpl(title);
+        }
+        return null;
+    }
+}
diff --git a/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/ResourceAdapterUseObjectImpl.java b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/ResourceAdapterUseObjectImpl.java
new file mode 100644
index 0000000..2c3a8ad
--- /dev/null
+++ b/src/main/java/org/apache/sling/scripting/sightly/testing/adaptable/impl/ResourceAdapterUseObjectImpl.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * 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.scripting.sightly.testing.adaptable.impl;
+
+import org.apache.sling.scripting.sightly.testing.adaptable.ResourceAdapterUseObject;
+
+public class ResourceAdapterUseObjectImpl implements ResourceAdapterUseObject {
+
+    private String title;
+
+    public ResourceAdapterUseObjectImpl(String title) {
+        this.title = title;
+    }
+
+    @Override
+    public String getTitle() {
+        return title != null ? title : "FAILED";
+    }
+}
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
new file mode 100644
index 0000000..2237edb
--- /dev/null
+++ b/src/main/java/org/apache/sling/scripting/sightly/testing/models/RequestModel.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * 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.scripting.sightly.testing.models;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.models.annotations.Model;
+import org.apache.sling.models.annotations.Via;
+
+@Model(adaptables = SlingHttpServletRequest.class)
+public class RequestModel {
+
+    @Inject
+    @Via("resource")
+    @Named("jcr:title")
+    private String title;
+
+    public String getTitle() {
+        return title != null ? title : "FAILED";
+    }
+
+}
diff --git a/src/main/java/org/apache/sling/scripting/sightly/testing/models/ResourceModel.java b/src/main/java/org/apache/sling/scripting/sightly/testing/models/ResourceModel.java
new file mode 100644
index 0000000..bb5ff94
--- /dev/null
+++ b/src/main/java/org/apache/sling/scripting/sightly/testing/models/ResourceModel.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * 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.scripting.sightly.testing.models;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.models.annotations.Model;
+
+@Model(adaptables = Resource.class)
+public class ResourceModel {
+
+    @Inject
+    @Named("jcr:title")
+    private String title;
+
+    public String getTitle() {
+        return title != null ? title : "FAILED";
+    }
+}
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/includedresource/includedresource.html b/src/main/resources/SLING-INF/apps/sightly/scripts/includedresource/includedresource.html
new file mode 100644
index 0000000..023dd40
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/includedresource/includedresource.html
@@ -0,0 +1,20 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<span class="path">path: ${resource.path}</span><br>
+<span class="selectors">selectors: ${request.requestPathInfo.selectorString}</span>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/resource/dot.html b/src/main/resources/SLING-INF/apps/sightly/scripts/resource/dot.html
new file mode 100644
index 0000000..a95bbd2
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/resource/dot.html
@@ -0,0 +1,19 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<div id="dot">It works</div>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/resource/resource.html b/src/main/resources/SLING-INF/apps/sightly/scripts/resource/resource.html
new file mode 100644
index 0000000..40c5224
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/resource/resource.html
@@ -0,0 +1,33 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Sightly data-sly-resource - Sling implementation</title>
+</head>
+<body>
+<div id="selectors" data-sly-resource="${'/sightly/includedresource' @ selectors=['a', 'b']}"></div>
+<div id="selectors-remove-c" data-sly-resource="${'/sightly/includedresource.a.b.c.html' @ selectors=['a', 'b']}"></div>
+<div id="removeselectors-remove-b" data-sly-resource="${'/sightly/includedresource.a.b.c.html' @ removeSelectors=['b']}"></div>
+<div id="addselectors" data-sly-resource="${'/sightly/includedresource' @ addSelectors=['a', 'b', 'c']}"></div>
+<div id="dot-include" data-sly-resource="${ '.' @ selectors='dot'}"></div>
+<div id="extension-selectors" data-sly-resource="${'/sightly/text.a.b.txt'}"></div>
+<div id="extension-replaceselectors" data-sly-resource="${'/sightly/text.a.b.txt' @ selectors=['c']}"></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/component/component.html b/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/component/component.html
new file mode 100644
index 0000000..9bfb90f
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/component/component.html
@@ -0,0 +1,27 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<!doctype html>
+<html>
+    <head>
+        <title>Sightly JS Use-API dependency resolution</title>
+    </head>
+    <body>
+        <div id="js-rep-res" data-sly-use.js="/apps/sightly/scripts/siblingdeps/script.js">${js.result}</div>
+    </body>
+</html>
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/component/dependency.js b/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/component/dependency.js
new file mode 100644
index 0000000..e887399
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/component/dependency.js
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+use(function () {
+    return {
+        result: '/apps/sightly/scripts/siblingdeps/component/dependency.js'
+    }
+});
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/dependency.js b/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/dependency.js
new file mode 100644
index 0000000..7e1510b
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/dependency.js
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+use(function () {
+    return {
+        result: '/apps/sightly/scripts/siblingdeps/dependency.js'
+    }
+});
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/script.js b/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/script.js
new file mode 100644
index 0000000..f396934
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/siblingdeps/script.js
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+use('dependency.js', function (dep) {
+    return {
+        result: dep.result
+    };
+});
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/template/bad-id.html b/src/main/resources/SLING-INF/apps/sightly/scripts/template/bad-id.html
new file mode 100644
index 0000000..4fbfd11
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/template/bad-id.html
@@ -0,0 +1,19 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<template data-sly-template.bad-template-id=" @ ">should produce parsing exception</template>
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/template/template.html b/src/main/resources/SLING-INF/apps/sightly/scripts/template/template.html
new file mode 100644
index 0000000..5269cef
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/template/template.html
@@ -0,0 +1,20 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<template data-sly-template.templ=" @ ">SUCCESS</template>
+<div id="template" data-sly-call="${templ}"></div>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/text/text.html b/src/main/resources/SLING-INF/apps/sightly/scripts/text/text.html
new file mode 100644
index 0000000..023dd40
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/text/text.html
@@ -0,0 +1,20 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<span class="path">path: ${resource.path}</span><br>
+<span class="selectors">selectors: ${request.requestPathInfo.selectorString}</span>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/use/ErrorPojo.java b/src/main/resources/SLING-INF/apps/sightly/scripts/use/ErrorPojo.java
new file mode 100644
index 0000000..cc7a48b
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/use/ErrorPojo.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * 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 apps.sightly.scripts.use;
+
+import javax.script.Bindings;
+
+import org.apache.sling.scripting.sightly.pojo.Use;
+
+public class ErrorPojo implements Use {
+
+    @Override
+    public void init(Bindings bindings) {
+        Object o = null;
+        // throw a silly NPE
+        o.toString();
+    }
+
+    public String sayHello() {
+        return "hello";
+    }
+
+}
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/use/javaerror.html b/src/main/resources/SLING-INF/apps/sightly/scripts/use/javaerror.html
new file mode 100644
index 0000000..404ab6e
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/use/javaerror.html
@@ -0,0 +1,29 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<!doctype html>
+<html>
+    <head>
+        <title>Sightly Use-API - Sling implementation :: Java Use object errors</title>
+    </head>
+    <body>
+        <div data-sly-use.pojo="apps.sightly.scripts.use.ErrorPojo">
+            ${pojo.sayHello}
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/use/jsuse.html b/src/main/resources/SLING-INF/apps/sightly/scripts/use/jsuse.html
new file mode 100644
index 0000000..62a16f9
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/use/jsuse.html
@@ -0,0 +1,32 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Sightly JavaScript Use-API - Sling implementation</title>
+    </head>
+    <body>
+        <section data-sly-use.jsuse="jsuse.js">
+            <div id="resource-name">${jsuse.resourceName}</div>
+            <div id="resource-getName">${jsuse.resourceGetName}</div>
+            <div id="resource-resourceType">${jsuse.resourceResourceType}</div>
+            <div id="resource-getResourceType">${jsuse.resourceGetResourceType}</div>
+        </section>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/use/jsuse.js b/src/main/resources/SLING-INF/apps/sightly/scripts/use/jsuse.js
new file mode 100644
index 0000000..1cd9611
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/use/jsuse.js
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+use(function () {
+    return {
+        resourceName: sightly.resource.name,
+        resourceGetName: sightly.resource.getName(),
+        resourceResourceType: sightly.resource.resourceType,
+        resourceGetResourceType: sightly.resource.getResourceType()
+    };
+});
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
new file mode 100644
index 0000000..6efc1d8
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/use/use.html
@@ -0,0 +1,32 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Sightly Use-API - Sling implementation</title>
+    </head>
+    <body>
+        <div id="reqmodel" data-sly-use.reqmodel="org.apache.sling.scripting.sightly.testing.models.RequestModel">${reqmodel.title}</div>
+        <div id="resmodel" data-sly-use.resmodel="org.apache.sling.scripting.sightly.testing.models.ResourceModel">${resmodel.title}</div>
+        <div id="reqadapt"
+             data-sly-use.reqadapt="org.apache.sling.scripting.sightly.testing.adaptable.RequestAdapterUseObject">${reqadapt.title}</div>
+        <div id="resadapt"
+             data-sly-use.resadapt="org.apache.sling.scripting.sightly.testing.adaptable.ResourceAdapterUseObject">${resadapt.title}</div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance.json b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance.json
new file mode 100644
index 0000000..cf20608
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance.json
@@ -0,0 +1,14 @@
+{
+    "jcr:primaryType": "sling:Folder",
+    "grandparent": {
+        "jcr:primaryType": "sling:Folder"
+    },
+    "parent": {
+        "jcr:primaryType": "sling:Folder",
+        "sling:resourceSuperType": "/apps/sightly/scripts/useinheritance/grandparent"
+    },
+    "child": {
+        "jcr:primaryType": "sling:Folder",
+        "sling:resourceSuperType": "sightly/scripts/useinheritance/parent"
+    }
+}
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/S.java b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/S.java
new file mode 100644
index 0000000..c499920
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/S.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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 apps.sightly.scripts.useinheritance.child;
+
+public class S {
+    public static final String message = "child.javaobject";
+}
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/s.ecma b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/s.ecma
new file mode 100644
index 0000000..0b943e6
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/s.ecma
@@ -0,0 +1 @@
+"child.ecmaobject";
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/s.js b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/s.js
new file mode 100644
index 0000000..772b103
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/s.js
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+use(function () {
+    return {
+        message : 'child.javascriptobject'
+    };
+});
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/templates.html b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/templates.html
new file mode 100644
index 0000000..73c5d4a
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/child/templates.html
@@ -0,0 +1,19 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<template data-sly-template.template>child.template</template>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/S.java b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/S.java
new file mode 100644
index 0000000..aa99182
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/S.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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 apps.sightly.scripts.useinheritance.grandparent;
+
+public class S {
+    public static final String message = "grandparent.javaobject";
+}
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/grandparent.html b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/grandparent.html
new file mode 100644
index 0000000..eb7c834
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/grandparent.html
@@ -0,0 +1,30 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Sightly Use-API - Inheritance</title>
+</head>
+<body>
+  <div id="javaobj" data-sly-use.javaobj="S">${javaobj.message}</div>
+  <div id="javascriptobj" data-sly-use.javascriptobj="s.js">${javascriptobj.message}</div>
+  <div id="ecmaobj" data-sly-use.ecmaobj="s.ecma">${ecmaobj}</div>
+  <div id="templateobj" data-sly-use.templateobj="templates.html" data-sly-call="${templateobj.template}"></div>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/s.ecma b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/s.ecma
new file mode 100644
index 0000000..fb168e2
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/s.ecma
@@ -0,0 +1 @@
+"grandparent.ecmaobject";
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/s.js b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/s.js
new file mode 100644
index 0000000..988c6b8
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/s.js
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+use(function () {
+    return {
+        message : 'grandparent.javascriptobject'
+    };
+});
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/templates.html b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/templates.html
new file mode 100644
index 0000000..4eba99f
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/grandparent/templates.html
@@ -0,0 +1,19 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<template data-sly-template.template>grandparent.template</template>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/S.java b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/S.java
new file mode 100644
index 0000000..cd95b3e
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/S.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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 apps.sightly.scripts.useinheritance.parent;
+
+public class S {
+    public static final String message = "parent.javaobject";
+}
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/s.ecma b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/s.ecma
new file mode 100644
index 0000000..5b90afe
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/s.ecma
@@ -0,0 +1 @@
+"parent.ecmaobject";
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/s.js b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/s.js
new file mode 100644
index 0000000..8170aba
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/s.js
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+use(function () {
+    return {
+        message : 'parent.javascriptobject'
+    };
+});
diff --git a/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/templates.html b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/templates.html
new file mode 100644
index 0000000..6850c64
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightly/scripts/useinheritance/parent/templates.html
@@ -0,0 +1,19 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<template data-sly-template.template>parent.template</template>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightlyperf/loop/loop.jsp b/src/main/resources/SLING-INF/apps/sightlyperf/loop/loop.jsp
new file mode 100644
index 0000000..de960bf
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightlyperf/loop/loop.jsp
@@ -0,0 +1,25 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@ taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling"%>
+<%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%>
+<p>selector: ${param.selector} [<strong>jsp</strong>, jsp-el, sly-java, sly-js]</p>
+<p>count: ${param.count} [1 - 20, <strong>20</strong>]</p>
+<c:forEach begin="1" end="${empty param.count || param.count < 1 || param.count > 20 ? 20 : param.count}">
+    <sling:include path="/sightlyperf/test" replaceSelectors="${param.selector == 'sly-java' || param.selector == 'sly-js' || param.selector == 'jsp-el'  ? param.selector : 'jsp'}" />
+</c:forEach>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightlyperf/test/Test.java b/src/main/resources/SLING-INF/apps/sightlyperf/test/Test.java
new file mode 100644
index 0000000..7929a30
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightlyperf/test/Test.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * 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 apps.sightlyperf.test;
+
+import java.util.Iterator;
+
+import javax.script.Bindings;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.scripting.sightly.pojo.Use;
+
+public class Test implements Use {
+
+    private String text = null;
+
+    private String tag = null;
+
+    private boolean includeChildren = false;
+
+    private Iterator<Resource> children = null;
+
+    public void init(Bindings bindings) {
+        Resource resource = (Resource)bindings.get("resource");
+        ValueMap properties = (ValueMap)bindings.get("properties");
+
+        if (properties != null) {
+            Object text = properties.get("text");
+            if (text != null) {
+                this.text = text.toString();
+            }
+
+            Object tag = properties.get("tag");
+            if (tag != null) {
+                this.tag = tag.toString();
+            }
+
+            Object includeChildren = properties.get("includeChildren");
+            if (includeChildren != null) {
+                this.includeChildren = Boolean.parseBoolean(includeChildren.toString());
+                this.children = resource.listChildren();
+            }
+        }
+
+        if (this.text == null) {
+            this.text = resource.getPath();
+        }
+    }
+
+    public String getText() {
+        return this.text;
+    }
+
+    public String getTag() {
+        return tag;
+    }
+
+    public String getStartTag() {
+        if (tag == null) {
+            return null;
+        }
+        return "<" + tag + ">";
+    }
+
+    public String getEndTag() {
+        if (tag == null) {
+            return null;
+        }
+        return "</" + tag + ">";
+    }
+
+    public boolean getIncludeChildren() {
+        return includeChildren;
+    }
+
+    public Iterator<Resource> getChildren() {
+        return this.children;
+    }
+}
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightlyperf/test/jsp-el.jsp b/src/main/resources/SLING-INF/apps/sightlyperf/test/jsp-el.jsp
new file mode 100644
index 0000000..cd00709
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightlyperf/test/jsp-el.jsp
@@ -0,0 +1,35 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@ taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling"%>
+<%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%>
+<sling:defineObjects />
+<c:set var="properties" value="${sling:adaptTo(resource,'org.apache.sling.api.resource.ValueMap')}" />
+<c:set var="tag" value="${sling:getValue(properties, 'tag', '')}" />
+<c:if test="${tag != ''}"><${tag}></c:if>
+${sling:encode(sling:getValue(properties, 'text', resource.path), 'HTML')}
+<c:if test="${tag != ''}"></${tag}></c:if>
+<sling:call script="mode.jsp" />
+<c:if test="${sling:getValue(properties, 'includeChildren', false)}">
+    <ul>
+        <c:forEach items="${sling:listChildren(resource)}" var="child">
+            <li><sling:include path="${child.path}" /></li>
+        </c:forEach>
+    </ul>
+</c:if>
diff --git a/src/main/resources/SLING-INF/apps/sightlyperf/test/mode.jsp b/src/main/resources/SLING-INF/apps/sightlyperf/test/mode.jsp
new file mode 100644
index 0000000..2c039d0
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightlyperf/test/mode.jsp
@@ -0,0 +1,19 @@
+<%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%>
+<!-- <%="comment"%> -->
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightlyperf/test/sly-java.html b/src/main/resources/SLING-INF/apps/sightlyperf/test/sly-java.html
new file mode 100644
index 0000000..ad14853
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightlyperf/test/sly-java.html
@@ -0,0 +1,27 @@
+<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/-->
+<div data-sly-use.test="apps.sightlyperf.test.Test" data-sly-unwrap>
+    ${test.tag != null ? test.startTag : '' @ context = "unsafe"}
+    ${test.text @ context = "text"}
+    ${test.tag != null ? test.endTag : '' @ context = "unsafe"}
+    <div data-sly-include="mode.jsp" data-sly-unwrap=""></div>
+    <ul data-sly-test="${test.includeChildren}" data-sly-list.child="${test.children}">
+        <li data-sly-resource="${child.path}"></li>
+    </ul>
+</div>
diff --git a/src/main/resources/SLING-INF/apps/sightlyperf/test/sly-js.html b/src/main/resources/SLING-INF/apps/sightlyperf/test/sly-js.html
new file mode 100644
index 0000000..e13115f
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightlyperf/test/sly-js.html
@@ -0,0 +1,27 @@
+<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/-->
+<div data-sly-use.test="test.js" data-sly-unwrap>
+    ${test.tag != null ? test.startTag : '' @ context = "unsafe"}
+    ${test.text @ context = "text"}
+    ${test.tag != null ? test.endTag : '' @ context = "unsafe"}
+    <div data-sly-include="mode.jsp" data-sly-unwrap=""></div>
+    <ul data-sly-test="${test.includeChildren}" data-sly-list.child="${test.children}">
+        <li data-sly-resource="${child.path}"></li>
+    </ul>
+</div>
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightlyperf/test/test.js b/src/main/resources/SLING-INF/apps/sightlyperf/test/test.js
new file mode 100644
index 0000000..d7217cc
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightlyperf/test/test.js
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * 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.
+ ******************************************************************************/
+use(function () {
+    var test = {};
+
+    test.text = properties.get('text') ||  resource.getPath();
+    test.tag = properties.get('tag') || null;
+    if (test.tag != null) {
+        test.startTag = '<' + test.tag + '>';
+        test.endTag = '</' + test.tag + '>';
+    }
+    test.includeChildren = properties.get('includeChildren') || false;
+    if (test.includeChildren) {
+        test.children = sightly.resource.getChildren();
+    }
+
+    return test;
+});
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/apps/sightlyperf/test/test.jsp b/src/main/resources/SLING-INF/apps/sightlyperf/test/test.jsp
new file mode 100644
index 0000000..d9bc147
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightlyperf/test/test.jsp
@@ -0,0 +1,59 @@
+<%@ page import="org.apache.sling.api.resource.Resource" %>
+<%@ page import="org.apache.sling.api.resource.ValueMap" %>
+<%@ page import="org.apache.sling.xss.XSSAPI" %>
+<%@ page import="java.util.Iterator" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@ taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling"%>
+<%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%>
+<sling:defineObjects />
+<%
+    ValueMap properties = resource.adaptTo(ValueMap.class);
+
+    String tag = properties.get("tag", null);
+    if (tag != null) {
+        out.println("<" + tag + ">");
+    }
+    XSSAPI xssAPI = sling.getService(XSSAPI.class);
+    out.println(xssAPI.encodeForHTML(properties.get("text", resource.getPath()).toString()));
+    if (tag != null) {
+        out.println("</" + tag + ">");
+    }
+
+%>
+    <sling:call script="mode.jsp" />
+<%
+
+    if (properties.get("includeChildren", false)) {
+        Iterator<Resource> iter = resource.listChildren();
+%>
+<ul>
+<%
+        while(iter.hasNext()) {
+            Resource child = iter.next();
+%>
+            <li><sling:include path="<%=child.getPath()%>" /></li>
+<%
+        }
+%>
+</ul>
+<%
+    }
+%>
diff --git a/src/main/resources/SLING-INF/apps/sightlytck/install.json b/src/main/resources/SLING-INF/apps/sightlytck/install.json
new file mode 100644
index 0000000..0876b82
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightlytck/install.json
@@ -0,0 +1,11 @@
+{
+    "jcr:primaryType" : "sling:Folder",
+    "org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl" : {
+        "jcr:primaryType" : "sling:OsgiConfig",
+        "resource.resolver.searchpath" : [
+            "/apps",
+            "/libs",
+            "/sightlytck/scripts"
+        ]
+    }
+}
diff --git a/src/main/resources/SLING-INF/apps/sightlytck/locales/de.json b/src/main/resources/SLING-INF/apps/sightlytck/locales/de.json
new file mode 100644
index 0000000..e26b648
--- /dev/null
+++ b/src/main/resources/SLING-INF/apps/sightlytck/locales/de.json
@@ -0,0 +1,21 @@
+{
+    "jcr:primaryType" : "nt:unstructured",
+    "jcr:mixinTypes" : ["mix:language"],
+    "jcr:language" : "de",
+    "hello" : {
+        "jcr:primaryType" : "sling:MessageEntry",
+        "sling:key" : "hello",
+        "sling:message" : "Hallo"
+    },
+    "hello_some_hint" : {
+        "jcr:primaryType" : "sling:MessageEntry",
+        "sling:key" : "hello ((some-hint))",
+        "sling:message" : "Hallo mit einem Hauch"
+    },
+    "world" : {
+        "jcr:primaryType" : "sling:MessageEntry",
+        "sling:key" : "world",
+        "sling:message" : "Welt"
+    }
+
+}
diff --git a/src/main/resources/SLING-INF/sightly.json b/src/main/resources/SLING-INF/sightly.json
new file mode 100644
index 0000000..040d487
--- /dev/null
+++ b/src/main/resources/SLING-INF/sightly.json
@@ -0,0 +1,32 @@
+{
+    "jcr:primaryType": "sling:Folder",
+    "use": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "/apps/sightly/scripts/use",
+        "jcr:title": "SUCCESS"
+    },
+    "resource": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "/apps/sightly/scripts/resource"
+    },
+    "includedresource": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "/apps/sightly/scripts/includedresource"
+    },
+    "template": {
+      "jcr:primaryType": "nt:unstructured",
+      "sling:resourceType": "/apps/sightly/scripts/template"
+    },
+    "text.txt": {
+      "jcr:primaryType": "nt:unstructured",
+      "sling:resourceType": "/apps/sightly/scripts/text"
+    },
+    "useinheritance": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "/apps/sightly/scripts/useinheritance/child"
+    },
+    "use-sibling-dependency-resolution": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "/apps/sightly/scripts/siblingdeps/component"
+    }
+}
diff --git a/src/main/resources/SLING-INF/sightlyperf.json b/src/main/resources/SLING-INF/sightlyperf.json
new file mode 100644
index 0000000..59cbae9
--- /dev/null
+++ b/src/main/resources/SLING-INF/sightlyperf.json
@@ -0,0 +1,227 @@
+{
+    "jcr:primaryType": "sling:Folder",
+    "test" : {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "/apps/sightlyperf/test",
+        "text": "<page>",
+        "tag": "b",
+        "includeChildren": "true",
+        "head": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/apps/sightlyperf/test",
+            "text": "<head>",
+            "includeChildren": "true",
+            "title": {
+                "jcr:primaryType": "nt:unstructured",
+                "sling:resourceType": "/apps/sightlyperf/test",
+                "text": "<title>"
+            },
+            "style": {
+                "jcr:primaryType": "nt:unstructured",
+                "sling:resourceType": "/apps/sightlyperf/test",
+                "text": "<style>"
+            }
+        },
+        "body": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/apps/sightlyperf/test",
+            "text": "<body>",
+            "includeChildren": "true",
+            "topnav": {
+                "jcr:primaryType": "nt:unstructured",
+                "sling:resourceType": "/apps/sightlyperf/test",
+                "text": "<topnav>",
+                "includeChildren": "true",
+                "logo": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "sling:resourceType": "/apps/sightlyperf/test",
+                    "text": "<logo>"
+                },
+                "menu": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "sling:resourceType": "/apps/sightlyperf/test",
+                    "text": "<menu>",
+                    "includeChildren": "true",
+                    "home": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<home>"
+                    },
+                    "products": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<products>"
+                    },
+                    "services": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<services>"
+                    },
+                    "about": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<about>"
+                    },
+                    "contact": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<contact>"
+                    }
+                },
+                "breadcrumbs": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "sling:resourceType": "/apps/sightlyperf/test",
+                    "text": "<breadcrumbs>",
+                    "includeChildren": "true",
+                    "home": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<home>"
+                    },
+                    "products": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<products>"
+                    },
+                    "productPage": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<productPage>"
+                    }
+                }
+            },
+            "main": {
+                "jcr:primaryType": "nt:unstructured",
+                "sling:resourceType": "/apps/sightlyperf/test",
+                "text": "<main>",
+                "includeChildren": "true",
+                "sidebar": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "sling:resourceType": "/apps/sightlyperf/test",
+                    "text": "<sidebar>",
+                    "includeChildren": "true",
+                    "title": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<title>"
+                    },
+                    "links": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<links>",
+                        "includeChildren": "true",
+                        "home": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "sling:resourceType": "/apps/sightlyperf/test",
+                            "text": "<home>"
+                        },
+                        "products": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "sling:resourceType": "/apps/sightlyperf/test",
+                            "text": "<products>"
+                        },
+                        "services": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "sling:resourceType": "/apps/sightlyperf/test",
+                            "text": "<services>"
+                        },
+                        "about": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "sling:resourceType": "/apps/sightlyperf/test",
+                            "text": "<about>"
+                        },
+                        "contact": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "sling:resourceType": "/apps/sightlyperf/test",
+                            "text": "<contact>"
+                        }
+                    }
+                },
+                "content": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "sling:resourceType": "/apps/sightlyperf/test",
+                    "text": "<content>",
+                    "includeChildren": "true",
+                    "carousel": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<carousel>",
+                        "tag": "blink",
+                        "includeChildren": "true",
+                        "image": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "sling:resourceType": "/apps/sightlyperf/test",
+                            "text": "<image>"
+                        },
+                        "video": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "sling:resourceType": "/apps/sightlyperf/test",
+                            "text": "<video>"
+                        }
+                    },
+                    "title": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<title>"
+                    },
+                    "paragraph1": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<paragraph1>"
+                    },
+                    "paragraph2": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<paragraph2>"
+                    },
+                    "paragraph3": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<paragraph3>"
+                    }
+                },
+                "bottomnav": {
+                    "jcr:primaryType": "nt:unstructured",
+                    "sling:resourceType": "/apps/sightlyperf/test",
+                    "text": "<bottomnav>",
+                    "includeChildren": "true",
+                    "links": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<links>",
+                        "includeChildren": "true",
+                        "home": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "sling:resourceType": "/apps/sightlyperf/test",
+                            "text": "<home>"
+                        },
+                        "about": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "sling:resourceType": "/apps/sightlyperf/test",
+                            "text": "<about>"
+                        },
+                        "contact": {
+                            "jcr:primaryType": "nt:unstructured",
+                            "sling:resourceType": "/apps/sightlyperf/test",
+                            "text": "<contact>"
+                        }
+                    },
+                    "copyright": {
+                        "jcr:primaryType": "nt:unstructured",
+                        "sling:resourceType": "/apps/sightlyperf/test",
+                        "text": "<copyright>"
+                    }
+                }
+            }
+        },
+        "foot": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/apps/sightlyperf/test",
+            "text": "<foot>"
+        }
+    },
+    "loop" : {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "/apps/sightlyperf/loop"
+    }
+}
\ No newline at end of file
diff --git a/src/main/resources/SLING-INF/sightlytck.json b/src/main/resources/SLING-INF/sightlytck.json
new file mode 100644
index 0000000..c23dcad
--- /dev/null
+++ b/src/main/resources/SLING-INF/sightlytck.json
@@ -0,0 +1,100 @@
+{
+    "jcr:primaryType": "sling:Folder",
+    "exprlang": {
+        "jcr:primaryType": "sling:Folder",
+        "operators": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/exprlang/operators"
+        },
+        "filters": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/exprlang/filters"
+        },
+        "filteroptions": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/exprlang/filteroptions"
+        },
+        "strings": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/exprlang/strings"
+        },
+        "casing": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/exprlang/casing"
+        },
+        "xss" : {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/exprlang/xss"
+        },
+        "escapedexpr": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/exprlang/escapedexpr"
+        }
+    },
+    "blockstatements": {
+        "jcr:primaryType": "sling:Folder",
+        "list": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/list"
+        },
+        "test": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/test"
+        },
+        "use": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/use"
+        },
+        "unwrap": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/unwrap"
+        },
+        "text": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/text"
+        },
+        "resource": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/resource"
+        },
+        "templatecall": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/templatecall"
+        },
+        "attribute": {
+            "jcr:primartyType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/attribute"
+        },
+        "include": {
+            "jcr:primartyType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/include"
+        },
+        "element": {
+            "jcr:primartyType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/element"
+        },
+        "repeat": {
+            "jcr:primartyType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/blockstatements/repeat"
+        }
+
+    },
+    "tags": {
+        "jcr:primaryType": "sling:Folder",
+        "sly": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/tags/sly"
+        }
+    },
+    "helpers": {
+        "jcr:primaryType": "sling:Folder",
+        "testresource": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/helpers/testresource"
+        },
+        "remotetemplate": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "/sightlytck/scripts/helpers/remotetemplate"
+        }
+    }
+}

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.