You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2016/04/15 17:19:02 UTC
svn commit: r1739317 -
/sling/site/trunk/content/documentation/bundles/scripting/scripting-sightly.mdtext
Author: radu
Date: Fri Apr 15 15:19:01 2016
New Revision: 1739317
URL: http://svn.apache.org/viewvc?rev=1739317&view=rev
Log:
CMS commit to sling by radu
Added:
sling/site/trunk/content/documentation/bundles/scripting/scripting-sightly.mdtext (with props)
Added: sling/site/trunk/content/documentation/bundles/scripting/scripting-sightly.mdtext
URL: http://svn.apache.org/viewvc/sling/site/trunk/content/documentation/bundles/scripting/scripting-sightly.mdtext?rev=1739317&view=auto
==============================================================================
--- sling/site/trunk/content/documentation/bundles/scripting/scripting-sightly.mdtext (added)
+++ sling/site/trunk/content/documentation/bundles/scripting/scripting-sightly.mdtext Fri Apr 15 15:19:01 2016
@@ -0,0 +1,80 @@
+Title: Sightly Scripting Engine
+Notice: 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.
+
+The Apache Sling Sightly Scripting Engine is the Java reference implementation of the [Sightly HTML Templating Language](https://github.com/Adobe-Marketing-Cloud/sightly-spec), passing all the tests defined by the [Sightly Technology Compatibility Kit](https://github.com/Adobe-Marketing-Cloud/sightly-tck).
+
+[TOC]
+
+# Modules
+
+The Sling implementation is comprised of the following modules:
+
+1. [`org.apache.sling.scripting.sightly`](https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/engine) - the core Sightly Scripting Engine bundle
+2. [`org.apache.sling.scripting.sightly.js.provider`](https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/js-use-provider) - the Sightly JavaScript Use Provider, implementing support for the `use` JavaScript function
+3. [`org.apache.sling.scripting.sightly.models.provider`](https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/models-use-provider) - [Sling Models](https://sling.apache.org/documentation/bundles/models.html) Use Provider
+4. [`org.apache.sling.scripting.sightly.repl`](https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/repl) - Sightly Read-Eval-Print Loop Environment (REPL)
+
+# The Use-API
+
+The [Sightly HTML Templating Language Specification](https://github.com/Adobe-Marketing-Cloud/sightly-spec/blob/1.2/SPECIFICATION.md#4-use-api) explicitly defines two ways of implementing support for business logic objects:
+
+1. Java Use-API, through POJOs, that may optionally implement an `init` method:
+
+ /**
+ * Initialises the Use bean.
+ *
+ * @param bindings All bindings available to the Sightly scripts.
+ **/
+ public void init(javax.script.Bindings bindings);
+
+
+2. JavaScript Use-API, by using a standardised use function
+
+ /**
+ * In the following example '/libs/dep1.js' and 'dep2.js' are optional
+ * dependencies needed for this script's execution. Dependencies can
+ * be specified using an absolute path or a relative path to this
+ * script's own path.
+ *
+ * If no dependencies are needed the dependencies array can be omitted.
+ */
+ use(['dep1.js', 'dep2.js'], function (Dep1, Dep2) {
+ // implement processing
+
+ // define this Use object's behaviour
+ return {
+ propertyName: propertyValue
+ functionName: function () {}
+ }
+ });
+
+The Sightly implementation from Sling provides the basic POJO support through the [`org.apache.sling.scripting.sightly.pojo.Use`](https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/Use.java) interface and the [`org.apache.sling.scripting.sightly.impl.engine.extension.use.JavaUseProvider`](https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java), whereas the `use` function is implemented by the `org.apache.sling.scripting.sightly.js.provider` bundle.
+
+However, the Sling implementation provides a few extensions to the Use-API.
+
+## Sling-specific Use-API Extensions
+
+A full Sightly installation provides the following Use Providers, in the order of their priority:
+
+| Use Provider | Bundle | Service Ranking | Functionality |Observations|
+|-------------- |-------- |----------------- |--------------- |----------- |
+|`org.apache.sling.scripting.sightly.impl.engine.extension.use.RenderUnitProvider`|`org.apache.sling.scripting.sightly`|100|support for loading Sightly templates through `data-sly-use`||
+|`org.apache.sling.scripting.sightly.models.impl.SlingModelsUseProvider`|`org.apache.sling.scripting.sightly.models.provider`|95|support for loading Sling Models||
+|`org.apache.sling.scripting.sightly.impl.engine.extension.use.JavaUseProvider`|`org.apache.sling.scripting.sightly`|90|support for loading Java objects such as: <ol><li>OSGi services</li><li>POJOs adaptable from `SlingHttpServletRequest` or `Resource`</li><li>POJOs that implement `Use`</li></ol>||
+|`org.apache.sling.scripting.sightly.js.impl.JsUseProvider`|`org.apache.sling.scripting.sightly.js.provider`|80|support for loading objects defined in JavaScript||
+|`org.apache.sling.scripting.sightly.impl.engine.extension.use.ScriptUseProvider`|`org.apache.sling.scripting.sightly`|0|support for loading objects returned by scripts interpreted by other Script Engines available on the platform||
Propchange: sling/site/trunk/content/documentation/bundles/scripting/scripting-sightly.mdtext
------------------------------------------------------------------------------
svn:eol-style = native