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

[01/53] sling-site git commit: asf-site branch created for published content

Repository: sling-site
Updated Branches:
  refs/heads/asf-site [created] a6129baf4


http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/archive.tpl
----------------------------------------------------------------------
diff --git a/templates/archive.tpl b/templates/archive.tpl
deleted file mode 100644
index 1aeca8b..0000000
--- a/templates/archive.tpl
+++ /dev/null
@@ -1,36 +0,0 @@
-layout 'layout/main.tpl', true,
-        projects: projects,
-        bodyContents: contents {
-
-            div(class:"row"){
-                div(class:"small-12 columns"){
-                    section(class:"wrap"){
-                        h1("Blog Archive")
-
-                        def last_month=null
-                        published_posts.each {post ->
-                            if (last_month) {
-                               if (post.date.format("MMMM yyyy") != last_month) {
-                                    yieldUnescaped "</ul>"
-                                    h4("${post.date.format("MMMM yyyy")}")
-                                    yieldUnescaped "<ul>"
-                                }
-                            }
-                            else {
-                                h4("${post.date.format("MMMM yyyy")}")
-                                yieldUnescaped "<ul>"
-                            }
-
-                            li{
-                                yield "${post.date.format("dd")} - "
-                                a(href:"${config.site_contextPath}${post.uri}","${post.title}")
-                            }
-                            last_month = post.date.format("MMMM yyyy")
-                        }
-                        yield "</ul>"
-
-                    }
-                }
-            }
-
-	    }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/date-brick.tpl
----------------------------------------------------------------------
diff --git a/templates/date-brick.tpl b/templates/date-brick.tpl
deleted file mode 100644
index eca6a07..0000000
--- a/templates/date-brick.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-div(class:"termin"){
-    div(class:"month","${post.date?.format("MMM")}")
-    newLine()
-    div(class:"date","${post.date?.format("dd")}")
-    newLine()
-    div(class:"year","${post.date?.format("yyyy")}")
-}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/downloads.tpl
----------------------------------------------------------------------
diff --git a/templates/downloads.tpl b/templates/downloads.tpl
deleted file mode 100644
index 89fa3e0..0000000
--- a/templates/downloads.tpl
+++ /dev/null
@@ -1,364 +0,0 @@
-// ------------------------------------------------------------------------------------------------
-// Sling downloads page
-// http://www.apache.org/dev/release-download-pages.html explains how the apache.org mirrored
-// downloads page work. Basically, we provide a downloads.html page with a few placeholders
-// and a form to select the download mirrog, and a downloads.cgi page which wraps the apache.org
-// download logic CGI.
-// ------------------------------------------------------------------------------------------------
-
-// ------------------------------------------------------------------------------------------------
-// Downloads template data
-// The page template itself is found below.
-// ------------------------------------------------------------------------------------------------
-def launchpadVersion="9"
-
-def slingIDETooling=[
-  "Sling IDE Tooling for Eclipse|eclipse|1.1.0|A p2 update site which can be installed in Eclipse.|sling-ide-tooling"
-]
-
-def slingApplication=[
-  "Sling Standalone Application|A self-runnable Sling jar|org.apache.sling.launchpad|.jar|${launchpadVersion}",
-  "Sling Web Application|A ready-to run Sling webapp as a war file|org.apache.sling.launchpad|-webapp.war|${launchpadVersion}",
-  "Sling Source Release|The released Sling source code|org.apache.sling.launchpad|-source-release.zip|${launchpadVersion}",
-]
-
-def mavenPlugins=[
-  "Maven JSPC Plugin|maven-jspc-plugin|2.0.8",
-  "Maven Launchpad Plugin|maven-launchpad-plugin|2.3.4",
-  "Maven Sling Plugin|maven-sling-plugin|2.3.0",
-  "Slingstart Maven Plugin|slingstart-maven-plugin|1.7.6",
-  "HTL Maven Plugin|htl-maven-plugin|1.0.6"
-]
-
-def bundles=[
-  "Validation API|org.apache.sling.validation.api|1.0.0",
-  "Validation Core|org.apache.sling.validation.core|1.0.0",
-  "Adapter|org.apache.sling.adapter|2.1.10",
-  "Adapter Annotations|adapter-annotations|1.0.0",
-  "API|org.apache.sling.api|2.16.2",
-  "Auth Core|org.apache.sling.auth.core|1.3.26",
-  "Auth Form|org.apache.sling.auth.form|1.0.8",
-  "Auth OpenID|org.apache.sling.auth.openid|1.0.4",
-  "Auth Selector|org.apache.sling.auth.selector|1.0.6",
-  "Authentication XING API|org.apache.sling.auth.xing.api|0.0.2",
-  "Authentication XING Login|org.apache.sling.auth.xing.login|0.0.2",
-  "Authentication XING OAuth|org.apache.sling.auth.xing.oauth|0.0.2",
-  "Background Servlets Engine|org.apache.sling.bgservlets|1.0.8",
-  "Background Servlets Integration Test|org.apache.sling.bgservlets.testing|1.0.0",
-  "Bundle Resource Provider|org.apache.sling.bundleresource.impl|2.2.0",
-  "Classloader Leak Detector|org.apache.sling.extensions.classloader-leak-detector|1.0.0",
-  "Commons Classloader|org.apache.sling.commons.classloader|1.4.0",
-  "Commons Compiler|org.apache.sling.commons.compiler|2.2.0",
-  "Commons FileSystem ClassLoader|org.apache.sling.commons.fsclassloader|1.0.6",
-  "Commons HTML|org.apache.sling.commons.html|1.0.0",
-  "Commons Johnzon|org.apache.sling.commons.johnzon|1.0.0",
-  "Commons JSON|org.apache.sling.commons.json|2.0.20",
-  "Commons Log|org.apache.sling.commons.log|5.0.2",
-  "Commons Log WebConsole Plugin|org.apache.sling.commons.log.webconsole|1.0.0",
-  "Commons Log Service|org.apache.sling.commons.logservice|1.0.6",
-  "Commons Metrics|org.apache.sling.commons.metrics|1.2.2",
-  "Commons Mime Type Service|org.apache.sling.commons.mime|2.1.10",
-  "Commons OSGi|org.apache.sling.commons.osgi|2.4.0",
-  "Commons Scheduler|org.apache.sling.commons.scheduler|2.6.2",
-  "Commons Testing|org.apache.sling.commons.testing|2.1.0",
-  "Commons Threads|org.apache.sling.commons.threads|3.2.6",
-  "Content Detection Support|org.apache.sling.commons.contentdetection|1.0.2",
-  "Context-Aware Configuration API|org.apache.sling.caconfig.api|1.1.0",
-  "Context-Aware Configuration bnd Plugin|org.apache.sling.caconfig.bnd-plugin|1.0.2",
-  "Context-Aware Configuration Impl|org.apache.sling.caconfig.impl|1.4.2",
-  "Context-Aware Configuration Mock Plugin|org.apache.sling.testing.caconfig-mock-plugin|1.3.0",
-  "Context-Aware Configuration SPI|org.apache.sling.caconfig.spi|1.3.2",
-  "Crankstart API|org.apache.sling.crankstart.api|1.0.0",
-  "Crankstart API Fragment|org.apache.sling.crankstart.api.fragment|1.0.2",
-  "Crankstart Core|org.apache.sling.crankstart.core|1.0.0",
-  "Crankstart Launcher|org.apache.sling.crankstart.launcher|1.0.0",
-  "Crankstart Launcher Sling Extensions|org.apache.sling.crankstart.sling.extensions|1.0.0",
-  "Crankstart Launcher Test Services|org.apache.sling.crankstart.test.services|1.0.0",
-  "DataSource Provider|org.apache.sling.datasource|1.0.2",
-  "Discovery API|org.apache.sling.discovery.api|1.0.4",
-  "Discovery Impl|org.apache.sling.discovery.impl|1.2.12",
-  "Discovery Commons|org.apache.sling.discovery.commons|1.0.20",
-  "Discovery Base|org.apache.sling.discovery.base|2.0.0",
-  "Discovery Oak|org.apache.sling.discovery.oak|1.2.18",
-  "Discovery Standalone|org.apache.sling.discovery.standalone|1.0.2",
-  "Discovery Support|org.apache.sling.discovery.support|1.0.0",
-  "Distributed Event Admin|org.apache.sling.event.dea|1.1.2",
-  "Distribution API|org.apache.sling.distribution.api|0.3.0",
-  "Distribution Core|org.apache.sling.distribution.core|0.2.8",
-  "Distribution Integration Tests|org.apache.sling.distribution.it|0.1.2",
-  "Distribution Sample|org.apache.sling.distribution.sample|0.1.6",
-  "Dynamic Include|org.apache.sling.dynamic-include|3.0.0",
-  "Engine|org.apache.sling.engine|2.6.8",
-  "Event|org.apache.sling.event|4.2.2",
-  "Event API|org.apache.sling.event.api|1.0.0",
-  "Explorer|org.apache.sling.extensions.explorer|1.0.4",
-  "Feature Flags|org.apache.sling.featureflags|1.2.0",
-  "GWT Integration|org.apache.sling.gwt.servlet|3.0.0",
-  "Thread Dumper|org.apache.sling.extensions.threaddump|0.2.2",
-  "File System Resource Provider|org.apache.sling.fsresource|2.1.4",
-  "I18n|org.apache.sling.i18n|2.5.8",
-  "HApi|org.apache.sling.api|1.0.0",
-  "Health Check Annotations|org.apache.sling.hc.annotations|1.0.4",
-  "Health Check Core|org.apache.sling.hc.core|1.2.8",
-  "Health Check API|org.apache.sling.hc.api|1.0.0",
-  "Health Check Integration Tests|org.apache.sling.hc.it|1.0.4",
-  "Health Check JUnit Bridge|org.apache.sling.hc.junit.bridge|1.0.2",
-  "Health Check Samples|org.apache.sling.hc.samples|1.0.6",
-  "Health Check Support|org.apache.sling.hc.support|1.0.4",
-  "Health Check Webconsole|org.apache.sling.hc.webconsole|1.1.2",
-  "Installer Core|org.apache.sling.installer.core|3.8.10",
-  "Installer Console|org.apache.sling.installer.console|1.0.2",
-  "Installer Configuration Support|org.apache.sling.installer.factory.configuration|1.1.2",
-  "Installer Health Checks|org.apache.sling.installer.hc|1.0.0",
-  "Installer Subystems Support|org.apache.sling.installer.factory.subsystems|1.0.0",
-  "Installer File Provider|org.apache.sling.installer.provider.file|1.1.0",
-  "Installer JCR Provider|org.apache.sling.installer.provider.jcr|3.1.26",
-  "javax activation|org.apache.sling.javax.activation|0.1.0",
-  "JCR API|org.apache.sling.jcr.api|2.4.0",
-  "JCR API Wrapper|org.apache.sling.jcr.jcr-wrapper|2.0.0",
-  "JCR Base|org.apache.sling.jcr.base|3.0.2",
-  "JCR ClassLoader|org.apache.sling.jcr.classloader|3.2.2",
-  "JCR Compiler|org.apache.sling.jcr.compiler|2.1.0",
-  "JCR Content Loader|org.apache.sling.jcr.contentloader|2.2.4",
-  "JCR Content Parser|org.apache.sling.jcr.contentparser|1.2.2",
-  "JCR DavEx|org.apache.sling.jcr.davex|1.3.8",
-  "JCR Jackrabbit AccessManager|org.apache.sling.jcr.jackrabbit.accessmanager|3.0.0",
-  "JCR Jackrabbit Server|org.apache.sling.jcr.jackrabbit.server|2.3.0",
-  "JCR Jackrabbit UserManager|org.apache.sling.jcr.jackrabbit.usermanager|2.2.6",
-  "JCR Oak Server|org.apache.sling.jcr.oak.server|1.1.4",
-  "JCR Prefs|org.apache.sling.jcr.prefs|1.0.0",
-  "JCR Registration|org.apache.sling.jcr.registration|1.0.2",
-  "JCR Repoinit|org.apache.sling.jcr.repoinit|1.1.4",
-  "JCR Resource|org.apache.sling.jcr.resource|3.0.2",
-  "JCR Resource Security|org.apache.sling.jcr.resourcesecurity|1.0.2",
-  "JCR Web Console Plugin|org.apache.sling.jcr.webconsole|1.0.2",
-  "JXM Resource Provider|org.apache.sling.jmx.provider|1.0.2",
-  "JCR WebDAV|org.apache.sling.jcr.webdav|2.3.8",
-  "JUnit Core|org.apache.sling.junit.core|1.0.26",
-  "JUnit Remote Tests Runners|org.apache.sling.junit.remote|1.0.12",
-  "JUnit Scriptable Tests Provider|org.apache.sling.junit.scriptable|1.0.12",
-  "JUnit Tests Teleporter|org.apache.sling.junit.teleporter|1.0.14",
-  "JUnit Health Checks|org.apache.sling.junit.healthcheck|1.0.6",
-  "Karaf repoinit|org.apache.sling.karaf-repoinit|0.2.0",
-  "Launchpad API|org.apache.sling.launchpad.api|1.1.0",
-  "Launchpad Base|org.apache.sling.launchpad.base|5.6.4-2.6.18",
-  "Launchpad Base - Application Launcher|org.apache.sling.launchpad.base|5.6.0-2.6.16|app",
-  "Launchpad Base - Web Launcher|org.apache.sling.launchpad.base|5.6.0-2.6.16|webapp|war",
-  "Launchpad Content|org.apache.sling.launchpad.content|2.0.12",
-  "Launchpad Installer|org.apache.sling.launchpad.installer|1.2.2",
-  "Launchpad Integration Tests|org.apache.sling.launchpad.integration-tests|1.0.",
-  "Launchpad Test Fragment Bundle|org.apache.sling.launchpad.test-fragment|2.0.12",
-  "Launchpad Test Bundles|org.apache.sling.launchpad.test-bundles|0.0.2",
-  "Launchpad Testing|org.apache.sling.launchpad.testing|9",
-  "Launchpad Testing WAR|org.apache.sling.launchpad.testing-war|9",
-  "Launchpad Testing Services|org.apache.sling.launchpad.test-services|2.0.12",
-  "Launchpad Testing Services WAR|org.apache.sling.launchpad.test-services-war|2.0.12||war",
-  "Log Tracer|org.apache.sling.tracer|1.0.4",
-  "Models API|org.apache.sling.models.api|1.3.4",
-  "Models bnd Plugin|org.apache.sling.bnd.models|1.0.0",
-  "Models Implementation|org.apache.sling.models.impl|1.4.2",
-  "Models Jackson Exporter|org.apache.sling.models.jacksonexporter|1.0.6",
-  "NoSQL Generic Resource Provider|org.apache.sling.nosql.generic|1.1.0",
-  "NoSQL Couchbase Client|org.apache.sling.nosql.couchbase-client|1.0.2",
-  "NoSQL Couchbase Resource Provider|org.apache.sling.nosql.couchbase-resourceprovider|1.1.0",
-  "NoSQL MongoDB Resource Provider|org.apache.sling.nosql.mongodb-resourceprovider|1.1.0",
-  "Oak Restrictions|org.apache.sling.oak.restrictions|1.0.0",
-  "Path-based RTP sample|org.apache.sling.samples.path-based.rtp|2.0.4",
-  "Pax Exam Utilities|org.apache.sling.paxexam.util|1.0.4",
-  "Performance Test Utilities|org.apache.sling.performance.base|1.0.2",
-  "Pipes|org.apache.sling.pipes|0.0.10",
-  "Provisioning Model|org.apache.sling.provisioning.model|1.8.2",
-  "Repoinit Parser|org.apache.sling.repoinit.parser|1.1.0",
-  "Resource Access Security|org.apache.sling.resourceaccesssecurity|1.0.0",
-  "Resource Builder|org.apache.sling.resourcebuilder|1.0.2",
-  "Resource Collection|org.apache.sling.resourcecollection|1.0.0",
-  "Resource Inventory|org.apache.sling.resource.inventory|1.0.8",
-  "Resource Merger|org.apache.sling.resourcemerger|1.3.2",
-  "Resource Presence|org.apache.sling.resource.presence|0.0.2",
-  "Resource Resolver|org.apache.sling.resourceresolver|1.5.24",
-  "Rewriter|org.apache.sling.rewriter|1.2.0",
-  "Failing Server-Side Tests|org.apache.sling.testing.samples.failingtests|1.0.6",
-  "Sample Integration Tests|org.apache.sling.testing.samples.integrationtests|1.0.6",
-  "Sample Server-Side Tests|org.apache.sling.testing.samples.sampletests|1.0.6",
-  "Scripting API|org.apache.sling.scripting.api|2.2.0",
-  "Scripting Console|org.apache.sling.scripting.console|1.0.0",
-  "Scripting Core|org.apache.sling.scripting.core|2.0.46",
-  "Scripting EL API Wrapper|org.apache.sling.scripting.el-api|1.0.0",
-  "Scripting Java|org.apache.sling.scripting.java|2.1.2",
-  "Scripting JavaScript|org.apache.sling.scripting.javascript|3.0.0",
-  "Scripting JSP|org.apache.sling.scripting.jsp|2.3.0",
-  "Scripting JSP API Wrapper|org.apache.sling.scripting.jsp-api|1.0.0",
-  "Scripting JSP Taglib|org.apache.sling.scripting.jsp.taglib|2.2.6",
-  "Scripting JST|org.apache.sling.scripting.jst|2.0.6",
-  "Scripting Groovy|org.apache.sling.scripting.groovy|1.0.2",
-  "Scripting HTL Compiler|org.apache.sling.scripting.sightly.compiler|1.0.8",
-  "Scripting HTL Java Compiler|org.apache.sling.scripting.sightly.compiler.java|1.0.10",
-  "Scripting HTL Engine|org.apache.sling.scripting.sightly|1.0.34",
-  "Scripting HTL JavaScript Use Provider|org.apache.sling.scripting.sightly.js.provider|1.0.22",
-  "Scripting HTL Sling Models Use Provider|org.apache.sling.scripting.sightly.models.provider|1.0.6",
-  "Scripting HTL REPL|org.apache.sling.scripting.sightly.repl|1.0.4",
-  "Scripting Thymeleaf|org.apache.sling.scripting.thymeleaf|1.1.0",
-  "Security|org.apache.sling.security|1.1.2",
-  "Service User Mapper|org.apache.sling.serviceusermapper|1.3.2",
-  "Servlet Helpers|org.apache.sling.servlet-helpers|1.1.0",
-  "Servlets Compat|org.apache.sling.servlets.compat|1.0.2",
-  "Servlets Get|org.apache.sling.servlets.get|2.1.26",
-  "Servlets Post|org.apache.sling.servlets.post|2.3.20",
-  "Servlets Resolver|org.apache.sling.servlets.resolver|2.4.12",
-  "Settings|org.apache.sling.settings|1.3.8",
-  "Slf4j MDC Filter|org.apache.sling.extensions.slf4j.mdc|1.0.0",
-  "Sling Query|org.apache.sling.query|3.0.0",
-  "Superimposing Resource Provider|org.apache.sling.superimposing|0.2.0",
-  "System Bundle Extension: Activation API|org.apache.sling.fragment.activation|1.0.2",
-  "System Bundle Extension: WS APIs|org.apache.sling.fragment.ws|1.0.2",
-  "System Bundle Extension: XML APIs|org.apache.sling.fragment.xml|1.0.2",
-  "Tenant|org.apache.sling.tenant|1.1.0",
-  "Testing Hamcrest|org.apache.sling.testing.hamcrest|1.0.2",
-  "Testing JCR Mock|org.apache.sling.testing.jcr-mock|1.3.0",
-  "Testing Logging Mock|org.apache.sling.testing.logging-mock|2.0.0",
-  "Testing OSGi Mock|org.apache.sling.testing.osgi-mock|2.3.2",
-  "Testing PaxExam|org.apache.sling.testing.paxexam|0.0.4",
-  "Testing Resource Resolver Mock|org.apache.sling.testing.resourceresolver-mock|1.1.18",
-  "Testing Sling Mock|org.apache.sling.testing.sling-mock|2.2.12",
-  "Testing Sling Mock Jackrabbit|org.apache.sling.testing.sling-mock-jackrabbit|1.0.0",
-  "Testing Sling Mock Oak|org.apache.sling.testing.sling-mock-oak|2.0.2",
-  "Tooling Support Install|org.apache.sling.tooling.support.install|1.0.4",
-  "Tooling Support Source|org.apache.sling.tooling.support.source|1.0.4",
-  "Apache Sling Testing Clients|org.apache.sling.testing.clients|1.1.0",
-  "Apache Sling Testing Rules|org.apache.sling.testing.rules|1.0.1",
-  "Apache Sling Server Setup Tools|org.apache.sling.testing.serversetup|1.0.1",
-  "Testing Tools|org.apache.sling.testing.tools|1.0.16",
-  "URL Rewriter|org.apache.sling.urlrewriter|0.0.2",
-  "Web Console Branding|org.apache.sling.extensions.webconsolebranding|1.0.2",
-  "Web Console Security Provider|org.apache.sling.extensions.webconsolesecurityprovider|1.2.0",
-  "XSS Protection|org.apache.sling.xss|2.0.0",
-  "XSS Protection Compat|org.apache.sling.xss.compat|1.1.0"
-]
-
-// ------------------------------------------------------------------------------------------------
-// Utilities
-// ------------------------------------------------------------------------------------------------
-def downloadLink(label, artifact, version, suffix) {
-	def sep = version ? "-" : ""
-	def path = "sling/${artifact}${sep}${version}${suffix}"
-	def digestsBase = "http://www.apache.org/dist/${path}"
-	
-	a(href:"[preferred]${path}", label)
-	yield " ("
-	a(href:"${digestsBase}.asc", "asc")
-	yield ", "
-	a(href:"${digestsBase}.md5", "md5")
-	yield ")"
-}
-
-def tableHead(String [] headers) {
-	thead() {
-		tr() {
-			headers.each { header ->
-				th(header)
-			}
-		}
-	}
-	
-}
-
- // ------------------------------------------------------------------------------------------------
-// Downloads page layout
-// ------------------------------------------------------------------------------------------------
-layout 'layout/main.tpl', true,
-        projects: projects,
-        bodyContents: contents {
-			
-            div(class:"row"){
-                div(class:"small-12 columns"){
-                    section(class:"wrap"){
-                        header{
-                            h1("${content.title}")
-                        }
-                        yieldUnescaped content.body
-						
-						h2("Sling Application")
-						table(class:"table") {
-							tableHead("Artifact", "Version", "Provides", "Package")
-							tbody() {
-								slingApplication.each { line -> 
-									tr() {
-										def data = line.split("\\|")
-										td(data[0])
-										td(data[4])
-										td(data[1])
-										var artifact = "${data[2]}-${data[4]}${data[3]}"
-										td(){ 
-											downloadLink(artifact, artifact, "", "")
-										}
-									}
-								}
-							}
-						}
-						
-						h2("Sling IDE Tooling")
-						table(class:"table") {
-							tableHead("Artifact", "Version", "Provides", "Update Site")
-							tbody() {
-								slingIDETooling.each { line ->
-									tr() {
-										def data = line.split("\\|")
-										td(data[0])
-										td(data[2])
-										td(data[3])
-										def artifact = "${data[1]}/${data[2]}"
-										td(){ 
-											downloadLink("Update site", artifact, "", "")
-										}
-									}
-								}
-							}
-						}
-						
-						h2("Sling Components")
-						table(class:"table") {
-							tableHead("Artifact", "Version", "Binary", "Source")
-							tbody() {
-								bundles.each { line ->
-									tr() {
-										def data = line.split("\\|")
-										td(data[0])
-										td(data[2])
-										def artifact = data[1]
-										def version = data[2]
-										td(){ 
-											downloadLink("Bundle", artifact, version, ".jar") 
-										}
-										td(){ 
-											downloadLink("Source ZIP", artifact, version, "-source-release.zip") 
-										}
-									}
-								}
-							}
-						}
-						
-						h2("Maven Plugins")
-						table(class:"table") {
-							tableHead("Artifact", "Version", "Binary", "Source")
-							tbody() {
-								mavenPlugins.each { line ->
-									tr() {
-										def data = line.split("\\|")
-										td(data[0])
-										td(data[2])
-										def artifact = data[1]
-										def version = data[2]
-										td(){ 
-											downloadLink("Maven Plugin", artifact, version, ".jar") 
-										}
-										td(){ 
-											downloadLink("Source ZIP", artifact, version, "-source-release.zip") 
-										}
-									}
-								}
-							}
-						}
-                    }
-                }
-            }
-        }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/feed.tpl
----------------------------------------------------------------------
diff --git a/templates/feed.tpl b/templates/feed.tpl
deleted file mode 100644
index 866cc73..0000000
--- a/templates/feed.tpl
+++ /dev/null
@@ -1,40 +0,0 @@
-xmlDeclaration()
-feed(xmlns:"http://www.w3.org/2005/Atom"){
-
-    title("${config.blog_title}")
-    newLine()
-    link(href:"${config.site_host}${config.site_contextPath}")
-    newLine()
-    link(rel:"self", type:"application/atom+xml", href:"${config.site_host}${config.site_contextPath}${config.feed_file}")
-    newLine()
-    subtitle("${config.blog_subtitle}")
-    newLine()
-    updated("${published_date.format('yyyy-MM-dd\'T\'HH:mm:ss\'Z\'')}")
-    newLine()
-    id("tag:${config.feed_id},${published_date.format('yyyy:MM')}")
-    newLine()
-    published_posts.each {post ->
-        entry{
-          title("${post.title}")
-          newLine()
-          author{
-              name("${post.author}")
-          }
-          newLine()
-          link(href:"${config.site_host}${config.site_contextPath}${post.uri}")
-          newLine()
-          updated("${post.date.format('yyyy-MM-dd\'T\'HH:mm:ss\'Z\'')}")
-          newLine()
-          id("${config.site_host}${config.site_contextPath}${post.uri}")
-          newLine()
-          post.tags.each { tag ->
-            category(term:"${tag}")
-            newLine()
-          }
-          content(type:"html") {
-            yield post.body
-          }
-        }
-        newLine()
-    }
-}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/footer.tpl
----------------------------------------------------------------------
diff --git a/templates/footer.tpl b/templates/footer.tpl
deleted file mode 100644
index d7e9200..0000000
--- a/templates/footer.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-div(class:"footer") {
-	div(class:"timestamp") {
-		yield "TODO display revision number here"
-	}
-	div(class:"trademarkFooter") {
-		yield "Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project "
-		yield "logo are trademarks of The Apache Software Foundation. All other marks mentioned "
-		yield "may be trademarks or registered trademarks of their respective owners."
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/header.tpl
----------------------------------------------------------------------
diff --git a/templates/header.tpl b/templates/header.tpl
deleted file mode 100644
index dbd75e9..0000000
--- a/templates/header.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-meta(charset:"utf-8") newLine()
-
-title("${config.blog_title}") newLine()
-
-// For now, try to reproduce the layout of the current website, to be able to compare pages
-
-link(rel:"stylesheet", href:"${config.site_contextPath}res/css/site.css") newLine()
-link(rel:"stylesheet", href:"${config.site_contextPath}res/css/codehilite.css") newLine()
-
-div(class:"title") {
-  div(class:"logo") {
-	  a(href:"http://sling.apache.org") {
-	  	img(border:"0", alt:"Apache Sling", src:"${config.site_contextPath}res/logos/sling.svg")
-	  }
-  }
-  div(class:"header") {
-	  a(href:"http://www.apache.org") {
-	  	img(border:"0", alt:"Apache", src:"${config.site_contextPath}res/logos/apache.png")
-	  }
-  }
-}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/index.tpl
----------------------------------------------------------------------
diff --git a/templates/index.tpl b/templates/index.tpl
deleted file mode 100644
index 4505ca8..0000000
--- a/templates/index.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-layout 'layout/main.tpl', true,
-        projects: projects,
-        bodyContents: contents {
-
-// TODO our "news" section might work like that? with posts tagged as "news"?
-//            published_posts[0..2].each { post ->
-//                model.put('post', post)
-//                include template: 'post-brick.tpl'
-//            }
-
-            div(class:"row"){
-                div(class:"small-12 columns"){
-                    hr()
-                    yield "Older post are available in the "
-                    a(href:"${config.site_contextPath}${config.archive_file}","archive")
-                }
-            }
-
-        }

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/layout/main.tpl
----------------------------------------------------------------------
diff --git a/templates/layout/main.tpl b/templates/layout/main.tpl
deleted file mode 100644
index 677b783..0000000
--- a/templates/layout/main.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-yieldUnescaped '<!DOCTYPE html>'
-html(lang:'en'){
-
-    head {
-        include template: "header.tpl"
-    }
-
-    body() {
-
-        include template: 'menu.tpl'
-
-		div(class:"main") {
-			bodyContents()
-
-			newLine()
-			include template: 'footer.tpl'
-			newLine()
-        }
-    }
-}
-newLine()

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/menu.tpl
----------------------------------------------------------------------
diff --git a/templates/menu.tpl b/templates/menu.tpl
deleted file mode 100644
index a744f7f..0000000
--- a/templates/menu.tpl
+++ /dev/null
@@ -1,53 +0,0 @@
-// TODO read links from a Markdown or other definition file?
-div(class:"menu"){
-
-strong(){a(href:"${config.site_contextPath}documentation.html", "Documentation")} br()
-a(href:"${config.site_contextPath}documentation/getting-started.html", "Getting Started") br()
-a(href:"${config.site_contextPath}documentation/the-sling-engine.html", "The Sling Engine") br()
-a(href:"${config.site_contextPath}documentation/development.html", "Development") br()
-a(href:"${config.site_contextPath}documentation/bundles.html", "Bundles") br()
-a(href:"${config.site_contextPath}documentation/tutorials-how-tos.html", "Tutorials &amp; How-Tos") br()
-a(href:"${config.site_contextPath}documentation/configuration.html", "Configuration")   
-
-p(){}
-a(href:"http://s.apache.org/sling.wiki", "Wiki") br()
-a(href:"http://s.apache.org/sling.faq", "FAQ") br()
-
-p(){}
-strong("API Docs")  br()
-a(href:"${config.site_contextPath}apidocs/sling9/index.html", "Sling 9") br()
-a(href:"${config.site_contextPath}apidocs/sling8/index.html", "Sling 8") br()
-a(href:"${config.site_contextPath}apidocs/sling7/index.html", "Sling 7") br()
-a(href:"${config.site_contextPath}apidocs/sling6/index.html", "Sling 6") br()
-a(href:"${config.site_contextPath}apidocs/sling5/index.html", "Sling 5") br()
-a(href:"${config.site_contextPath}javadoc-io.html", "Archive at javadoc.io") br()
-
-p(){}
-strong("Project info") br()
-a(href:"${config.site_contextPath}downloads.cgi", "Downloads") br()
-a(href:"http://www.apache.org/licenses/", "License") br()
-a(href:"${config.site_contextPath}contributing.html", "Contributing") br()
-a(href:"${config.site_contextPath}news.html", "News") br()
-a(href:"${config.site_contextPath}links.html", "Links") br()
-a(href:"${config.site_contextPath}project-information.html", "Project Information") br()
-a(href:"https://issues.apache.org/jira/browse/SLING", "Issue Tracker") br()
-a(href:"http://ci.apache.org/builders/sling-trunk", "Build Server") br()
-a(href:"${config.site_contextPath}project-information/security.html", "Security") br() 
-
-p(){}
-strong("Source") br()
-a(href:"http://svn.apache.org/viewvc/sling/trunk", "Subversion") br()
-a(href:"git://git.apache.org/sling.git", "Git") br()
-a(href:"https://github.com/apache/sling", "Github Mirror") br()
-
-p(){}
-strong("Sponsorship") br()
-a(href:"http://www.apache.org/foundation/thanks.html", "Thanks") br()
-a(href:"http://www.apache.org/foundation/sponsorship.html", "Become a Sponsor") br()
-a(href:"https://donate.apache.org/", "Donate!") br()
-a(href:"http://www.apache.org/foundation/buy_stuff.html", "Buy Stuff") br()  
-
-p(){}
-strong(){a(href:"${config.site_contextPath}sitemap.html", "Site Map")}
-}
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/page.tpl
----------------------------------------------------------------------
diff --git a/templates/page.tpl b/templates/page.tpl
deleted file mode 100644
index 3cb90cb..0000000
--- a/templates/page.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-layout 'layout/main.tpl', true,
-        projects: projects,
-        bodyContents: contents {
-
-            div(class:"row"){
-                div(class:"small-12 columns"){
-                    section(class:"wrap"){
-                        header{
-                            h1("${content.title}")
-                        }
-                        yieldUnescaped content.body
-                    }
-                }
-            }
-
-        }

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/post-brick.tpl
----------------------------------------------------------------------
diff --git a/templates/post-brick.tpl b/templates/post-brick.tpl
deleted file mode 100644
index 38d537e..0000000
--- a/templates/post-brick.tpl
+++ /dev/null
@@ -1,30 +0,0 @@
-div(class:"row"){
-    div(class:"small-12 middle-12 large-12 columns"){
-        article(class:"wrap"){
-            header{
-                div(class:"row"){
-                    div(class:"small-3 medium-1 large-1 columns"){
-                        include template: 'date-brick.tpl'
-                    }
-
-                    div(class:"small-9 medium-11 large-11 columns"){
-
-                        div{
-                            h2{
-                                a(href:"${config.site_contextPath}${post.uri}","${post.title}")
-                            }
-                            include template: 'tags-brick.tpl'
-                            hr()
-                        }
-                    }
-                }
-            }
-
-            div(class:"row"){
-                div(class:"small-9 small-offset-3 medium-11 medium-offset-1 large-11 large-offset-1 columns"){
-                    yieldUnescaped post.body
-                }
-            }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/post.tpl
----------------------------------------------------------------------
diff --git a/templates/post.tpl b/templates/post.tpl
deleted file mode 100644
index c4b8d09..0000000
--- a/templates/post.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-model.put("projects",projects)
-layout 'layout/main.tpl', true,
-        bodyContents: contents {
-			p("TODO this is the post template")
-            model.put('post', content)
-            include template: 'post-brick.tpl'
-        }

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/project.tpl
----------------------------------------------------------------------
diff --git a/templates/project.tpl b/templates/project.tpl
deleted file mode 100644
index 2e118ce..0000000
--- a/templates/project.tpl
+++ /dev/null
@@ -1,55 +0,0 @@
-layout 'layout/main.tpl', true,
-        projects: projects,
-        bodyContents: contents {
-
-            div(class:"row"){
-                div(class:"small-12 columns"){
-                    section(class:"wrap"){
-                        header{
-                            h2("${content.title}")
-
-                            time(datetime:"${content.date.format('yyyy-MM-dd')}"){
-                                small("${content.date.format('dd.MM.yyyy')}")
-                            }
-                            hr()
-                        }
-                        div(class:"row"){
-                            div(class:"small-12 columns"){
-                                div(class:"project-meta"){
-                                    dl{
-                                        dt{
-                                            strong("website")
-                                        }
-                                        dd{
-                                            a(href:"${content.website}", "$content.website")
-                                        }
-
-                                        dt{
-                                            strong("gitHub")
-                                        }
-                                        dd{
-                                            a(href:"${content.github}","$content.github")
-                                        }
-
-                                        dt{
-                                            strong("git")
-                                        }
-                                        dd{
-                                            code {
-                                                yieldUnescaped "git clone $content.git"
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                        div(class:"row"){
-                            div(class:"small-12 columns"){
-                               yieldUnescaped content.body
-                            }
-                        }
-                    }
-                }
-            }
-
-        }

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/sitemap.tpl
----------------------------------------------------------------------
diff --git a/templates/sitemap.tpl b/templates/sitemap.tpl
deleted file mode 100644
index 6b07c59..0000000
--- a/templates/sitemap.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-xmlDeclaration()
-urlset( xmlns:'http://www.sitemaps.org/schemas/sitemap/0.9', 'xmlns:xsi':'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation':'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd'){
-    published_content.each {content ->
-        url {
-    	    loc("${config.site_host}${config.site_contextPath}${content.uri}")
-    	    lastmod("${content.date.format('yyyy-MM-dd')}")
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/tags-brick.tpl
----------------------------------------------------------------------
diff --git a/templates/tags-brick.tpl b/templates/tags-brick.tpl
deleted file mode 100644
index e9bba23..0000000
--- a/templates/tags-brick.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-p {
-    def contextPath = "${config.site_contextPath}"
-    post.tags.each { tag ->
-        tag = tag.trim()
-
-        span{
-            a(href:"${contextPath}tags/${tag.replace(' ','-')}.html", class:"label","${tag}")
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/templates/tags.tpl
----------------------------------------------------------------------
diff --git a/templates/tags.tpl b/templates/tags.tpl
deleted file mode 100644
index 97d88d1..0000000
--- a/templates/tags.tpl
+++ /dev/null
@@ -1,5 +0,0 @@
-layout 'layout/main.tpl', true,
-        projects: projects,
-        bodyContents: contents {
-			p("TODO - blog tag rendering disabled as it failed")
-		}


[34/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/tutorials-how-tos/installing-and-upgrading-bundles.html
----------------------------------------------------------------------
diff --git a/documentation/tutorials-how-tos/installing-and-upgrading-bundles.html b/documentation/tutorials-how-tos/installing-and-upgrading-bundles.html
new file mode 100644
index 0000000..90cd71d
--- /dev/null
+++ b/documentation/tutorials-how-tos/installing-and-upgrading-bundles.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Installing and Upgrading Bundles</h1></header><p>Excerpt: Explains how to install, upgrade and uninstall Bundles using the Sling Management console.</p>
+<div class="note">
+We recommend to use the Apache Felix Web Console. The documentation below describes the old Sling Management Console, which isn't in use any more. Please refer to the documentation of the <a href="http://felix.apache.org/site/apache-felix-web-console.html">Apache Felix Web Console</a>.
+</div>
+<p>OSGi bundles installed in the OSGi framework, which is provided by Sling, may be upgraded or removed and new bundles may be installed by using the Sling Management Console. This page is about using the Sling Management Console for those tasks.</p>
+<p>Basically, you have two choices to install and upgrade bundles: Upload the bundle files or install them from a Bundle Repository.</p>
+<h2>Sling Management Console</h2>
+<p>The Sling Management Console is installed by default when Sling is running and may be reached at on the page <code>/system/console</code> in the Sling Context by default. For example if you installed the Sling Web Application in the <code>/sample</code> context of the Servlet Container running at <code>http://somehost:4402</code>, you would access the Sling Management Console at <code>http://somehost:4402/sample/system/console</code>.</p>
+<p>You will be prompted for a user name and password to access the Sling Management Console. This password is preset to be <em>admin</em> for the user name and <em>admin</em> for the password.</p>
+<p>NB: Both the username and password and the location of the Sling Management Console inside the Web Application Context is configurable in the <em>Sling Management Console</em> configuration on the <em>Configuration</em> page.</p>
+<h2>Installing and upgrading bundles by Upload</h2>
+<p>To install a new bundle or upgrade an already installed bundle, go to the <em>Bundles</em> page in the Sling Management Console. At the top and the bottom of the page you have a form to specify and upload a bundle as a file :</p>
+<ul>
+  <li>Select the bundle file to upload</li>
+  <li>Click the <em>Start</em> checkbox, if you want to start the bundle after installation. If the bundle is upgraded, this checkbox is ignored.</li>
+  <li>Specify the start level of the bundle in the <em>Start Level</em> field. This must be a number higher than 0 and is ignored for bundles, which are already installed. Most of the time, you will use the default value.</li>
+  <li>Click the <em>Install or Update</em> button</li>
+</ul>
+<p>After clicking the button, the bundle file will be uploaded. If a bundle with the same bundle symbolic name is already installed, the respective bundle will be updated with the new bundle file. Otherwise the bundle file will be installed as a new bundle and its start level is set as defined. Additionally the bundle will optionally be started.</p>
+<p>After having updated a bundle, you should also refresh the packages by clicking on the <em>Refresh Packages</em> button. The reson for this is, that the old version of the bundle is still used by other bundles even after upgrading to a new version. Only when the packages are refreshed any users of the bundle will be relinked to use the new bundle version. As this might be a somewhat lengthy operation, which also stops and restarts using bundles, this operation has to be executed explicitly.</p>
+<p>Also, if you plan to upgrade multiple bundles, you may wish to upgrade all bundles before repackaging the using bundles.</p>
+<h2>Installing and upgrading bundles from the Bundle Repository</h2>
+<p>The OSGi Bundle Repository is a repository of bundles, from which Sling may download and install or upgrade bundles very easily. Unlike the installation of bundles by file upload, the OSGi Bundle Repository has the functionality to resolve and dependencies of bundles to be installed.</p>
+<p>Say you wish to install bundle <em>X</em> which depends on packages provided by bundle <em>Y</em>. When uploading bundle <em>X</em> as a file it will not resolve, that is Sling (the OSGi framework actually) is not able to ensure proper operation of bundle <em>X</em> and thus prevents the bundle from being started and used. You will have to manually upload bundle <em>Y</em> yourself. When using the OSGi Bundle Repository, you just select bundle <em>X</em> for installation and the bundle repository will find out, that bundle <em>Y</em> is also required and will automatically download and install it along with bundle <em>X</em>.</p>
+<h3>The Bundle Repository page</h3>
+<p>Installation or update of bundles may be done on the <em>Bundle Repository</em> page of the Sling Management Console. In the upper part of the page, you will see a list (usually just a single entry) of OSGi Bundle Repositories known to Sling. In the lower part of the list you see the bundles available from these repositories. To install or update bundles, just check the respective button and click on the <em>Deploy Selected</em> or <em>Deploy and Start Selected</em> button at the bottom of the page depending on whether you want to start the bundle(s) after installation or not.</p>
+<p>See below for more information on OSGi Bundle Repository management.</p>
+<h3>The Bundles page</h3>
+<p>You may also want to upgrade already installed bundles from the <em>Bundles</em> page of the Sling Management Console. For each bundle listed in this page, there is an <em>Upgrade</em> button. If there is an upgrade to the installed bundle available in the OSGi Bundle Repository, the button is enabled and clicking on the button will upgrade the respective bundle. If no upgrade is available from the OSGi Bundle Repository, this button is disabled.</p>
+<h3>Managing OSGi Bundle Repositories</h3>
+<p>Currently management of known OSGi Bundle Repositories is very simple. If a configured bundle repository is not available on startup, it will be marked as being inactive. If you know the repository is now available, you may click on the <em>Refresh</em> button, to activate it. Similarly, the contents of the repository may be modified by for example adding new bundles or updating bundles in the repository, these changes will be made known to Sling by clicking the <em>Refresh</em> button.</p>
+<p>There exists no GUI functionality yet to add a new repository to the list of known repositories. Instead you may submit a request with parameters <code>action</code> whose value must be <code>refreshOBR</code> and <code>repository</code> whose value must be the URL to the repository descriptor file generally called <code>repository.xml</code>.</p>
+<p>For example, if you run Sling on <code>http://localhost:7402/sample</code> with default location of the Sling Management Console, the following request would add a repository at <code>/tmp/repo/repository.xml</code> in the filesystem:</p>
+<p>:::html http://localhost:7402/sample/system/console/bundlerepo?action=refreshOBR&amp;repository=file:///tmp/repo/repository.xml</p>
+<p>Note: Only use <code>file:</code> URLs if you know Sling has access to the named file !</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/tutorials-how-tos/jackrabbit-persistence.html
----------------------------------------------------------------------
diff --git a/documentation/tutorials-how-tos/jackrabbit-persistence.html b/documentation/tutorials-how-tos/jackrabbit-persistence.html
new file mode 100644
index 0000000..cd3ab79
--- /dev/null
+++ b/documentation/tutorials-how-tos/jackrabbit-persistence.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Jackrabbit Persistence</h1></header><p>Out-of-the-box the embedded Jackrabbit repository used by Sling (the Embedded Jackrabbit Repository bundle) uses Derby to persist the JCR nodes and properties. For some applications or environments it may be required or required to replace Derby with another backing store such as PostgreSQL or Oracle.</p>
+<p>This page is based on the journey of Tony Giaccone to get Sling running with a PostgreSQL based Jackrabbit instance.</p>
+<h2>Management Summary</h2>
+<p>To replace Derby as the persistence manager for Jackrabbit the following steps are required:</p>
+<ol>
+  <li>Provide a JDBC driver for your database as an OSGi bundle</li>
+  <li>Reconfigure Jackrabbit to use your database</li>
+  <li>(Re-) Start the Embedded Jackrabbit bundle</li>
+</ol>
+<p>When you are not using the Derby persistence manager, you may safely remove the Derby bundle from your Sling instance.</p>
+<h2>JDBC Driver</h2>
+<p>The hardest thing to do is probably getting the JDBC driver for your database. One option is to look at the bundles provided by Spring Source in their repository at <a href="http://www.springsource.com/repository/">http://www.springsource.com/repository/</a>.</p>
+<p>Another option is to create the bundle on your own using Peter Kriens' <a href="http://bnd.bndtools.org/">bnd Tool</a>:</p>
+<ol>
+  <li>Get the JDBC driver for your database from the driver provider</li>
+  <li>Wrap the JDBC driver library into an OSGi bundle:</li>
+</ol>
+<p>:::sh</p>
+<h1>Example for PostgreSQL JDBC 3 driver 8.4-701</h1>
+<p>$ java -jar bnd.jar wrap postgresql-8.4-701.jdbc3.jar $ mv postgresql-8.4-701.jdbc3.bar postgresql-8.4-701.jdbc3-bnd.jar</p>
+<ol>
+  <li>Deploy the driver to your local Maven 2 Repository (Required if adding the JDBC driver to a Maven build, e.g. using the Sling Launchpad Plugin)</li>
+</ol>
+<p>:::sh $ mvn install:install-file -DgroupId=postgresql -DartifactId=postgresql -Dversion=8.4.701.jdbc3 -Dpackaging=jar -Dfile=postgresql-8.4-701.jdbc3-bnd.jar</p>
+<p>Tony reports no success with the Spring Source bundle, whily the bnd approach worked for the PostgreSQL JDBC driver.</p>
+<h2>Replace Derby in a running Sling Instance</h2>
+<p>To replace Derby in a running Sling instance follow these steps (e.g. through the Web Console at <code>/system/console</code>):</p>
+<ol>
+  <li>Uninstall the Apache Derby bundle</li>
+  <li>Install the JDBC bundle prepared in the first step</li>
+  <li>Stop the Jackrabbit Embedded Repository bundle This needs to be reconfigured and restarted anyway. So lets just stop it to prevent failures in the next step.</li>
+  <li>Refresh the packages (click the <em>Refresh Packages</em> button)</li>
+</ol>
+<p>Alternatively, you may wish to stop Sling after uninstalling Derby and installing the JDBC bundle. Technically, this is not required, though.</p>
+<h2>Reconfiguring Jackrabbit</h2>
+<p>To actually use a persistence manager other than the default (Derby) persistence manager, you have to configure Jackrabbit to use it. Create a <code>repository.xml</code> file in the <code>sling/jackrabbit</code> folder before starting Sling for the first time. If the repository was already started, you can also modify the existing file.</p>
+<p>To prepare a repository.xml file before first startup, use the <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml"><code>repository.xml</code></a> as a template and modify it by replacing the <code>&lt;PersistenceManager&gt;</code> elements to refer to the selected persistence manager.</p>
+<p>If the file already exists, you can modifiy this existing file and there is no need to get the original from the SVN repository.</p>
+<p>For example to use PostgreSQL instead of Derby modify the <code>&lt;PersistenceManager&gt;</code> elements as follows:</p>
+<p>:::xml <Repository> ... <Workspace name="${wsp.name}"> ... <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager"> <param name="driver" value="org.postgresql.Driver"/> <param name="url" value="jdbc:postgresql://localhost:5432/YOUR_DB_NAME_HERE"/> <param name="schema" value="postgresql"/> <param name="user" value="YOUR_USER_HERE"/> <param name="password" value="YOUR_PASSWORD_HERE"/> <param name="schemaObjectPrefix" value="jcr_${wsp.name}_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager> ... </Workspace></p>
+<p><Versioning rootPath="${rep.home}/version"> ... <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager"> <param name="driver" value="org.postgresql.Driver"/> <param name="url" value="jdbc:postgresql://localhost:5432/YOUR_DB_NAME_HERE"/> <param name="schema" value="postgresql"/> <param name="user" value="YOUR_USER_HERE"/> <param name="password" value="YOUR_PASSWORD_HERE"/> <param name="schemaObjectPrefix" value="version_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager> </Versioning> ... </Repository></p>
+<p>Modify the <code>url</code>, <code>user</code>, and <code>password</code> parameters to match your database setup.</p>
+<p>If you reconfigure Jackrabbit to use the new persistence manager, the existing repository data in the <code>sling/jackrabbit</code> directory, except the <code>repository.xml</code> file, of course, should now be removed.</p>
+<p>Finally either start Sling or start the Jackrabbit Embedded Repository bundle.</p>
+<h2>Credits</h2>
+<p>This description is based on Tony Giaccone's description <a href="http://markmail.org/message/wlbfrukmjjsl33hh">Swapping Postgres for Derby</a> sent to the Sling Users mailing list.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/tutorials-how-tos/testing-sling-based-applications.html
----------------------------------------------------------------------
diff --git a/documentation/tutorials-how-tos/testing-sling-based-applications.html b/documentation/tutorials-how-tos/testing-sling-based-applications.html
new file mode 100644
index 0000000..942dfd5
--- /dev/null
+++ b/documentation/tutorials-how-tos/testing-sling-based-applications.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Testing Sling-based applications</h1></header><p>Automated testing of OSGi components and services can be challenging, as many of them depend on other services that must be present or simulated for testing.</p>
+<p>This page describes the various approaches that we use to test Sling itself, and introduces a number of tools that can help testing OSGi and HTTP-based applications.</p>
+<p>[TOC]</p>
+<h2>Unit tests</h2>
+<p>When possible, unit tests are obviously the fastest executing ones, and it's easy to keep them close to the code that they're testing.</p>
+<p>We have quite a lot of those in Sling, the older use the JUnit3 TestCase base class, and later ones use JUnit4 annotations. Mixing both approaches is possible, there's no need to rewrite existing tests.</p>
+<h2>Tests that use a JCR repository</h2>
+<p>Utility classes from our <a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/testing">commons/testing</a> module make it easy to get a real JCR repository for testing. That's a bit slower than pure unit tests, of course, but this only adds 1-2 seconds to the execution of a test suite.</p>
+<p>The <code>RepositoryProviderTest</code> in that module uses this technique to get a JCR repository.</p>
+<p>Note that our utilities do not cleanup the repository between tests, so you must be careful about test isolation, for example by using unique paths for each test.</p>
+<h2>Mock classes and services</h2>
+<p>The next step is to use mock classes and services to simulate components that are needed for testing. This makes it possible to test OSGi service classes without an OSGi framework, or classes accessing the Sling or JCR API without a running Sling instance or JCR repository.</p>
+<p>The <a href="/documentation/development.html">Development</a> documentation page contains a section "Testing Sling-based Applications" lising all mock implementations available as part of the Apache Sling project.</p>
+<p>In other cases we use <a href="http://www.jmock.org/">jmock</a> or <a href="https://code.google.com/p/mockito/">Mockito</a> to help create mock objects without having to write much code - such mocking libraries take care of the plumbing and allow you to write just the bits of code that matter (often with funny syntaxes). The tests of the <a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/event/">org.apache.sling.event</a> bundle, for example, make extensive use of such mock services.</p>
+<p>The problem with mocks is that it can become hard to make sure you're actually testing something, and not just "mocking mocks". At a certain level of complexity, it becomes quicker and clearer to actually start an OSGi framework for automated tests.</p>
+<h3>Side note: injecting services in private fields</h3>
+<p>To inject (real or fake) services in others for testing, without having to create getters and setters just for this, you could use a reflection-based trick, as in the below example. Utilities such as the <a href="http://junit-addons.sourceforge.net/junitx/util/PrivateAccessor.html">PrivateAccessor</a> from <a href="http://junit-addons.sourceforge.net/">junit-addons</a> make that simpler.</p>
+<h1>!java</h1>
+<p>// set resource resolver factory // in a ServletResolver object which has a private resourceResolverFactory field</p>
+<p>ServletResolver servletResolver = .... Class&lt;?&gt; resolverClass = servletResolver.getClass().getSuperclass(); final java.lang.reflect.Field resolverField = resolverClass.getDeclaredField("resourceResolverFactory"); resolverField.setAccessible(true); resolverField.set(servletResolver, factory);</p>
+<h2>Pax Exam</h2>
+<p><a href="http://team.ops4j.org/wiki/display/paxexam/Pax+Exam">Pax Exam</a> allows you to easily start an OSGi framework during execution of a JUnit test suite.</p>
+<p>We currently use it for our <a href="https://svn.apache.org/repos/asf/sling/trunk/installer/it">Sling installer integration tests</a> for example. As parts of the installer interact directly with the OSGi framework, it felt safer to test it in a realistic situation rather than mock everything.</p>
+<p>Such tests are obviously slower than plain unit tests and tests that use mocks. Our installer integration tests, using Pax Exam, take about a minute to execute on a 2010 macbook pro.</p>
+<h2>Server-side JUnit tests</h2>
+<p>The tools described on the <a href="/documentation/bundles/org-apache-sling-junit-bundles.html">JUnit server-side testing support</a> page allow for running JUnit tests on an live Sling instance, as part of the normal integration testing cycle.</p>
+<h2>HTTP-based integration tests</h2>
+<p>The <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/junit/rules">Sling HTTP Testing Rules</a> allow writing integration tests easily. They are primarily meant to be used for tests that use http against a Sling instance and make use of the <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/http/clients">org.apache.sling.testing.clients</a> which offer a simple, immutable and extendable way of working with specialized testing clients.</p>
+<p>The JUnit rules incorporate boiler-plate logic that is shared in tests and take the modern approach of using rules rather than inheritance. The <code>SlingRule</code> (for methods) or <code>SlingClassRule</code> (for test classes) are base rules, chaining other rules like <code>TestTimeoutRule</code>, <code>TestDescriptionRule</code>, <code>FilterRule</code>. The <code>SlingInstanceRule</code> extends that and starts a Sling instance if needed and also allows instantiating a <code>SlingClient</code> pointing to the instance and automatically configure the base url, credentials, etc.</p>
+<h3><a name="starting"></a> Starting an Integration Test</h3>
+<p>Starting an integration is very simple out of the box, but is very extendable, both by combining or configuring the junit rules and by using the versatile <code>SlingClient</code> (which can be extended or adapted by calling <code>adaptTo(MyClient.class)</code> without losing the client configuration)</p>
+<p>The <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/junit/rules/README.md">README</a> provides more detail, as do <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/junit/rules/src/test/java">the tests</a>. The <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/http/clients">Sling HTTP Testing Clients</a> provide simple explanations, and unit tests.</p>
+<h4>Maven Dependency</h4>
+<h1>!xml</h1>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.rules</artifactId> <version>0.1.0-SNAPSHOT</version> </dependency></p>
+<h4>Simple Example using SlingInstanceRule</h4>
+<h1>!java</h1>
+<p>public class MySimpleIT {</p>
+<p>@ClassRule public static SlingInstanceRule instanceRule = new SlingInstanceRule();</p>
+<p>@Rule public SlingRule methodRule = new SlingRule(); // will configure test timeout, description, etc.</p>
+<p>@Test public void testCreateNode() { SlingClient client = instanceRule.getAdminClient(); client.createNode("/content/myNode", "nt:unstructured"); Assert.assertTrue("Node should be there", client.exists("/content/myNode")); //client.adaptTo(OsgiConsoleClient.class).editConfigurationWithWait(10, "MYPID", null, myMap); } }</p>
+<h2>Summary</h2>
+<p>Combining the above testing techniques has worked well for us in creating and testing Sling. Being able to test things at different levels of integration has proved an efficient way to get good test coverage without having to write too much boring test code.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[12/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/news.md
----------------------------------------------------------------------
diff --git a/content/news.md b/content/news.md
deleted file mode 100644
index 98dc445..0000000
--- a/content/news.md
+++ /dev/null
@@ -1,490 +0,0 @@
-title=News		
-type=page
-status=published
-~~~~~~
-
-* New Releases: [Apache Sling 9](/news/sling-launchpad-9-released.html), Apache Sling Launchpad Testing 9, Apache Sling Launchpad Testing WAR version 9, Apache Sling Launchpad Testing Fragment Bundle 2.0.12, Apache Sling Launchpad Testing Services 2.0.12, Apache Sling Launchpad Test Bundles 0.0.2, Apache Sling Launchpad Testing Services WAR 2.0.12, Apache Sling Integration Tests 1.0.4 ( June 12S , 2017 )
-* New Releases: Apache Sling JUnit Core 1.0.26, Testing Clients 1.1.0, JUnit Remote Test Runners 1.0.12, Tooling Support Install 1.0.4, and Tooling Support Source 1.0.4 (June 6th, 2017)
-* New Releases: Apache Sling Resource Inventory 1.0.8, Content Distribution Core 0.2.8, Testing Sling Mock 2.2.12, Log Tracer 1.0.4, and Commons Metrics 1.2.2 (June 6th, 2017)
-* New Releases: Apache Sling JCR Content Parser 1.2.2, JCR ContentLoader 2.2.4, File System Resource Provider 2.1.4, File System Resource Provider 1.4.4, Maven Sling Plugin 2.3.0 (June 2nd, 2017)
-* New Release: Apache Sling SLF4J Implementation (Logback) 5.0.2 (June 1st, 2017)
-* New Release: Apache Sling JCR Resource 3.0.2 (May 31st, 2017)
-* New Releases: Apache Sling JCR Content Parser 1.2.0, File System Resource Provider 2.1.2, File System Resource Provider 1.4.2, Maven Sling Plugin 2.2.2, Context-Aware Configuration SPI 1.3.2, Context-Aware Configuration Impl 1.4.2, Context-Aware Configuration Mock Plugin 1.3.0, Launchpad Content 2.0.12 (May 29th, 2017)
-* New Releases: Apache Sling Servlet Post 2.3.20, JCR Contentloader 2.2.2, Launchpad Base 5.6.4-2.6.18 (May 28th, 2017)
-* New Releases: Apache Sling Service User Mapper 1.3.2, Apache Sling JCR Base Bundle 3.0.2, Apache Sling Web Console Branding 1.0.2 and Apache Sling Engine Implementation 2.6.8 (May 22nd, 2017)
-* New Releases: Apache Sling Servlets Get 2.1.26 and Apache Sling Servlets Post 2.3.18 (May 19th, 2017)
-* New Releases: Apache Sling Commons Scheduler 2.6.2 and Apache Sling Installer Core 3.8.10 (May 18th, 2017)
-* New Releases: Apache Sling Models Impl 1.4.2, Testing OSGi Mock 2.3.2, OSGi Mock 1.9.6, Sling Mock 2.2.10, Sling Mock 1.9.8, Apache Sling Auth Core 1.3.24 (May 15th, 2017)
-* New Release: Apache Sling JUnit Scriptable Tests Provider 1.0.12 (May 12th, 2017)
-* New Release: Apache Sling XSS Protection Compat Bundle 1.1.0 (May 11th, 2017)
-* New Release: Apache Sling Scripting JavaScript 3.0.0 (May 11th, 2017)
-* New Releases: Apache Sling Junit Core 1.0.24, Junit Teleporter 1.0.14, and Testing Tools 1.0.16 (May 11th, 2017)
-* New Release: Apache Sling Adapter 2.1.10 (May 11th, 2017)
-* New Releases: Apache Sling Servlets Get 2.1.24, Servlets Post 2.3.16, and JCR Jackrabbit Access Manager 3.0.0 (May 11th, 2017)
-* New Releases: Apache Sling Healthcheck API 1.0.0 and Core 1.2.8 (May 11th, 2017)
-* New Releases: Apache Sling Discovery Commons 1.0.20, Base 2.0.0, Impl 1.2.12, and Oak 1.2.18 (May 11th, 2017)
-* New Releases: Apache Sling Scripting HTL Java Compiler 1.0.10, Apache Sling Scripting HTL Engine 1.0.34, Apache Sling Scripting HTL JS Use Provider 1.0.22 , Apache Sling Servlets Resolver 2.4.12 (May 9th, 2017)
-* New Release: Apache Sling Installer Core 3.8.8 (May 8th, 2017)
-* New Releases: Apache Sling JCR ContentLoader 2.2.0, Pax Exam Utilities 1.0.4, Apache Sling File System Resource Provider 2.1.0, File System Resource Provider 1.4.0, JCR Content Parser 1.1.0 (May 8th, 2017)
-* New Releases: Apache Sling XSS Protection Bundle 2.0.0, XSS Protection Compat Bundle 1.0.0, Sling Resource Resolver 1.5.24, Context-Aware Configuration Impl 1.4.0, Context-Aware Configuration Mock Plugin 1.2.0, Testing JCR Mock 1.3.0, OSGi Mock 2.3.0, Sling Mock 2.2.8 (May 5th, 2017)
-* New Releases: Apache Sling Models API 1.3.4 and Models Implementation 1.4.0 (May 1st, 2017)
-* New Release: Apache Sling JCR Installer Provider 3.1.26 (May 1st, 2017)
-* New Release: Apache Sling JCR Resource 3.0.0 (May 1st, 2017)
-* New Release: Apache Sling Sling Slingstart Maven Plugin 1.7.4, Apache Sling Service User Mapper 1.3.0, Apache Sling Scripting API 2.2.0 and Tooling Support Source 1.0.2 (May 1th, 2017)
-* New Release: Apache Sling Commons Johnzon 1.0.0 (April 29th, 2017)
-* New Release: Apache Sling Event API 1.0.0 (April 19th, 2017)
-* New Releases: Apache Sling Validation API and Core 1.0.0 (April 12th, 2017)
-* New Release: Apache Sling Testing ResourceResolver Mock 1.1.18 (April 4th, 2017)
-* New Release: Apache Sling JCR Jackrabbit User Manager 2.2.6 (April 3rd, 2017)
-* New Releases: Apache Sling Resource Resolver 1.5.22 and Apache Sling Service User Mapper 1.2.6, Apache Sling Testing Sling Mock 2.2.6, Sling Mock 1.9.6, Sling Mock Oak 1.0.2, Context-Aware Configuration Implementation 1.3.2, File System Resource Provider 2.0.0, File System Resource Provider 1.3.0 (March 30th, 2017)
-* New Releases: Apache Sling CAConfig SPI 1.3.0, CAConfig Impl 1.3.0, CAConfig Mock Plugin 1.1.0, Apache Sling Maven Sling Plugin 2.2.0 (March 24th, 2017)
-* New Releases: Apache Sling JCR Content Parser 1.0.0, Testing OSGi Mock 2.2.4, Testing OSGi Mock 1.9.4 (March 23th, 2017)
-* New Releases: Apache Sling Commons JSON 2.0.20, Apache Sling Karaf repoinit 0.2.0, Apache Sling Scripting JSP API Wrapper 1.0.0, Apache Sling Scripting JSP EL Wrapper 1.0.0, Apache Sling Scripting JSP 2.3.0, Apache Sling Testing PaxExam 0.0.4, Apache Sling JCR Oak Server 1.1.4, Apache Sling Scripting Thymeleaf 1.1.0, Apache Sling Resource Presence 0.0.2 (March 20th, 2017)
-* New Releases: Apache Sling Resource Resolver 1.5.20, Apache Sling JCR Repoinit 1.1.4 (March 13th, 2017)
-* New Releases: Apache Sling i18n 2.5.8, Apache Sling JCR Installer 3.1.24, Apache Sling XSS 1.0.18, Apache Sling HTL JavaScript Use Provider 1.0.20, Apache Sling Scripting Core 2.0.46, Apache Sling Health Check Core 1.2.6, Apache Sling Event 4.2.2, Apache Sling Distributed Event Admin 1.1.2 (March 8th, 2017)
-* New Releases: Apache Sling Content Distribution Core 0.2.6, Apache Sling Installer Health Checks 1.0.0, Apache Sling Parent 30 (Mar 6th, 2017)
-* New Releases: Apache Sling Scripting HTL Compiler 1.0.8, Apache Sling Scripting HTL Engine 1.0.32 (March 2nd, 2017)
-* New Release: Apache Sling Commons Classloader 1.4.0, Apache Sling Commons File System Classloader 1.0.6 (Mar 1st, 2017)
-* New Release: Apache Sling Resource Resolver 1.5.14 (Feb 28th, 2017)
-* New Release: Apache Sling JUnit Tests Teleporter 1.0.12 (Feb 28th, 2017)
-* New Release: Apache Slingstart Maven Plugin 1.7.2 (Feb 28th, 2017)
-* New Release: Apache Sling Installer Core 3.8.6 (Feb 20th, 2017)
-* New Release: Apache Sling Content Distribution Core 0.2.4 (Feb 20th, 2017)
-* New Release: Apache Sling Content Distribution Core 0.2.0 (Feb 14th, 2017)
-* New Release: Apache Sling Servlets GET 2.1.22 (Feb 12th, 2017)
-* New Release: Apache Sling Resource Merger 1.3.2 (Feb 8th, 2017)
-* New Releases: Apache Sling DavEx Access to repositories 1.3.8, Apache Sling Simple WebDAV Access to repositories 2.3.8 (Feb 8th, 2017)
-* New Release: Apache Sling Launchpad Base 2.6.16 (Feb 5th, 2017)
-* New Release: Apache Sling Servlets GET 2.1.20 (Feb 3rd, 2017)
-* New Release: Apache Sling Commons ClassLoader 1.3.8 (Feb 3rd, 2017)
-* New Releases: Apache Sling Resource Inventory 1.0.6, Apache Sling Installer Core 3.8.2 (Jan 31st, 2017)
-* New Releases: Apache Sling JSP 2.2.6, Apache Sling Auth Core 1.3.24 (Jan 30th, 2017)
-* New Releases: Apache Sling File System Resource Provider 1.2.2, Maven Sling Plugin 2.1.10, and Apache Sling Resource Resolver 1.5.12 (Jan 23th, 2017)
-* New Releases: Apache Sling Tenant 1.1.0, Apache Sling Scripting HTL Compiler 1.0.6, Apache Sling Scripting HTL Java Compiler 1.0.8, Apache Sling Scripting HTL Engine 1.0.30, Apache Sling HTL Maven Plugin 1.0.6 (Jan 17th, 2017)
-* New Release: Apache Sling JSP 2.2.4 (Jan 16th, 2017)
-* New Release: Apache Sling Resource Resolver 1.5.10 (Jan 13th, 2017)
-* New Releases: JUnit Core 1.0.23, JUnit Tests Teleporter 1.0.10, Testing Clients 1.0.1, Server Setup Tools 1.0.1, Testing Rules 1.0.1 (Jan 11th, 2017)
-* New Releases: Apache Sling Scripting HTL Compiler 1.0.4, Apache Sling Scripting HTL Java Compiler 1.0.6, Apache Sling Scripting HTL Engine 1.0.28, Apache Sling Scripting HTL Models Use Provider 1.0.6, Apache Sling Scripting HTL JS Use Provider 1.0.18, Apache Sling HTL Maven Plugin 1.0.4 (January 9th, 2017)
-* New Release: Apache Sling Testing Hamcrest 1.0.2 (January 7th, 2017)
-* New Release: Apache Sling Testing ResourceResolver Mock 1.1.16 (December 27th, 2016)
-* New Releases: Apache Sling Servlets Resolver 2.4.10, Apache Sling File System Classloader 1.0.4 and Apache Sling Installer Console 1.0.2 (December 24th, 2016)
-* New Releases: Apache Sling Resource Resolver 1.5.8, Apache Sling JCR Resource 2.9.2 and Apache Sling Slingshot Sample 0.8.0 (December 23rd, 2016)
-* New Releases: Apache Sling Mock 2.2.4, Sling Mock 1.9.4, JUnit Core 1.0.22, Sling Models API 1.3.2, Models Impl 1.3.8 and Apache Sling Service User Mapper 1.2.4 (December 22th, 2016)
-* New Releases: Apache Sling JCR Base 3.0.0 (December 20th, 2016)
-* New Releases: Apache Sling Dynamic Include 3.0.0 (December 20th, 2016)
-* New Releases: Apache Sling i18n 2.5.6, Apache Sling JCR RepoInit module 1.1.2 (December 19th, 2016)
-* New Releases: Apache Sling API 2.16.2 and Slingstart Maven Plugin 1.7.0 (December 18th, 2016)
-* New Releases: Apache Sling JCR Resource 2.9.0, Apache Sling Scripting JSP 2.2.2, Apache Sling Scripting Java 2.1.2, Apache Sling Provisioning Model 1.8.0, Apache Sling Testing JCR Mock 1.2.0, OSGi Mock 2.2.2, OSGi Mock 1.9.2, Sling Mock 2.2.2, Sling Mock 1.9.2, JUnit Core 1.0.20, Apache Sling Context-Aware Configuration API 1.1.0, Context-Aware Configuration SPI 1.2.0, Context-Aware Configuration Impl 1.2.0, Context-Aware Configuration bnd Plugin 1.0.2, Context-Aware Configuration Mock Plugin 1.0.0 (December 16th, 2016)
-* New Releases: Apache Sling Scripting API 2.1.12, Apache Sling Scripting Core 2.0.44 (December 15th, 2016)
-* New Release: Apache Sling JCR Installer 3.1.22 (December 13th, 2016)
-* New Release: Apache Sling Commons Metrics 1.2.0 (December 13th, 2016)
-* New Releases: Apache Sling OSGi Mock 2.2.0, OSGi Mock 1.9.0, Sling Mock 2.2.0, Sling Mock 1.9.0 (December 8th, 2016)
-* New Releases: Apache Sling API 2.16.0, Apache Sling Resource Resolver 1.5.6, Apache Sling Servlets Resolver 2.4.8, Apache Sling JCR Resource 2.8.4 (December 6th, 2016)
-* New Releases: Apache Sling Models bnd Plugin 1.0.0, Apache Sling Commons ClassLoader 1.3.6 (November 24th, 2016)
-* New Release: Apache Sling JCR Resource 2.8.2, Security 1.1.2, Models Implementation 1.3.4 and Models Jackson Exporter 1.0.4 (November 22th, 2016)
-* New Release: Apache Sling Resource Resolver 1.5.4, Apache Sling Discovery Base 1.1.6, Apache Sling Discovery Commons 1.0.18, Apache Sling Discovery Impl 1.2.10 and Discovery Oak 1.2.16 (November 21st, 2016)
-* New Releases: Apache Sling Auth Core 1.3.22 (November 15th, 2016)
-* New Releases: Apache Sling JCR Base 2.4.2 (November 14th, 2016)
-* New Releases: Apache Sling Provisioning Model 1.7.0 and Apache Sling Slingstart Maven Plugin 1.6.0 (November 13th, 2016)
-* New Releases: Apache Sling JCR Repoinit 1.1.0 and Apache Sling Repoinit Parser 1.1.0 (November 12th, 2016)
-* New Release: Apache Sling Slingstart Maven Plugin 1.5.0 (November 11th, 2016)
-* New Release: Apache Sling Installer Core 3.8.0, Apache Sling Context-Aware Configuration SPI 1.1.0 and Impl 1.1.0 (November 10th, 2016)
-* New Release: Apache Sling Resource Resolver 1.5.2, Apache Sling Provisioning Model 1.6.0, and Apache Sling HTL Maven Plugin 1.0.2 (November 8th, 2016)
-* New Release: Apache Sling Commons Mime 2.1.10 (November 7th, 2016)
-* New Release: Apache Sling Web Console Security Provider 1.2.0 (November 6th, 2016)
-* New Releases: Apache Sling Models API 1.3.0, Models Implementation 1.3.0 and Models Jackson Exporter 1.0.0 (November 3th, 2016)
-* New Releases: Apache Sling Launchpad Base 2.6.14, Apache Sling Provisioning Model 1.5.0, Apache Sling XSS Protection API 1.0.16 (October 31st, 2016)
-* New Release: Apache Sling Commons Scheduler 2.5.2 (October 27th, 2016)
-* New Releases: Apache Sling API 2.15.0, Apache Sling Resource Resolver 1.5.0, Apache Sling Installer Core 3.7.0 (October 25st, 2016)
-* New Release: Apache Sling Scripting HTL Engine 1.0.26, Apache Sling Commons Log 5.0.0, Log WebConsole 1.0.0, Apache Sling DataSource Provider 1.0.2 and Apache Sling Log Tracer 1.0.2 (October 24th, 2016)
-* New Release: Apache Sling Servlets Resolver 2.4.6 (October 22nd, 2016)
-* New Releases: Apache Sling Scripting JSP 2.2.0, Apache Sling Engine 2.6.6, Apache Sling Scripting Java 2.1.0, Apache Sling Scripting HTL JS Use Provider 1.0.16 (October 20th, 2016)
-* New Releases: Apache Sling Context-Aware Configuration API 1.0.0, SPI 1.0.0, Impl 1.0.0, bnd Plugin 1.0.0, Resource Builder 1.0.2, Testing Hamcrest 1.0.0 (October 18th, 2016)
-* New Releases: Apache Sling Scripting Core 2.0.40, Apache Sling Scripting HTL Java Compiler 1.0.4, Apache Sling Scripting HTL Engine 1.0.24 (October 17th, 2016)
-* New Release: Apache Sling Launchpad Base 2.6.12 (October 16th, 2016)
-* New Releases: Apache Sling Event 3.4.0, Apache Sling Distributed Eventing 1.1.0, and Apache Sling Rewriter 1.2.0 (October 15th, 2016)
-* New Release: Apache Sling Pipes 0.0.10 (October 14th, 2016)
-* New Releases: Apache Sling Scripting HTL Compiler 1.0.2, Apache Sling Scripting HTL Java Compiler 1.0.2, Apache Sling Scripting HTL Engine 1.0.22, Apache Sling Scripting HTL JS Use Provider 1.0.14, Apache Sling Scripting HTL Models Use Provider 1.0.4 (October 13th, 2016)
-* New Release: Apache Sling Testing Sling Mock 2.1.2 (October 10th, 2016)
-* New Release: Apache Sling i18n 2.5.4 (October 8th, 2016)
-* New Release: Apache Sling Oak Restrictions 1.0.0 (October 3rd, 2016)
-* New Releases: Apache Sling Discovery Commons 1.0.16 and Discovery Oak 1.2.14 (Sep 29th, 2016)
-* New Release: Apache Sling Testing Clients 1.0.0, Apache Sling Server Setup Tools 1.0.0, Apache Sling Testing Rules 1.0.0 (Sep 16th, 2016)
-* New Release: Apache Sling Auth Core 1.3.20, JUnit Core 1.0.18, JUnit Tests Teleporter 1.0.8, Testing Logging Mock 2.0.0, JCR Mock 1.1.16, OSGi Mock 1.8.0, OSGi Mock 2.1.0, Sling Mock 1.8.0, Sling Mock 2.1.0, Sling Mock Oak 2.0.2, Resource Builder 1.0.0, Servlet Helpers 1.1.0 (Sep 19th, 2016)
-* New Releases: Apache Sling Scripting HTL Compiler 1.0.0, Apache Sling Scripting HTL Java Compiler 1.0.0, Apache Sling Scripting HTL Engine 1.0.20, Apache Sling Scripting HTL JS Use Provider 1.0.12, Apache Sling Scripting HTL Models Use Provider 1.0.2, Apache Sling Scripting HTL REPL 1.0.4, Apache Sling HTL Maven Plugin 1.0.0 (Sep 8th, 2016)
-* New Release: Apache Sling Discovery Oak 1.2.10 (Sep 5th, 2016)
-* New Releases: Apache Sling RepoInit Parser 1.0.4, Apache Sling RepoInit JCR module 1.0.2, Apache Sling XSS Protection API 1.0.14 (August 29th, 2016)
-* New Releases: Apache Sling Auth Core 1.3.18 and Apache Sling Testing Tools 1.0.14 (August 29th, 2016)
-* New Releases: Apache Sling Engine 2.6.2, Apache Sling Commons Testing 2.1.0, Apache Sling API 2.14.2, Apache Sling Resource Resolver 1.4.18 (August 26th, 2016)
-* New Release: Apache Sling Servlets Get 2.1.18 (August 25th, 2016)
-* New Release: Apache Sling Engine 2.6.0, Apache Sling Feature Flags 1.2.0 (August 22nd, 2016)
-* New Releases: Apache Sling Background Servlets 1.0.8, Apache Sling XSS Protection API 1.0.12 (August 19th, 2016)
-* New Releases: Apache Sling I18n 2.5.2 and Apache Sling Hypermedia API client-side tools 1.0.0 (August 18th, 2016)
-* New Releases: Apache Sling Testing PaxExam 0.0.2, Apache Sling JCR Oak Server 1.1.0 (August 17th, 2016)
-* New Release: Apache Sling Security 1.1.0 (August 15th, 2016)
-* New Releases: Apache Sling i18n 2.5.0 and Apache Sling i18n 2.4.10 (August 8th, 2016)
-* New Releases: Apache Sling Engine 2.5.0, Apache Sling i18n 2.4.8, and Apache Sling Feature Flags 1.1.0 (August 5th, 2016)
-* New Release: Apache Sling Event Support 4.1.0 (August 1st, 2016)
-* New Releases: Apache Sling Resource Resolver 1.4.16, Apache Sling Launchpad Testing Services 2.0.10, Testing Services WAR 2.0.10, Apache Sling Integration Tests 1.0.2, Apache Sling API 2.14.0 (July 25th, 2016)
-* New Release: Apache Sling Commons Scheduler 2.5.0 (July 24th, 2016)
-* New Release: Apache Sling Resource Resolver 1.4.14 (July 21st, 2016)
-* New Releases: Apache Sling Discovery Base 1.1.4, Apache Sling Discovery Impl 1.2.8, Apache Sling Discovery Oak 1.2.8 (July 17th, 2016)
-* New Releases: Apache Sling Testing Sling Mock 1.7.0, Sling Mock 2.0.0, Sling Mock Oak 2.0.0 (July 15th, 2016)
-* New Releases: Apache Sling Commons Testing 2.0.26, Apache Sling Scripting Core 2.0.38, Apache Sling Servlets Resolver 2.4.4 (July 13th, 2016)
-* New Releases: Apache Sling Repoinit Parser 1.0.2, Repoinit JCR 1.0.0 (July 11th, 2016)
-* New Release: Apache Sling API 2.12.0 (July 9th, 2016)
-* New Release: Apache Sling Scripting Thymeleaf 1.0.0 (July 4th, 2016)
-* New Release: Apache Sling Auth Core 1.3.16 (June 29th, 2016)
-* New Releases: Apache Sling Adapter Manager 2.1.8 (June 28th, 2016)
-* New Releases: Apache Sling Repository API Bundle 2.4.0, Apache Sling JCR Base Bundle 2.4.0 (June 27th, 2016)
-* New Release: Apache Sling Rewriter 1.1.4 (June 26th, 2016)
-* New Releases: Apache Sling JCR Resource 2.8.0 and Apache Sling Scripting JavaScript 2.0.30 (June 22nd, 2016)
-* New Releases: Apache Sling Testing JCR Mock 1.1.14, OSGi Mock 2.0.4, ResourceResolver Mock 1.1.14 (June 13th, 2016)
-* New Releases: Apache Sling Provisioning Model 1.4.4, and Slingstart Maven Plugin 1.4.4 (June 10th, 2016)
-* New Release: Apache Sling Servlets Post 2.3.12 (June 1st, 2016)
-* New Release: Apache Sling JSON Library 2.0.16 (May 27th, 2016)
-* New Release: Apache Sling Discovery API 1.0.4 (April 29th, 2016)
-* New Release: Apache Sling Log Tracer version 1.0.0, Apache Sling Resource Resolver 1.4.12 (April 25th, 2016)
-* New Release: Apache Sling Scripting JSP-Taglib version 2.2.6 (April 21st, 2016)
-* New Release: Apache Sling Auth Core 1.3.14 (April 12th, 2016)
-* New Release: Apache Sling Servlets Post (April 10th, 2016)
-* New Release: Apache Sling Resource Resolver (April 7th, 2016)
-* New Release: Apache Sling Event 4.0.2 (April 4th, 2016)
-* New Release: Apache Sling Discovery Commons 1.0.12 (March 29th, 2016)
-* New Release: Apache Sling Scripting Sightly Engine 1.0.18 (March 18th, 2016)
-* New Release: Apache Maven Sling Plugin 2.1.8 (March 16th, 2016)
-* New Release: [Apache Sling IDE Tooling for Eclipse 1.1.0](/news/sling-ide-tooling-11-released.html) (March 14th, 2016)
-* New Releases: Apache Sling Resource Resolver 1.4.8, Apache Sling JCR Resource 2.7.4, and Apache Sling Installer Core 3.6.8 (March 11th, 2016)
-* New Releases: Apache Sling Health Check Core 1.2.4, Apache Sling Health Checks Annotations 1.0.4, Apache Sling JCR Davex 1.3.2, and Apache Sling JCR Webdav 2.3.4 (March 8th, 2016)
-* New Release: Apache Sling Scripting Sightly Engine 1.0.16 (March 5th, 2016)
-* New Release: Apache Sling Tooling Support Source 1.0.0 (March 3rd, 2016)
-* New Releases: Apache Sling Background Servlets Engine 1.0.6, Apache Sling Background Servlets Integration Test 1.0.0 (March 2nd, 2016)
-* New Releases: Apache Sling NoSQL Generic Resource Provider 1.1.0, Couchbase Client 1.0.2, Couchbase Resource Provider 1.1.0, MongoDB Resource Provider 1.1.0 (February 27th, 2016)
-* New Release: Apache Sling Resource Resolver 1.4.4, Apache Sling Scripting Sightly Engine 1.0.14 (February 26th, 2016)
-* New Release: Apache Sling JCR Base 2.3.2 (February 23rd, 2016)
-* New Release: Apache Sling Internationalization Support (I18N) 2.4.6 (February 22nd, 2016)
-* New Releases: Apache Sling Resource Resolver 1.4.2, Apache Sling JCR Resource 2.7.2, and Apache Sling Servlets Resolver 2.4.2 (February 19th, 2016)
-* New Release: Apache Sling JCR Installer 3.1.18 (February 15th, 2016)
-* New Release: Apache Sling Resource Merger 1.3.0 (February 14th, 2016)
-* New Release: Apache Sling Scripting Core 2.0.36 (February 12th, 2016)
-* New Release: Apache Sling Slingstart Maven Plugin 1.4.2 (February 11th, 2016)
-* New Releases: Apache Sling API 2.11.0, Apache Sling Resource Resolver 1.4.0, Apache Sling JCR Resource 2.7.0, Apache Sling Servlets Resolver 2.4.0, Apache Sling Testing OSGi Mock 1.7.2, OSGi Mock 2.0.2, JCR Mock 1.1.12, Sling Mock 1.6.2, ResourceResolver Mock 1.1.12, Servlet Helpers 1.0.0 (February 8th, 2016)
-* New Release: Apache Sling Discovery Oak 1.2.6 (February 8th, 2016)
-* New Release: Apache Sling HApi 1.0.0 (February 5th, 2016)
-* New Releases: Apache Sling XSS Protection API 1.0.8, Apache Sling Scripting Sightly Engine 1.0.12 (February 2nd, 2016)
-* New Releases: Apache Sling Discovery Commons 1.0.10, Apache Sling Discovery Oak 1.2.4 and Apache Sling Testing Tools 1.0.12 (February 1st, 2016)
-* New Release: Apache Sling Thread Support 3.2.6 (January 25th, 2016)
-* New Release: Apache Sling Models Impl 1.2.6 (January 23st, 2016)
-* New Release: Apache Sling Testing Utilities 2.0.24 (January 21st, 2016)
-* New Releases: Apache Sling Commons Metrics 1.0.0 (January 15th, 2016)
-* New Releases: Apache Sling Scripting Sightly Engine 1.0.10, Apache Sling Scripting Groovy 1.0.2 (January 12th, 2016)
-* New Releases: Apache Sling Slingstart Maven Plugin 1.4.0, and Apache Sling Commons OSGi 2.4.0, Apache Sling Engine Implementation 2.4.6 (January 8th, 2016)
-* New Releases: Apache Sling Scripting JavaScript 2.0.28 (January 8th, 2016)
-* New Releases: Apache Sling JUnit Tests Teleporter 1.0.6, Apache Sling JUnit Core 1.0.16 (January 3rd, 2016)
-* New Releases: Apache Sling Settings 1.3.8, Apache Sling Launchpad Base 2.6.10, Apache Sling Scripting JSP 2.1.8, Apache Sling Commons Threads 3.2.4, Apache Sling Discovery Standalone 1.0.2, and Apache Sling Parent POM 26 (January 3rd, 2016)
-* New Release: Apache Sling Provisioning Model 1.4.2 (December 28th, 2015)
-* New Release: Apache Sling Commons Scheduler 2.4.14, Apache Sling Servlets GET 2.1.14 (December 21st, 2015)
-* New Release: Apache Sling Scripting Java 2.0.14 (December 20th, 2015)
-* New Releases: Apache Sling Models Impl 1.2.4, Sling Testing OSGi Mock 2.0.0, Apache Sling Commons Scheduler 2.4.12 (December 14th, 2015)
-* New Release: Apache Sling Launchpad Base 2.6.8 (December 11th, 2015)
-* New Release: Apache Sling Event 4.0.0 (December 1st, 2015)
-* New Releases: Apache Sling Discovery Commons 1.0.6, Apache Sling Discovery Base 1.1.2, Apache Sling Discovery Oak 1.2.0, and Apache Sling Discovery Impl 1.2.6 (November 30th, 2015)
-* New Releases: Apache Sling Thread Support 3.2.2 (November 29th, 2015)
-* New Releases: Apache Sling Background Servlets Engine 1.0.2, Apache Sling JUnit Core 1.0.14, Apache Sling JUnit Tests Teleporter 1.0.4 (November 23rd, 2015)
-* New Release: Apache Sling Security 1.0.18 (November 20th, 2015)
-* New Releases: Apache Sling Discovery Commons 1.0.4, Apache Sling Discovery Base 1.1.0, Apache Sling Discovery Oak 1.1.0, Apache Sling Discovery Impl 1.2.2 (November 16th, 2015)
-* New Releases: Apache Sling Commons Testing 2.0.22, Commons JSON 2.0.16, Maven Sling Plugin 2.1.6 (November 12th, 2015)
-* New Release: Apache Sling Testing OSGi Mock 1.7.0 (November 9th, 2015)
-* New Releases: Apache Sling Discovery Commons 1.0.2, Apache Sling Discovery Base 1.0.2, Apache Sling Discovery Oak 1.0.2, Apache Sling Discovery Impl 1.2.0 (November 5th, 2015)
-* New Release: Apache Sling IDE Tooling 1.0.10 (November 9th, 2015)
-* New Releases: Apache Sling Discovery Commons 1.0.0, Apache Sling Discovery Base 1.0.0, Apache Sling Discovery Oak 1.0.0 (November 2nd, 2015)
-* New Releases: Apache Sling Rewriter 1.1.2 (October 27th, 2015)
-* New Releases: Apache Sling Launchpad Base 2.6.6, Apache Sling Event 3.7.6, Apache Sling Provisioning Model 1.4.0, and Apache Sling Maven Launchpad Plugin 2.3.4 (October 26th, 2015)
-* New Releases: Apache Sling Archetype Parent version 4, Apache Sling Bundle Archetype version 1.0.4, Apache Sling JCRInstall Bundle Archetype 1.0.4, Apache Sling Initial Content Archetype 1.0.4, Apache Sling Servlet Archetype 1.0.4, Apache Sling Slingstart Archetype 1.0.0 (October 19th, 2015)
-* New Release: Apache Sling Auth Core 1.3.12 (October 18th, 2015)
-* New Release: [Apache Sling 8](/news/sling-launchpad-8-released.html) (October 16th, 2015)
-* New Release: Apache Sling Maven Plugin for Supporting Bundle Development 2.1.2 (October 15th, 2015)
-* New Release: Apache Sling Auth Forms 1.0.8 (October 13, 2015)
-* New Releases: Apache Sling Scripting Sightly Engine 1.0.6, Apache Sling Scripting Sightly Models Use Provider 1.0.0, Apache Sling Scripting Sightly REPL 1.0.2, Apache Sling Scripting JavaScript 2.0.26, Apache Sling XSS Protection API 1.0.6 (October 12th, 2015)
-* New Releases: Apache Sling Oak Repository Server 1.0.0, Apache Sling Adapter Manager Implementation 2.1.6, Apache Sling Jackrabbit UserManager Support 2.2.4, Apache Sling Simple WebDAV Access to repositories 2.3.2, Apache Sling OSGi LogService Implementation 1.0.6, Apache Sling Engine Implementation 2.4.4, Apache Sling JSON Library 2.0.12 ( October 12th, 2015)
-* New Releases: Apache Sling Testing OSGi Mock 1.6.0, Sling Mock 1.6.0, Sling Mock Jackrabbit 1.0.0, Sling Mock Oak 1.0.0 (October 9th, 2015)
-* New Release: Apache Sling Eclipse IDE 1.0.8 (October 8th, 2015)
-* New Release: Apache Sling Servlets Resolver 2.3.8, and Apache Sling Parent 25 (October 5th, 2015)
-* New Release: Apache Sling Discovery Impl 1.1.8, and Apache Sling Distributed Event Admin 1.0.4 (September 30th, 2015)
-* New Releases: Apache Sling JUnit Core 1.0.12, Apache Sling JUnit Tests Teleporter 1.0.2 (September 28th, 2015)
-* New Releases: Apache Sling NoSQL Generic Resource Provider 1.0.0, NoSQL Couchbase Client 1.0.0, NoSQL Couchbase Resource Provider 1.0.0, NoSQL MongoDB Resource Provider 1.0.0 (September 21th, 2015)
-* New Releases: Apache Sling Testing ResourceResolver Mock 1.1.10, Apache Sling Rewriter 1.1.0, Apache Sling Models API 1.2.2, Apache Sling Models Impl 1.2.2 (September 15th, 2015)
-* New Releases: Apache Sling Testing Sling Mock 1.5.0, JCR Mock 1.1.10 (September 10th, 2015)
-* New Releases: Apache Sling Scripting Sightly JS Use Provider 1.0.10, Apache Sling Scripting Sightly Engine 1.0.4, Apache Sling Scripting JavaScript 2.0.24 (September 7th, 2015)
-* New Release: Apache Sling Slingstart Maven Plugin 1.3.6 (September 7th, 2015)
-* New Release: Apache Sling Launchpad Base 5.2.0-2.6.4 (September 6th, 2015)
-* New Release: Apache Sling Security 1.0.16 (September 4th, 2015)
-* New Releases: Apache Sling JCR Resource 2.5.6, and Apache Sling Slingstart Maven Plugin 1.3.4, Apache Sling Security 1.0.14 (August 31st, 2015)
-* New Release: Apache Sling Security 1.0.12 (August 25th, 2015)
-* New Releases: Apache Sling Testing OSGi Mock 1.5.0, ResourceResolver Mock 1.1.8 (August 24th, 2015)
-* New Release: Apache Sling Web Console Security Provider 1.1.6 (August 21st, 2015)
-* New Release: Apache Sling Slingstart Maven Plugin 1.3.2 (August 20th, 2015)
-* New Releases: Apache Sling JCR API 2.3.0, Apache Sling JCR Base 2.3.0, Apache Sling JCR Jackrabbit Server 2.3.0, Apache Sling JCR Davex 1.3.0 and Apache Sling JCR Webdav 2.3.0 (August 17th, 2015)
-* New Release: Apache Sling Commons Scheduler 2.4.10 (August 14th, 2015)
-* New Releases: Apache Sling i18n 2.4.4, Apache Sling Scripting Core 2.0.34, Apache Sling Scripting JavaScript 2.0.22, Apache Sling Scripting Sightly JS Use Provider 1.0.8 (August 13th, 2015)
-* New Releases: Apache Sling Commons Log 4.0.6 (August 11th, 2015)
-* New Releases: Apache Sling Slingstart Maven Plugin 1.3.0, and Apache Sling Provisioning Model 1.3.0 (August 7th, 2015)
-* New Release: Apache Sling XSS Protection Bundle 1.0.4 (August 3rd, 2015)
-* New Release: Apache Sling Scripting Core 2.0.32 (July 26th, 2015)
-* New Releases: Apache Sling Event 3.7.4 and Apache Sling Distributed Event Admin 1.0.2 (July 24th, 2015)
-* New Releases: Apache Sling Scripting API 2.1.8, Apache Sling Scripting Core 2.0.30, Apache Sling Scripting JavaScript 2.0.20,
-Apache Sling Scripting Sightly JS Use Provider 1.0.6, Apache Sling Resource Merger 1.2.10 (July 21st, 2015)
-* New Release: Apache Sling JCR Resource 2.5.4 (July 17th, 2015)
-* New Release: Apache Sling Servlets GET 2.1.12 (July 17th, 2015)
-* New Release: Apache Sling Event 3.7.2 (July 13th, 2015)
-* New Release: Apache Sling Authentication Service 1.3.10 (July 13th, 2015)
-* New Release: Apache Sling Scripting Thymeleaf 0.0.6 (July 10th, 2015)
-* New Release: Apache Sling Content Detection Support 1.0.2 (July 9th, 2015)
-* New Releases: Apache Sling Parent 24, Apache Sling Authentication Service 1.3.8 (July 6th, 2015)
-* New Release: Apache Sling Scripting JavaScript Support 2.0.18 (July 2nd, 2015)
-* New Release: Apache Sling Feature Flags 1.0.2 (July 1st, 2015)
-* New Release: Apache Sling Event 3.7.0 (June 30, 2015)
-* New Releases: Apache Sling Models API 1.2.0, Models Impl 1.2.0, Testing Sling Mock 1.4.0, OSGi Mock 1.4.0, JCR Mock 1.1.8 (June 27th, 2015)
-* New Release: Apache Sling JCR Resource Resolver 2.5.2 (June 26th, 2015)
-* New Release: Apache Sling Parent 23 (June 25th, 2015)
-* New Release: Apache Sling Log Tracer 1.0.2 (June 22th, 2015)
-* New Release: Apache Sling Commons FileSystem ClassLoader 1.0.2 (June 19th, 2015)
-* New Release: Apache Sling Default POST Servlets 2.3.8 (June 15th, 2015)
-* New Releases: Apache Sling Provisioning Model 1.2.0, Apache Sling Installer Core 3.6.6, Apache Sling Commons Scheduler 2.4.8, and Apache Sling Slingstart Maven Plugin 1.2.0 (June 13th, 2015)
-* New Release: Apache Sling Background Servlets Engine 1.0.0 (June 2nd, 2015)
-* New Releases: Apache Sling Testing Sling Mock 1.3.0, OSGi Mock 1.3.0, JCR Mock 1.1.6, ResourceResolver Mock 1.1.6, Logging Mock 1.0.0, Commons OSGi 2.3.0 (May 26th, 2015)
-* New Release: Apache Sling Installer Core 3.6.4 (May 2nd, 2015)
-* New Releases: Apache Sling Health Check Core 1.2.2 and Apache Sling Launchpad Base 5.0.0-2.6.0 (April 30th, 2015)
-* New Release: Apache Sling Discovery Impl 1.1.2 (April 28th, 2015)
-* New Release: Apache Sling Testing Tools 1.0.10 (April 24th, 2015)
-* New Releases Apache Sling i18n 2.4.2, and Apache Sling Slingstart Maven Plugin 1.1.0 (April 23rd, 2015)
-* New Release: Apache Sling Scripting JavaScript Support 2.0.16 (April 20th, 2015)
-* New Releases: Apache Sling Engine Implementation 2.4.2, Apache Sling File Installer 1.1.0 and Apache Sling Resource Inventory 1.0.4 (April 20th, 2015)
-* New Releases: Apache Sling Scripting Sightly JS Provider 1.0.4, Apache Sling Scripting Sightly Testing Content 1.0.4, Apache Sling Scripting Sightly Testing 1.0.4 (April 16th, 2015)
-* New Releases: Apache Sling JCR Installer 3.1.16 and Apache Sling Commons Testing 2.0.18 (April 13th, 2015)
-* New Releases: Apache Sling Security 1.0.10 (April 8th, 2015)
-* New Releases: Apache Sling Scripting Sightly 1.0.2, Apache Sling Scripting Sightly Testing Content 1.0.2, Apache Sling Scripting Sightly Testing 1.0.2 (April 7th, 2015)
-* New Releases: Apache Sling Event 3.6.0, Apache Sling Commons Log 4.0.2, and Apache Sling Commons Log Service 1.0.4 (April 7th, 2015)
-* New Release: Apache Sling Performance Test Utilities 1.0.2 (April 2nd, 2015)
-* New Releases: Apache Sling Scripting Sightly 1.0.0, Apache Sling Scripting Sightly JavaScript Use Provider 1.0.0, Apache Sling Scripting Sightly REPL 1.0.0, Apache Sling Scripting Sightly Testing Content 1.0.0 (March 30th, 2015)
-* New Release: Apache Sling XSS Protection Bundle 1.0.2 (March 30th, 2015)
-* New Release: Apache Sling Resource Resolver 1.2.4 (March 24th, 2015)
-* New Release: Apache Sling XSS Protection Bundle 1.0.0 (March 20th, 2015)
-* New Releases: Apache Sling JCR Installer 3.1.14, Apache Sling Resource Resolver 1.2.2, and Apache Sling Service User Mapper 1.2.0 (March 16th, 2015)
-* New Releases: Apache Sling Launchpad Base 4.6.1-2.5.8, Apache Sling Event 3.5.4, Apache Sling Settings 1.3.6, Apache Sling Resource Merger 1.2.8, Apache Sling Slingstart Maven Plugin 1.0.4, and Apache Sling Provisioning Model 1.1.0 (March 12th, 2015)
-* New Release: Apache Sling Query 3.0.0 (March 11th, 2015)
-* New Releases: Apache Sling JCR Resource 2.5.0, and Apache Sling Resource Resolver 1.2.0 (March 5th, 2015)
-* New Release: Apache Sling Commons Scheduler 2.4.6 (March 4th, 2015)
-* New Releases: Apache Sling IDE Tooling 1.0.6, Apache Sling Service User Mapper 1.1.0, Apache Sling Health Check Core 1.2.0, and Apache Sling Health Check Web Console 1.1.2 (March 2nd, 2015)
-* New Release: Apache Sling URL Rewriter 0.0.2 (February 27th, 2015)
-* New Release: Apache Sling Security 1.0.8, Testing Sling Mock 1.2.0, OSGi Mock 1.2.0, JCR Mock 1.1.4, ResourceResolver Mock 1.1.4 (February 26th, 2015)
-* New Release: Apache Sling API 2.9.0 (February 24th, 2015)
-* New Release: Apache Sling Tooling Support Install 1.0.2 (February 23, 2015)
-* New Release: Apache Sling Engine Implementation 2.4.0 (February 19th, 2015)
-* New Releases: Apache Sling Auth Core 1.3.6, Apache Sling Resource Resolver 1.1.14, Apache Sling Eventing 3.5.2, Apache Sling Resource Merger 1.2.6, and Apache Sling Installer Factory Configuration 1.1.2 (February 16th, 2015)
-* New Release: Apache Sling Resource Resolver 1.1.12 (February 2nd, 2015)
-* New Releases: Apache Sling Testing JCR Mock 1.1.2, ResourceResolver Mock 1.1.2, Sling Mock 1.1.2, Sling Mock Jackrabbit 0.1.2 (January 28th, 2015)
-* New Releases: Apache Sling JCR Resource 2.4.4, Apache Sling Launchpad Base 4.6.0-2.5.6 (January 26th, 2015)
-* New Release: Apache Sling JCR Resource 2.4.2 (January 23rd, 2015)
-* New Releases: Apache Sling Resource Resolver 1.1.10 , Apache Sling DataSource 1.0.0, and Apache Sling Launchpad Base 4.6.0-2.5.4 (January 19th, 2015)
-* New Release: Apache Sling Commons JSON 2.0.10 (January 17th, 2015)
-* New Releases: Apache Sling Installer Core 3.6.2, Apache Sling i18n 2.3.2 (January 16th, 2015)
-* New Release: Apache Sling JCR Resource Security 1.0.2 (January 13th, 2015)
-* New Releases: Apache Sling Installer Core 3.6.0, Apache Sling Installer Factory Configuration 1.1.0, and Apache Sling Launchpad Installer 1.2.2 (January 12th)
-* New Release: Apache Sling Eventing 3.5.0 (January 10th, 2015)
-* New Releases: Apache Sling JCR Resource Security 1.0.0, and Apache Sling Installer Factory Subsystems 1.0.0 (January 9th, 2015)
-* New Releases: Release Apache Sling JUnit Core 1.0.10, JUnit Scriptable Tests Provider 1.0.10, JUnit Remote Tests Runners 1.0.10 (December 15th, 2014)
-* New Releases: Apache Sling Testing Sling Mock 1.1.0, OSGi Mock 1.1.0, JCR Mock 1.1.0, ResourceResolver Mock 1.1.0, Adapter Manager 2.1.4 (December 15th, 2014)
-* New Releases: Apache Sling Auth Core 1.3.4 (December 2nd, 2014)
-* New Release: Apache Sling Resource Merger 1.2.0 (November 29th, 2014)
-* New Release: Apache Sling Resource Resolver 1.1.8 (November 27th, 2014)
-* New Release: Apache Sling Servlets Resolver 2.3.6, and Apache Sling Engine 2.3.10 (November 18th, 2014)
-* New Release: Apache Sling Servlets Resolver 2.3.4 (November 14th, 2014)
-* New Release: Apache Sling Eventing 3.4.4 (November 7th, 2014)
-* New Release: Apache Sling Scripting JSP 2.1.6 (November 6th, 2014)
-* New Release: Apache Sling Slingstart Maven Plugin 1.0.2 (November 5th, 2014)
-* New Release: Apache Sling Event 3.4.2 (November 1st, 2014)
-* New Releases: Apache Sling Engine 2.3.8, Apache Sling Provisioning Model 1.0.0, and Apache Slingstart Maven Plugin 1.0.0 (October 27th, 2014)
-* New Release: Apache Sling JCR Resource Resolver 2.3.12 (October 26th, 2014)
-* New Releases: Apache Sling Eventing 3.4.0 and Apache Sling Distributed Event Admin 1.0.0 (October 24th, 2014)
-* New Release: Apache Sling JCR Resource Resolver 2.3.10 (October 22nd, 2014)
-* New Releases: Apache Sling Auth Core 1.3.2, Resource Resolver Mock 1.0.0, JCR Mock 1.0.0, OSGi Mock 1.0.0, Sling Mock 1.0.0, Sling Mock Jackrabbit 0.1.0 (October 21st, 2014)
-* New Release: Apache Sling IDE Tooling 1.0.4 ( October 18th, 2014)
-* New Releases: Apache Sling Settings 1.3.4, Apache Sling Discovery API 1.0.2, and Apache Sling Discovery Impl 1.0.12 (October 10th, 2014)
-* New Release: Apache Sling Resource Resolver 1.1.6 (October 4th, 2014)
-* New Release: Apache Sling Superimposing Resource Provider 0.2.0, Apache Sling 7 (October 3th, 2014)
-* New Release: Apache Sling Scripting Java 2.0.12 (September 30th, 2014)
-* New Release: Apache Sling Resource Resolver Mock 0.3.0 (September 29th, 2014)
-* New Release: Apache Sling Resource Resolver 1.1.4 (September 26, 2014)
-* New Releases: Apache Sling JSP Taglib 2.2.4 (September 25, 2014)
-* New Releases: Apache Sling DavEx Access to repositories 1.2.2, Apache Sling Adapter Manager Implementation 2.1.2, Apache Sling Scripting Core implementation 2.0.28 (September 22, 2014)
-* New Releases: Apache Sling JCR ContentLoader 2.1.0, and Apache Sling Web Console Security Provider 1.1.4 (September 21st, 2014)
-* New Releases: Apache Sling Resource Access Security 1.0.0, and Apache Sling Auth Core 1.3.0 (September 20th, 2014)
-* New Releases: Apache Sling Engine 2.3.6, Apache Sling JCR ClassLoader 3.2.2, Apache Sling JCR Jackrabbit Access Manager 2.1.2, Apache Sling JCR Jackrabbit Server 2.2.0, Apache Sling JCR Jackrabbit User Manager 2.2.2, Apache Sling JCR Registration 1.0.2, Apache Sling JCR Web Console 1.0.2 (September 19th, 2014)
-* New Release: Apache Sling Scripting Thymeleaf 0.0.4 (September 17th, 2014)
-* New Release: Apache Sling Resource Resolver 1.1.2 (September 16th, 2014)
-* New Release: Apache Sling Maven Launchpad Plugin 2.3.2 (September 15th, 2014)
-* New Releases: Apache Sling Filesystem Resource Provider 1.1.4, Apache Sling Launchpad Content 2.0.8, Apache Sling JSP Tag Library 2.2.2, Apache Sling Scripting Groovy Support 1.0.0 (September 12th, 2014)
-* New Release: Apache Sling Auth Core 1.2.0 (September 8th, 2014)
-* New Releases: Apache Sling Models API 1.1.0 and Apache Sling Models Impl 1.1.0 (September 5th, 2014)
-* New Releases: Apache Sling Crankstart Launcher (initial release), Apache Sling Health Check Annotations 1.0.2, Apache Sling Health Check Core 1.1.2, Apache Sling Health Check JUnit Bridge 1.0.2, Apache Sling Health Check Samples 1.0.6 (September 5th, 2014)
-* New Releases: Apache Sling Default GET Servlets 2.1.10, Apache Sling Explorer 1.0.4 (September 1st, 2014)
-* New Releases: Apache Sling API 2.8.0, Apache Sling JCR Resource 2.3.8, Apache Sling i18n 2.2.10, Apache Sling Installer Core 3.5.4, Apache Sling JCR Installer 3.1.8, and Apache Sling File Installer 1.0.4 (August 31st, 2014)
-* New Releases: Apache Sling JSON Library 2.0.8, and Apache Sling Default POST Servlets 2.3.6 (August 28th, 2014)
-* New Releases: Apache Sling Eventing 3.3.14, Apache Sling Commons Mime 2.1.8, and Apache Sling Commons Scheduler 2.4.4 (August 25th, 2014)
-* New Releases: Apache Sling Commons Mime 2.1.6, and Apache Sling Commons OSGi 2.2.2 (August 19th, 2014)
-* New Release: Apache Sling Tenant 1.0.2 (August 18th, 2014)
-* New Release: Apache Sling Query 2.0.0 (August 11th, 2014)
-* New Releases: Apache Sling Auth Core 1.1.8, Apache Sling Auth Selector 1.0.6, Apache Sling Form Based Authentication 1.0.6, and Apache Sling OpenID Authentication 1.0.4 (August 11th, 2014)
-* New Releases: Apache Sling Eventing 3.3.12 (August 8st, 2014)
-* New Releases: Apache Sling Parent 20 (August 1st, 2014)
-* New Releases: Apache Sling Discovery Impl 1.0.10 (July 29th, 2014)
-* New Releases: Apache Sling Engine 2.3.4 and Apache Sling Launchpad Base 4.4.1-2.5.2 (July 26th, 2014)
-* New Release: Apache Sling Testing Tools 1.0.8 (July 22nd, 2014)
-* New Release: Apache Sling Compat Servlets 1.0.2 (July 14th, 2014)
-* New Release: Apache Sling Service User Mapper 1.0.4 (July 14th, 2014)
-* New Releases: Apache Sling Settings 1.3.2, Apache Sling Scripting JSP 2.1.4, and Apache Sling Scripting Java 2.0.10 (July 13th, 2014)
-* New Releases: Apache Sling Authentication XING API 0.0.2, Apache Sling Authentication XING Login 0.0.2, Apache Sling Authentication XING OAuth 0.0.2 (July 11th, 2014)
-* New Release: Apache Sling Scripting Thymeleaf 0.0.2 (July 11th, 2014)
-* New Releases: Apache Sling Models API 1.0.2 and Apache Sling Models Impl 1.0.6 (July 2nd, 2014)
-* New Releases: Apache Sling Installer Core 3.5.2, and Apache Sling Installer Configuration Factory 1.0.14 (July 2nd, 2014)
-* New Release: Apache Sling Eclipse IDE 1.0.0 (July 1st, 2014)
-* New Release: Apache Sling Scripting JavaScript Support 2.0.14 (June 23rd, 2014)
-* New Releases: Apache Sling SLF4J MDC Filter 1.0.0 and Apache Sling Classloader Leak Detector 1.0.0 (June 9th, 2014)
-* New Release: Apache Sling Bundle JCR Install Archetype 1.0.2 (June 4th, 2014)
-* New Release: Apache Sling Tooling Support Install 1.0.0 (June 4th, 2014)
-* New Release: Apache Sling Bundle Archetype 1.0.2 (June 4th, 2014)
-* New Release: Apache Sling Servlet Archetype 1.0.2 (June 4th, 2014)
-* New Release: Apache Sling Service User Mapper 1.0.2 (June 2nd, 2014)
-* New Release: Apache Sling JCR ContentLoader 2.1.8 (May 23th, 2014)
-* New Releases: Apache Sling Commons Compiler 2.2.0, and Apache Sling Scripting JSP 2.1.0 (May 20th, 2014)
-* New Release: Apache Sling Archetype Parent 1 (May 14th, 2014)
-* New Release: Apache Sling Models Impl 1.0.4 (May 7th, 2014)
-* New Releases: Apache Sling Discovery Impl 1.0.8, Apache Sling Resource Inventory 1.0.2 and Apache Sling Eventing 3.3.10 (April 30th, 2014)
-* New Release: Apache Sling Commons ClassLoader 1.3.2 (April 17th, 2014)
-* New Releases: Apache Sling Resource Resolver 1.1.0, Apache Sling Featureflags 1.0.0, Apache Sling Resource-Based Discovery Service (discovery.impl) 1.0.6  (April 4th, 2014)
-* New Releases: Apache Sling Servlets Resolver 2.3.2, Apache Sling Servlets Get 2.1.8, Apache Sling Installer Configuration Factory 1.0.12, and Apache Sling Parent POM 19 (March 31st, 2014)
-* New Releases: Apache Sling API 2.7.0, Apache Sling JCR Resource 2.3.6, Apache Sling JMX Resource Provider 1.0.2, and Apache Sling Resource Merger 1.1.2 (March 24th 2014)
-* New Release: Apache Sling Model Implementation 1.0.2 (March 18th 2014)
-* New Release: Apache Sling JCR Resource 2.3.4 (March 17th, 2014)
-* New Release: Apache Sling Engine 2.3.2 (March 16th, 2014)
-* New Releases: Apache Sling i18n 2.2.8, Apache Sling JCR Resource 2.3.2, Apache Sling Discovery Impl 1.0.4, Apache Sling JCR Webdav 2.2.2, Apache Sling Resource Collection 1.0.0, Apache Sling Resource Inventory 1.0.0, Apache Sling JMX Provider 1.0.0, and Apache Sling Resource Merger 1.1.0 (March 8th, 2014)
-* New Releases: Apache Sling Commons Log 4.0.0, Apache Sling Security 1.0.0, Apache Sling JCR Registration 1.0.0, Apache Sling Bundle Resource 2.2.20, Apache Sling JCR Base 2.2.2, Apache Sling Eventing 3.3.6, Apache Sling Scripting API 2.1.6, Apache Sling Scripting Core 2.0.26, Apache Sling Servlets Get 2.1.6, and Apache Sling Servlets Post 2.3.4 (March 7th, 2014)
-* New Release: Apache Sling Maven Launchpad Plugin 2.3.0 (March 6th, 2014)
-* New Releases: Apache Sling API 2.6.0, and Apache Sling Engine 2.3.0 (March 3rd, 2014)
-* New Releases: Apache Sling Servlets Resolver 2.3.0, and Apache Sling Resource Merger 1.0.0 (February 24th, 2014)
-* New Releases: Apache Sling JCR API 2.2.0, Apache Sling JCR Base 2.2.0, and Apache Sling JCR Resource 2.3.0 (February 17th, 2014)
-* New Releases: Apache Sling Service User Mapper 1.0.0, and Apache Sling Resource Resolver Mock 0.2.0 (February 6th, 2014)
-* New Releases: Apache Sling Health Check Core 1.1.0, Apache Sling Health Check Webconsole 1.1.0, and Apache Sling Auth Core 1.1.6 (January 31th, 2014)
-* New Release: Apache Sling Pax Exam Utilities 1.0.2 (January 28th, 2014)
-* New Releases: Apache Sling API 2.5.0, and Apache Sling Eventing 3.3.4 (January 24th, 2014)
-* New Releases: Apache Sling Installer Core 3.5.0, and Apache Sling Eventing 3.3.2 (January 19th, 2014)
-* New Release: Apache Sling Web Console Security Provider 1.1.2 (December 17th, 2013)
-* New Release: Apache Sling Maven JSPC Plugin 2.0.8 (December 14th, 2013)
-* New Release: Apache Sling Resource-Based Discovery Service 1.0.2 (December 3rd, 2013)
-* New Release: Apache Sling Testing Utilities 2.0.16 (November 27th, 2013)
-* New Release: Apache Sling Web Console Security Provider 1.1.0 (October 28th, 2013)
-* New Release: Apache Sling Event 3.3.0, Apache Sling Commons Scheduler 2.4.2, Apache Sling Commons Threads 3.2.0, Apache Sling Health Check Core 1.0.6, Apache Sling Health Check JMX 1.0.6, Apache Sling JMX Resource Provider 0.6.0 (October 24th, 2013)
-* New Release: Apache Sling Engine 2.2.10 (October 12th, 2013)
-* New Release: Apache Sling Auth Core 1.1.4, Apache Sling Commons Scheduler 2.4.0, Apache Sling Resource Inventory 0.5.0, Apache Sling JMX Resource Provider 0.5.0 (October 7th, 2013)
-* New Releases: Apache Sling Health Check Tools: org.apache.sling.hc.core-1.0.4,org.apache.sling.hc.it-1.0.4,org.apache.sling.hc.jmx-1.0.4,org.apache.sling.hc.samples-1.0.4,org.apache.sling.hc.support-1.0.4,org.apache.sling.hc.webconsole-1.0.4,org.apache.sling.junit.healthcheck-1.0.6 (September 30th, 2013)
-* New Releases: Apache Sling Commons Log 3.0.2 (September 12th, 2013)
-* New Releases: Apache Sling Discovery Impl 1.0.0, Apache Sling Discovery Standalone 1.0.0, Apache Sling Discovery Support 1.0.0, Apache Sling Settings 1.3.0, and Apache Sling Event 3.2.0 (August 12th, 2013)
-* New Release: Apache Sling JCR Jackrabbit Server 2.1.2, Apache Sling Scripting JSP Taglib 2.2.0 (August 8th, 2013)
-* New Releases: Apache Sling JCR DavEx 1.2.0, Apache Sling JCR Webdav 2.2.0 (July 31st, 2013)
-* New Releases: Apache Sling Servlets Post 2.3.2, Apache Sling I18n 2.2.6, Apache Sling Commons FileSystem ClassLoader 1.0.0, Apache Sling JCR ClassLoader 3.2.0, and Apache Sling Parent POM 17 (July 18th, 2013)
-* New Release: Apache Sling Form Based Authentication Handler 1.0.4 (May 27th, 2013)
-* New Release: Apache Sling Scripting JSP 2.0.28 (May 16th, 2013)
-* New Releases: Apache Sling Servlets Post 2.3.0, Apache Sling JCR Resource 2.2.8 (May 10th, 2013)
-* New Releases: Apache Sling API 2.4.2, Apache Parent POM 16 (May 3rd, 2013)
-* New Releases: Apache Sling Tenant 1.0.0, Apache Sling Security 1.0.4, and Apache Sling javax.activation 0.1.0 (April 26th, 2013)
-* New Releases: Apache Sling API 2.4.0, Apache Sling Bundle Resource Provider 2.1.2, Apache Sling File System Resource Provider 1.1.2, Apache Sling JCR Resource 2.2.6, Apache Sling Resource Resolver 1.0.6, Apache Sling Servlets Resolver 2.2.4, Apache Sling Engine 2.2.8, and Apache Sling Auth Core 1.1.2 (April 18th, 2013)
-* New Releases: Apache Sling Launchpad Base 2.5.0, and Apache Sling Script Console 1.0.0 (March 4th, 2013)
-* New Releases: Apache Sling JCR Classloader 3.1.2, Apache Sling Commons Testing 2.0.14, Apache Sling JUnit Core 1.0.8, Apache Sling JUnit Remote 1.0.8, Apache Sling JUnit Scriptable 1.0.8, Apache Sling Testing Tools 1.0.6 (February 18th, 2013)
-* New Releases: Apache Sling Installer Core 3.4.6, Apache Sling Installer Configuration Factory 1.0.10, Apache Sling JCR Instaler 3.1.6, Apache Sling Parent 15, Apache Sling Fragment Extension XML 1.0.2, Apache Sling Fragment Extension WS 1.0.2, Apache Sling Fragment Extension Activation 1.0.2 (February 18th, 2013)
-* New Releases: Apache Sling Resource Resolver 1.0.4, Apache Sling JCR Resource 2.2.4 (February 14, 2013)
-* New Releases: Apache Sling Installer Core 3.4.4, Apache Sling JCR Resource 2.2.2, Apache Sling Resource Resolver 1.0.2, Apache Sling Security 1.0.2, Apache Sling Parent POM 14 (December 20th, 2012)
-* New Release: Apache Sling Servlet Resolver 2.2.2 (December 10th, 2012)
-* New Releases: Apache Sling Settings 1.2.2, Apache Sling Auth Core 1.1.0, Apache Sling Commons Logservice 1.0.2, Apache Sling Installer Core 3.4.2, Apache Sling Scripting JSP 2.0.26, Apache Sling Commons Compiler 2.1.0, Apache Sling JCR Compiler 2.1.0, Apache Sling I18n 2.2.4, Apache Sling JCR Classloader 3.1.10, Apache Sling JCR Webdav 2.1.2, Apache Sling JCR Davex 1.1.0 (November 30th, 2012)
-* New Releases: Apache Sling Maven Launchpad Plugin 2.2.0, Apache Sling Commons OSGi 2.2.0, Apache Sling Launchpad Installer 1.2.0, Apache Sling Rewriter 1.0.4, Apache Sling Settings 1.2.0 (November 19th, 2012)
-* New Releases: Apache Sling API 2.3.0, Apache Sling Bundle Resource Provider 2.1.0, Apache Sling File System Resource Provider 1.1.0, Apache Sling JCR Resource 2.2.0, Apache Sling Resource Resolver 1.0.0, Apache Sling Servlets Get 2.1.4, Apache Sling Servlets Post 2.2.0, Apache Sling Servlets Resolver 2.2.0, Apache Sling Adapter 2.1.0, Apache Sling Commons Testing 2.0.12 (November 15th, 2012)
-* New Release: Apache Sling JSP Taglib 2.1.8, Apache Sling Installer Core 3.4.0, Apache Sling Installer API 1.0.0, Apache Sling Installer Console 1.0.0, Apache Sling JCR Wrapper 2.0.0 (October 29th, 2012)
-* New Releases: Apache Sling Installer Core 3.3.8, Apache Sling Launchpad Installer 1.1.4, and Apache Sling Maven Launchpad Plugin 2.1.2 (August 19th, 2012)
-* New Release: Apache Sling Scripting JST 2.0.6 (August 17th, 2012)
-* New Releases: Apache Sling Adapter 2.0.16, Apache Sling JCR ContentLoader 2.1.6, and Apache Sling Parent POM 13 (July 9th, 2012)
-* Vulnerability report and fix: CVE-2012-2138 Apache Sling denial of service vulnerability (July 6th, 2012), see [http://s.apache.org/CVE-2012-2138](http://s.apache.org/CVE-2012-2138)
-* New Releases: Apache Sling Commons Compiler 2.0.6, Apache Sling Adapter 2.0.14, Apache Sling JCR ClassLoader 3.1.8, Apache Sling JCR Compiler 2.0.4, Apache Sling Scripting Core 2.0.24, Apache Sling Scripting Java 2.0.4, Apache Sling Scripting JSP 2.0.24, Apache Sling POST Servlets 2.1.2 (June 28th, 2012)
-* New Releases: Apache Sling Installer Factory Configuration 1.0.8, Apache Sling Engine 2.2.6, Apache Sling i18n 2.2.2, Apache Sling Scripting Core 2.0.22 (May 26th, 2012)
-* New Releases: Apache Sling Commons ClassLoader 1.3.0, Apache Sling Commons Compiler 2.0.4, Apache Sling Eventing 3.1.4, Apache Sling Installer Core 3.3.6, Apache Sling JCR Installer 3.1.4, Apache Sling JCR ClassLoader 3.1.6, Apache Sling JCR Resource 2.1.0, Apache Sling Launchpad Installer 1.1.2, Apache Sling Scripting Java 2.0.4, and Apache Sling Scripting JSP 2.0.22 (May 18th, 2012)
-* New Releases: Apache Sling Commons Testing 2.0.10, Apache Sling Commons Scheduler 2.3.4, Apache Sling Commons Log 3.0.0, Apache Sling Commons Log Service 1.0.0, Apache Sling Adapter 2.0.12, Apache Sling Installer Core 3.3.4, Apache Sling Launchpad API 1.1.0, Apache Sling Launchpad Installer 1.1.0, and Apache Sling Maven JSPC Plugin 2.0.6 (February 7th, 2012)
-* New Releases: Apache Sling API 2.2.4, Apache Sling Adapter 2.0.10, Apache Sling Scripting JSP Taglib 2.1.6, Apache Sling Rewriter 1.0.2, Apache Sling JCR ContentLoader 2.1.4, Apache Sling JCR Base 2.1.2, Apache Sling Servlet Resolver 2.1.2, and Apache Sling Security 1.0.0 (January 30th, 2012)
-* New Releases: Apache Sling Scripting API 2.1.4, Apache Sling Scripting Core 2.0.20, Apache Sling i18n 2.2.0, Apache Sling Installer Core 3.3.2, Apache Sling Scripting Java 2.0.2, and Apache Sling Scripting JSP 2.0.20 (January 16th, 2012)
-* New Releases: Apache Adapter Annotations 1.0.0 and Apache Sling Maven Sling Plugin 2.1.0 (January 14th, 2012)
-* New Releases: Apache Sling Settings 1.1.0, Apache Sling Commons ClassLoader 1.2.4, Apache Sling Commons Scheduler 2.3.2, Apache Sling 3.1.2, Apache Sling Installer Core 3.3.0, Apache Sling Installer Configuration Factory 1.0.4, Apache Sling Launchpad Installer 1.0.6, Apache Sling JCR Installer 3.1.2, and Apache Sling Thread Dumper 0.2.2 (January 6th, 2012)
-* New Release: Apache Sling Jackrabbit User Manager 2.2.0 (November 15th, 2011)
-* New Release: Apache Sling Maven Sling Plugin 2.0.6 (October 21st, 2011)
-* New Release: Apache Sling Maven Launchpad Plugin 2.1.0 (September 9th, 2011)
-* New Releases: Apache Sling Resource Bundle 1.0.0 and Parent POM 12
-* New Releases: Apache Sling API 2.2.2, Apache Sling Commons Scheduler 2.3.0, Apache Sling Commons OSGi 2.1.0, Apache Sling Scripting Core 2.0.18, Apache Sling Installer Core 3.2.2, Apache Sling Installer Configuration Factory 1.0.2, Apache Sling Launchpad Installer 1.0.4, Apache Sling File Installer 1.0.2 (August 16th, 2011)
-* New Release: Apache Sling Scripting JSP Support 2.0.18 (August 15th, 2011)
-* Released new Apache Sling Parent POM 11 (August 8, 2011)
-* New Release: Apache Sling Internationalization 2.1.2 (July 15, 2011)
-* New Releases: Apache Sling Event 3.1.0, Apache Sling OSGi Installer 3.2.0, Apache Sling JCR Installer 3.1.0, Apache Sling Installer Configuration Factory 1.0.0, Apache Sling Launchpad Installer 1.0.2 (July 13th, 2011)
-* New Release: Apache Sling Engine 2.2.4 (June 22nd, 2011)
-* New Releases: Apache Sling Launchpad Standalone Archetype 1.0.0, Launchpad Webapp Archetype 1.0.0 (May 13th, 2011)
-* New Releases: Apache Sling Scripting JSP Support 2.0.16, JSP Taglib 2.1.2 (May 3rd, 2011)
-* New releases: Apache Sling Test Tools 1.0.2, JUnit Core 1.0.6, JUnit Remote Tests Runners 1.0.6, JUnit Scriptable Tests Provider 1.0.6, Sample Integration Tests 1.0.6, Sample Server-Side Tests 1.0.6, Failing Server-Side Tests 1.0.6 (April 26th, 2011)
-* New releases: Apache Sling I18N 2.1.0 (April 12, 2011)
-* New releases: [Apache Sling 6](http://markmail.org/thread/hv5vd5774ofwqu6j), Apache Sling Launchpad Content 2.0.6 (March 28, 2011)
-* New releases: Apache Sling Launchpad Integration Tests 1.0.0, Apache Sling Launchpad Testing Services 2.0.8, Apache Sling Launchpad Testing Services WAR 2.0.8 (March 04, 2011)
-* New releases: Apache Sling Javascript 2.0.12 (February 26, 2011)
-* New releases: Apache Sling Explorer 1.0.2, Apache Sling JCR Resource 2.0.10, Apache Sling Engine 2.2.2, Apache Sling Installer IT Testing 3.1.2 (February 24, 2011)
-* New releases: Apache Sling Launchpad API 1.0.0, Launchpad Installer 1.0.0 Launchpad Base 2.3.0, Maven Launchpad Plugin 2.0.10, Apache Sling Commons Testing 2.0.8 (February 20, 2011)
-* New release: Apache Sling Servlets Get 2.1.2 (February 18, 2011)
-* Carl Hall added as a committer (February 18, 2011)
-* New releases: Apache Sling Installer Core 3.1.2, Apache Sling JCR Installer 3.0.4, and Apache Sling Event 3.0.2 (February 4, 2011)
-* New release: Apache Sling Scripting Core 2.0.16 (January 29, 2011)
-* New releases: Apache Sling JCR Resource 2.0.8, Apache Sling Engine 2.2.0, Apache Sling Bundle Resource Provider 2.0.6, Apache Sling File Resource Provider 1.0.2, Apache Sling Auth Core 1.0.6, Apache Sling Auth Selector 1.0.4 (January 28, 2011)
-* New releases: Apache Sling Commons Compiler 2.0.2, Apache Sling JCR Compiler 2.0.2, Apache Sling Commons Log 2.1.2, Apache Sling Event 3.0.0, Apache Sling Scripting JSP 2.0.14, Apache Sling Installer Core 3.1.0, Apache Sling JCR Installer 3.0.2 (January 21, 2011)
-* New release: Apache Sling Maven Launchpad Plugin 2.0.8 (December 20, 2010)
-* New releases: Apache Sling Commons Compiler 2.0.0, Apache Sling i18n 2.0.4, Apache Sling Commons Json 2.0.6, Apache Sling Commons Log 2.1.0, Apache Sling Scripting Java 2.0.0, Apache Sling Scripting JST 2.0.4, Apache Sling Scripting API 2.1.2, Apache Sling Scripting JSP 2.0.12, Apache Sling Scripting Javascript 2.0.10, Apache Sling JCR Compiler 2.0.0, Apache Sling Auth Core 1.0.4, Apache Sling Auth Selector 1.0.2, Apache Sling Auth Form 1.0.2, Apache Sling Auth OpenId 1.0.2, Apache Sling JCR ContentLoader 2.1.2 (December 20, 2010)
-* New releases: Apache Sling API 2.20, Apache Sling Adapter 2.0.8, Apache Sling Commons ClassLoader 1.2.2, Apache Sling JCR ClassLoader 3.1.4, Apache Sling Parent POM 10 (December 13, 2010)
-* New release: Apache Sling JCR Web Console Plugin 1.0.0 (November 16, 2010)
-* New releases:  Apache Sling JCR Access Manager 2.1.0, JCR User Manager 2.1.0, JCR WebDAV support 2.1.0, and JCR DavEX support 1.0.0 (November 8, 2010)
-* New release: Apache Sling Explorer 1.0.0 (November 1, 2010)
-* New release: Apache Sling Scripting Core 2.0.14 (October 25, 2010)
-* New releases: Apache Sling Commons Threads 3.1.0, Apache Sling Event 2.4.2, Apache Sling I18N 2.0.2, Apache Sling Rewriter 1.0.0, and Apache Sling Settings 1.0.2 (October 15, 2010)
-* New releases: Apache Sling Installer Core 3.0.0, Apache Sling Installer File Provider 1.0.0, and Apache Sling Installer JCR Provider 3.0.0 (September 24, 2010)
-* New release: Apache Sling Commons Testing 2.0.6 (September 20, 2010)
-* New releases: Apache Sling JCR API 2.1.0, Apache Sling JCR Base 2.1.0, Apache Sling JCR Content Loader 2.1.0, Apache Sling Jackrabbit Server 2.1.0 (September 10, 2010)
-* New releases: Apache Sling Commons Threads 3.0.2, Apache Sling Event 2.4.0 (September 06, 2010)
-* New releases: Apache Sling Commons ClassLoader 1.2.0, Apache Sling JCR ClassLoader 3.1.2 (August 30, 2010)
-* New release: Apache Sling Web Console Branding 1.0.0, Apache Sling Web Console Security Provider 1.0.0 (August 25, 2010)
-* New release: Apache Sling API 2.1.0 (August 21, 2010)
-* New release: Apache Sling GWT Integration 3.0.0 (July 30, 2010)
-* New releases: Apache Sling Commons OSGi 2.0.6, Launchpad Base 2.2.0 and Maven Launchpad Plugin 2.0.6 (April 27, 2010)
-* New releases: Apache Sling Event 2.3.0, Apache Sling Scripting Core 2.1.0, Apache Commons MIME 2.1.4, and Apache Sling FileResource Provider 1.0.0 (March 1, 2010)
-* Eric Norman added as a committer (February 17, 2010)
-* New release: Apache Sling Sample Path Based Resource Type Provider 2.0.4 (February 22, 2010)
-* New releases: Apache Sling Event 2.2.0, Apache Sling Scripting API 2.1.0, and Apache Sling Thread Dumper 0.2.0 (Feburary 19, 2010)
-* New releases: Apache Sling JCR WebDav 2.0.8, Apache Sling JCR ContentLoader 2.0.6, Apache Sling JCR UserManager 2.0.4, Apache Sling JCR Server 2.0.6, Apache Sling JCR AccessManager 2.0.4, Apache Sling JCR Base 2.0.6 (February 17, 2010)
-* New releases: Apache Sling Commons ClassLoader 1.1.4, and Apache Sling JCR ClassLoader 3.1.0 (February 8, 2010)
-* New release: Apache Sling JCR API 2.0.6 (January 29, 2010)
-* New releases: Apache Sling Commons ClassLoader 1.1.2, Apache Sling Commons Scheduler 2.2.0, Apache Sling Commons Threads 3.0.0, Apache Sling Event 2.1.0, and Apache Sling Servlets Get 2.0.8 (December 21, 2009)
-* Apache Sling MIME type mapping support, Version 2.1.2, is released (December 15, 2009)
-* Justin Edelson added as a committer (December 7, 2009)
-* New releases: Apache Sling Commons HTML 1.0.0, Apache Sling Commons Compiler 1.0.0, Apache Sling JCR Compiler 1.0.0, Apache Sling JCR Prefs 1.0.0, and Apache Sling Scripting Java 1.0.0 (December 2, 2009)
-* New releases: Apache Sling Parent POM 8, Apache Sling Launchpad Base 2.1.0, Apache Sling Commons ClassLoader 1.1.0, Apache Sling JCR ClassLoader 3.0.0, Apache Sling Scripting Core 2.0.8, Apache Sling Scripting JSP 2.0.8, Apache Sling Scripting JSP Taglib 2.0.6, and Apache Sling Scripting JavaScript 2.0.6 (November 28, 2009)
-* New releases: Apache Sling Engine 2.0.6, Apache Sling Adapter 2.0.4, Apache Sling JCR Resource 2.0.6, Apache Sling Commons ClassLoader 1.0.0, Apache Sling Event 2.0.6, Apache Sling JCR ClassLoader 2.0.6, Apache Sling Scripting Core 2.0.6, Apache Sling Servlets Resolver 2.0.8 (October 13, 2009)
-* New releases: Apache Sling API 2.0.8, Apache Sling Commons HTML 0.9.0, Apache Sling Commons ClassLoader 0.9.0, Apache Sling Commons Scheduler 2.1.0, and Apache Sling Servlets Get 2.0.6 (October 02, 2009)
-* New releases: Apache Sling API 2.0.6 and Apache Sling JCR API 2.0.4 (August 17, 2009)
-* Apache Sling OSGi LogService Implementation, Version 2.0.6, is released (August 5, 2009)
-* Ian Boston added as a member of the PMC (July 25, 2009)
-* Ian Boston added as a committer (July 9, 2009)
-* Sling site at http://sling.apache.org live (June 29, 2009)
-* Mailing lists moved to dev(a)sling.apache.org and commits(a)sling.apache.org (June 29, 2009)
-* SVN moved to http://svn.apache.org/repos/asf/sling (June 18, 2009)
-* Apache Sling has graduated into a top level project! (June 17, 2009)
-
-
-[1]: http://s.apache.org/CVE-2012-2138

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/news/sling-ide-tooling-11-released.md
----------------------------------------------------------------------
diff --git a/content/news/sling-ide-tooling-11-released.md b/content/news/sling-ide-tooling-11-released.md
deleted file mode 100644
index 4dad4f6..0000000
--- a/content/news/sling-ide-tooling-11-released.md
+++ /dev/null
@@ -1,42 +0,0 @@
-title=Apache Sling IDE Tooling 1.1 released		
-type=page
-status=published
-~~~~~~
-
-Here are some of the more noteworthy things available in this release.
-
-Sightly support
-==
-
-Sightly support has been added through an additional, optional, feature named _Sling IDE Tools - Sightly Integration_.
-
-This feature provides the following enhancements:
-
-* auto-completion of tag named and attributes names in the HTML Editor
-* wizards for creating new Sightly scripts and Use Classes ( Java and Javascript )
-* Sightly-aware validation for HTML files
-
-![Sightly Editor](../documentation/development/ide-tooling/sightly-editor.png)
-
-These enhancements are enabled once the Sightly facet is added to a project. This is done automatically when converting a project to content project, but can also be done manually via the project properties, under the _Project Facets_ page.
-
-Automatic configuration of debug classpath based on the bundles deployed on the server
-==
-
-When first connecting to a Sling instance, the IDE tooling tries to bind all the sources associated with the bundles deployed on the server and retrieves the associated source artifacts using Maven. Therefore, the debug classpath is as close as possible to sources used to build the bundles deployed on the server.
-
-![Debugging](../documentation/development/ide-tooling/debug.png)
-
-Since a first source bundle resolution can potentially take a long time, this behaviour can be disabled from the server configuration page.
-
-Maven configurator for content-package projects
-==
-
-Maven projects configured using the `com.day.jcr.vault:content-package-maven-plugin` are now automatically configured as content projects, removing the need to manually add the needed facets after importing them into Eclipse for the first time.
-
-Other minor improvements
-==
-
-* Keyboard shortcuts now work in the content navigator
-* When creating a new server in the project creation wizard, sensible defaults are filled in
-* When connecting to a server, all support bundles are automatically installed

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/news/sling-launchpad-8-released.md
----------------------------------------------------------------------
diff --git a/content/news/sling-launchpad-8-released.md b/content/news/sling-launchpad-8-released.md
deleted file mode 100644
index b03154c..0000000
--- a/content/news/sling-launchpad-8-released.md
+++ /dev/null
@@ -1,59 +0,0 @@
-title=Apache Sling Launchpad 8 released		
-type=page
-status=published
-~~~~~~
-
-Here are some of the more noteworthy things available in this release.
-
-Switched to Apache Jackrabbit Oak
----
-
-The Sling launchpad has switched from Apache Jackrabbit 2.7.5 to Apache Jackrabbit Oak 1.3.7 as a persistence engine. Apache Jackrabbit Oak is now supported in Sling with two persistence modes: SegmentNodeStore ( file-based ) and DocumentNodeStore ( MongoDB-based ). See [the Oak documentation](http://jackrabbit.apache.org/oak/docs/index.html) for more details about the Oak persistence modes and [the Sling Launchpad documentation](https://sling.apache.org/documentation/the-sling-engine/the-sling-launchpad.html#launchpad-app-and-launchpad-webapp) for details about configuring the persistence mode.
-
-Provisioning model
----
-
-Sling is now provisioned using a simple, text-based, model. See See [the Sling Provisioning Model documentation](http://sling.apache.org/documentation/development/slingstart.html) for details.
-
-Sightly
----
-
-Sightly is an HTML templating language, similar to JSP (Java Server Pages) and ESP (ECMAScript Server Pages). The name “Sightly” (meaning “pleasing to the eye”) highlights its focus on keeping your markup beautiful, and thus maintainable, once made dynamic.
-
-The cornerstones of Sightly are:
-
-- Secure by default: Sightly automatically filters and escapes all variables being output to the presentation layer to prevent cross-site-scripting (XSS) vulnerabilities
-- Supports separation of concerns: The expressiveness of the Sightly template language is purposely limited, in order to make sure that a real programming language is used to express the corresponding presentation logic
-- Built on HTML 5: A Sightly file is itself a valid HTML5 file. All Sightly-specific syntax is expressed either within a data attribute, or within HTML text.
-
-See [the Sightly HTML Templating Language Specification](https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/master/SPECIFICATION.md) for details.
-
-Versioning support in the Resource API
----
-
-The Java Resource API and the HTTP API are now able to work with versioned resources. See [SLING-848 - Support getting versioned resources by using uri path parameters](https://issues.apache.org/jira/browse/SLING-848) for more details.
-
-Improved testing tools
----
-
-The Sling testing tools have seen numerous additions since the last release, including a family of Mock libraries known as the Sling Mocks and a Teleporter JUnit module for running Sling tests in provisioned Sling instances. For more details, see the documentation on [JUnit server-side testing support bundles](https://sling.apache.org/documentation/bundles/org-apache-sling-junit-bundles.html) and [Sling Mocks](https://sling.apache.org/documentation/development/sling-mock.html) .
-
-Servlet API 3.0
----
-
-Sling now uses and requires Servlet API 3.0. See [JSR 315: JavaTM Servlet 3.0 Specification](https://jcp.org/en/jsr/detail?id=315) for details.
-
-Performance
----
-
-Various performance and concurrency improvements were added to the Engine and JCR Resource bundles.
-
-Dependency updates
----
-
-Some of the notable dependency updates are:
-
-* Apache Felix has been upgraded to version 5.2.0
-* Apache Tika has been updated to version 1.10
-* Apache HttpClient 4.4 has been added
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/news/sling-launchpad-9-released.md
----------------------------------------------------------------------
diff --git a/content/news/sling-launchpad-9-released.md b/content/news/sling-launchpad-9-released.md
deleted file mode 100644
index 13f203c..0000000
--- a/content/news/sling-launchpad-9-released.md
+++ /dev/null
@@ -1,88 +0,0 @@
-title=Apache Sling Launchpad 9 released		
-type=page
-status=published
-~~~~~~
-
-Here are some of the more noteworthy things available in this release.
-
-Updated to Oak 1.6.1 and segment-tar persistence
----
-
-We now include the latest stable version of Oak and have switched to the latest
-form of the disk-based persitence - oak-segment-tar. This module provides better
-runtime characteristics when compared to the oak-segment persistence and also
-allows reliable online compaction of the repository.
-
-If you're upgrading from a previous version of Sling you will need to manually
-upgrade the repository. See the [Oak documentation on Repository migration](http://jackrabbit.apache.org/oak/docs/migration.html)
-for more details.
-
-The Sling Explorer is replaced with Composum
----
-
-The Sling Launchpad ships with a new repository explorer and administration tool - [Composum](https://github.com/ist-dresden/composum). Composum is more reliable and featureful compared to the previous Sling explorer.
-
-The Slingshot sample is included
----
-
-The default Sling configuration now includes the Slingshot sample. Slingshot exemplifies
-how to build and deploy a Sling application.
-
-New Resource Provider and Observation API
----
-
-The Resource Provider API has been replaced with a new implementation, which is more performant
-and better suited for future evolution. Existing ResourceProvider will be able to work using
-a backwards-compatible layer, but developers are nonetheless encouraged to move to the
-new implementation.
-
-In the same manner, the Observation API has been refreshed.
-
-New modules added: Validation, Context-Aware Configuration, Repository Initialization Language
----
-
-A number of new general-purpose modules have been added to the Sling Launchpad:
-
-* [Validation](/documentation/bundles/validation.html)
-* [Context-Aware configuration](/documentation/bundles/context-aware-configuration/context-aware-configuration.html)
-* [Repository Initialization Language](/documentation/bundles/repository-initialization.html)
-
-Tooling: HTL Maven Plugin
----
-
-The [HTL Maven Plugin](http://sling.apache.org/components/htl-maven-plugin/) provides build-time validation for projects using HTL. Furthermore, the HTL engine has been modularised into an HTL Compiler, an HTL Java Compiler and an HTL Script Engine, with the first two allowing to build other HTL tools in a Sling-independent way.
-
-Streaming Upload Support
----
-
-The version of the Sling Engine shipped in the Launchpad now supports streaming uploads,
-for better I/O throughput. Streaming uploads are opt-in via setting the following HTTP Header:
-
-Sling-UploadMode: stream
-
-Discovery: added Oak-based discovery implementation
----
-
-The Sling discovery mechanism has been augmented with a mechanism which delegates instance
-discovery to Oak. When working with a DocumentNodeStore-based Oak implementation, this information
-is already available to Oak so there is no point in duplicating the work.
-
-Security: loginAdministrative deprecation
----
-
-We believe that the vast majority of bundles performing background work do not require
-administrative access to the repository via `loginAdministrative`. We have removed many usages
-of `loginAdministrative` in the Sling code and replaced then with a service-based approach
-- `loginService`. We encourage you to do the same.
-
-Documentation available at [Service Authentication](/documentation/the-sling-engine/service-authentication.html).
-
-Removed org.apache.sling.commons.json and org.json bundles
----
-
-Apache projects are no longer allowed, for legal reasons, to ship code which uses or links to the
-JSON.org Java implementation. As a consequence we have removed all code which references that
-API.
-
-If you need to use these bundles, you can always retrieve then from Maven Central and incorporate
-them in your launchpad.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/obr/obr2html.xsl
----------------------------------------------------------------------
diff --git a/content/obr/obr2html.xsl b/content/obr/obr2html.xsl
deleted file mode 100644
index b41765d..0000000
--- a/content/obr/obr2html.xsl
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-	<xsl:output method="html"/>
-	
-	<xsl:template match="/">
-		<html>
-			<xsl:apply-templates/>
-		</html>
-	</xsl:template>
-	
-	<xsl:template match="repository">
-		<head>
-
-			<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"/>
-			<title>
-				<xsl:value-of select="@name"/>
-			</title>
-			<link href="http://www2.osgi.org/www/osgi.css" type="text/css" rel="stylesheet"/>
-			
-            <script type='text/javascript'>
-            // <![CDATA[
-                function toggle( /* String */ elementId )
-                {
-                    var element = document.getElementById( elementId );
-                    if (element)
-                    {
-                        if (element.style.display == "none")
-                        {
-                            element.style.display = "inline";
-                        }
-                        else
-                        {
-                            element.style.display = "none";
-                        }
-                    }
-                }
-		    // ]]>
-			</script>
-		</head>
-		<body>
-			<h1>
-				<xsl:value-of select="@name"/>
-			</h1>
-			
-      		<p>Last modified 	
-				<xsl:value-of select="@lastmodified"/>.</p>
-
-            <h2><a href="javascript:toggle('referrals')" title="Click to toggle visibility of Referrals">Referrals</a></h2>
-			<table id="referrals" width="100%">
-				<tr><th>Hop Count</th><th>Link</th></tr>
-				<xsl:apply-templates select="referral">
-				</xsl:apply-templates>
-			</table>
-
-            <h2><a href="javascript:toggle('resources')" title="Click to toggle visibility of Referrals">Resources</a></h2>
-			<table id="resources" width="100%">
-				<tr><th>Link</th><th>Version</th><th>doc/src</th><th>Description</th><th>Bytes</th></tr>
-				<xsl:apply-templates select="resource">
-
-					<xsl:sort select="@presentationname"/>
-				</xsl:apply-templates>
-			</table>
-		</body>
-	</xsl:template>
-	
-	<xsl:template match="referral">
-		<tr>
-			<td><xsl:value-of select="@depth"/></td>
-			<td>
-				<a href="{@url}"><xsl:value-of select="@url"/></a>
-			</td>
-		</tr>
-
-		
-	</xsl:template>
-	
-	<xsl:template match="resource">
-		<tr>
-			<td nowrap="true">
-				<a href="{@uri}"><xsl:value-of select="@presentationname"/></a>
-
-				
-			</td>
-			<td><xsl:value-of select="@version"/></td>
-			<td>
-					<xsl:if test="documentation">
-						<a href="{documentation}">D</a>
-					</xsl:if>
-					<xsl:if test="source">
-						<a href="{source}">S</a>
-
-					</xsl:if>
-			</td>
-			<td>
-				<xsl:value-of select="description"/>
-			</td>
-			<td>
-					<xsl:value-of select="size"/>
-			</td>
-		</tr>
-
-		
-	</xsl:template>
-	
-	<!--
-	<xsl:template match="*">
-	<tr>
-	<td><xsl:value-of select="name()"/></td>
-	<td><xsl:value-of select="."/></td>
-	</tr>
-	</xsl:template>
-	-->
-	<!--
-	<xsl:template match="*">
-	</xsl:template>
-	-->
-	
-</xsl:stylesheet>
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/obr/repository.xml
----------------------------------------------------------------------
diff --git a/content/obr/repository.xml b/content/obr/repository.xml
deleted file mode 100644
index 467b111..0000000
--- a/content/obr/repository.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
-<?xml-stylesheet type="text/xml" href="obr2html.xsl"?>
-<repository lastmodified="20090518144500" name="Apache Sling Master Repository">
-  <referral url="http://felix.apache.org/obr/releases.xml" depth="1" />
-  <referral url="http://incubator.apache.org/sling/obr/sling.xml" depth="1" />
-  <referral url="http://incubator.apache.org/sling/obr/thirdparty.xml" depth="1" />
-</repository>


[39/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/getting-started.html
----------------------------------------------------------------------
diff --git a/documentation/getting-started.html b/documentation/getting-started.html
new file mode 100644
index 0000000..7eb4952
--- /dev/null
+++ b/documentation/getting-started.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Getting Started</h1></header><p>We're on the way to update the documentation to make it more easy to get in touch with Sling. At the moment we can give you the following starting points:</p>
+<p>{% for label, page in children %}* [{{ page.headers.title }}]({{ page.path }}) {% endfor %}</p>
+<h2>Where to head from here</h2>
+<p>We recommend you read through following topics to get as fast as possible into Sling:</p>
+<ul>
+  <li><a href="/documentation/development/getting-and-building-sling.html">Getting and building Sling</a></li>
+  <li><a href="/documentation/the-sling-engine/architecture.html">Architecture</a></li>
+  <li><a href="/documentation/the-sling-engine/dispatching-requests.html">Dispatching Requests</a></li>
+  <li><a href="/documentation/the-sling-engine/resources.html">Resources</a></li>
+  <li><a href="/documentation/development/ide-tooling.html">{{ refs.ide-tooling.headers.title }}</a></li>
+  <li><a href="/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">Manipulating Content - The SlingPostServlet (servlets.post)</a></li>
+  <li><a href="/documentation/the-sling-engine/request-parameters.html">Request Parameters</a></li>
+  <li><a href="/documentation/the-sling-engine/authentication.html">Authentication</a></li>
+  <li>[Eventing and Jobs]({{ refs.eventing-and-jobs.path }})</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/getting-started/discover-sling-in-15-minutes.html
----------------------------------------------------------------------
diff --git a/documentation/getting-started/discover-sling-in-15-minutes.html b/documentation/getting-started/discover-sling-in-15-minutes.html
new file mode 100644
index 0000000..a8adb75
--- /dev/null
+++ b/documentation/getting-started/discover-sling-in-15-minutes.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Discover Sling in 15 minutes</h1></header><p>The Sling Launchpad is a ready-to-run Sling configuration, providing an embedded JCR content repository and web server, a selection of Sling components, documentation and examples. The Launchpad makes it easy to get started with Sling and to develop script-based applications.</p>
+<p>This page will help you get started with the Launchpad. Fifteen minutes should be enough to get an overview of what Sling does.</p>
+<p>While simple to run and understand, the Launchpad is a full-featured instance of Sling, an example configuration that we have created with the most common modules and configurations. The full functionality of Sling is available by loading additional Sling (or custom) OSGi bundles as needed, using the Launchpad's web-based OSGi management console.</p>
+<p>[TOC]</p>
+<h2>See Also</h2>
+<p>More Sling samples can be found under <a href="http://svn.apache.org/repos/asf/sling/trunk/samples/">http://svn.apache.org/repos/asf/sling/trunk/samples/</a></p>
+<p>Once you grok the basic examples of this page, we recommend studying the <em>slingbucks</em> and <em>espblog</em> samples. Both have README files with more info.</p>
+<h2>Prerequisites</h2>
+<p>We'll start with the self-runnable jar from the Sling distribution, you only need a Java 7 JDK. Download the latest release from the Sling <a href="/downloads.cgi">Downloads</a> page or by clicking this link: <a href="http://www.apache.org/dyn/closer.lua/sling/org.apache.sling.launchpad-8.jar">org.apache.sling.launchpad-8.jar</a>. Alternatively you can deploy the <a href="http://www.apache.org/dyn/closer.lua/sling/org.apache.sling.launchpad-8-webapp.war">Sling Web application</a> into any decent Servlet Container such as Jetty or Tomcat or you can <a href="/documentation/development/getting-and-building-sling.html">build the current source yourself</a>.</p>
+<p>To show the simplicity of the REST-style approach taken by Sling the examples below will be using <a href="http://curl.haxx.se/">cURL</a>. Any HTTP client would do, but cURL is the easiest to document in a reproducible way.</p>
+<p>A WebDAV client makes editing server-side scripts much more convenient, but to make our examples easy to reproduce, we're using cURL below to create and update files in the JCR repository, via the Sling WebDAV server.</p>
+<h2>Start the Launchpad</h2>
+<p>After downloading the Sling Launchpad self-runnable jar just start it as follows:</p>
+<p>$ java -jar org.apache.sling.launchpad-8.jar</p>
+<p>This starts the Sling embedded Web Server on port 8080 and writes application files into the <code>sling</code> folder found in the current working directory.</p>
+<p>Once started, look at <a href="http://localhost:8080/system/console/bundles">http://localhost:8080/system/console/bundles</a> with your browser. Use <em>admin</em> with password <em>admin</em> if Sling asks you for a login. Sling then displays the <em>Felix Web Management Console</em> page.</p>
+<p>On the bundles page, all bundles should be marked <em>Active</em>. They're all <a href="http://www.osgi.org/">OSGi</a> bundles powered by <a href="http://felix.apache.org">Apache Felix</a>, but that doesn't really matter to us right now.</p>
+<p><em>Log files: If things go wrong, have a look at the <code>sling/logs/error.log</code> log file - that's where Sling writes any error messages.</em></p>
+<h2>Create some content</h2>
+<p>Until we have ready-to-test forms, you can create content with cURL, or you can create an HTML form that posts to the specified URL.</p>
+<p>To create a content node (nodes are a <a href="http://jackrabbit.apache.org/">JCR</a> concept, a unit of storage) with cURL, use:</p>
+<p>curl -u admin:admin -F"sling:resourceType=foo/bar" -F"title=some title" http://localhost:8080/content/mynode</p>
+<p>The resulting node can be seen at <a href="http://localhost:8080/content/mynode.html.path">http://localhost:8080/content/mynode.html</a>, or as json format under <a href="http://localhost:8080/content/mynode.json">http://localhost:8080/content/mynode.json</a>. Lets try with cURL:</p>
+<p>$ curl http://localhost:8080/content/mynode.json</p>
+<p>This returns the properties of the <code>/content/mynode</code> in JSON format as we have created it above.</p>
+<p>{"title":"some title","sling:resourceType":"foo/bar","jcr:primaryType":"nt:unstructured"}</p>
+<p>The additional property <code>jcr:primaryType</code> is a special JCR property added by the content repository, indicating the JCR primary node type.</p>
+<p><em>Monitoring requests: Sling provides a simple tool (an OSGi console plugin) to monitor HTTP requests, which helps understand how things work internally. See the <a href="/documentation/development/monitoring-requests.html">Monitoring Requests</a> page for details.</em></p>
+<h2>Render your content using server-side javascript (ESP)</h2>
+<p>Sling uses scripts or servlets to render and process content.</p>
+<p>Several scripting languages are available as additional Sling modules (packaged as OSGi <em>bundles</em> that can be installed via the Sling management console), but the launchpad currently includes the ESP (server-side ECMAscript), JSP (Java Server Pages), and Groovy language modules by default.</p>
+<p>To select a script, Sling uses the node's <em>sling:resourceType</em> property, if it is set.</p>
+<p>That is the case in our example, so the following script will be used by Sling to render the node in HTML, if the script is found at <em>/apps/foo/bar/html.esp</em> in the repository.</p>
+<html>
+<body>
+<h1><%= currentNode.title %></h1>
+</body>
+</html>
+<p>To select the script, Sling:</p>
+<ul>
+  <li>looks under <em>/apps</em></li>
+  <li>and appends the <em>sling:resourceType</em> value of our node ( which is <em>foo/bar</em> )</li>
+  <li>and appends <em>html.esp</em>, as the extension of our URL is <em>html</em> and the language of our script is <em>esp</em>.</li>
+</ul>
+<p>Store this script under <em>/apps/foo/bar/html.esp</em>, either using a WebDAV client (connected to <a href="http://admin:admin@localhost:8080/">http://admin:admin@localhost:8080/</a>), or using cURL as shown here, after creating the <em>html.esp</em> script in the current directory on your system:</p>
+<p>curl -X MKCOL -u admin:admin http://localhost:8080/apps/foo curl -X MKCOL -u admin:admin http://localhost:8080/apps/foo/bar</p>
+<p>create a local file <em>html.esp</em> and copy above content.</p>
+<p>curl -u admin:admin -T html.esp http://localhost:8080/apps/foo/bar/html.esp</p>
+<p>The HTML rendering of your node, at <a href="http://localhost:8080/content/mynode.html">http://localhost:8080/content/mynode.html</a>, is now created by this ESP script. You should see the node's title alone as an &lt;h1&gt; element in that page.</p>
+<p>A script named <em>POST.esp</em> instead of <em>html.esp</em> would be called for a POST request, <em>DELETE.esp</em> for DELETE, <em>xml.esp</em> for a GET request with a <em>.xml</em> extension, etc. See <a href="/documentation/the-sling-engine/url-to-script-resolution.html">URL to Script Resolution</a> on the Sling wiki for more info.</p>
+<p>Servlets can also be easily "wired" to handle specific resource types, extensions, etc., in the simplest case by using SCR annotations in the servlet source code. Servlets and scripts are interchangeable when it comes to processing Sling requests.</p>
+<h2>What next?</h2>
+<p>These simple examples show how Sling uses scripts to work with JCR data, based on <em>sling:resourceType</em> or node types.</p>
+<p>There's much more to Sling of course - you'll find some additional simple examples below, as well as above in the <em>see also</em> section.</p>
+<h2>Additional examples</h2>
+<h3>Let Sling generate the path of a newly created node.</h3>
+<p>To create a node with a unique path at a given location, end the URL of the POST request with <em>/</em>.</p>
+<p>In this case, the Sling response redirects to the URL of the created node.</p>
+<p>Start by creating a new <em>/blog</em> folder:</p>
+<p>curl -X POST -u admin:admin "http://localhost:8080/content/blog"</p>
+<p>And create a node with a Sling-generated name under it:</p>
+<p>curl -D - -u admin:admin -F"title=Adventures with Sling" "http://localhost:8080/content/blog/"</p>
+<p>Using cURL's <em>-D</em> option shows the full HTTP response, which includes a <em>Location</em> header to indicate where the new node was created:</p>
+<p>Location: /blog/adventures_with_slin</p>
+<p>The actual node name might not be <em>adventures_with_slin</em> - depending on existing content in your repository, Sling will find a unique name for this new node, based on several well-know property values like title, description, etc. which are used for this if provided.</p>
+<p>So, in our case, our new node can be displayed in HTML via the <a href="http://localhost:8080/blog/adventures*with*slin.html">http://localhost:8080/blog/adventures_with_slin.html</a> URL.</p>
+<p>Note that we didn't set a <em>sling:resourceType</em> property on our node, so if you want to render that node with a script, you'll have to store the script under <em>/apps/nt/unstructured/html.esp</em>.</p>
+<h3>Add a page header with sling.include</h3>
+<p>The <em>sling.include</em> function can be called from scripts to include the rendered result of another node.</p>
+<p>In this example, we create a node at <em>/content/header</em>, rendered with a logo using an <em>html.esp</em> script, then use that header at the top of the <em>html.esp</em> script that we created previously for the <em>foo/bar</em> resource type.</p>
+<p>Start by checking that <a href="http://localhost:8080/content/mynode.html">http://localhost:8080/content/mynode.html</a> is rendered using the <em>html.esp</em> script created above.</p>
+<p>Create this script and name it <em>header.esp</em>:</p>
+<div>
+<p style="color:blue;">
+<img src="/images/sling.jpg" align="right"/>
+<%= currentNode.headline %>
+</p>
+</div>
+<p>Upload it so that it is used to render resources having <em>sling:resourceType=foo/header</em>:</p>
+<p>curl -X MKCOL -u admin:admin http://localhost:8080/apps/foo/header/ curl -u admin:admin -T header.esp http://localhost:8080/apps/foo/header/html.esp</p>
+<p>Create the header node:</p>
+<p>curl -u admin:admin -F"sling:resourceType=foo/header" -F"headline=Hello, Sling world" http://localhost:8080/content/header</p>
+<p>Upload the logo that the script uses (using sling.jpg or another logo in the current directory):</p>
+<p>curl -X MKCOL -u admin:admin http://localhost:8080/images/ curl -u admin:admin -T sling.jpg http://localhost:8080/images/sling.jpg</p>
+<p>And check that the header is rendered with the logo at <a href="http://localhost:8080/content/header.html">http://localhost:8080/content/header.html</a>.</p>
+<p>Now, update the html.esp script that we created for our first example above, to include the header:</p>
+<html>
+<body>
+<div id="header">
+<% sling.include("/content/header"); %>
+</div>
+<h1><%= currentNode.title %></h1>
+</body>
+</html>
+<p>And upload it again to replace the previous version:</p>
+<p>curl -u admin:admin -T html.esp http://localhost:8080/apps/foo/bar/html.esp</p>
+<p>The <a href="http://localhost:8080/content/mynode.html">http://localhost:8080/content/mynode.html</a>, once refreshed, now shows the blue headline and logo, and this layout also applies to any node created with <em>sling:resourceType=foo/bar</em>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/legacy/logging.html
----------------------------------------------------------------------
diff --git a/documentation/legacy/logging.html b/documentation/legacy/logging.html
new file mode 100644
index 0000000..fea005c
--- /dev/null
+++ b/documentation/legacy/logging.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Logging</h1></header><div class="note">
+This document is for 3.x release of Sling Commons Log components. Refer to
+<a href="http://sling.apache.org/documentation/development/logging.html">Logging</a> for documentation related
+to newer version.
+</div>
+<h2>Introduction</h2>
+<p>Logging in Sling is supported by the <code>org.apache.sling.commons.log</code> bundle, which is one of the first bundles installed and started by the Sling Launcher. The <code>org.apache.sling.commons.log</code> bundle has the following tasks:</p>
+<ul>
+  <li>Implements the OSGi Log Service Specification and registers the <code>LogService</code> and <code>LogReader</code> services</li>
+  <li>Exports three commonly used logging APIs:</li>
+  <li><a href="http://www.slf4j.org">Simple Logging Facade for Java (SLF4J)</a></li>
+  <li><a href="http://jakarta.apache.org/commons/logging">Apache Commons Logging</a></li>
+  <li><a href="http://logging.apache.org/log4j/index.html">log4j</a></li>
+  <li><a href="http://download.oracle.com/javase/6/docs/api/java/util/logging/package-summary.html">java.util.logging</a> (as of r1169918)</li>
+  <li>Configures logging through our own implementation of the SLF4J backend API</li>
+</ul>
+<h2>Initial Configuration</h2>
+<p>The <code>org.apache.sling.commons.log</code> bundle gets the initial configuration from the following <code>BundleContext</code> properties:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>org.apache.sling.commons.log.level</code> </td>
+      <td><code>INFO</code> </td>
+      <td>Sets the initial logging level of the root logger. This may be any of the defined logging levels <code>DEBUG</code>, <code>INFO</code>, <code>WARN</code>, <code>ERROR</code> and <code>FATAL</code>. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file</code> </td>
+      <td>undefined </td>
+      <td>Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to <code>System.out</code>. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file.number</code> </td>
+      <td>5 </td>
+      <td>The number of rotated files to keep. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file.size</code> </td>
+      <td>'.'yyyy-MM-dd </td>
+      <td>Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section <em>Log File Rotation</em> below for full details on log file rotation. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.pattern</code> </td>
+      <td>{0,date,dd.MM.yyyy HH:mm:ss.SSS} <em>{4}</em> [{2}]({{ refs.-2.path }}) {3} {5} </td>
+      <td>The <code>MessageFormat</code> pattern to use for formatting log messages with the root logger. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.julenabled</code> </td>
+      <td>n/a </td>
+      <td>Enables the <code>java.util.logging</code> support. </td>
+    </tr>
+  </tbody>
+</table>
+<h2>User Configuration</h2>
+<p>User Configuration after initial configuration is provided by the Configuration Admin Service. To this avail two <code>org.osgi.services.cm.ManagedServiceFactory</code> services are registered under the PIDs <code>org.apache.sling.commons.log.LogManager.factory.writer</code> and <code>org.apache.sling.commons.log.LogManager.factory.config</code> which may receive configuration.</p>
+<h3>Logger Configuration</h3>
+<p>Loggers (or Categories) can be configured to log to specific files at specific levels using configurable patterns. To this avail factory configuration instances with factory PID <code>org.apache.sling.commons.log.LogManager.factory.config</code> may be created and configured with the Configuration Admin Service.</p>
+<p>The following properties may be set:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Type </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>org.apache.sling.commons.log.level</code> </td>
+      <td><code>String</code> </td>
+      <td><code>INFO</code> </td>
+      <td>Sets the logging level of the loggers. This may be any of the defined logging levels <code>DEBUG</code>, <code>INFO</code>, <code>WARN</code>, <code>ERROR</code> and <code>FATAL</code>. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file</code> </td>
+      <td><code>String</code> </td>
+      <td>undefined </td>
+      <td>Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to <code>System.out</code>. This property should refer to the file name of a configured Log Writer (see below). If no Log Writer is configured with the same file name an implicit Log Writer configuration with default configuration is created. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.pattern</code> </td>
+      <td><code>String</code> </td>
+      <td>{0,date,dd.MM.yyyy HH:mm:ss.SSS} <em>{4}</em> [{2}]({{ refs.-2.path }}) {3} {5} </td>
+      <td>The <code>java.util.MessageFormat</code> pattern to use for formatting log messages with the root logger. This is a <code>java.util.MessageFormat</code> pattern supporting up to six arguments: {0} The timestamp of type <code>java.util.Date</code>, {1} the log marker, {2} the name of the current thread, {3} the name of the logger, {4} the debug level and {5} the actual debug message. If the log call includes a Throwable, the stacktrace is just appended to the message regardless of the pattern. </td>
+    </tr>
+  </tbody>
+</table>
+<p>| <code>org.apache.sling.commons.log.names</code> | <code>String[]</code> | -- | A list of logger names to which this configuration applies. |</p>
+<p>Note that multiple Logger Configurations may refer to the same Log Writer Configuration. If no Log Writer Configuration exists whose file name matches the file name set on the Logger Configuration an implicit Log Writer Configuration with default setup (daily log rotation) is internally created.</p>
+<h3>Log Writer Configuration</h3>
+<p>Log Writer Configuration is used to setup file output and log file rotation characteristics for log writers used by the Loggers.</p>
+<p>The following properties may be set:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file</code> </td>
+      <td>undefined </td>
+      <td>Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to <code>System.out</code>. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file.number</code> </td>
+      <td>5 </td>
+      <td>The number of rotated files to keep. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file.size</code> </td>
+      <td>'.'yyyy-MM-dd </td>
+      <td>Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section <em>Log File Rotation</em> below for full details on log file rotation. </td>
+    </tr>
+  </tbody>
+</table>
+<p>See the section <em>Log File Rotation</em> below for full details on the <code>org.apache.sling.commons.log.file.size</code> and <code>org.apache.sling.commons.log.file.number</code> properties.</p>
+<h2>Log File Rotation</h2>
+<p>Log files can grow rather quickly and fill up available disk space. To cope with this growth log files may be rotated in two ways: At specific times or when the log file reaches a configurable size. The first method is called <em>Scheduled Rotation</em> and is used by specifying a <code>SimpleDateFormat</code> pattern as the log file "size". The second method is called <em>Size Rotation</em> and is used by setting a maximum file size as the log file size.</p>
+<p>As of version 2.0.6 of the Sling Commons Log bundle, the default value for log file scheduling is <code>&#39;.&#39;yyyy-MM-dd</code> causing daily log rotation. Previously log rotation defaulted to a 10MB file size limit.</p>
+<h3>Scheduled Rotation</h3>
+<p>The rolling schedule is specified by setting the <code>org.apache.sling.commons.log.file.size</code> property to a <code>java.text.SimpleDateFormat</code> pattern. Literal text (such as a leading dot) to be included must be <em>enclosed</em> within a pair of single quotes. A formatted version of the date pattern is used as the suffix for the rolled file name.</p>
+<p>For example, if the log file is configured as <code>/foo/bar.log</code> and the pattern set to <code>&#39;.&#39;yyyy-MM-dd</code>, on 2001-02-16 at midnight, the logging file <code>/foo/bar.log</code> will be renamed to <code>/foo/bar.log.2001-02-16</code> and logging for 2001-02-17 will continue in a new <code>/foo/bar.log</code> file until it rolls over the next day.</p>
+<p>It is possible to specify monthly, weekly, half-daily, daily, hourly, or minutely rollover schedules.</p>
+<table>
+  <thead>
+    <tr>
+      <th>DatePattern </th>
+      <th>Rollover schedule </th>
+      <th>Example </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-MM</code> </td>
+      <td>Rollover at the beginning of each month </td>
+      <td>At midnight of May 31st, 2002 <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-05</code>. Logging for the month of June will be output to <code>/foo/bar.log</code> until it is also rolled over the next month. </td>
+    </tr>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-ww</code> </td>
+      <td>Rollover at the first day of each week. The first day of the week depends on the locale. </td>
+      <td>Assuming the first day of the week is Sunday, on Saturday midnight, June 9th 2002, the file <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-23</code>. Logging for the 24th week of 2002 will be output to <code>/foo/bar.log</code> until it is rolled over the next week. </td>
+    </tr>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-MM-dd</code> </td>
+      <td>Rollover at midnight each day.</td>
+      <td>At midnight, on March 8th, 2002, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-03-08</code>. Logging for the 9th day of March will be output to <code>/foo/bar.log</code> until it is rolled over the next day.</td>
+    </tr>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-MM-dd-a</code> </td>
+      <td>Rollover at midnight and midday of each day.</td>
+      <td>at noon, on March 9th, 2002, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-03-09-AM</code>. Logging for the afternoon of the 9th will be output to <code>/foo/bar.log</code> until it is rolled over at midnight.</td>
+    </tr>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-MM-dd-HH</code> </td>
+      <td>Rollover at the top of every hour.</td>
+      <td>At approximately 11:00.000 o'clock on March 9th, 2002, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-03-09-10</code>. Logging for the 11th hour of the 9th of March will be output to <code>/foo/bar.log</code> until it is rolled over at the beginning of the next hour.</td>
+    </tr>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-MM-dd-HH-mm</code> </td>
+      <td>Rollover at the beginning of every minute.</td>
+      <td>At approximately 11:23,000, on March 9th, 2001, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2001-03-09-10-22</code>. Logging for the minute of 11:23 (9th of March) will be output to <code>/foo/bar.log</code> until it is rolled over the next minute.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Do not use the colon ":" character in anywhere in the pattern option. The text before the colon is interpeted as the protocol specificaion of a URL which is probably not what you want.</p>
+<p>Note that Scheduled Rotation ignores the <code>org.apache.sling.commons.log.file.number</code> property since the old log files are not numbered but "dated".</p>
+<h3>Size Rotation</h3>
+<p>Log file rotation by size is specified by setting the <code>org.apache.sling.commons.log.file.size</code> property to a plain number or a number plus a size multiplier. The size multiplier may be any of <code>K</code>, <code>KB</code>, <code>M</code>, <code>MB</code>, <code>G</code>, or <code>GB</code> where the case is ignored and the meaning is probably obvious.</p>
+<p>When using Size Rotation, the <code>org.apache.sling.commons.log.file.number</code> defines the number of old log file generations to keep. For example to keep 5 old log files indexed by 0 through 4, set the <code>org.apache.sling.commons.log.file.number</code> to <code>5</code> (which happens to be the default).</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/pax-exam-utils.html
----------------------------------------------------------------------
diff --git a/documentation/pax-exam-utils.html b/documentation/pax-exam-utils.html
new file mode 100644
index 0000000..97c28a1
--- /dev/null
+++ b/documentation/pax-exam-utils.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Pax Exam Utilities</h1></header><p>Utilities to help testing Sling components with Pax Exam are available at <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/sling-pax-util">https://svn.apache.org/repos/asf/sling/trunk/testing/sling-pax-util</a></p>
+<p>The focus is on making it easier to test Sling components against a full Sling launchpad, with minimal boilerplate code.</p>
+<p>See the <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/sling-pax-util/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java">SlingRepositoryTest</a> class for an example test.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine.html b/documentation/the-sling-engine.html
new file mode 100644
index 0000000..6214130
--- /dev/null
+++ b/documentation/the-sling-engine.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>The Sling Engine</h1></header><h2>General</h2>
+<ul>
+  <li><a href="/documentation/the-sling-engine/architecture.html">Architecture</a></li>
+  <li><a href="/documentation/the-sling-engine/authentication.html">Authentication</a></li>
+  <li><a href="/documentation/the-sling-engine/service-authentication.html">{{ refs.service-authentication.headers.title }}</a></li>
+</ul>
+<h2>Request Handling</h2>
+<ul>
+  <li><a href="/documentation/the-sling-engine/dispatching-requests.html">Dispatching Requests</a></li>
+  <li><a href="/documentation/the-sling-engine/url-decomposition.html">URL decomposition</a></li>
+  <li><a href="/documentation/the-sling-engine/url-to-script-resolution.html">URL to Script Resolution</a></li>
+  <li><a href="/documentation/the-sling-engine/request-listeners.html">Request Listeners</a></li>
+  <li><a href="/documentation/the-sling-engine/filters.html">Filters</a></li>
+  <li><a href="/documentation/the-sling-engine/servlets.html">Servlets and Scripts</a></li>
+  <li><a href="/documentation/the-sling-engine/errorhandling.html">Errorhandling</a></li>
+  <li><a href="/documentation/the-sling-engine/request-parameters.html">Request Parameters</a></li>
+</ul>
+<h2>Resources</h2>
+<ul>
+  <li><a href="/documentation/the-sling-engine/resources.html">Resources</a></li>
+  <li><a href="/documentation/the-sling-engine/sling-api-crud-support.html">Sling API CRUD Support</a></li>
+  <li><a href="/documentation/the-sling-engine/wrap-or-decorate-resources.html">Wrap or Decorate Resources</a></li>
+  <li><a href="/documentation/the-sling-engine/mappings-for-resource-resolution.html">Mappings for Resource Resolution</a></li>
+</ul>
+<h2>Misc</h2>
+<ul>
+  <li><a href="/documentation/the-sling-engine/adapters.html">Adapters</a></li>
+  <li><a href="/documentation/the-sling-engine/featureflags.html">{{ refs.featureflags.headers.title }}</a></li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/adapters.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/adapters.html b/documentation/the-sling-engine/adapters.html
new file mode 100644
index 0000000..7656516
--- /dev/null
+++ b/documentation/the-sling-engine/adapters.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Adapters</h1></header><p>[TOC]</p>
+<p>The <code>Resource</code> and <code>ResourceResolver</code> interfaces are defined with a method <code>adaptTo</code>, which adapts the object to other classes. Using this mechanism the JCR session of the resource resolver calling the <code>adaptTo</code> method with the <code>javax.jcr.Session</code> class object. Likewise the JCR node on which a resource is based can be retrieved by calling the <code>Resource.adaptTo</code> method with the <code>javax.jcr.Node</code> class object.</p>
+<p>To use resources as scripts, the <code>Resource.adaptTo</code> method must support being called with the <code>org.apache.sling.api.script.SlingScript</code> class object. But of course, we do not want to integrate the script manager with the resource resolver. To enable adapting objects to classes which are not foreseen by the original implementation, a factory mechanism is used. This way, the script manager can provide an adapter factory to adapt <code>Resource</code> to <code>SlingScript</code> objects.</p>
+<h1>Adaptable</h1>
+<p>The <code>Adaptable</code> interface defines the API to be implemented by a class providing adaptability to another class. The single method defined by this interface is</p>
+<p>/** * Adapts the adaptable to another type. * <p> * Please not that it is explicitly left as an implementation detail whether * each call to this method with the same <code>type</code> yields the same * object or a new object on each call. * <p> * Implementations of this method should document their adapted types as * well as their behaviour with respect to returning newly created or not * instance on each call. * * @param <AdapterType> The generic type to which this resource is adapted * to * @param type The Class object of the target type, such as * <code>javax.jcr.Node.class</code> or * <code>java.io.File.class</code> * @return The adapter target or <code>null</code> if the resource cannot * adapt to the requested type */ <AdapterType> AdapterType adaptTo(Class<AdapterType> type);</p>
+<p>This method is called to get a view of the same object in terms of another class. Examples of implementations of this method are the Sling <code>ResourceResolver</code> implementation providing adapting to a JCR session and the Sling JCR based <code>Resource</code> implementation providing adapting to a JCR node.</p>
+<h1>Listing Adaptation Possibilities</h1>
+<p>The Web Console Plugin at <code>/system/console/adapters</code> and at <code>/system/console/status-adapters</code> can be used to list all existing adaptables in the system with their according adapter classes.</p>
+<p>The web console plugin evaluates metadata being provided by any <code>AdapterFactory</code> services as well as metadata being provided through the file <code>SLING-INF/adapters.json</code></p>
+<h1>Implementing Adaptable</h1>
+<p>Each adaptable should derive from <code>SlingAdaptable</code> to automatically profit from all according <code>AdapterFactories</code> registered in the system. In case the <code>adaptTo(...)</code> method is being overwritten an according <code>SLING-INF/adapters.json</code> should be included in the providing bundle listing all adaptation possibilities. While this file is not strictly necessary for the actual adaptation to work, it provides useful information to the Web Console plugin. Otherwise developers will not know which adaptations are supported. The format of this JSON file looks like this (<a href="https://issues.apache.org/jira/browse/SLING-2295">SLING-2295</a>):</p>
+<p>{ <fully qualified class name of adaptable> : { <condition> : &lt;fully qualified class name of adapter, may be a JSON array&gt; } }</p>
+<p>For example</p>
+<p>{ "org.apache.sling.api.resource.Resource" : { "If the adaptable is a AuthorizableResource." : [ "java.util.Map", "org.apache.sling.api.resource.ValueMap", "org.apache.jackrabbit.api.security.user.Authorizable" ], "If the resource is an AuthorizableResource and represents a JCR User" : "org.apache.jackrabbit.api.security.user.User", "If the resource is an AuthorizableResource and represents a JCR Group" : "org.apache.jackrabbit.api.security.user.Group" } }</p>
+<p>Instead of manually creating that JSON file, the annotations from the module <a href="https://svn.apache.org/viewvc/sling/trunk/tooling/maven/adapter-annotations/">adapter-annotations</a> can be used together with the goal <code>generate-adapter-metadata</code> from the <a href="http://sling.apache.org/components/maven-sling-plugin/generate-adapter-metadata-mojo.html">Maven Sling Plugin</a> to generate it automatically (<a href="https://issues.apache.org/jira/browse/SLING-2313">SLING-2313</a>).</p>
+<h1>Extending Adapters</h1>
+<p>Sometimes an <code>Adaptable</code> implementation cannot foresee future uses and requirements. To cope with such extensibility requirements two interfaces and an abstract base class are defined:</p>
+<ul>
+  <li><code>AdapterManager</code></li>
+  <li><code>AdapterFactory</code></li>
+  <li><code>SlingAdaptable</code></li>
+</ul>
+<h2>AdapterFactory</h2>
+<p>The <code>AdapterFactory</code> interface defines the service interface and API for factories supporting extensible adapters for <code>SlingAdaptable</code> objects. The interface has a single method:</p>
+<p>/** * Adapt the given object to the adaptable type. The adaptable object is * guaranteed to be an instance of one of the classes listed in the * {@link #ADAPTABLE_CLASSES} services registration property. The type * parameter is one of the classes listed in the {@link #ADAPTER_CLASSES} * service registration properties. * <p> * This method may return <code>null</code> if the adaptable object cannot * be adapted to the adapter (target) type for any reason. In this case, the * implementation should log a message to the log facility noting the cause * for not being able to adapt. * <p> * Note that the <code>adaptable</code> object is not required to implement * the <code>Adaptable</code> interface, though most of the time this method * is called by means of calling the {@link Adaptable#adaptTo(Class)} * method. * * @param <AdapterType> The generic type of the adapter (target) type. * @param adaptable The object to adapt to the adapter type. * @param type The type to which the object 
 is to be adapted. * @return The adapted object or <code>null</code> if this factory instance * cannot adapt the object. */ <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type);</p>
+<p>Implementations of this interface are registered as OSGi services providing two lists: The list of classes which may be adapted (property named <code>adaptables</code>) and the list of classes to which the adapted class may be adapted (property named <code>adapters</code>). A good example of an Class implementing <code>AdapterFactory</code> is the <code>SlingScriptAdapterFactory</code>. In addition a property named <code>adapter.condition</code> can be provided which is supposed to contain a string value explaining under which circumstances the adaption will work (if there are any restrictions). This is evaluated by the Web Console Plugin.</p>
+<p><code>AdapterFactory</code> services are gathered by a <code>AdapterManager</code> implementation for use by consumers. Consumers should not care for <code>AdapterFactory</code> services.</p>
+<h2>AdapterManager</h2>
+<p>The <code>AdapterManager</code> is defines the service interface for the generalized and extensible use of <code>AdapterFactory</code> services. Thus the adapter manager may be retrieved from the service registry to try to adapt whatever object that needs to be adapted - provided appropriate adapters exist.</p>
+<p>The <code>AdapterManager</code> interface is defined as follows:</p>
+<p>/** * Returns an adapter object of the requested <code>AdapterType</code> for * the given <code>adaptable</code> object. * <p> * The <code>adaptable</code> object may be any non-<code>null</code> object * and is not required to implement the <code>Adaptable</code> interface. * * @param <AdapterType> The generic type of the adapter (target) type. * @param adaptable The object to adapt to the adapter type. * @param type The type to which the object is to be adapted. * @return The adapted object or <code>null</code> if no factory exists to * adapt the <code>adaptable</code> to the <code>AdapterType</code> * or if the <code>adaptable</code> cannot be adapted for any other * reason. */ <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type);</p>
+<p>Any object can theoretically be adapted to any class even if it does not implement the <code>Adaptable</code> interface, if an <code>AdapterFactory</code> service delivers a <code>getAdapter()</code> method which adapts an object to another one. To check if there's any existing <code>AdapterFactory</code> which can adapt a given object to another one the <code>AdapterManager</code> service with its <code>getAdapter()</code> method does the job. So the <code>Adaptable</code> interface merely is an indicator that the object provides built-in support for being adapted.</p>
+<h2>SlingAdaptable</h2>
+<p>The <code>SlingAdaptable</code> class is an implementation of the <code>Adaptable</code> interface which provides built-in support to call the <code>AdapterManager</code> to provide an adapter from the <code>Adaptable</code> object to the requested class.</p>
+<p>An example of extending the <code>SlingAdaptable</code> class will be the Sling JCR based <code>Resource</code> implementation. This way, such a resource may be adapted to a <code>SlingScript</code> by means of an appropriately programmed <code>AdapterFactory</code> (see below).</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/architecture.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/architecture.html b/documentation/the-sling-engine/architecture.html
new file mode 100644
index 0000000..01a4169
--- /dev/null
+++ b/documentation/the-sling-engine/architecture.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Architecture</h1></header><p>The following is a short list of high-lights of Sling:</p>
+<ul>
+  <li><strong><a href="#osgi">OSGi</a></strong> &mdash; The Sling application is built as a series of OSGi bundles and makes heavy use of a number of OSGi core and compendium services.</li>
+  <li><strong><a href="#sling-api">Sling API</a></strong> &mdash; To implement content based Web applications with Sling, an API has been defined, this extends the Servlet API and provides more functionality to work on the content.</li>
+  <li><strong><a href="#request-processing">Request Processing</a></strong> &mdash; Sling takes a unique approach to handling requests in that a request URL is first resolved to a resource, then based on the resource (and only the resource) it selects the actual servlet or script to handle the request.</li>
+  <li><strong><a href="#resources">Resources</a></strong> &mdash; The central mantra of Sling is the <em>Resource</em>, which represents the resource addressed by any request URL. It is the resource that is first resolved when handling a request. Based on the resource, a first servlet or script is then accessed to actually handle the request.</li>
+  <li><strong><a href="#servlets-and-scripts">Servlets and Scripts</a></strong> &mdash; Servlets and Scripts are handled uniformly in that they are represented as resources themselves and are accessible by a resource path.</li>
+  <li><strong><a href="#launchpad">Launchpad</a></strong> &mdash; Sling uses a very thin launcher to integrate with an existing servlet container, launching Sling as a Web application or providing a main class to represent a standalone Java application.</li>
+</ul>
+<p>The following sections elaborate on each of these highlights.</p>
+<h2>OSGi</h2>
+<p><a href="http://www.osgi.org">OSGi</a> is a consortium that has developed a specification to build modular and extensible applications. This offers <a href="http://www.osgi.org/About/WhyOSGi">various benefits</a>. We deal mainly with two parts of the specifications: The Core Specification, which defines the OSGi Framework and Core Services, and the Compendium Services Specification, which defines a host of services that extend the functionality of the OSGi Framework.</p>
+<h3>OSGi Framework</h3>
+<p>The OSGi Framework is made up of three layers &ndash; Module, Lifecycle, and Services &ndash; that define how extensible applications are built and deployed. The responsibilities of the layers are:</p>
+<ul>
+  <li><strong>Module</strong> &mdash; Defines how a module, or a <em>Bundle</em> in OSGi-speak, is defined. Basically, a bundle is just a plain old JAR file, whose manifest file has some defined entries. These entries identify the bundle with a symbolic name, a version and more. In addition there are headers which define what a bundle provides <code>Export-Package</code> and what a bundle requires to be operative <code>Import-Package</code> and <code>Require-Bundle</code>.</li>
+  <li><strong>Lifecycle</strong> &mdash; The lifecycle layer defines the states a bundle may be in and describes the state changes. By providing a class, which implements the <code>BundleActivator</code> interface and which is named in the <code>Bundle-Activator</code> manifest header, a bundle may hook into the lifecycle process when the bundle is started and stopped.</li>
+  <li><strong>Services</strong> &mdash; For the application to be able to interact, the OSGi Core Specification defines the service layer. This describes a registry for services, which may be shared.</li>
+</ul>
+<h3>Compendium Services</h3>
+<p>Based on the OSGi Framework specification, the Compendium Services specification defines a (growing) number of extension services, which may be used by applications for various tasks. Of these Compendium Services, Sling is using just a small number:</p>
+<ul>
+  <li><strong>Log Service</strong> &mdash; Sling comes with its own implementation of the OSGi Log Service specification. The respective bundle not only provides this implementation, it also exports the SLF4J, Log4J and Commons Logging APIs needed for the Sling application to perform logging.</li>
+  <li><strong>Http Service</strong> &mdash; Sling leverages the OSGi Http Service to hook into a servlet container to provide the Web Application Framework mechanism.</li>
+  <li><strong>Configuration Admin Service</strong> &mdash; To simplify configuration of services in Sling, the OSGi Configuration Admin service is used. This provides a uniform API to configure services and to build configuration management agents.</li>
+  <li><strong>Metatype Service</strong> &mdash; The OSGi Metatype Service defines a way to describe the data types. Sling uses this service to describe the configurations that may be created using the Configuration Admin Service. These meta type descriptions are used by configuration management agents to present to user interface to manage the configurations.</li>
+  <li><strong>Event Admin Service</strong> &mdash; Sling uses the OSGi EventAdmin service to dispatch events when scheduling tasks.</li>
+  <li><strong>Declarative Services</strong> &mdash; One of the most important (beside the Log Service) services used by Sling is the Declarative Services Specification. This specification defines how to declaratively create components and services to have the Declarative Services runtime actually manage the lifecycle, configuration and references of components.</li>
+</ul>
+<h2>Sling API</h2>
+<p>The Sling API is an extension to the Servlet API which provides more functionality to interact with the Sling framework and also to extend Sling itself and to implement Sling applications.</p>
+<p>See the [Sling API]({{ refs.sling-api.path }}) page for more information.</p>
+<h2>Request Processing</h2>
+<p>Traditional Web Application framework emply more or less elaborate methods to select a Servlet or Controller based on the request URL, which in turn tries to load some data (usually from a database) to act upon and finally to render the result somehow.</p>
+<p>Sling turns this processing around in that it places the data to act upon at the center and consequently uses the request URL to first resolve the data to process. This data is internally represented as an instance of the <code>Resource</code> interface. Based on this resource as well as the request method and more properties of the request URL a script or servlet is then selected to handle the request.</p>
+<p>See the <a href="/documentation/the-sling-engine/servlets.html">Servlets</a> page for more information.</p>
+<h2>Resources</h2>
+<p>The Resource is one of the central parts of Sling. Extending from JCR's <em>Everything is Content</em>, Sling assumes <em>Everthing is a Resource</em>. Thus Sling is maintaining a virtual tree of resources, which is a merger of the actual contents in the JCR Repository and resources provided by so called resource providers.</p>
+<p>Each resource has a path by which it is addressed in the resource tree, a resource type and some resource metadata (such as file size, last modification time). It is important to understand, that a <code>Resource</code> instance actually is only a handle to the actual data. By virtue of the <code>adaptTo(Class&lt;Type&gt;)</code> method, a resource may be coerced into another data type, which may then be used while processing the request. Examples of data types are <code>javax.jcr.Node</code> and <code>java.io.InputStream</code>.</p>
+<p>See the <a href="/documentation/the-sling-engine/resources.html">Resources</a> page for more information.</p>
+<h2>Servlets and Scripts</h2>
+<p>Scripts are usually provided as content in a JCR repository. But since Sling is using a resource tree, a script actually is represented as a Resource and may be provided from within a Bundle (by virtue of the bundle resource provider) or even from the platform file system (by virtue of the file system resource provider).</p>
+<p>Accessing scripts in the resource tree, allows for a very easy to understand mapping from resource type to some script path.</p>
+<p>Having found the script resource, we still need access to the appropriate script language implementation to evaluate the script. To this avail, Sling is making use of the <code>Resource.adaptTo(Class&lt;Type&gt;)</code> method: If a script language implementation is available for the extension of the script name an adaptor for the script resource can be found, which handles the evaluation of the script.</p>
+<p>Besides scripting languages, such as ECMAScript, Groovy, JSP, Sling also supports regular servlets. To be able to use servlets for request processing, such servlets must be registered as OSGi services for the <code>javax.servlet.Servlet</code> interface and provide a number of service registration properties, which are used to use the servlets. In fact servlets thus registered as OSGi services are mapped into the resource tree by means of a servlet resource provider. This resource provider mapps the servlets into the resource tree using the service registration properties to build one or more resource paths for the servlet.</p>
+<p>As a result of mapping servlets into the resource tree and the possibility to adapt resource to an adaptor data type, scripts and servlets may be handled completely transparently: The servlet resolver just looks for a resource matching the resource type and adapts the resource found to <code>javax.jcr.Servlet</code>. If the resource happens to be provided by a servlet resource provider, the adapter is of course the servlet itself. If the resource happens to be a script, the adapter is a servlet facade which internally calls the script language implementation to evaluate the script.</p>
+<p>See the [Servlet Resolution]({{ refs.servlet-resolution.path }}) page for more information.</p>
+<h2>Launchpad</h2>
+<p>Sling may be launched as a standalone application using the Sling Application or as a Web Application running inside any Servlet API 2.4 or newer Servlet Container.</p>
+<p>The Sling Application is a standalone Java Application which is really small: Just the main class and some glue classes. The OSGi framework as well as the OSGi API libraries are packaged as a JAR file, which is loaded through a custom classloader. This enables to update the framework and/or OSGi API libraries from within Sling by updating the system bundle.</p>
+<p>The Sling Servlet is equally small as the Sling Application. It uses the Felix <code>HttpService</code> bridge as the glue between the servlet container and the OSGi framework.</p>
+<p>As we have seen, Sling may be launched as a standalone Java Application or as a Web Application inside any compliant Servlet Container. To hide the differences of the launching mechanism, Sling internally registers a Servlet with an OSGi <code>HttpService</code>. Regardless of how Sling is launched, the Felix implementation of the OSGi <code>HttpService</code> specification is used. When Sling is launched as a standalone Java Application, Felix HttpService uses an embedded version of the Jetty servlet container. When Sling is launched as a Web Application, the Felix HttpService Bridge is used.</p>
+<p>Optionally, PAX Web's implementation of HttpService can be used when Sling is launched as a standalone Java Application. See the <a href="/documentation/development/maven-launchpad-plugin.html">Maven Launchpad Plugin</a> page for information on how to do this.</p>
+<p>See <a href="/documentation/the-sling-engine/the-sling-launchpad.html">The Sling Launchpad</a> for more information.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/authentication.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/authentication.html b/documentation/the-sling-engine/authentication.html
new file mode 100644
index 0000000..73007f3
--- /dev/null
+++ b/documentation/the-sling-engine/authentication.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Authentication</h1></header><p>Excerpt: How requests are authenticated.</p>
+<p>This section describes the framework provided by Sling to authenticate HTTP requests.</p>
+<p>Let's look at generic request processing of Sling: Sling is linked into the outside world by registering the Sling Main Servlet &ndash; implemented by the <code>SlingMainServlet</code> class in the Sling Engine bundle &ndash; with an OSGi <code>HttpService</code>. This registration is accompanyied with an implementation instance of the OSGi <code>HttpContext</code> interface, which defines a method to authenticate requests: <code>handleSecurity</code>.</p>
+<p>This method is called by the OSGi HTTP Service implementation after the servlet has been selected to handle the request but before actually calling the servlet's <code>service</code> method.</p>
+<a href="authentication.png" style="float:left;padding-right:5%">
+<img src="authentication.png" title="Authentication Flow" alt="Authentication Flow" />
+</a>
+<ol>
+  <li>First the OSGi HTTP Service implementation is analyzing the request URL to find a match for a servlet or resource registered with the HTTP Service.</li>
+  <li>Now the HTTP Service implementation has to call the <code>handleSecurity</code> method of the <code>HttpContext</code> object with which the servlet or resource has been registered. This method returns <code>true</code> if the request should be serviced. If this method returns <code>false</code> the HTTP Service implementation terminates the request sending back any response which has been prepared by the <code>handleSecurity</code> method. Note, that the <code>handleSecurity</code> method must prepare the failure response sent to the client, the HTTP Service adds nothing here. If the <code>handleSecurity</code> method is successful, it must add two (or three) request attributes described below.</li>
+  <li>When the <code>handleSecurity</code> method returns <code>true</code> the HTTP Service either calls the <code>Servlet.service</code> method or sends back the requested resource depending on whether a servlet or a resource has been selected in the first step.</li>
+</ol>
+<p>The important thing to note here is, that at the time the <code>handleSecurity</code> method is called, the <code>SlingMainServlet</code> is not yet in control of the request. So any functionality added by the <code>SlingMainServlet</code>, notably the <code>SlingHttpServletRequest</code> and <code>SlingHttpServletResponse</code> objects are not available to the implementation of the <code>handleSecurity</code> method.</p>
+<p>The following pages describe the full details of request authentication in Sling in full detail:</p>
+<ul>
+  <li><a href="/documentation/the-sling-engine/authentication/authentication-tasks.html">Tasks</a>: {{ refs.authentication-tasks.headers.excerpt }}</li>
+  <li><a href="/documentation/the-sling-engine/authentication/authentication-actors.html">Actors</a>: {{ refs.authentication-actors.headers.excerpt }}</li>
+  <li><a href="/documentation/the-sling-engine/authentication/authentication-framework.html">Framework</a>: {{ refs.authentication-framework.headers.excerpt }}</li>
+  <li><a href="/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html">AuthenticationHandler</a>: {{ refs.authentication-authenticationhandler.headers.excerpt }}</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[20/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/sling-health-check-tool.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/sling-health-check-tool.md b/content/documentation/bundles/sling-health-check-tool.md
deleted file mode 100644
index 710e937..0000000
--- a/content/documentation/bundles/sling-health-check-tool.md
+++ /dev/null
@@ -1,224 +0,0 @@
-title=Sling Health Check Tools		
-type=page
-status=published
-~~~~~~
-
-Based on simple `HealthCheck` OSGi services, the Sling Health Check Tools ("hc" in short form) are used to
-check the health of live Sling systems, based on inputs like JMX MBean attribute values, OSGi framework
-information, Sling requests status, etc.
-
-Health checks are easily extensible either by configuring the supplied default `HealthCheck` services, or
-by implementing your own `HealthCheck` services to cater for project specific requirements.
-
-However for simple setups, the out of the box health checks are often sufficient. [Executing Health Checks](#executing-health-checks)
-is a good starting point to run existing checks and to get familiar with how health checks work.
-
-See also:
-
-* Source code at  [http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/healthcheck](http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/healthcheck)
-* adaptTo slides about Health Checks: [Introduction](http://www.slideshare.net/bdelacretaz/slinghc-bdelacretazadaptto2013) and [Health Check Executor](https://adapt.to/content/dam/adaptto/production/presentations/2014/adaptTo2014-Sling-Health-Checks-New-And-Noteworthy-Georg-Henzler.pdf/_jcr_content/renditions/original.media_file.download_attachment.file/adaptTo2014-Sling-Health-Checks-New-And-Noteworthy-Georg-Henzler.pdf)
-
-## Use cases
-Generally health checks have two high level use cases:
-
-* Operations teams checking sling instances for their internal state manually
-* Load balancers can query the health of a sling instance and decide to take it out or back into the list of used backends automatically
-
-The strength of Health Checks are to surface internal Sling state for external use:
-
-* Verify that performance counters are in range
-* Run smoke tests at system startup
-* Check that all OSGi bundles are up and running
-* Check that demo content has been removed from a production system
-* Check that demo accounts are disabled
-* Ping external systems and raise alarms if they are down
-
-The health check subsystem uses tags to select which health checks to execute so you can for example execute just the _performance_ or _security_ health
-checks once they are configured with the corresponding tags.
-
-The out of the box health check services also allow for using them as JMX aggregators and processors, which take JMX
-attribute values as input and make the results accessible via JMX MBeans.
-
-## What's a `HealthCheck` ?
-
-A `HealthCheck` is just an OSGi service that returns a `Result`.
-
-public interface HealthCheck {
-
-/** Execute this health check and return a {@link Result}
-*  This is meant to execute quickly, access to external
-*  systems, for example, should be managed asynchronously.
-*/
-public Result execute();
-}
-
-Where `Result` is a simple immutable class that provides a `Status` (OK, WARN, CRITICAL etc.) and one or more log-like messages that
-can provide more info about what, if anything, went wrong.
-
-public class Result implements Iterable <ResultLog.Entry> {
-
-public boolean isOk() {
-return getStatus().equals(Status.OK);
-}
-
-public Status getStatus() {
-return resultLog.getAggregateStatus();
-}
-
-@Override
-public Iterator<ResultLog.Entry> iterator() {
-return resultLog.iterator();
-}
-
-... details omitted
-}
-
-### SlingHealthCheck annotation
-The `SlingHealthCheck` annotation makes it easier to specify the required `HealthCheck` service properties.
-
-Here's an example from the `samples` module - see the `annotations` module for more details.
-
-@SlingHealthCheck(
-name="Annotated Health Check Sample",
-mbeanName="annotatedHC",
-description="Sample Health Check defined by a java annotation",
-tags={"sample","annotation"})
-
-public class AnnotatedHealthCheckSample implements HealthCheck {
-
-@Override
-public Result execute() {
-...health check code
-}
-}
-
-## Executing Health Checks
-
-Health Checks can be executed via a [webconsole plugin](#webconsole-plugin), the [health check servlet](#health-check-servlet) or via [JMX](#jmx-access-to-health-checks). `HealthCheck` services can be selected for execution based on their `hc.tags` multi-value service property.
-
-The `HealthCheckFilter` utility accepts positive and negative tag parameters, so that `-security,sling`
-selects all `HealthCheck` having the `sling` tag but not the `security` tag, for example.
-
-For advanced use cases it is also possible to use the API directly by using the interface `org.apache.sling.hc.api.execution.HealthCheckExecutor`.
-
-## Health Check bundles
-The Health Check subsystem consists of the following bundles:
-
-* The only required bundles are `org.apache.sling.hc.api` which provides the API and `org.apache.sling.hc.core` which provides some utility classes and some generally useful `HealthCheck` services (e.g. the health check executor)
-* `org.apache.sling.hc.support` provides more Sling-specific `HealthCheck` services.
-* `org.apache.sling.hc.webconsole` provides the Webconsole plugin described below.
-* `org.apache.sling.junit.healthcheck` provides a `HealthCheck` service that executes JUnit tests in the server-side OSGi context.
-* `org.apache.sling.hc.samples` provides sample OSGi configurations and `HealthCheck` services. The sample configurations are provided as Sling content, so the Sling Installer is required to activate them.
-* `org.apache.sling.hc.junit.bridge` makes selected Health Checks available as server-side JUnit tests. See below for more info.
-
-## Out-of-the-box `HealthCheck` services
-
-The following default `HealthCheck` services are provided by the `org.apache.sling.hc.core` bundle:
-
-The `org.apache.sling.hc.samples` bundle provides OSGi configurations that demonstrate them.
-
-* `JmxAttributeHealthCheck` checks the value of a single JMX attribute and supports ranges like _between 12 and 42_.
-* `ScriptableHealthCheck` evaluates an expression written in any scripting language that Sling supports, and provides bindings to access JMX attributes.
-* `CompositeHealthCheck` executes a set of `HealthCheck` selected by tags, useful for creating higher-level checks.
-
-A few more Sling-specific ones are provided by the `org.apache.sling.hc.support` bundle:
-
-* `SlingRequestStatusHealthCheck` checks the HTTP status of Sling requests.
-* `DefaultLoginsHealthCheck` can be used to verify that the default Sling logins fail.
-* `ThreadUsageHealthCheck` can be used to monitor for deadlocks using JRE ThreadMXBean (see [SLING-6698](https://issues.apache.org/jira/browse/SLING-6698) )
-
-A bridge to server-side OSGi-aware JUnit tests is provided by the `JUnitHealthCheck`, from
-the `org.apache.sling.junit.healthcheck` bundle.
-
-The `org.apache.sling.hc.samples` bundle provides an example `OsgiScriptBindingsProvider` for the default `ScriptableHealthCheck`,
-which provides OSGi-related information to health check script expressions.
-
-## Configuring Health Checks
-`HealthCheck` services are created via OSGi configurations. Generic health check service properties are interpreted by the health check executor service. Custom health check service properties can be used by the health check implementation itself to configure its behaviour.
-
-The following generic Health Check properties may be used for all checks:
-
-Property    | Type     | Description
------------ | -------- | ------------
-hc.name     | String   | The name of the health check as shown in UI
-hc.tags     | String[] | List of tags: Both Felix Console Plugin and Health Check servlet support selecting relevant checks by providing a list of tags
-hc.mbean.name | String | Makes the HC result available via given MBean name. If not provided no MBean is created for that `HealthCheck`
-hc.async.cronExpression | String | Used to schedule the execution of a `HealthCheck` at regular intervals, using a cron expression as specified by the [Sling Scheduler](/documentation/bundles/scheduler-service-commons-scheduler.html) module.
-hc.resultCacheTtlInMs | Long | Overrides the global default TTL as configured in health check executor for health check responses (since v1.2.6 of core)
-
-All service properties are optional.
-
-As an example, here's a `ScriptableHealthCheck` configuration provided by the `org.apache.sling.hc.samples` bundle:
-
-Factory PID = org.apache.sling.hc.ScriptableHealthCheck
-"hc.name" : "LoadedClassCount and ManagementSpecVersion are in range"
-"hc.mbean.name" : "LoadedClassCount and ManagementSpecVersion"
-"hc.tags" : [jvm, script]
-"expression" : "jmx.attribute('java.lang:type=ClassLoading', 'LoadedClassCount') > 10 &&  jmx.attribute('java.lang:type=Runtime', 'ManagementSpecVersion') > 1"
-"language.extension" : "ecma"
-
-The service properties starting with the `hc.` prefix in this example should be provided by all `HealthCheck` services.
-
-## Configuring the Health Check Executor
-The health check executor can **optionally** be configured via service PID `org.apache.sling.hc.core.impl.executor.HealthCheckExecutorImpl`:
-
-Property    | Type     | Default | Description
------------ | -------- | ------ | ------------
-timeoutInMs     | Long   | 2000ms | Timeout in ms until a check is marked as timed out
-longRunningFutureThresholdForCriticalMs | Long | 300000ms = 5min | Threshold in ms until a check is marked as 'exceedingly' timed out and will marked CRITICAL instead of WARN only
-resultCacheTtlInMs | Long | 2000ms | Result Cache time to live - results will be cached for the given time
-
-## Webconsole plugin
-If the `org.apache.sling.hc.webconsole` bundle is active, a webconsole plugin
-at `/system/console/healthcheck` allows for executing health checks, optionally selected
-based on their tags (positive and negative selection, see the `HealthCheckFilter` mention above).
-
-The DEBUG logs of health checks can optionally be displayed, and an option allows for showing only health checks that have a non-OK status.
-
-The screenshot below shows an example, as of svn revision 1513462.
-
-![Health Check Webconsole Plugin](sling-hc-plugin.jpg)
-
-## JMX access to health checks
-If the `org.apache.sling.hc.jmx` bundle is active, a JMX MBean is created for each `HealthCheck` which has the
-service property `hc.mbean.name` service property set. All health check MBeans are registered in the
-domain `org.apache.sling.healthcheck` with a type of `HealthCheck`.
-
-The MBean gives access to the `Result` and the log, as shown on the screenshot below.
-
-See the example configurations of the `org.apache.sling.hc.samples` for more details.
-
-![JConsole showing Sling Health Check MBeans](jconsole-hc.jpg)
-
-## Health Check Servlet
-Starting with version 1.2.4 of the `org.apache.sling.hc.core` bundle, a flexible Health Checks execution servlet is available. It provides
-similar features to the Web Console plugin described above, with output in HTML, JSON (plain or jsonp) and TXT (concise or verbose) formats (see HTML format rendering page for more documentation).
-
-The Health Checks Servlet is disabled by default, to enable it create an OSGi configuration like
-
-PID = org.apache.sling.hc.core.impl.servlet.HealthCheckExecutorServlet
-servletPath = /system/health
-
-which specifies the servlet's base path. That URL then returns an HTML page, by default with the results of all active health checks and
-with instructions at the end of the page about URL parameters which can be used to select specific Health Checks and control their execution and output format.
-
-Note that by design **the Health Checks Servlet doesn't do any access control by itself** to ensure it can detect unhealthy states of the authentication itself. Make sure the configured path is only accessible to relevant infrastructure and operations people. Usually all `/system/*` paths are only accessible from a local network and not routed to the Internet.
-
-## Health Checks as server-side JUnit tests
-The `org.apache.sling.hc.junit.bridge` bundle makes selected Health Checks available as server-side JUnit tests.
-
-It requires the `org.apache.sling.junit.core bundle` which provides the server-side JUnit tests infrastructure.
-
-The idea is to implement the smoke tests of your system, for example, as health checks. You can then run them
-as part of integration testing, using the  [Sling Testing Tools](/documentation/development/sling-testing-tools.html)
-remote testing utilities, and also as plain Health Checks for monitoring or troubleshooting Sling instances.
-
-To use this module, configure sets of tags at `/system/console/configMgr/org.apache.sling.hc.junitbridge.HealthCheckTestsProvider`
-using the standard `includeThisTag,-omitThatTag` syntax, and JUnit tests will be available at /system/sling/junit/HealthChecks.html
-to run the corresponding Health Checks.
-
-To run the Health Check tests at build time, see the [testing/samples/integration-tests](http://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests)
-sample module.
-
-
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/sling-main-servlet-config.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/sling-main-servlet-config.png b/content/documentation/bundles/sling-main-servlet-config.png
deleted file mode 100644
index cf667d5..0000000
Binary files a/content/documentation/bundles/sling-main-servlet-config.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/sling-oak-restrictions.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/sling-oak-restrictions.md b/content/documentation/bundles/sling-oak-restrictions.md
deleted file mode 100644
index 13f6bd7..0000000
--- a/content/documentation/bundles/sling-oak-restrictions.md
+++ /dev/null
@@ -1,103 +0,0 @@
-title=Sling Oak Restrictions		
-type=page
-status=published
-~~~~~~
-[TOC]
-
-
-## Introduction
-Oak introduced plugability of restrictions as described in [Oak Restriction Management](https://jackrabbit.apache.org/oak/docs/security/authorization/restriction.html#Pluggability). The bundle sling-oak-restrictions provides additional restrictions that generally make sense for sling applications. Currently sling restrictions for exact resource type match and resource type match including all descendants are supplied.
-
-**Important:** Using the sling restrictions (as well as standard oak restrictions) is not as performant as simple path based ACE entries without any restrictions. Permission setups should always mostly work with path based ACEs and only use ACEs with restrictions for special cases.
-
-## Restriction sling:resourceTypes
-This restriction allows to match against a sling resource type of a node and works much like the oak standard restriction `rep:ntNames`. Only resources that have one of the supplied resource types are matched, child and parent resources with other resource types are not matched.
-
-The following example allows `myAuthorizable` to write to all nodes that have either resource type `myproj/comp1` or `myproj/comp2`:
-
-- /content/myprj/mynode
-- rep:policy (rep:ACL)
-- allow (rep:GrantACE)
-+ principalName (String) = "myAuthorizable"
-+ rep:privileges (Name[]) = "rep:write"
-- rep:restrictions (rep:Restrictions)
-+ sling:resourceTypes (String[]) = [myproj/comp1,myproj/comp2]
-
-
-Assuming the following structure
-
-- /content/myprj
-+ sling:resourceType (String) = "myproj/siteroot"
-- mynode
-+ sling:resourceType (String) = "myproj/comp1"
-- mysubnode
-+ sling:resourceType (String) = "myproj/comp3"
-
-
-the rule from above will match `/content/myprj/mynode` and not `/content/myprj` (parent) nor `/content/myprj/mynode/mysubnode` (child).
-
-Naturally (as with any oak restrictions), the rule is limited to its base path. In case the node `/content/myprj/othernode` is of resource type `myproj/comp1`, it will still not match.
-
-## Restriction sling:resourceTypesWithDescendants
-This restriction matches against resource types in the same way as [sling:resourceTypes](#restriction-slingresourcetypes), except that it will also match all descendants of a matched node.
-
-The following example allows `myAuthorizable` to write to all nodes that have either resource type `myproj/comp1` or `myproj/comp2` **or are a child of a node, that has one of these resource types**:
-
-- /content/myprj/mynode
-- rep:policy (rep:ACL)
-- allow (rep:GrantACE)
-+ principalName (String) = "myAuthorizable"
-+ rep:privileges (Name[]) = "rep:write"
-- rep:restrictions (rep:Restrictions)
-+ sling:resourceTypesWithDescendants (String[]) = [myproj/comp1,myproj/comp2]
-
-
-Assuming the structure example as mentioned in [sling:resourceTypes](#restriction-slingresourcetypes), the rule from above will match `/content/myprj/mynode` and `/content/myprj/mynode/mysubnode` (and any other subnodes of `/content/myprj/mynode` with arbitrary resource types), but not `/content/myprj`.
-
-## Advanced Path Matching
-Both [sling:resourceTypes](#restriction-slingresourcetypes) and [sling:resourceTypesWithDescendants](#restriction-slingresourcetypeswithdescendants) support advanced path matching by using `resourcetype@path`. That way instead of checking the resource type of the current node, the resource type of node at the relative path is checked. For instance this is useful for the case where page content is stored in a `jcr:content` subnode of a hierarchy, the permission however is required to become effective on the parent node of `jcr:content`.
-
-The following example allows `myAuthorizable` to write to all nodes that have a subnode `jcr:content` with resource type `myproj/comp1` or `myproj/comp2` including their descendants:
-
-- /content/myprj/mynode
-- rep:policy (rep:ACL)
-- allow (rep:GrantACE)
-+ principalName (String) = "myAuthorizable"
-+ rep:privileges (Name[]) = "rep:write"
-- rep:restrictions (rep:Restrictions)
-+ sling:resourceTypesWithDescendants (String[]) = [myproj/comp1@jcr:content,myproj/comp2@jcr:content]
-
-Assuming the following structure
-
-- /content/myprj
-- jcr:content
-+ sling:resourceType (String) = "myproj/siteroot"
-- mynode1
-- jcr:content
-+ sling:resourceType (String) = "myproj/comp1"
-- mysubnode1
-- jcr:content
-+ sling:resourceType (String) = "myproj/comp3"
-- contentsubnode1
-+ sling:resourceType (String) = "myproj/comp4"
-- contentsubnode2
-+ sling:resourceType (String) = "myproj/comp5"
-- mysubnode2
-- jcr:content
-+ sling:resourceType (String) = "myproj/comp3"
-- mynode2
-- jcr:content
-+ sling:resourceType (String) = "myproj/comp7"
-
-the rule from above will match
-
-* `/content/myprj/mynode1` (because of the `@jcr:content` part of `myproj/comp1@jcr:content`)
-* `/content/myprj/mynode1/jcr:content` (it will check for `/content/myprj/mynode1/jcr:content/jcr:content` that does not exist, but since the parent `/content/myprj/mynode1` is already a match this matches because of `sling:resourceTypesWithDescendants`)
-* `/content/myprj/mynode1/contentsubnode1` (because of `sling:resourceTypesWithDescendants`)
-* `/content/myprj/mynode1/contentsubnode1` (because of `sling:resourceTypesWithDescendants`)
-
-and not match
-
-* `/content/myprj`
-* `/content/myprj/mynode2`
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/sling-pipes.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/sling-pipes.md b/content/documentation/bundles/sling-pipes.md
deleted file mode 100644
index a19d19c..0000000
--- a/content/documentation/bundles/sling-pipes.md
+++ /dev/null
@@ -1,363 +0,0 @@
-title=Sling Pipes		
-type=page
-status=published
-~~~~~~
-
-tool for doing extract - transform - load operations through a resource tree configuration.
-
-often one-shot data transformations need sample code to be written & executed. This tiny tool set intends to provide ability to do such transformations with proven & reusable blocks called pipes, streaming resources from one to the other.
-
-## What is a pipe
-
-getOutputBinding
-^
-|
-getInput  +---+---+   getOutput
-|       |
-+----> Pipe  +---->
-|       |
-+-------+
-
-A sling pipe is essentially a sling resource stream:
-
-- it provides an output as a sling resource iterator
-- it gets its input either from a configured path, either, if its chained (see container pipes below), from another pipe's output
-- each pipe can have additional dynamic inputs using other's bindings, and outputing its own bindings
-
-At this moment, there are 3 types of pipes to consider:
-
-- "reader" pipes, that will just output a set of resource depending on the input
-- "writer" pipes, that write to the repository, depending on configuration and output
-- "container" pipes, that contains pipes, and whose job is to chain their execution : input is the input of their first pipe,
-output is the output of the last pipe it contains.
-
-A `Plumber` osgi service is provided to help getting & executing pipes.
-
-## Registered Pipes
-a pipe configuration is a jcr node, with:
-
-- `sling:resourceType` property, which must be a pipe type registered by the plumber
-- `name` property, that will be used in bindings as an id, and will be the key for the output bindings (default value being a value map of the current output resource). Note that the node name will be used in case no name is provided.
-- `path` property, defines pipe's input. Note that property is not mandatory in case the pipe is streamed after another pipe, in which case previous pipe output's can be used as input.
-- `expr` property, expression through which the pipe will execute (depending on the type)
-- `additionalBinding` is a node you can add to set "global" bindings (property=value) in pipe execution
-- `additionalScripts` is a multi value property to declare scripts that can be reused in expressions
-- `conf` optional child node that contains addition configuration of the pipe (depending on the type)
-
-### readers
-
-#### Base pipe
-rather dummy pipe, outputs what is in input (so what is configured in path). Handy for doing some test mostly, and giving basic functionalities to others that inherit from it
-
-- `sling:resourceType` is `slingPipes/base`
-
-#### SlingQuery Pipe
-executes $(getInput()).children(expression)
-
-- `sling:resourceType` is `slingPipes/slingQuery`
-- `expr` mandatory property, contains slingQuery expression through which getInput()'s children will be computed to getOutput()
-
-#### JsonPipe
-feeds bindings with remote json
-
-- `sling:resourceType` is `slingPipes/json`
-- `expr` mandatory property contains url that will be called, the json be sent to the output bindings, getOutput = getInput.
-An empty url or a failing url will block the pipe at that given place.
-
-#### MultiPropertyPipe
-iterates through values of input multi value property and write them to bindings
-
-- `sling:resourceType` is `slingPipes/multiProperty`
-- `path` should be the path of a mv property
-
-#### XPathPipe
-retrieve resources resulting of an xpath query
-
-- `sling:resourceType` is `slingPipes/xpath`
-- `expr` should be a valid xpath query
-
-### JsonPipe
-feeds bindings with remote json
-
-- `sling:resourceType` is `slingPipes/json`
-- `expr` mandatory property contains url that will be called, the json be sent to the output bindings, getOutput = getInput.
-An empty url or a failing url will block the pipe at that given place.
-
-#### AuthorizablePipe
-retrieve authorizable resource corresponding to the id passed in expression, or if not found (or void expression),
-from the input path, output the found authorizable's resource
-
-- `sling:resourceType` is `slingPipes/authorizable`
-- `expr` should be an authorizable id, or void (but then input should be an authorizable)
-- `autoCreateGroup` (boolean) if autorizable id is here, but the authorizable not present, then create group with given id (in that case, considered as a write pipe)
-- `addMembers` (stringified json array) if authorizable is a group, add instanciated members to it (in that case, considered as a write pipe)
-- `addToGroup` (expression) add found authorizable to instanciated group (in that case, considered as a write pipe)
-- `bindMembers` (boolean) if found authorizable is a group, bind the members (in that case, considered as a write pipe)
-
-#### ParentPipe
-outputs the parent resource of input resource
-- `sling:resourceType` is `slingPipes/parent`
-
-#### FilterPipe
-outputs the input resource if its matches its configuration
-
-- `sling:resourceType` is `slingPipes/filter`
-- `conf` node tree that will be tested against the current input of the pipe, each `/conf/sub@prop=value` will triggers a test
-on `./sub@prop` property of the current input, testing if its value matches `value` regex. If the special `slingPipesFilter_noChildren=${true}`
-property is there with the value instantiated as a true boolean, then filter will pass if corresponding node has no children.
-- `slingPipesFilter_not='true'` inverts the expected result of the filter
-
-### containers
-#### Container Pipe
-assemble a sequence of pipes
-
-- `sling:resourceType` is `slingPipes/container`
-- `conf` node contains child pipes' configurations, that will be configured in the order they are found (note you should use sling:OrderedFolder)
-
-#### ReferencePipe
-execute the pipe referenced in path property
-
-- `sling:resourceType` is `slingPipes/reference`
-- `path` path of the referenced pipe
-
-### writers
-
-#### Write Pipe
-writes given nodes & properties to current input
-
-- `sling:resourceType` is `slingPipes/write`
-- `conf` node tree that will be copied to the current input of the pipe, each property's
-names and value will be written to the input resource. Input resource will be outputed.
-Note that properties that will be evaluated (in an expression) as `null` for a given input resource will be
-removed from it. E.g. `./conf/some/node@prop=${null}` will add `./conf/some/node` structure
-if not in current input resource, but remove its `prop` property if any).
-
-### MovePipe
-JCR move of current input to target path (can be a node or a property)
-
-- `sling:resourceType` is `slingPipes/mv`
-- `expr` target path, note that parent path must exists
-
-#### RemovePipe
-removes the input resource, returns the parent, regardless of the resource being a node, or
-a property
-
-- `sling:resourceType` is `slingPipes/rm`
-- `conf` node tree that will be used to filter relative properties & subtrees to the current resource to remove.
-A subnode is considered to be removed if it has no property configured, nore any child.
-
-#### PathPipe
-get or create path given in expression
-
-- `sling:resourceType` is `slingPipes/path`
-- `nodeType` node type of the intermediate nodes to create
-- `autosave` should save at each creation (will make things slow, but sometimes you don't have choice)
-
-## Making configuration dynamic with pipe bindings
-in order to make things interesting, most of the configurations are javascript template strings, hence valid js expressions reusing bindings (from configuration, or other pipes).
-
-Following configurations are evaluated:
-
-- `path`
-- `expr`
-- name/value of each property of some pipes (write, remove)
-
-you can use name of previous pipes in the pipe container, or the special binding `path`, where `path.previousPipe`
-is the path of the current resource of previous pipe named `previousPipe`
-
-global bindings can be set at pipe execution, external scripts can be added to the execution as well (see pipe
-configurations)
-
-## How to execute a pipe
-for now it's possible to execute Pipes through GET (read) or POST (read/write) commands:
-
-### Request Path
-
-- either you'll need to create a slingPipes/plumber resource, say `etc/pipes` and then to execute
-
-curl -u admin:admin -F "path=/etc/pipes/mySamplePipe" http://localhost:8080/etc/pipes.json
-
-- either you execute the request directly on the pipe Path, e.g.
-
-curl -u admin:admin http://localhost:8080/etc/pipes/mySamplePipe.json
-
-which will return you the path of the pipes that have been through the output of the configured pipe.
-
-### Request Parameter `binding`
-
-you can add as `bindings` parameter a json object of global bindings you want to add for the execution of the pipe
-
-e.g.
-
-
-curl -u admin:admin -F "path=/etc/pipes/test" -F "bindings={testBinding:'foo'}" http://localhost:4502/etc/pipes.json
-
-
-will returns something like
-
-{"size":2, "items":["/one/output/resource", "another/one"]}
-
-### Request Parameter `writer`
-
-you can add as `writer` parameter a json object as a pattern to the result you want to have. The values of the json
-object are expressions and can reuse each pipe's subpipe binding.
-Note
-this works only if the pipe called is a container
-pipe.
-
-e.g.
-
-
-curl -u admin:admin http://localhost:4502/etc/pipes/users.json?writer={"user":"${user.fullName}"}
-
-will returns something similar to
-
-{"size":2, "items":[{'user':'John Smith','path':'/home/users/q/q123jk1UAZS'},{'user':'John Doe','path':'/home/users/q/q153jk1UAZS'}]}
-
-### Request Parameter `dryRun`
-if parameter dryRun is set to true, and the executed pipe is supposed to modify content, it will log (at best it can) the change it *would* have done, without doing anything
-
-### Request Parameter `size`
-default response is truncated to 10 items, if you need more (or less), you can modify that settings with the size parameter
-
-## sample configurations
-
-### slingQuery | write
-this pipe parse all profile nodes, and
-
-{
-"sling:resourceType":"slingPipes/container",
-"name":"Dummy User prefix Sample",
-"jcr:description":"prefix all full names of profile with "Mr" or "Ms" depending on gender",
-"conf":{
-"profile": {
-"sling:resourceType":"slingPipes/slingQuery",
-"expr":"nt:unstructured#profile",
-"path":"/home/users"
-},
-"writeFullName": {
-"sling:resourceType":"slingPipes/write",
-"conf": {
-"fullName":"${(profile.gender === 'female' ? 'Ms ' + profile.fullName : 'Mr ' + profile.fullName)}",
-"generatedBy":"slingPipes"
-}
-}
-}
-}
-
-### slingQuery | multiProperty | authorizable | write
-{
-"jcr:primaryType": "sling:Folder",
-"jcr:description": "move badge<->user relation ship from badge MV property to a user MV property"
-"name": "badges",
-"sling:resourceType": "slingPipes/container",
-"conf": {
-"jcr:primaryType": "sling:OrderedFolder",
-"badge": {
-"jcr:primaryType": "sling:Folder",
-"jcr:description": "outputs all badge component resources",
-"expr": "[sling:resourceType=myApp/components/badge]",
-"path": "/etc/badges/badges-admin/jcr:content",
-"sling:resourceType": "slingPipes/slingQuery"
-},
-"profile": {
-"jcr:primaryType": "sling:Folder",
-"jcr:description": "retrieve all user ids from a mv property",
-"path": "${path.badge}/profiles",
-"sling:resourceType": "slingPipes/multiProperty"
-},
-"user": {
-"jcr:primaryType": "sling:OrderedFolder",
-"jcr:description": "outputs user resource",
-"expr": "profile",
-"sling:resourceType": "slingPipes/authorizable"
-},
-"write": {
-"jcr:primaryType": "sling:OrderedFolder",
-"jcr:descritption": "patches the badge path to the badges property of the user profile"
-"path": "${path.user}/profile",
-"sling:resourceType": "slingPipes/write",
-"conf": {
-"jcr:primaryType": "nt:unstructured",
-"badges": "+[${path.badge}]"
-}
-}
-}
-}
-
-
-### xpath | json | write
-this use case is for completing repository profiles with external system's data (that has an json api)
-
-{
-"jcr:primaryType": "nt:unstructured",
-"jcr:description": "this pipe retrieves json info from an external system and writes them to the user profile, uses moment.js, it
-distributes modified resources using publish distribution agent",
-"sling:resourceType": "slingPipes/container",
-"distribution.agent": "publish",
-"additionalScripts": "/etc/source/moment.js",
-"conf": {
-"jcr:primaryType": "sling:OrderedFolder",
-"profile": {
-"jcr:primaryType": "sling:OrderedFolder",
-"expr": "/jcr:root/home/users//element(profile,nt:unstructured)[@uid]",
-"jcr:description": "query all user profile nodes",
-"sling:resourceType": "slingPipes/xpath"
-},
-"json": {
-"jcr:primaryType": "sling:OrderedFolder",
-"expr": "${(profile.uid ? 'https://my.external.system.corp.com/profiles/' + profile.uid.substr(0,2) + '/' + profile.uid + '.json' : '')",
-"jcr:description": "retrieves json information relative to the given profile, if the uid is not found, expr is empty: the pipe will do nothing",
-"sling:resourceType": "slingPipes/json"
-},
-"write": {
-"jcr:primaryType": "sling:OrderedFolder",
-"path": "path.profile",
-"jcr:description": "write json information to the profile node",
-"sling:resourceType": "slingPipes/write",
-"conf": {
-"jcr:primaryType": "sling:OrderedFolder",
-"background": "${json.opt('background')}",
-"about": "${json.opt('about')}",
-"birthday": "${(json.opt('birthday') ? moment(json.opt('birthday'), "MMMM DD").toDate() : '')}",
-"mobile": "${json.opt('mobile')}"
-}
-}
-}
-}
-
-### xpath | parent | rm
-
-{
-"jcr:primaryType": "nt:unstructured",
-"jcr:description": "this pipe removes user with bad property in their profile",
-"sling:resourceType": "slingPipes/container",
-"conf": {
-"jcr:primaryType": "sling:OrderedFolder",
-"profile": {
-"jcr:primaryType": "sling:OrderedFolder",
-"expr": "/jcr:root/home/users//element(profile,nt:unstructured)[@bad]",
-"jcr:description": "query all user profile nodes with bad properties",
-"sling:resourceType": "slingPipes/xpath"
-},
-"parent": {
-"jcr:primaryType": "sling:OrderedFolder",
-"jcr:description": "get the parent node (user node)",
-"sling:resourceType": "slingPipes/parent"
-},
-"rm": {
-"jcr:primaryType": "sling:OrderedFolder",
-"jcr:description": "remove it",
-"sling:resourceType": "slingPipes/rm",
-}
-}
-}
-
-some other samples are in https://github.com/npeltier/sling-pipes/tree/master/src/test/
-
-# Compatibility
-For running this tool on a sling instance you need:
-
-- java 8 (Nashorn is used for expression)
-- slingQuery (3.0.0) (used in SlingQueryPipe)
-- jackrabbit api (2.7.5+) (used in AuthorizablePipe)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/sling-query.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/sling-query.md b/content/documentation/bundles/sling-query.md
deleted file mode 100644
index ee2fd7f..0000000
--- a/content/documentation/bundles/sling-query.md
+++ /dev/null
@@ -1,68 +0,0 @@
-title=Sling Query		
-type=page
-status=published
-~~~~~~
-
-SlingQuery is a Sling resource tree traversal tool inspired by the [jQuery](http://api.jquery.com/category/traversing/tree-traversal/) JavaScript API.
-
-## Introduction
-
-The recommended way to find resources in the Sling repository is using tree-traversal methods, like `listChildren()` and `getParent()` rather than JCR queries. The latter are great for listing resources with given properties, but we can't leverage the repository tree structure with such queries. On the other hand, using tree-traversal method is quite verbose. Consider following code that takes an resource and returns its first ancestor, being `cq:Page`, with given `jcr:content/cq:template` attribute:
-
-Resource resource = ...;
-while ((resource = resource.getParent()) != null) {
-if (!resource.isResourceType("cq:Page")) {
-continue;
-}
-Resource template = resource.getChild("jcr:content/cq:template");
-if (template != null && "my/template".equals(template.adaptTo(String.class))) {
-break;
-}
-}
-if (resource != null) {
-// we've found appropriate ancestor
-}
-
-SlingQuery is a tool that helps creating such queries in a more concise way. Above code could be written as:
-
-import static org.apache.sling.query.SlingQuery.$;
-// ...
-$(resource).closest("cq:Page[jcr:content/cq:template=my/template]")
-
-Dollar sign is a static method that takes the resource array and creates SlingQuery object. The `closest()` method returns the first ancestor matching the selector string passed as the argument.
-
-SlingQuery is inspired by the jQuery framework. jQuery is the source of method names, selector string syntax and the dollar sign method used as a collection constructor.
-
-## Features
-
-* useful [operations](https://github.com/Cognifide/Sling-Query/wiki/Method-list) to traverse the resource tree,
-* flexible [filtering syntax](https://github.com/Cognifide/Sling-Query/wiki/Selector-syntax),
-* lazy evaluation of the query result,
-* `SlingQuery` object is immutable (thread-safe),
-* fluent, friendly, jQuery-like API.
-
-## Installation
-
-Add following Maven dependency to your `pom.xml`:
-
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.query</artifactId>
-<version>3.0.0</version>
-</dependency>
-
-## Documentation
-
-* [CIRCUIT 2014 presentation](http://cognifide.github.io/Sling-Query/circuit2014/)
-* [Basic ideas](https://github.com/Cognifide/Sling-Query/wiki/Basic-ideas)
-* [Method list](https://github.com/Cognifide/Sling-Query/wiki/Method-list)
-* [Selector syntax](https://github.com/Cognifide/Sling-Query/wiki/Selector-syntax)
-* [Operator list](https://github.com/Cognifide/Sling-Query/wiki/Operator-list)
-* [Modifier list](https://github.com/Cognifide/Sling-Query/wiki/Modifier-list)
-* [Hierarchy operator list](https://github.com/Cognifide/Sling-Query/wiki/Hierarchy-operator-list)
-* [Examples](https://github.com/Cognifide/Sling-Query/wiki/Examples)
-
-## External resources
-
-* See the [Apache Sling website](http://sling.apache.org/) for the Sling reference documentation. Apache Sling, Apache and Sling are trademarks of the [Apache Software Foundation](http://apache.org).
-* Method names, selector syntax and some parts of documentation are inspired by the [jQuery](http://jquery.com/) library.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/sling-settings-org-apache-sling-settings.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/sling-settings-org-apache-sling-settings.md b/content/documentation/bundles/sling-settings-org-apache-sling-settings.md
deleted file mode 100644
index 7d99a92..0000000
--- a/content/documentation/bundles/sling-settings-org-apache-sling-settings.md
+++ /dev/null
@@ -1,81 +0,0 @@
-title=Sling Settings and Run Modes (org.apache.sling.settings)		
-type=page
-status=published
-~~~~~~
-
-# Overview
-
-The Sling Settings Bundle exposes the `SlingSettingsService` which allows access to the following information pertinent to a Sling instance:
-
-| Method | Bundle Context Property | Description |
-|--|--|--|
-| `String getSlingId()` | --- | A unique identifier of the running Sling instance. This value is created when Sling is first started and may be used to identify the instance, for example if multiple Sling instances are running on top of a Jackrabbit Repository Cluster |
-| `String getSlingHomePath()` | `sling.home` | The absolute filesystem path to the directory where Sling stores all its content |
-| `URL getSlingHome()` | `sling.home.url` | The Sling Home path as an `java.net.URL` instance |
-| `Set<String> getRunModes()` | `sling.run.modes` | The active Run Modes of the running Sling instance |
-
-The new Sling Settings Bundle replaces the former [Run Modes (org.apache.sling.runmode)]({{ refs.run-modes-org-apache-sling-runmode.path }}) Bundle and the `SlingSettingsService` previously provided by the Sling Engine bundle, as it also implements the run modes logic.
-
-## Selecting the active run modes
-The run modes are selected based on the `sling.run.modes` property (the "selection property"), specified in the Sling settings file or as a command-line parameter (which takes precedence), out of the valid run modes defined by the properties described below. The value is a String which contains a list of comma-separated run modes. If a run mode is given here which is not contained in any group of valid run modes (given in `sling.run.mode.install.options` or `sling.run.mode.options`) it is always active, on the other hand run modes which are contained in any of the predefined groups may be modified/removed (see below for the details).
-
-Using `-Dsling.run.modes=foo,bar` on the JVM command-line, for example, activates the *foo* and *bar* run modes if that combination is valid.
-
-The absolute truth about run modes definition and selection is found in the [RunModeImplTest](https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/settings/src/test/java/org/apache/sling/settings/impl/RunModeImplTest.java) which should be self-explaining.
-
-## Defining valid run modes
-Since [SLING-2662](https://issues.apache.org/jira/browse/SLING-2662) the valid run modes are defined by the `sling.run.mode.options` and `sling.run.mode.install.options` configuration properties, usually defined in the `sling.properties` file or in the provisioning model of a Sling Launchpad instance.
-
-The `sling.run.mode.install.options` property is only used on the first startup on the Sling instance and the run modes that it defines cannot be changed later.
-
-The `sling.run.mode.options` property on the other hand is used at each startup, so the run modes that it defines can be changed between executions of a given Sling instance.
-
-The value of the both these properties is a string which looks like:
-
-red,green,blue|one|moon,mars
-
-where *comma-separated run modes form a group*. The individual groups are separated by a pipe character (`|`, which is not an OR operation, it's just as separator). A group defines a number of run modes which are **mutually exclusive**. It means once a group is defined, exactly one run mode will be active from that group.
-
-The example from above consists out of 3 different groups
-
-1. `red,green,blue`
-2. `one`
-3. `moon,mars`
-
-The rules for determining the active run modes from the selected run mode (`sling.run.modes`) and the run mode options (`sling.run.mode.install.options` and `sling.run.mode.options`) are as follows :
-
-1. If none of the run modes in the options are selected, the first one from each group in the options is activated by default.
-1. If one is selected from a group in the options, this is active.
-1. If several are selected from one group in the options, the first one from the list of valid run modes is used.
-1. If the selected run mode is not mentioned in any of the option groups it is active
-
-Examples
-
-sling.run.mode.options=a,b|c,d,e
-
-User defined run modes (e.g. via property `sling.run.modes`) | Effectively active run modes
---- | ---
-(none) | `a,c`
-`a` | `a,c`
-`b` | `b,c`
-`a,b` | `a,c`
-`a,d` | `a,d`
-`a,e,f` | `a,e`
-
-Remember to look at the `RunModeImplTest` mentioned above for details, and feel free to enhance it with useful examples.
-
-### Getting the Run Modes of the Sling instance
-
-The `SlingSettings` service provides the Run Modes of the running Sling instance as in this example:
-
-:::java
-SlingSettings settings = ...get from BundleContext...
-Set<String> currentRunModes = settings.getRunModes();
-
-Set<String> expectedRunModes = new HashSet<String>(){{ add("foo");add("wii"); }};
-if(expectedRunModes.removeAll(currentRunModes)) {
-// at least one of (foo,wii) run modes
-// is active
-}
-
-Getting run modes in this way is usually not needed, it's better to define bundles or configurations that are only valid in specific run modes, rather than making decisions in code based on run modes.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/subsystem-installer-factory.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/subsystem-installer-factory.md b/content/documentation/bundles/subsystem-installer-factory.md
deleted file mode 100644
index 5b5e3f4..0000000
--- a/content/documentation/bundles/subsystem-installer-factory.md
+++ /dev/null
@@ -1,15 +0,0 @@
-title=Subsystems Installer Factory		
-type=page
-status=published
-~~~~~~
-
-The subsystems installer factory provides support for subsystems to the [OSGI installer](/documentation/bundles/osgi-installer.html). The provisioning of artifacts is handled by installer providers like the file installer or the JCR installer.
-
-
-## Subsystems
-
-The subsystem file must end with ".esa" and the manifest must at least contain the subsystem symbolic name "Subsystem-SymbolicName" header.
-
-# Project Info
-
-* Subsystems installer factory ([org.apache.sling.installer.factory.subsystems](http://svn.apache.org/repos/asf/sling/trunk/installer/factories/subsystems))

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/tracer-config.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/tracer-config.png b/content/documentation/bundles/tracer-config.png
deleted file mode 100644
index 897259f..0000000
Binary files a/content/documentation/bundles/tracer-config.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/validation.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/validation.md b/content/documentation/bundles/validation.md
deleted file mode 100644
index af1c7f4..0000000
--- a/content/documentation/bundles/validation.md
+++ /dev/null
@@ -1,144 +0,0 @@
-title=Sling Validation		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-Many Sling projects want to be able to validate both Resources and request parameters. Through the Sling Validation framework this is possible with the help of validation model resources which define validation rules for a certain resourceType.
-
-# Prerequisites
-To use this validation framework the following bundles need to be deployed
-
-1. `org.apache.sling.validation.api`
-1. `org.apache.sling.validation.core`
-
-In addition a [service resolver mapping](/documentation/the-sling-engine/service-authentication.html) needs to be configured for the service name `org.apache.sling.validation.core`. The bound service user needs to have at least read access to all resources within the resource resolver's search paths (usually `/apps` and `/libs`).
-
-# Basic Usage
-To validate a resource one first needs to get a `ValidationModel` and then validate the resource with that model. Both functionalities are provided by the `ValidationService` OSGi service:
-
-::java
-try {
-ValidationModel validationModel = validationService.getValidationModel(resource, true);
-if (validationModel != null) {
-ValidationResult result = validationService.validate(resource, validationModel);
-if (!result.isValid()) {
-// give out validation messages from result.get
-}
-}
-} catch (IllegalStateException e) {
-// give out error message that the validation model is invalid!
-}
-
-Apart from that it is also possible to validate resources including all child resources having their own validation model (i.e. a merged view of the validation models is applied). The appropriate validation model is being looked up by getting the resource type for each node. Since by default the JCR will return the primary type in case there is no `sling:resourceType` property found on the node, either the 2nd parameter `enforceValidation` should be set to `false` or some resource types must be explicitly ignored by the given filter in the 3rd parameter `filter` to also properly support validation models which have children resources on their own.
-
-::java
-try {
-final Predicate ignoreResourceType1Predicate = new Predicate<Resource>() {
-@Override
-public boolean test(final Resource resource) {
-return !"resourcetype1".equals(resource.getResourceType());
-}
-};
-ValidationResult result = validationService.validateResourceRecursively(resource, false, ignoreResourceType1Predicate, false);
-if (!result.isValid()) {
-// give out validation messages from result.getFailureMessages()
-}
-
-} catch (IllegalStateException e) {
-// give out error message that an invalid validation model for at least one sub resource was found
-} catch (IllegalArgumentException e) {
-// one of the resource types is absolute or there was no validation model found for at least one sub resource
-}
-
-All methods to retrieve a validation model support a boolean parameter `considerResourceSuperTypeModels`. If this is set to true, the validation model is not only being looked up for exactly the given resource type but also for all its resource super types. The returned model is then a merged model of all found validation model along the resource type hierarchy.
-
-## ValidationResult
-The `ValidationResult` indicates whether a given `Resource` or `ValueMap` is valid or invalid according to a given validation model. In the latter case it aggregates one or more `ValidationFailure`s. Each `ValidationFailure` is encapsulating an error message and a severity. The severity may be set on the following locations (where locations on top may overwrite severity from locations below):
-
-1. validation model (per use case of a `Validator`)
-1. severity defined on the `Validator`
-1. the default severity (may be set through the OSGi configuration for PID `org.apache.sling.validation.impl.ValidationServiceImpl`, is 0 by default)
-
-You have to use a `ResourceBundle` ([Internationalization Support](/documentation/bundles/internationalization-support-i18n.html)) to resolve the message for a specific locale. By default Sling Validation comes only with English failure messages.
-
-# Validation Model Resources
-The `ValidationModel` is constructed from resources with the resourceType **sling/validation/model**. Those resources are considered validation model resources if they are located below the Sling ResourceResolver search paths (*/apps* and */libs*).
-
-The resources should have the following format:
-
-Property/Resource Name      | Property or Resource |  Type   |  Description   |  Mandatory   |  Example
--------------------- | ------- | -------------- | -------------| --------- | ------
-`sling:resourceType` | Property | `String` | Always `sling/validation/model`, otherwise model will never be picked up by Sling Validation. | yes | `sling/validation/model`
-`validatingResourceType` | Property | `String` | The resource type of the resource for which this validation model should be applied. Must always be relative to the resource resolver's search path (i.e. not start with a "/"). | yes | `my/own/resourcetype`
-`applicablePaths` | Property |  `String[]` | Path prefixes which restrict the validation model to resources which are below one of the given prefixes. No wildcards are supported. If not given, there is no path restriction. If there are multiple validation models registered for the same resource type the one with the longest matching applicablePath is chosen. | no | `/content/mysite`
-`properties<propertyName>` | Resource | - | This resource ensures that the property with the name `<propertyName>` is there. The resource name has no longer a meaning if the property `nameRegex` is set on this node. | no | `false`
-`properties<propertyName>optional` | Property | `Boolean` | If `true` it is not an error if there is no property with the given `<propertyName>` or none matching the  `nameRegex`. If not set or `false` the property must be there.  | no | `false`
-`properties<propertyName>propertyMultiple` | Property | `Boolean` | If `true` only multivalue properties are allowed with the name `<propertyName>` or matching the `nameRegex`. If not set or `false`, multi- and single-value properties are accepted.  | no | `false`
-`properties<propertyName>nameRegex` | Property | `String` | If set the `<propertyName>` has no longer a meaning. Rather all properties which match the given regular expression are considered. At least one match is required, otherwise the validated resource/valuemap is considered invalid. | no | `property[0-8]`
-`properties<propertyName>validators<validatorId>` | Resource | - | The `<validatorId>` must be the id of a validator. The id is given by the OSGi service property `validator.id` set in the validator. Each validators node might have arbitrarily many child resources (one per validator).  | no | `false`
-`properties<propertyName>validators<validatorId>validatorArguments` | Property | `String[]` | The parametrization for the validator with the id  `<validatorId>`. Each value must have the pattern `key=value`. The parametrization differs per validator. | no | `regex=^[a-z]*$`
-`properties<propertyName>validators<validatorId>severity` | Property | `Integer` | The severity which should be set on all emitted validation failures by this validator. | no | `0`
-`children<resourceName>` | Resource | - | This resource ensures that the resource with the name `<resourceName>` is there. The resource name has no longer a meaning if the property `nameRegex` is set on this node. | no | `child1`
-`children<resourceName>nameRegex` | Property | `String` | If set the `<resourceName>` has no longer a meaning. Rather all resources whose name match the given regular expression are considered. At least one match is required, otherwise the validated resource/valuemap is considered invalid. | no | `child[1-9]`
-`children<resourceName>optional` | Property | `Boolean` | If `true` it is not an error if there is no resource with the given `<resourceName>` or none matching the  `nameRegex`. If not set or `false` the resource must be there. | no | `false`
-`children<resourceName>properties` | Resource | - | The properties can be configured on the child level in the same way as on the root level. | no | -
-
-## Validation Model Inheritance
-Sling Validation optionally supports the inheritance of Sling Validation Models. This means not only the model for exactly the given resource type is considered, but also the models for all resource super types.
-To overwrite some property or child from one of the super type models, just define a property/child on the same level and with the same name in a model for a resource type which is more specific. That way the property/child on the super validation model is no longer effective.
-
-## Precedence of Validation Models
-In case there are multiple validation models registered for the same resource type the one gets chosen which has the longest matching applicablePath. In case even that does not resolve to a single model the one in the first resource resolver's search path is chosen (models below `/apps` before the ones below `/libs`). If even that does not resolve to a single validation model any of the equally ranked models might be picked.
-
-# Usage in [Sling Models](/documentation/bundles/models.html)
-## Since Sling Models 1.2.0
-See [Sling Models validation](/documentation/bundles/models.html#validation)
-
-## Before Sling Models 1.2.0
-One needs to call the validate method within the PostConstruct method of the according Sling Model
-
-::java
-@SlingObject
-protected Resource resource;
-
-@OSGiService
-protected ValidationService validation;
-
-@PostConstruct
-public void validate() {
-try {
-ValidationModel validationModel = validation.getValidationModel(resource);
-if (validationModel == null) {
-LOG.warn("No validation defined for resource '{}' with type '{}'", resource.getPath(), resource.getResourceType());
-
-} else {
-ValidationResult result = validation.validate(resource, validationModel);
-if (!result.isValid()) {
-// give out the validation result
-}
-}
-} catch (IllegalStateException e) {
-LOG.warn("Invalid validation model for resource '{}' with type '{}'", resource.getPath(), resource.getResourceType());
-}
-}
-
-# Validators
-
-Validator ID | Description | Parameters | Since
----------------|-------------|------------|-------
-[`org.apache.sling.validation.core.RegexValidator`](https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/validators/RegexValidator.java) | Validates that a property value matches a given regular expression | `regex`, mandatory parameter giving a regular expression according to the pattern described in [java.util.regex.Pattern](http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html). Only if the property value matches this expression it is considered valid. | 1.0.0
-
-# Writing Validators
-To write a validator one needs to implement the [`org.apache.sling.validation.spi.Validator`](https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/spi/Validator.java) interface in an OSGi service (look at [`org.apache.sling.validation.core.RegexValidator`](https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/validators/RegexValidator.java) for an example).
-That interface defines the method `validate`. That is called for each property which is bound to the validator through the validation model.
-Each validator needs to specify one type parameter which defines upon which classes the validator can act (usually `String`). Array types are also supported here. Collection types are not supported. If a property value cannot be converted to the requested type from the validator (through `ValueMap.get(name, type)`), validation will fail.
-
-In addition the OSGi service must expose a String property named `validation.id`. The value of this property should always start with the providing bundle's symbolic name. Only through this value the validator can be referenced from validation models. If multiple validators have the same `validation.id` value the one with the highest service ranking gets always chosen.
-
-A validator may also expose a service property named `validation.severity` with an Integer value. This defines the default severity of the Validator (which may be overwritten in the validation model).
-
-# References
-1. [Apache Sling Generic Validation Framework, adaptTo 2014](http://www.slideshare.net/raducotescu/apache-sling-generic-validation-framework)
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/web-console-extensions.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/web-console-extensions.md b/content/documentation/bundles/web-console-extensions.md
deleted file mode 100644
index fef0adb..0000000
--- a/content/documentation/bundles/web-console-extensions.md
+++ /dev/null
@@ -1,41 +0,0 @@
-title=Web Console Extensions		
-type=page
-status=published
-~~~~~~
-
-The Apache Sling project provides two extensions to the [Apache Felix Web Console](http://felix.apache.org/site/apache-felix-web-console.html) (in addition to a number of plugins, of course):
-
-[TOC]
-
-## Branding (org.apache.sling.extensions.webconsolebranding)
-
-The Apache Sling Web Console Branding provided by Apache Sling is currently just for the product logo displayed in the upper right corner of the Web Console and some titles and strings.
-
-This bundle will attach as a fragment bundle to the Apache Felix Web Console bundle. To enable it after installation into a running system, you might have to refresh the package imports of the Apache Felix Web Console bundle. If you install using the Apache Felix Web Console bundle installation functionality, this will be taken care of by the Web Console.
-
-
-## Security Provider (org.apache.sling.extensions.webconsolesecurityprovider)
-
-The Apache Sling Web Console Security Provider implements the Apache Felix Web Console `WebConsoleSecurityProvider` and `WebConsoleSecurityProvider2` interface for authenticating Web Console users against the JCR repository. Each username and password presented is used to login to the JCR repository and to check the respective session.
-
-1. Ensure the username and password can be used to login to the default workspace. If not, access is denied
-1. If the username presented is one of the user names configured with the `users` configuration property, access is granted.
-1. Otherwise if the user is a (direct or indirect) member of one of the groups configured with the `groups` configuration property, access is granted.
-
-Access is denied if the username and password cannot be used to login to the default workspace or if the user is neither one of the configured allowed users nor in any of the configured groups.
-
-### Configuration
-
-The Security Provider is configured with the configuration PID `org.apache.sling.extensions.webconsolesecurityprovider.internal.SlingWebConsoleSecurityProvider` supporting the following properties:
-
-| Property | Type | Default Value | Description
-|--|--|--|
-| `users` | `String`, `String[]` or `Vector<String>` | admin | The list of users granted access to the Web Console |
-| `groups`| `String`, `String[]` or `Vector<String>` | --- | The list of groups whose (direct or indirect) members are granted access to the Web Console |
-
-Note, that while the default value explicitly grants the *admin* user to access the Web Console it is suggested that system administrators define a special group and assign users with Web Console access to this group.
-
-### Authentication Handling
-
-As long as the web console security provider bundle is not activate and has not installed one of the above mentioned services, the default authentication of the web console is used. Once the bundle is active and a JCR repository service is available, the repository is used for authentication as explained above. But still the login form of the web console is used which is usually basic authentication.
-Once startup is finished and a Sling authentication service is available as well, the security provider replaces the JCR repository based auth provider with a Sling based auth provider. Both authenticate against the JCR repository, however the Sling based one using Sling to render the login form. Therefore, this provider is not registered until startup is finished

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/xml-support.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/xml-support.md b/content/documentation/bundles/xml-support.md
deleted file mode 100644
index 5513fec..0000000
--- a/content/documentation/bundles/xml-support.md
+++ /dev/null
@@ -1,11 +0,0 @@
-title=XML support		
-type=page
-status=published
-~~~~~~
-Excerpt: XML mechanisms supported by Sling
-
-Out of the box, Sling provides no special bundles for XML. However, Sling supports multiple mechanisms and libraries. The ones we have validated with integration tests are:
-
-* XPath ( see the [XPathServlet](http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/XpathServlet.java) )
-* SAX ( see the [SaxServlet](http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/SaxServlet.java) )
-* DOM ( see the [DomServlet](http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/DomServlet.java) )

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/configuration.md
----------------------------------------------------------------------
diff --git a/content/documentation/configuration.md b/content/documentation/configuration.md
deleted file mode 100644
index 147277f..0000000
--- a/content/documentation/configuration.md
+++ /dev/null
@@ -1,183 +0,0 @@
-title=Configuration		
-type=page
-status=published
-~~~~~~
-
-
-## Introduction
-
-Configuration in Sling is aligned with respective support by the OSGi specification:
-
-* Framework and Java system properties are available through the `BundleContext.getProperty(String)` method. These properties are provided in Sling through the Sling launcher.
-* Bundle Header values are available through the `Bundle.getHeaders()` and `Bundle.getHeaders(String)` methods. These header values are set by the bundle developer in the `META-INF/MANIFEST.MF` file. In fact, all main manifest attributes are available through these methods.
-* Components managed by the Service Component Runtime and declared in component descriptor files listed in the `Service-Component` manifest header access configuration properties through the `ComponentContext.getProperties()` method. These properties have three sources:
-1. Configuration specified specifically for factory components
-2. Properties retrieved from the Configuration Admin Service
-3. Properties set in the component descriptor
-* Configuration properties provided to `ManagedService` and `ManagedServiceFactory` instances by the Configuration Admin Service.
-
-For the discussion to follow we differentiate between initial configuration provided by Framework and system properties and managed configuration provided by the Configuration Admin Service.
-
-Components managed by the Service Component Runtime are generally configured (as listed above) through the descriptor properties and configuration set by Configuration Admin Service configuration. The descriptor property values may be seen as configuration default values set by the component developer, which may be overwritten by user configuration through the Configuration Admin Service. Components may but are not required to make use of Framework properties by accessing the `BundleContext` through the `ComponentContext` given to the `activate(ComponentContext)` method of the component.
-
-
-
-## Initial Configuration
-
-The lifecycle of the OSGi framework implemented by an instance of the `org.apache.felix.framework.Felix` class is managed by the Sling launcher class `org.apache.sling.launcher.Sling`. This class is used by the standalone main class (`org.apache.sling.launcher.main.Main`) and the Sling Servlet (`org.apache.sling.launcher.servlet.SlingServlet`) to control the lifecycle.
-
-The Sling launcher is responsible to provide the Framework properties to the OSGi framework. The properties are prepared as a `java.util.Map<String, String>` instance as follows (later steps may overwrite properties defined in earlier steps) :
-
-1. Load core properties from the embedded `sling.properties` file.
-1. Resolve any property file inclusions. This is mainly used to resolve the correct JRE package definitions for the JRE version used.
-1. Overwrite with any properties provided by the main class or the Sling Servlet.
-1. Make sure the `sling.home` property is set defining a sensible default value if missing
-1. Load the contents of the `${sling.home}/sling.properties` file
-1. Overwrite properties with Java system properties. This step only considers system properties of the same names as properties already existing. That is, the system properties are not just copied into the properties here. Additionally this step my be omitted if the `sling.ignoreSystemProperties` property is set to `true`.
-1. Resolve any property file inclusions. This may be used to provide more configurability depending on the integration.
-1. Handle OSGi boot delegation support (see below).
-1. Resolve property references of the form `${propName`}
-1. For each property value starting with `ontext:/` do the following, assuming the value to be an URL with scheme `context:`:
-* Copy the application resource to `${sling.home`} preserving the URL path unless such a file already exists.
-* Replace the property value with the path to the newly created file. The path has the form `${sling.home}/relpath`.
-1. Store the properties as `${sling.home}/sling.properties` to be re-used on next startup
-1. Setup Bundle auto installation for the Felix Framework
-
-Using file system copies of the initial configuration and referred files, it is easy to modify this configuration without the need to unpack and repackage the web application archive.
-
-The only property really required is actually the `sling.home` property, which defines the file system location where runtime files will be placed. The default if this property is missing will be *sling* in the current working directory as defined the `user.dir` system property.
-
-
-
-### Standalone Application
-
-When launching Sling as a standalone application the `sling-app.jar` file is used. This is an executable JAR File. The `sling.properties` file as well as the `sling_install.properties` and JRE specific properties files are located at the root of the JAR file hierarchy.
-
-The standalone application currently sets properties for the third step of the configuration setup to ensure the HTTP Servlet integration is using the Apache Felix *http.jetty* bundle. Additionally system properties may be set using the `-D` command line switch of the Java binary.
-
-In addition the following command line arguments are accepted:
-
-| Argument | Sling property | Description |
-|--|--|--|
-| `-l loglevel` | `org.apache.sling.osgi.log.level` | The initial loglevel (0..4, FATAL, ERROR, WARN, INFO, DEBUG) |
-| `-f logfile` | `org.apache.sling.osgi.log.file` | The log file, "-" for stdout |
-| `-c slinghome` | `sling.home` | the sling context directory |
-| `-a address` | -- | the interfact to bind to (use 0.0.0.0 for any) (not supported yet) |
-| `-p port` | `org.osgi.service.http.port` | the port to listen to (default 8080) |
-| `-h` | -- | Prints a simple usage message and exits. |
-
-The standalone application exits with status code 0 (zero) if Sling terminates normally, that is if the OSGi framework is stopped or if just the usage note has been displayed. If any error occurrs during command line parsing, the cause is printed to the error output and the application exists with status code 1 (one). If the OSGi framework fails to start, the cause is printed to the error output and the application exists with status code 2.
-
-
-### Web Application
-
-When launching Sling as a web application using the `sling-servlet.war` or any derived Web Application archive file, the `sling.properties` file is located in the `WEB-INF` folder along with the `sling_install.properties` and JRE specific properties files.
-
-The Sling Servlet uses the Servlet Context and Servlet `init-param` configurations to prepare the properties for the third step of the configuration setup.
-
-If the OSGi framework fails to startup for any reason a `javax.servlet.UnavailableException`.
-
-
-
-### Property File Inclusions
-
-Twice in the configuration setup (second and seventh step) any property file inclusions will be handled. Property files may be included by defining one or more properties containing a comma-separated list of properties files to include. Property file inclusion looks at the `sling.include` property and any other property whose prefix is `sling.include.`. When such properties exist, the files listed in those properties are included.
-
-The order of handling the property file inclusion properties is defined as natural sort order of the actual property names. So the properties of the files listed in the `sling.include.first` property will be loaded before the files listed in the `sling.include.second` but after the files listed in the `sling.include.a` property.
-
-Any file which does not exist is silently ignored.
-
-The names of the files are resolved as follows:
-
-1. If a resource exists at the same location as the initial `sling.properties` file packaged with the application, that resource is used
-1. If the name is a relative file name, it is looked for in the `sling.home` directory
-1. If the name is an absolute file name, it is used as is
-
-*Example*
-
-The packaged `sling.properties` file contains the following properties file inclusion setting:
-
-
-sling.include.jre = jre-${java.specification.version}.properties
-
-
-This is used to include the JRE package list to be made visible inside the OSGi framework.
-
-
-
-### OSGi Boot Delegation Support
-
-Some packages may have to be shared between bundles in an OSGi framework and the rest of Java VM in which the framework has been launched. This is especially true for OSGi framework instances launched in embedding such as Servlet Containers. In the case of a Sling Application accessing a JCR Repository launched in a different Web Application, this mainly concerns an API packages as well as the JNDI Initial Factory package(s).
-
-To cope with this sharing issue, the OSGi core specification defines two properties, which may list packages to be used from the environment:
-
-
-* *`org.osgi.framework.system.packages`* - This property lists package names which are added to the list of exported packages of the system bundle of the OSGi framework. These packages are used in the resolution process just as any package listed in an `Export-Package` bundle manifest header.
-* *`org.osgi.framework.bootdelegation`* -  This property lists packages, which are always used from the environment. As such, these packages will never be looked up in package wirings as are packages imported by listing them in the `Import-Package` bundle manifest header.
-
-
-Sometimes, especially in the Servlet Container case, it is important to use the shared classes from the container and not resolve using standard OSGi resolution. In such cases, the packages of these shared classes must be listed in the `org.osgi.framework.bootdelegation` property. Sling provides a mechanism to extend the default setting of the `org.osgi.framework.bootdelegation` property by adding properties prefixed with `sling.bootdelegation.`. The value of each of these prefixed properties is conditionally appended to the `org.osgi.framework.bootdelegation` property. *Conditionally* means, that the property name may contain the fully qualified name of a class, which is checked to see whether to add the property value or not.
-
-*Examples*
-
-| Configuration | Description |
-|--|--|
-| `sling.bootdelegation.simple = com.some.package` | This setting unconditionally adds the `com.some.package` package to the `org.osgi.framework.bootdelegation` property |
-| `sling.bootdelegation.class.com.some.other.Main = com.some.other` | This setting checks whether the `com.some.other.Main` class is known. If so, the `com.some.other` package is added to the `org.osgi.framework.bootdelegation` property. Otherwise the `com.some.other` package is not added - and therefore must be exported by a bundle if required for use inside the framework. |
-
-
-*Note* Even though packages listed in the `org.osgi.framework.bootdelegation` property will always be loaded from the environment, any bundles using these packages must still import them (through `Import-Package` or `DynamicImport-Package`) and the bundles must resolve for being usable.
-
-
-
-### OSGi System Packages Support
-
-As listed in the above section on OSGi Boot Delegation Support, the `org.osgi.framework.system.packages` property may be used to extend the export list of the system bundle. Similar to the support for extending the boot delegation packages list, Sling supports extending the system packages list. The mechanism to extend the default setting of the `org.osgi.framework.system.packages` property by adding properties prefixed with `sling.system.packages.`. The value of each of these prefixed properties is conditionally appended to the `org.osgi.framework.system.packages` property. *Conditionally* means, that the property name may contain the fully qualified name of a class, which is checked to see whether to add the property value or not.
-
-*Examples*
-
-| Configuration | Description |
-|--|--|
-| `sling.system.packages.simple = com.some.package` | This setting unconditionally adds the `com.some.package` package to the `org.osgi.framework.system.packages` property |
-| `sling.system.packages.class.com.some.other.Main = com.some.other` | This setting checks whether the `com.some.other.Main` class is known. If so, the `com.some.other` package is added to the `org.osgi.framework.system.packages` property. Otherwise the `com.some.other` package is not added - and therefore must be exported by a bundle if required for use inside the framework. |
-
-
-*Note* Packages listed in the `org.osgi.framework.system.packages` required by any bundles must be imported by those bundles by listing them in the `Import-Package` or `DynamicImport-Package` manifest header.
-
-
-
-## Recommendations for property names
-
-The following system property names are reserved:
-
-* Names starting with `org.osgi.` are reserved for OSGi defined Framework properties
-* Names starting with `org.apache.felix.` are reserved for the Felix Framework
-* Names starting with `sling.` and `org.apache.sling.` are reserved for Sling
-
-To prevent property name collisions, I suggest the following convention:
-
-* Use fully qualified property names for initial configuration through Framework properties
-* Use unqualified property names for configuration through the Configuration Admin Service
-
-
-## Well Known Properties
-
-The following table is a collection of well known property names from different parts of Project Sling.
-
-| Property | Description |
-|--|--|
-| `sling.home` | Defines the file system location where Project Sling will write copies of the initial configuration. This property should also be used to define other local file system locations such as the directory to use for the Apache Felix Bundle Cache (`${sling.home}/felix` by default). If this property is not set it defaults to `${user.dir}/sling`. |
-| `sling.home.url` | Contains the Sling directory set in the `sling.home` property as a valid URL. This property may be used in situations where the Sling directory is required as an URL. This property is automatically set by the Sling application and may not be modified by configuration files. |
-| `sling.ignoreSystemProperties` | Whether to overwrite any configuration properties with Java system properties or not. By default this property is set to `true` by the Sling Servlet but not set by the Sling main class. The reason to set this by default in the Sling Servlet is to not induce values from the environment, which may not be appropriate in the Web Application case. |
-| `obr.repository.url` | A comma-separated list of OSGi Bundle Repository URLs. See *sling.properties* on the page [the Sling Launchpad](/documentation/the-sling-engine/the-sling-launchpad.html#slingproperties). |
-| `org.apache.sling.commons.log.*` | Properties providing initial configuration to the Sling Log Service. See *sling.properties* on the page [the Sling Launchpad](/documentation/the-sling-engine/the-sling-launchpad.html#slingproperties). |
-
-
-
-## Configuration Admin Service
-
-Configuration of the system entities, such as services and components, by the system administrator is supported the Configuration Admin Service. The Configuration Admin Service acts as the center for the management of the configuration data, to which GUI-based tools will connect to retrieve and update configuration data. The Configuration Admin Service is responsible for persisting the configuration data and for providing configuration consumers with the configuration data. Specifically services registered with the `ManagedService` or `ManagedServiceFactory` interfaces are updated with the configuration upon updated. The Service Component Runtime on the other hand recognizes updated configuration and provides it to the managed components as defined in the OSGi Declarative Services Specification.
-
-By default the Configuration Admin Service is installed when Sling is started for the first time. This service is used by the Service Component Runtime launching the OSGi components declared in the bundles with configuration values. The Sling Management Console provides a simple GUI to manage these configuration elements on the 'Configuration' page.
-
-For more information on the Configuration Admin Service refer to the OSGi Configuration Admin Service Specification in the OSGi Service Platform Service Compendium book.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development.md
----------------------------------------------------------------------
diff --git a/content/documentation/development.md b/content/documentation/development.md
deleted file mode 100644
index 97f16be..0000000
--- a/content/documentation/development.md
+++ /dev/null
@@ -1,57 +0,0 @@
-title=Development		
-type=page
-status=published
-~~~~~~
-
-Welcome to the wonderful world of extending Sling. Refer to these pages to find out how we envision the extension of Sling and how to do it.
-
-
-## Using Sling as your Development Framework
-
-Look here for more information on developper support when your are using Sling to build your own applications.
-
-* [Getting and Building Sling](/documentation/development/getting-and-building-sling.html)
-* [Defining and Launching a Sling based Application](/documentation/development/slingstart.html)
-* [Embedding Sling](/documentation/development/embedding-sling.html)
-* [Logging](/documentation/development/logging.html)
-* [Client Request Logging](/documentation/development/client-request-logging.html)
-* [Monitoring Requests](/documentation/development/monitoring-requests.html)
-* [Repository Based Development](/documentation/development/repository-based-development.html)
-* [Sling IDE Tooling](/documentation/development/ide-tooling.html)
-* [Leveraging JSR-305 null annotations](/documentation/development/jsr-305.html)
-
-
-## Testing Sling-based Applications
-* [Testing Sling-based Applications](/documentation/tutorials-how-tos/testing-sling-based-applications.html)
-* [Junit Server-Side Tests Support](/documentation/bundles/org-apache-sling-junit-bundles.html)
-* [Resource Resolver Mock](/documentation/development/resourceresolver-mock.html)
-* [Sling Mocks](/documentation/development/sling-mock.html)
-* [OSGi Mocks](/documentation/development/osgi-mock.html)
-* [JCR Mocks](/documentation/development/jcr-mock.html)
-* [Hamcrest integration](/documentation/development/hamcrest.html)
-
-
-## Maven Stuff
-
-Sling is using Apache Maven 3 as its build system. Over time we have created a number of Maven 3 plugins and gathered a whole range of knowledge about using Maven.
-
-* [Maven Sling Plugin](http://sling.apache.org/components/maven-sling-plugin/)
-* [HTL Maven Plugin](http://sling.apache.org/components/htl-maven-plugin/)
-* [SlingStart Maven Plugin](http://sling.apache.org/components/slingstart-maven-plugin/)
-* [Maven Launchpad Plugin](/documentation/development/maven-launchpad-plugin.html)
-* [JspC Maven Plugin](http://sling.apache.org/components/jspc-maven-plugin/)
-* [Maven Archetypes](/documentation/development/maven-archetypes.html)
-* [Maven Tips & Tricks](/documentation/development/maventipsandtricks.html)
-
-
-## Sling Development
-
-Last but not least, here is some more information on how we ourselves are working on Sling
-
-* [Dependency Management](/documentation/development/dependency-management.html)
-* [Version Policy](/documentation/development/version-policy.html)
-* [Issue Tracker](/documentation/development/issue-tracker.html)
-* [Release Management](/documentation/development/release-management.html)
-* [Maven Usage](/documentation/development/maven-usage.html)
-* To run our integration tests suite see the [launchpad/testing module README](http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/README.txt) and the [launchpad/integration-tests README](http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/README.txt) for how to run individual integration tests. We use the [sling-IT](https://issues.apache.org/jira/issues/?jql=labels%20%3D%20sling-IT) label in JIRA for known issues with our integration tests.
-* A Sonar analysis is available on the [analysis.apache.org](https://analysis.apache.org/dashboard/index/org.apache.sling:sling-builder) server.


[51/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/context-aware-configuration/context-aware-configuration.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/context-aware-configuration/context-aware-configuration.html b/documentation/bundles/context-aware-configuration/context-aware-configuration.html
new file mode 100644
index 0000000..2836168
--- /dev/null
+++ b/documentation/bundles/context-aware-configuration/context-aware-configuration.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling Context-Aware Configuration</h1></header><p>[TOC]</p>
+<h1>About</h1>
+<p>These bundles provide a service API that can be used to get context-aware configurations. Context-aware configurations are configurations that are related to a content resource or a resource tree, e.g. a web site or a tenant site.</p>
+<p>Here is an example how your content structure may look like:</p>
+<p><img src="context-aware-config-example.png" alt="Configuration example" /></p>
+<p>The application needs different configuration for different sites, regions and tenants = different contexts. Some parameters may be shared, so inheritance for nested contexts and from global fallback values is supported as well. You have full control which content subtrees are the contexts in your application, the structure above is only an example.</p>
+<p>Using the Context-Aware Configuration Java API you can get the matching configuration for each content resource without caring where it is stored or how the inheritance works.</p>
+<h1>Java API</h1>
+<p>To get and use configurations, the Java API must be used. Any using code must not make any assumptions on how the context-aware configurations are searched or stored!</p>
+<p>The Java API consists of two parts:</p>
+<ul>
+  <li>Context-Aware Resources: 'Low-level' API for accessing configuration resources (which can be anything, e.g. workflow definitions)</li>
+  <li>Context-Aware Configurations: 'High-level' API for accessing configuration data (key/value pairs)</li>
+</ul>
+<p>In most cases you will use only the 'High-level' API for getting context-aware configurations.</p>
+<h2>Context-Aware Resources</h2>
+<p>The base concept are context-aware resources: for a given content resource, a named configuration resource can be get. The service for getting the configuration resources is called the ConfigurationResourceResolver. This service has two methods:</p>
+<ul>
+  <li>getting a named configuration resource</li>
+  <li>getting all child resources of a named configuration resource.</li>
+</ul>
+<p>For example to get a configuration resource for a content resource at /content/mysite/page1, you would get a reference to the OSGi service <code>org.apache.sling.caconfig.resource.ConfigurationResourceResolver</code> and write:</p>
+<h1>!java</h1>
+<p>Resource contentResource = resourceResolver.getResource("/content/mysite/page1");</p>
+<p>Resource configResource = configurationResourceResolver.getResource(contentResource, "my-bucket", "my-config");</p>
+<p>Or if you have several configuration resources of the same type and you need all of them:</p>
+<h1>!java</h1>
+<p>Collection<Resource> configResources = configurationResourceResolver.getResourceCollection(contentResource, "my-bucket", "my-config");</p>
+<p>The ConfigurationResourceResolver has a concept of "buckets" (2nd parameter in the method signatures) that allows to separate different types of configuration resources into different resource hierarchies, so you have a separate "namespaces" for the named configuration resources. For example one bucket for workflow definitions, one bucket for template definitions, one for key/value-pairs.</p>
+<p>The configuration name (3rd parameter) defines which configuration you are interested in. The name can be a relative path as well (e.g. <code>&quot;sub1/my-config&quot;</code>).</p>
+<h2>Context-Aware Configurations</h2>
+<p>While context-aware resources give you pure resources and your application code can decide what to do with it, the most common use case is some configuration. A configuration is usually described by an annotation class (like Declarative Services does for component configurations). These are typed configuration objects and the context-aware configuration support automatically converts resources into the wanted configuration type.</p>
+<p>Context-aware configurations are built on top of context-aware resources. The same concept is used: configurations are named and the service to get them is the ConfigurationResolver. You can get a reference to the OSGi service <code>org.apache.sling.caconfig.ConfigurationResolver</code> - it has a single method to get a ConfigurationBuilder. Alternatively you can directly adapt your content resource directly to the ConfigurationBuilder interface and get the configuration:</p>
+<h1>!java</h1>
+<p>Resource contentResource = resourceResolver.getResource("/content/mysite/page1");</p>
+<p>MyConfig config = contentResource.adaptTo(ConfigurationBuilder.class).as(MyConfig.class);</p>
+<p>Or if you want to get a list of configurations:</p>
+<h1>!java</h1>
+<p>Collection<MyConfig> configs = contentResource.adaptTo(ConfigurationBuilder.class).asCollection(MyConfig.class);</p>
+<p>The ConfigurationBuilder also supports getting the configurations as ValueMap or by adapting the configuration resources e.g. to a Sling Model. In this case you have to specify a configuration name which is otherwise derived automatically from the annotation class.</p>
+<p>Internally the ConfigurationResolver used the ConfigurationResourceResolver to get the configuration resources. It uses always the bucket name <code>sling:configs</code>.</p>
+<h1>Contexts and configuration references</h1>
+<p>When you use the <a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html">Default Implementation</a> contexts in the content resource hierarchy is defined by setting <code>sling:configRef</code> properties. Each resource that has a <code>sling:configRef</code> property set defines the root resource of a context, the whole subtree is the context. Within the subtree further nested contexts can be defined. The property contains a resource path pointing to a resource below <code>/conf</code>. This is the configuration reference.</p>
+<p>Example:</p>
+<p><img src="context-and-config-reference.png" alt="Context and config reference" /></p>
+<p>If you define nested contexts or use a deeper hierarchy of resourced in <code>/conf</code> the inheritance rules are applied. Additionally it is possible to define default values as fallback if no configuration resource exists yet in <code>/conf</code>. See <a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html">Default Implementation</a> for details.</p>
+<h1>Describe configurations via annotation classes</h1>
+<p>You need an annotation class for each configuration you want to read via the ConfigurationBuilder. The annotation classes may be provided by the applications/libraries you use, or you can define your own annotation classes for your application.</p>
+<p>The annotation class may look like this:</p>
+<h1>!java</h1>
+<p>@Configuration(label="My Configuration", description="Describe me") public @interface MyConfig {</p>
+<p>@Property(label="Parameter #1", description="Describe me") String param1();</p>
+<p>@Property(label="Parameter with Default value", description="Describe me") String paramWithDefault() default "defValue";</p>
+<p>@Property(label="Integer parameter", description="Describe me") int intParam();</p>
+<p>}</p>
+<p>The <code>@Configuration</code> annotation is mandatory. All properties on the <code>@Configuration</code> annotation and the <code>@Property</code> annotations are optional - they provide additional metadata for tooling e.g. configuration editors.</p>
+<p>By default the annotation class name is used as configuration name, which is also the recommended option. If you want to use an arbitrary configuration name you can specify it via a <code>name</code> property on the <code>@Configuration</code> annotation.</p>
+<p>You may specify custom properties (via <code>property</code> string array) for the configuration class or each properties. They are not used by the Sling Context-Aware configuration implementation, but may be used by additional tooling to manage the configurations.</p>
+<p>If you provide your own configuration annotation classes in your bundle, you have to export them and list all class names in a bundle header named <code>Sling-ContextAware-Configuration-Classes</code> - example:</p>
+<p>Sling-ContextAware-Configuration-Classes: x.y.z.MyConfig, x.y.z.MyConfig2</p>
+<p>To automate this you can use the Context-Aware Configuration bnd plugin (see next chapter).</p>
+<h1>Accessing configuration from HTL/Sightly templates</h1>
+<p>Context-Aware configuration contains a Scripting Binding Values provider with automatically registeres a <code>caconfig</code> variable in your HTL/Sightly scripts to directly access context-aware configurations. It supports both singleton configurations and configuration lists. Please note that configuration lists are only supported when configuration metadata is present (e.g. via an annotation class).</p>
+<p>Example for accessing a property of a singleton configuration (with a config name <code>x.y.z.ConfigSample</code>):</p>
+<h1>!html</h1>
+<dl>
+<dt>stringParam:</dt>
+<dd>${caconfig['x.y.z.ConfigSample'].stringParam}</dd>
+</dl>
+<p>Example for accessing a property of a configuration list (with a config name <code>x.y.z.ConfigSampleList</code>):</p>
+<h1>!html</h1>
+<p>&lt;ul data-sly-list.item="${caconfig['x.y.z.ConfigSampleList']}"&gt; <li>stringParam: ${item.stringParam}</li> </ul></p>
+<p>If you want to access nested configurations you have to use a slash "/" as separator in the property name. Example:</p>
+<h1>!html</h1>
+<p>${caconfig['x.y.z.ConfigSample']['nestedConfig/stringParam']}</p>
+<h1>Context-Aware Configuration bnd plugin</h1>
+<p>A <a href="http://bnd.bndtools.org/">bnd</a> plugin is provided that scans the classpath of a bundle Maven project at build time and automatically generates a <code>Sling-ContextAware-Configuration-Classes</code> bundle header for all annotation classes annotated with <code>@Configuration</code>. It can be used by both <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html">maven-bundle-plugin</a> and <a href="https://github.com/bndtools/bnd/tree/master/maven">bnd-maven-plugin</a>, as both use the bnd library internally.</p>
+<p>Example configuration:</p>
+<h1>!xml</h1>
+<p><plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> <!-- Generate bundle header containing all configuration annotation classes --> &lt;_plugin&gt;org.apache.sling.caconfig.bndplugin.ConfigurationClassScannerPlugin&lt;/_plugin&gt; </instructions> </configuration> <dependencies> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.caconfig.bnd-plugin</artifactId> <version>1.0.2</version> </dependency> </dependencies> </plugin></p>
+<h1>Unit Tests with Context-Aware Configuration</h1>
+<p>When your code depends on Sling Context-Aware Configuration and you want to write Sling Mocks-based unit tests running against the Context-Aware configuration implementation you have to register the proper OSGi services to use them. To make this easier, a "Apache Sling Context-Aware Configuration Mock Plugin" is provided which does this job for you.</p>
+<p>Example for setting up the unit test context rule:</p>
+<h1>!java</h1>
+<p>import static org.apache.sling.testing.mock.caconfig.ContextPlugins.CACONFIG;</p>
+<p>public class MyTest {</p>
+<p>@Rule public SlingContext context = new SlingContextBuilder().plugin(CACONFIG).build();</p>
+<p>@Before public void setUp() { // register configuration annotation class MockContextAwareConfig.registerAnnotationClasses(context, SimpleConfig.class); } ...</p>
+<p>In you project define a test dependency (additionally the sling-mock dependency is required):</p>
+<h1>!xml</h1>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.caconfig-mock-plugin</artifactId> <scope>test</scope> </dependency></p>
+<p>Full example: <a href="https://github.com/apache/sling/blob/trunk/testing/mocks/caconfig-mock-plugin/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java">Apache Sling Context-Aware Configuration Mock Plugin Test</a></p>
+<h1>Customizing the configuration lookup</h1>
+<p>The Context-Aware Configuration implementation provides a set of Service Provider Interfaces (SPI) that allows you to overlay, enhance or replace the default implementation and adapt it to your needs.</p>
+<p>See <a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html">SPI</a> for details.</p>
+<p>You can also override specific context-aware configuration within an instance - see <a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html">Override</a> for details.</p>
+<h1>Web Console plugins</h1>
+<p>The Context-Aware Configuration implementation provides two extension to the Felix Web Console:</p>
+<ul>
+  <li>A plugin "Sling / Context-Aware Configuration" that allows to test configuration resolution and prints outs all metadata. This is helpful debugging the resolution and collection and property inheritance. For each resource and property value the the real source resource path is listed.</li>
+  <li>A inventory printer "Sling Context-Aware Configuration" which lists all SPI implementations that are deployed, and additionally prints out all configuration metadata and override strings</li>
+</ul>
+<p>To use the web console plugin you need to configure a "Service User" mapping for the bundle <code>org.apache.sling.caconfig.impl</code> to a system user which has read access to all context and configuration resources. By default this should be <code>/content</code>, <code>/conf</code>, <code>/apps/conf</code> and <code>/libs/conf</code>.</p>
+<h1>Management API</h1>
+<p>The Context-Aware Configuration Implementation Bundle provides a Management API which allows to read and write configuration data. It supports only Context-Aware configurations, not context-aware resources. It should not be used directly in applications, but is intended to provide an API for editor GUIs and other tools which allow to manage configurations.</p>
+<p>The main entry point is the OSGi service <code>org.apache.sling.caconfig.management.ConfigurationManager</code>. It allows to get, write or delete singleton configurations and configuration lists. Configuration data is returned using <code>ConfigurationData</code> and <code>ConfigurationCollectionData</code> objects which also provide access to additional metadata about the resolving process and inheritance/override status of each property. Internally the configuration manager uses the <a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html">SPI</a> implementation to resolve and write the configuration data.</p>
+<p>Whenever configuration data is read or written from the configuration resources a filtering of property names is applied to make sure "system properties" like <code>jcr:primaryType</code> or <code>jcr:created</code> are not returned as part of the configuration data. A list of regular expressions for this filtering can be configured via the "Apache Sling Context-Aware Configuration Management Settings" OSGi configuration. The configuration is accessible to custom persistence implementations via the <code>org.apache.sling.caconfig.management.ConfigurationManagementSettings</code> OSGi service. By default all properties in the <code>jcr:</code> namespace are filtered out.</p>
+<h1>References</h1>
+<ul>
+  <li><a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html">Context-Aware Configuration - Default Implementation</a></li>
+  <li><a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html">Context-Aware Configuration - SPI</a></li>
+  <li><a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html">Context-Aware Configuration - Override</a></li>
+  <li><a href="https://adapt.to/2016/en/schedule/sling-context-aware-configuration.html">Sling Context-Aware Configuration - Talk from adaptTo() 2016</a></li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/datasource-providers.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/datasource-providers.html b/documentation/bundles/datasource-providers.html
new file mode 100644
index 0000000..16256c9
--- /dev/null
+++ b/documentation/bundles/datasource-providers.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>DataSource Provider</h1></header><p>DataSource provider bundle supports creation of <code>DataSource</code> instance and registering them with the OSGi service registry. Application using the DataSource just obtains it from OSGi while an administrator can configure the DataSource via Felix WebConsole configuration UI.</p>
+<p>[TOC]</p>
+<h2>Pooled Connection DataSource Provider</h2>
+<p>This bundle enables creating and configuring JDBC DataSource in OSGi environment based on OSGi configuration. It uses <a href="http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html">Tomcat JDBC Pool</a> as the JDBC Connection Pool provider.</p>
+<ol>
+  <li>Supports configuring the DataSource based on OSGi config with rich metatype</li>
+  <li>Supports deploying of JDBC Driver as independent bundles and not as fragment</li>
+  <li>Exposes the DataSource stats as JMX MBean</li>
+  <li>Supports updating of DataSource connection pool properties at runtime without restart</li>
+</ol>
+<h3>Driver Loading</h3>
+<p>Loading of JDBC driver is tricky on OSGi env. Mostly one has to attach the Driver bundle as a fragment bundle to the code which creates the JDBC Connection.</p>
+<p>With JDBC 4 onwards the Driver class can be loaded via Java SE Service Provider mechanism (SPM) JDBC 4.0 drivers must include the file META-INF/services/java.sql.Driver. This file contains the name of the JDBC driver's implementation of java.sql.Driver. For example, to load the JDBC driver to connect to a Apache Derby database, the META-INF/services/java.sql.Driver file would contain the following entry:</p>
+<p>org.apache.derby.jdbc.EmbeddedDriver</p>
+<p>Sling DataSource Provider bundles maintains a <code>DriverRegistry</code> which contains mapping of Driver bundle to Driver class supported by it. With this feature there is no need to wrap the Driver bundle as fragment to DataSource provider bundle</p>
+<h3>Configuration</h3>
+<ol>
+  <li>Install the current bundle</li>
+  <li>Install the JDBC Driver bundle</li>
+  <li>Configure the DataSource from OSGi config for PID <code>org.apache.sling.datasource.DataSourceFactory</code></li>
+</ol>
+<p>If Felix WebConsole is used then you can configure it via Configuration UI at http://localhost:8080/system/console/configMgr/org.apache.sling.datasource.DataSourceFactory</p>
+<p><img src="/documentation/development/sling-datasource-config.png" alt="Web Console Config" /></p>
+<p>Using the config ui above one can directly configure most of the properties as explained in <a href="http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html">Tomcat Docs</a></p>
+<h3>Convert Driver jars to Bundle</h3>
+<p>Most of the JDBC driver jars have the required OSGi headers and can be directly deployed to OSGi container as bundles. However some of the drivers e.g. Postgres are not having such headers and hence need to be converted to OSGi bundles. For them we can use the <a href="http://bnd.bndtools.org/chapters/390-wrapping.html">Bnd Wrap</a> command.</p>
+<p>For example to convert the Postgres driver jar follow the steps below</p>
+<p>$ wget https://github.com/bndtools/bnd/releases/download/2.3.0.REL/biz.aQute.bnd-2.3.0.jar -O bnd.jar $ wget http://jdbc.postgresql.org/download/postgresql-9.3-1101.jdbc41.jar $ cat &gt; bnd.bnd &lt;&lt;EOT Bundle-Version: 9.3.1101 Bundle-SymbolicName: org.postgresql Export-Package: org.postgresql Include-Resource: @postgresql-9.3-1101.jdbc41.jar EOT $ java -jar bnd.jar bnd.bnd</p>
+<p>In the steps above we</p>
+<ol>
+  <li>Download the bnd jar and postgres driver jar</li>
+  <li>Create a bnd file with required instructions.</li>
+  <li>Execute the bnd command</li>
+  <li>Resulting bundle is present in <code>org.postgresql-9.3.1101.jar</code></li>
+</ol>
+<h2>JNDI DataSource</h2>
+<p>While running in Application Server the DataSource instance might be managed by app server and registered with JNDI. To enable lookup of DataSource instance from JNDI you can configure <code>JNDIDataSourceFactory</code></p>
+<ol>
+  <li>Configure the DataSource from OSGi config for PID <code>org.apache.sling.datasource.JNDIDataSourceFactory</code></li>
+  <li>Provide the JNDI name to lookup from and other details</li>
+</ol>
+<p>If Felix WebConsole is used then you can configure it via Configuration UI at http://localhost:8080/system/console/configMgr/org.apache.sling.datasource.JNDIDataSourceFactory</p>
+<p>Once configured <code>JNDIDataSourceFactory</code> would lookup the DataSource instance and register it with OSGi ServiceRegistry</p>
+<h2>Usage</h2>
+<p>Once the required configuration is done the <code>DataSource</code> would be registered as part of the OSGi Service Registry The service is registered with service property <code>datasource.name</code> whose value is the name of datasource provided in OSGi config.</p>
+<p>Following snippet demonstrates accessing the DataSource named <code>foo</code> via DS annotation</p>
+<p>::java import javax.sql.DataSource; import org.apache.felix.scr.annotations.Reference;</p>
+<p>public class DSExample {</p>
+<p>@Reference(target = "(&amp;(objectclass=javax.sql.DataSource)(datasource.name=foo))") private DataSource dataSource; }</p>
+<h2>Installation</h2>
+<p>Download the bundle from <a href="http://sling.apache.org/downloads.cgi">here</a> or use following Maven dependency</p>
+<p>::xml <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.datasource</artifactId> <version>1.0.0</version> </dependency></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/discovery-api-and-impl.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/discovery-api-and-impl.html b/documentation/bundles/discovery-api-and-impl.html
new file mode 100644
index 0000000..2f4d082
--- /dev/null
+++ b/documentation/bundles/discovery-api-and-impl.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Discovery API and its implementations</h1></header><p>In many situations a particular Sling-based deployment consists of several Sling instances: typically a number of instances would form a <code>cluster</code> that share a common content repository - in other situations, or additionally, instances might be loosely coupled, each with their own repository.</p>
+<p>The <code>discovery-api</code> bundle introduces an abstraction for such scenarios called <code>topology</code>. It provides access to the current topology, allows to be informed of any changes in the topology (such as joining or leaving instances) and contains a simple property exchange mechanism, e.g. to allow building communication services on top of it.</p>
+<p>[TOC]</p>
+<h2>Discovery Entities</h2>
+<p>The Discovery API defines the following entities</p>
+<h3>Instance, InstanceDescription</h3>
+<p>A Sling instance running in one VM is represented in the discovery API by an <code>InstanceDescription</code>:</p>
+<ul>
+  <li>it represents one Sling instance</li>
+  <li>it has thus a unique Sling ID</li>
+  <li>it has a flag that marks if it is leader in a cluster (more details below)</li>
+  <li>plus it has properties (which can be provided via <code>PropertyProviders</code>)</li>
+</ul>
+<h3>Cluster, ClusterView</h3>
+<p>Multiple instances that are connected to the same underlying repository are commonly referred to as a 'Cluster'. The reasoning behind this terminology being that they access the same data and can thus deliver or modify the same data.</p>
+<p>In the discovery API this cluster concept is represented via a <code>ClusterView</code> object. A 'view' because it is a momentary snapshot of the cluster and only contains instances that are currently alive. It's features are:</p>
+<ul>
+  <li>each cluster has a stable leader. Stable meaning it won't change unless that leader crashes.</li>
+  <li>it has an ordered, stable list of instances that are part of it, thus currently alive. the relative order of instances in this list is stable, meaning that it only stays or moves up one position if an instance listed 'above' crashes - a newly started instance will always be added at the end of this list.</li>
+  <li>plus it has a unique id that is persistent across restarts</li>
+</ul>
+<h3>Topology, TopologyView</h3>
+<p>The topology - or more precisely the <code>TopologyView</code> - represents a snapshot (<code>view</code>) of a number of loosely coupled Sling instances (<code>InstanceDescription</code>) and clusters (<code>ClusterView</code>) of a particular deployment. A cluster can consist of one or more instances. Each instance is always part of a cluster (even if the cluster consists of only one instance). The features are:</p>
+<ul>
+  <li>only one: it has a list of clusters</li>
+</ul>
+<p>There are no further assumption made on the structure of a topology.</p>
+<p>If different clusters in the topology should represent different 'types of clusters' (eg a publish or an author cluster), then that is not explicitly handled by the discovery API. Instead, applications can define properties on each instance that model such cluster types or other aspects.</p>
+<h2>Cluster Leader and Instance Ordering</h2>
+<p>As mentioned the discovery API introduces support for a <code>cluster leader</code>: within each cluster, the API guarantees that one and only one instance is leader at any time. That leader is guaranteed to be <code>stable</code>, ie as long as it stays alive and is visible by other instances of the same cluster, it will stay leader. As soon as it leaves the cluster (or the corresponding implementation bundle is deactivated), another instance in that cluster is elected leader. The leader can be used to deal with work that must be guaranteed to only execute on one (but any) instance in the cluster.</p>
+<p>Additionally each cluster (<code>ClusterView</code>) orders its instances in a stable list: each newly joined instances is added at the end of the list and retains its order in the list as long as it doesn't leave the cluster. This can be used to distribute "singleton" work amongst the cluster to more than just the leader.</p>
+<h2>Topology Changes</h2>
+<p>The <code>DiscoveryService</code> provides access to the currently valid <code>TopologyView</code>. Additionally, applications can register a <code>TopologyEventListener</code> and thus be informed about any changes in the topology. Whenever the discovery service detects that an instance is no longer responding or has newly joined, or a new leader has been elected, it sends a <code>TOPOLOGY_CHANGING</code> event, starts settling the change within the topology (i.e. making sure everybody else in the topology agrees with the change) and finally sends a <code>TOPOLOGY_CHANGED</code> event with the new topology.</p>
+<p>Additionally, when "only" properties have changed, a <code>PROPERTIES_CHANGED</code> event is sent.</p>
+<p>Note that the detection of topology (or properties) changes will incur a delay which is implementation dependent.</p>
+<p>The following is an example of a listener. Note that the binding is done automatically by OSGi, as soon as a <code>TopologyEventListener</code> is registered.</p>
+<p>import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Service; import org.apache.sling.discovery.TopologyEvent; import org.apache.sling.discovery.TopologyEventListener;</p>
+<p>@Component @Service(value = { TopologyEventListener.class }) public class MyTopologyEventListener implements TopologyEventListener {</p>
+<p>public void handleTopologyEvent(final TopologyEvent event) { // your code here }</p>
+<p>}</p>
+<h2>Properties</h2>
+<p>The discovery API not only lists all clusters and instances that are part of a topology but also provides a simple mechanism for announcing properties of each instance to the topology, via the <code>PropertyProvider</code> service interface.</p>
+<p>Typical use cases for this are announcements of endpoint URLs or ports such that applications can communicate to other instances in the topology.</p>
+<p>Note that the properties mechanism is not meant be used as a messaging tool: both from an API point of view and the implementation of it are not optimized for frequent changes and its use for messaging is discouraged. It is only meant to be used to announce configuration information for accessing proper messaging services.</p>
+<p>The following is an example of a <code>PropertyProvider</code> that provides <code>sample.value1</code> and <code>sample.value2</code> properties:</p>
+<p>import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Service; import org.apache.sling.discovery.PropertyProvider;</p>
+<p>@Component @Service(value = { PropertyProvider.class }) @Property(name = PropertyProvider.PROPERTY_PROPERTIES, value = {"sample.value1", "sample.value2" }) public class SamplePropertyProvider implements PropertyProvider {</p>
+<p>public String getProperty(final String name) { if ("sample.value1".equals(name)) { return "foo"; } else if ("sample.value2".equals(name)) { return "bar"; } else { return null; } } }</p>
+<h2>Deployment and configuration</h2>
+<p>The discovery API makes no assumptions as to how the instances and clusters discover each other. This is entirely up to the implementations. Some might choose automatic discovery within a LAN using IP multicast, others might choose explicit configuration via a central service etc.</p>
+<h2>discovery.impl: Resource-based, OOTB Implementation</h2>
+<p>The <code>discovery.impl</code> bundle is a resource-based, out of the box implementation of the <code>discovery.api</code> using standard Sling.</p>
+<p>The discovery within a cluster is done by writing heartbeat information into the (common) repository (there's no other form of communication within a cluster). The establishment of a clusterview is done by analyzing these heartbeats, initiating a voting within the cluster (such that each instance can agree that it sees the same number of instances) and by concluding the voting by promoting it as the new "established" view.</p>
+<p>The discovery of instances and clusters outside the local cluster requires explicit configuration of what is termed 'topology connectors', which are HTTP PUTs (see below).</p>
+<h3>Location in Repository</h3>
+<p>Administrative note: All the information about the topology is stored at the following location in the repository:</p>
+<p>/var/discovery/impl</p>
+<h4>/var/discovery/impl/clusterInstances/&lt;slingId&gt;</h4>
+<p>Each instance has its own node under <code>clusterInstances/</code> where it stores:</p>
+<ul>
+  <li><code>lastHeartbeat</code>: property, which marks the instance as alive for another <code>heartbeatTimeout</code></li>
+  <li><code>leaderElectionId</code>: an id which is used to determine the leader: the instance with the lowest such leaderElectionId is the leader. Therefore this id is crucial to implement stable leader and ordering. The id contains a prefix (to account for a crx2 edge case where jobs might want to be executed on slave rather than on master), followed by the bundle activate time (to honour stability) and ultimately by the slingId (to have a discriminator should there be multiple instances started at the same time)</li>
+  <li><code>runtimeId</code>: a plain, random UUID that is created fresh upon bundle activation. It is used to detect situations where multiple instances have the same slingId and thus write into the same <code>/var/discovery/impl/clusterInstances/&lt;slingId&gt;</code> node.</li>
+  <li><code>slingHomePath</code> and <code>endpoints</code>: these are used for logging purpose only</li>
+</ul>
+<p>Additionally, there are two sub-nodes:</p>
+<ul>
+  <li><code>announcements</code>: this contains announcements of topology connector peers (also see below). An announcement is a json-encoded representation of the sub-tree that the connector peer is aware of and is thereby announcing to this instance. Announcements are sent in both directions of a topology connector. Discovery.impl takes care of filtering out duplicate instances should the structure of topology connectors, and thus these announcements overlap (which is legal)</li>
+  <li><code>properties</code>: contains all properties as specified by registered <code>PropertyProvider</code></li>
+</ul>
+<h4>/var/discovery/impl/establishedView</h4>
+<p>This contains the currently valid, agreed/voted upon cluster view that lists all alive instances:</p>
+<ul>
+  <li>the name of the node directly under <code>establishedView</code> is a unique id of the current incarnation of the cluster view - thus changes whenever an instance joins or leaves or there is a new voting for another reason. ** <code>clusterId</code> : name of the persistent identifier of this cluster. As this is propagated from cluster view to cluster view it stays unchanged forever. ** <code>leaderElectionId</code>: the leaderElectionId that was winning, ie that was lowest ** <code>leaderId</code>: the slingId of the instance that is leader of this cluster view</li>
+  <li><code>members</code>: just an intermediate node containing all alive instances as child nodes</li>
+  <li>child node of <code>members</code>: each child represents a particular alive node (with the name being the slingId) and contains the following properties: ** <code>leaderElectionId</code>: the id that will be used to determine the leader - this value is copied from the corresponding <code>/var/discovery/impl/clusterInstances/&lt;slingId&gt;</code> ** <code>initiator</code>: this marks the instance that originally created this voting ** <code>vote</code>: represents this instance's vote, which is true for a voting that got promoted to established view</li>
+</ul>
+<h4>/var/discovery/impl/ongoingVotings</h4>
+<p>This area is used for voting. Each instance can initiate a voting when it realizes that the live instances - denominated by those instances that have a not-yet-timed-out heartbeat property - does not match with the <code>establishedView</code>.</p>
+<p>Once a voting gets a yes vote by all instances it is promoted (moved) under <code>establishedView</code> by the initiating instance. Each establishedView was once a voting, thus the structure is the same as described above.</p>
+<h4>/var/discovery/impl/previousView</h4>
+<p>The instance that promotes its winning voting to <code>establishedView</code> first moves what was there before under <code>previousView</code>. This is purely for debugging and not used anywhere, it just represents a persistet history of previous views of length 1.</p>
+<h3>Heartbeats, Voting and Intra-Cluster Discovery</h3>
+<p><code>discovery.impl</code> uses the fact that all instance of a cluster are connected to the same repository as the basis for discovering those instances. It does so by using a heartbeat and voting mechanism:</p>
+<ul>
+  <li>each instance periodically stores a 'heartbeat' into the repository in a well-known location. This is done by setting a corresponding <code>lastHeartbeat</code> property to the current timestamp</li>
+  <li>a 'heartbeat' that has not yet timed out is considered a signal that the instance is alive</li>
+  <li>as soon as a 'heartbeat' is timed out, the assumption is that the corresponding instance is dead/shutdown</li>
+</ul>
+<p>To avoid having each instance make it's own, perhaps differing conclusions as to which instance/heartbeat is dead or not, there is an explicit, unanimous voting mechanism that agrees upon a list of alive instances. This list of alive instances is called cluster view.</p>
+<ul>
+  <li>as soon as any instance notices a change in the list of active instances, it is free to calculate a new such list and start a voting in the cluster - each voting carries a unique votingId</li>
+  <li>since any instance can do this, you can have concurrent creation of new votings</li>
+  <li>each instance has one 'yes' vote - and if there are multiple concurrent votings the lowest one wins</li>
+  <li>when a voting receives a 'yes' from all instances that it enlists it is considered as 'winning' and is promoted to be the new, valid view from now on.</li>
+  <li>a promoted view is stored in <code>/var/discovery/impl/establishedView</code> and any change therein is passed on in a TopologyEvent to all registered listeners.</li>
+</ul>
+<h3>pseudo-network partitioning aka split-brain</h3>
+<p><code>discovery.impl</code> requires the, eventually consistent, underlying repository to propagate changes within reasonable time: in less than the configured heartbeat timeout. If heartbeats for some reason are not becoming visible by peers in the cluster within that time, <code>discovery.impl</code> will consider that peer instance as dead. At which point it will first send a TOPOLOGY_CHANGING event to all listeners to make them aware that something is changing in the topology, and then start a new voting. Once the voting concludes a TOPOLOGY_CHANGED event will follow.</p>
+<p>Given the voting is happening through the repository as well, one could imagine a situation where the repository delays can cause a topology to be "pseudo partitioned" into two or more parts, each one agreeing on a set of instances in that sub-cluster (one requirement for such a scenario being that the delays must be asymmetric, ie changes from a subset of instances propagate slow, while the remaining changes propagate fast - ie. two different sets of delays in the cluster). Such a situation would only last as long as the repository delays are large (larger than the heartbeat timeouts). Exact cases where the repository experiences large delays depend of course on the repository configuration and deployment details, known cases include for example long running queries, large set of changes, large set of commits and long-running session.saves.</p>
+<p>The following is an illustration of the impact of large cluster delays:</p>
+<p>![discovery.impl split brain](discovery-impl-split-brain.png =360x)</p>
+<p>In discovery.impl 1.2.2 several improvements have been done to avoid pseudo-network partitioning including the following: (see SLING-3432 for more in-depth details)</p>
+<ul>
+  <li>SLING-5195 : monitor the HeartbeatHandler for long-running session.saves.</li>
+  <li>SLING-5280 : reduce synchronization for HeartbeatHandler to avoid other threads blocking it</li>
+  <li>SLING-5030 : avoid "isolated mode" and replace it with larger TOPOLOGY_CHANGING phase</li>
+</ul>
+<p>All of the above greatly reduce the likelyhood of pseudo-network partitioning with <code>discovery.impl</code>, however, as also described in SLING-4640, there is still a small time-window in which it cannot be ruled out entirely. The successor of discovery.impl, the <code>discovery.oak</code> bundle, addresses these concerns to avoid pseudo-network partitioning alltogether.</p>
+<p>In the context of <code>discovery.impl</code> it is therefore paramount that the underlying repository is monitored and optimized such that the delays are well under control and do not exceed the configured heartbeat timeout.</p>
+<h3>Topology Connectors for Cross-Cluster Discovery</h3>
+<p>From a discovery API's point of view a cluster consists of all instances that are connected to the same repository. The above described built-in mechanism of storing a lastHeartbeat property into the (shared) repository, of voting on changes and creating an explicit establishedView results in automatic discovery within a cluster. There is therefore no further configuration needed for discovering instances in the same cluster.</p>
+<p>However, for discovering multiple clusters such an automatic discovery is not possible and the clusters need to be explicitly configured using (cross-cluster) topology connectors:</p>
+<p>A topology connector is a periodically issued HTTP PUT that announces the part of the topology known to the sending instance to the receiving instance and vica-verca the receiving instance announces its part of the topology to the sender in the response of the very same HTTP PUT. This way whatever other clusters are connected to sender or receiver will be made known to each other. Such a 'topology announcement' will be valid either until the same sender sends the announcement again (which it does periodically) - or until it times out (configurable). A topology connector is by definition always between clusters, never within the same cluster. Topology connectors can be structured in an arbitrary way (chain, star, tree, etc) with the only important point to note here that since changes in the topology propagate through these topology connectors they have a certain delay (namely the configured heartbeatInterval per hop).</p>
+<p>Topology connectors are configured at <a href="http://localhost:8888/system/console/configMgr/org.apache.sling.discovery.impl.Config">/system/console/configMgr/org.apache.sling.discovery.impl.Config</a>. They use the same interval and timeout as the repository heartbeats (heartbeatInterval and heartbeatTimeout).</p>
+<h3>WebConsole</h3>
+<p>A Felix WebConsole plugin at <a href="http://localhost:8888/system/console/topology">/system/console/topology</a> provides a (read-only) overview of the topology.</p>
+<h3>Configuration</h3>
+<p>The following properties can be configured (at <a href="http://localhost:8888/system/console/configMgr/org.apache.sling.discovery.impl.Config">/system/console/configMgr/org.apache.sling.discovery.impl.Config</a>):</p>
+<ul>
+  <li>
+  <p>heartbeatInterval: the time in seconds between two heartbeats (both cluster-internal and for HTTP-connectors). Default value is 15 seconds.</p></li>
+  <li>
+  <p>heartbeatTimeout: the time in seconds after which an instance is considered dead if no heartbeat was sent since. Default value is 20 seconds.</p></li>
+  <li>
+  <p>topologyConnectorUrls: a list of connector URLs to which this instance should connect to. The list can contain multiple instances of the same cluster (for fallback configurations). If the list is empty, no connector will be created. The default relative URL is /libs/sling/topology/connector. Note that this URL is accessible without authentication - to avoid having to configure administrative username/passwords in all instances. Instead, a whitelist approach is used (see next item).</p></li>
+  <li>
+  <p>topologyConnectorWhitelist: As mentioned above, the path /libs/sling/topology/connector does not require authentication. To assure that only trusted instances can connect to the topology, its hostname or IP address must be in a whitelist. By default this whitelist only contains localhost and 127.0.0.1.</p></li>
+  <li>
+  <p>minEventDelay: To reduce the number of events sent during changes, there is a delay (in seconds) before the event is sent. If additional changes happen during this delay, the change will be combined in one event.</p></li>
+  <li>
+  <p>leaderElectionRepositoryDescriptor: this is an advanced parameter. It denotes a repository descriptor that is evaluated and taken into account for leader Election: the corresponding value of the descriptor is sorted by first.</p></li>
+  <li>
+  <p>hmacEnabled: If this is true, and sharedKey is set to a value on all Sling instances within the same topology, then messages are validates using a signature of the content of the message based on the shared key. The signature and the digest of the content appear as http headers. When hmac message validation is enabled, whitelisting is disabled. This use useful where the topology messages are transported through multiple reverse proxy layers or the topology is dynamic. The Hmac algorithm in use is HmacSHA256. The JVM is expected to have a provider implementing this algorithm (The Standard JDKs do).</p></li>
+  <li>
+  <p>sharedKey: If hmacEnabled is true, this must be set to a secret value, shared amongst all Sling instances that are members of the same topology.</p></li>
+  <li>
+  <p>enableEncryption: If hmacEnabled is true, and sharedKey is set, setting this to true will encrypt the body of the message using 128 Bit AES encryption. The encryption key is derived from the sharedKey using a 9 byte random salt, giving 2^^72 potential salt values.</p></li>
+  <li>
+  <p>hmacSharedKeyTTL: The key used for the signatures is derived from the shared key. Each derived key has a lifetime before the next key is generated. This parameter sets the lifetime of each key in ms. The default is 4h. Messages sent using old keys will remain valid for 2x the TTL, after which time the message will be ignored.</p></li>
+</ul>
+<h2>discovery.oak: Oak-based, OOTB-implementation</h2>
+<p>When running discovery.impl ontop of an eventually consistent repository (such as documentMK of oak), the heartbeat mechanism becomes unreliable. The eventual-ness of the repository has an inherent problem in that it doesn't guarantee by when a change initiated from instance A is visible by instance B. And when there are no hard guarantees, it becomes impossible to choose a <code>heartbeatTimeout</code> that works for all eventualities.</p>
+<p>Therefore it becomes necessary to be able to store heartbeats in a (low-level) location that provides higher consistency (than eventualness). Such a 'low-level location' is the DocumentStore of oak (which is an internal API of the DocumentNodeStore). Turns out that the DocumentNodeStore already has a heartbeat-like concept called leases. Those can be re-used for discovery to fulfill the same aspect as heartbeats do: indicate alive instances. This can further be combined with an explicit materialization of a "cluster view" in the DocumentStore so that all instances agree and refer to the same view without the actual need for voting (this is possible since the DocumentStore allows to do conditional updates).</p>
+<h3>Jackrabbit Oak's discovery-lite</h3>
+<p>All of the above mentioned features have been implemented in so-called 'discovery-lite': Discovery-lite is a simplified version of discovery on the oak level. Other than the discovery API it only provides one thing, and that's the clusterview-json:</p>
+<h4>'oak.discoverylite.clusterview'</h4>
+<p>The discovery-lite descriptor <code>oak.discoverylite.clusterview</code> is a shrink-wrapped json-formatted object representing the current state of the cluster. It contains the following:</p>
+<ul>
+  <li><code>active</code>: a list of active nodes in the documentNodeStore cluster</li>
+  <li><code>deactivating</code>: a list of nodes that are in the process of being deactivated</li>
+  <li><code>inactive</code>: a list of nodes that are inactive</li>
+  <li><code>me</code>: the id (number) of the local instance (which is always part of the active nodes)</li>
+  <li><code>id</code>: the id (unique, persistent) of the cluster (which thus survives node/cluster restarts)</li>
+  <li><code>seq</code>: a sequence number that is incremented upon each change in this descriptor (to be able to identify a change even if the other values are unchanged) and shared amongst all instances in the cluster, ie all instances see the same sequence number. This number can thus be used by upper layers to identify this particular incarnation of clusterview.</li>
+  <li><code>final</code>: when this flag is <code>false</code> it indicates that the sequence number has changed (as well as eg <code>active</code> and <code>inactive</code>), but that the local instance has not yet fully processed this changed on a low-level. I.e. it marks that the local instance has not yet read the entire back-log of another, deactivating instance. Thus when <code>final==false</code>, the upper layers should wait until <code>final==true</code>, at which point they know oak has finished processing an instance crashing/shutting down.</li>
+</ul>
+<h4>Accessing discovery-lite</h4>
+<p>The <code>oak.discoverylite.clusterview</code> descriptor is exposed as a JCR repository descriptor and can be accessed like so:</p>
+<p>getRepository().getDescriptor("oak.discoverylite.clusterview")</p>
+<p>which will return the json-formatted clusterview as described above.</p>
+<p>Note however, that this API is not meant to be a public, stable API and changes will be done without prior notice. It is merely an internal information exposed by oak and not standardized nor guaranteed to remain supported or unchanged!</p>
+<h3>Sling's discovery.oak</h3>
+<p>discovery.oak is a implementation of the discovery API that now makes use of this new discovery-lite descriptor in oak. It basically delegates the detection of the instances in the local cluster to discovery-lite. To do so, it periodically reads this descriptor (which is designed to be read at a high-frequency without problems) and triggers <code>TopologyEvents</code> when this descriptor changes.</p>
+<p>The advantage of using discovery-lite (which uses oak leases) instead of writing heartbeats into the repository is that discovery.oak thus becomes independent of the speed/latency that the repository can produce under high load. The discovery-lite should be entirley resilient to high load, thus is discovery.oak.</p>
+<p>Additionally, it reuses functionality from discovery.impl, such as the way properties (from <code>PropertyProviders</code>) or cross-cluster topology announcements (via topology connectors) are handled.</p>
+<p>In order to do this, the discovery.impl bundle has been refactored as follows:</p>
+<h4>discovery.commons</h4>
+<p>This is a bundle usable by any implementation of discovery and contains very basic, implementation-independent functionality</p>
+<h4>discovery.base</h4>
+<p>This is the base bundle solely used by discovery.impl and discovery.oak and contains exactly the mentioned properties and announcement handling.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/dynamic-includes.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/dynamic-includes.html b/documentation/bundles/dynamic-includes.html
new file mode 100644
index 0000000..413bc11
--- /dev/null
+++ b/documentation/bundles/dynamic-includes.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling Dynamic Include</h1></header><p>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.</p>
+<h1>Sling Dynamic Include (org.apache.sling.dynamic-include)</h1>
+<p>For now the Sling Dynamic Include documentation can be found <a href="https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/sling-dynamic-include/README.md">in the Sling codebase</a> or <a href="https://github.com/apache/sling/tree/trunk/contrib/extensions/sling-dynamic-include">on our GitHub mirror</a> if that's in sync.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/file-installer-provider.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/file-installer-provider.html b/documentation/bundles/file-installer-provider.html
new file mode 100644
index 0000000..8e1a489
--- /dev/null
+++ b/documentation/bundles/file-installer-provider.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>File Installer Provider</h1></header><p>The file installer provider scans configured directories and provides the found artifacts (files) to the <a href="/documentation/bundles/osgi-installer.html">OSGI installer</a>. The functionality is very similar to Apache Felix FileInstall, with the major difference that this service implements just the task of scanning a file directory. All the management logic is implemented in the OSGi installer and support of various artifact types like bundles, configurations or custom formats is implemented by plugins for the OSGi installer.</p>
+<h2>Setup</h2>
+<p>The file installer can be configured with these framework (system) properties:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property</th>
+      <th>Default</th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>sling.fileinstall.dir</code></td>
+      <td> </td>
+      <td>The name/path of the directories to watch. Several directories can be specified by using a comma separated list. Each directory might have arbitrarily many sub directories (even nested ones) which may contain the artifacts</td>
+    </tr>
+    <tr>
+      <td><code>sling.fileinstall.interval</code></td>
+      <td>5000 ms</td>
+      <td>Number of milliseconds between 2 polls of the directory</td>
+    </tr>
+    <tr>
+      <td><code>sling.fileinstall.writeback</code></td>
+      <td>true</td>
+      <td>If the file provider supports writeback of changed artifacts, e.g. if a configuration is changed through Config Admin the change is written back to the file system.</td>
+    </tr>
+  </tbody>
+</table>
+<h2>Bundles</h2>
+<p>Bundles are supported by the OSGi installer. If a bundle jar is added to a scanned directory, this bundle is installed. If the file is updated/changed, the bundle is updated. If the file is removed, the bundle gets removed. Of course, these are the simple rules. The actual action depends by the overall state of the system and is controlled by the OSGi installer. For example if already the same bundle with a higher version is installed, when a bundle is dropped into the install folder, the OSGi installer will perform no operation.</p>
+<p>Start levels are supported as well by creating a directory with the name of the start level within the scan directory and putting the bundles within this directory. For example, if the <code>install</code> folder is scanned, the bundle <code>install/3/mybundle.jar</code> will be installed with start level 3. Without such a directory the default start level is used.</p>
+<h2>Configurations</h2>
+<p>Configurations are handled by the <a href="/documentation/bundles/configuration-installer-factory.html">Configuration Installer Factory</a>. The different formats are described there.</p>
+<h2>Custom Artifacts</h2>
+<p>Custom artifacts are handled by the OSGi installer depending on the installed plugins. Have a look at the OSGi installer and its plugins for more information.</p>
+<h2>Runmode Support</h2>
+<p>The file installer supports run modes for installing artifacts (added with <a href="https://issues.apache.org/jira/browse/SLING-4478">SLING-4478</a>). Within the scanned directory, a folder prefixed with "install." and followed by one or more run modes (separated by ".") will only be considered if all the respective run modes are active. For example artifacts below a folder named <code>install.a1.dev</code> are only taken into account if the run modes <code>a1</code> and <code>dev</code> are both active.</p>
+<p>You can even combine start level and run mode support. Just pay attention that the run mode foldername must be set on a direct child folder of <code>sling.fileinstall.dir</code> while the start level must be set directly on the parent folder of the artifact you want to install. E.g. <code>&lt;sling.fileinstall.dir&gt;/install.a1.dev/3/mybundle.jar</code> will only be considered if both run modes <code>a1</code> and <code>dev</code> are set. If this is the case then the according artifact will be installed in start level 3.</p>
+<h1>Project Info</h1>
+<ul>
+  <li>File installer provider (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/file">org.apache.sling.installer.provider.file</a>)</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[49/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html b/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html
new file mode 100644
index 0000000..53be8bd
--- /dev/null
+++ b/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html
@@ -0,0 +1,832 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Manipulating Content - The SlingPostServlet (servlets.post)</h1></header><p>[TOC]</p>
+<h2>Multiple Ways to Modify Content</h2>
+<p>As always in life there is more than one way to do it. So to modify content in a JCR repository underlying Sling, you have multiple options, two of which are WebDAV and the Sling default POST Servlet also called the <em>SlingPostServlet</em>. This page is about how you can modify - create, modify, copy, move, delete, import - content through the <em>SlingPostServlet</em>. In addition it also explains how to extend the SlingPostServlet with new operations.</p>
+<p>What is Content anyway? In the following discussion, I use the terms <em>Content</em> and <em>Item</em> interchangeably. With <em>Content</em> I just mean some data to be stored in the JCR repository to be later used as the basis for some presentation. In this sense <em>Content</em> is a rather conceptual term. <em>Item</em> is the name of the parent interface of the JCR <em>Node</em> and <em>Property</em> interfaces. When speaking of <em>Items</em> we mean some actual data stored in the repository ignoring whether the data is actually stored as a <em>Node</em> with child nodes and properties or just a single <em>Property</em>.</p>
+<h2>Quickstart: Creating Content</h2>
+<p>To create content you simply send an HTTP POST request using the path of the node to store the content in and include the actual content as request parameters. So one possibility to do just that is by having an HTML Form like the following:</p>
+<form method="POST" action="http://host/some/new/content" enctype="multipart/form-data">
+<input type="text" name="title" value="" />
+<input type="text" name="text" value="" />
+</form>
+<p>This simple form will set the <code>title</code> and <code>text</code> properties on a node at <code>/some/new/content</code>. If this node does not exist it is just created otherwise the existing content would be modified.</p>
+<p>Similarly, you can do this using the <code>curl</code> command line tool:</p>
+<p>$ curl -Ftitle="some title text" -Ftext="some body text content" http://host/some/new/content</p>
+<p>You might want to use a specific JCR node type for a newly created node. This is possible by simply setting a <code>jcr:primaryType</code> property on the request, e.g.</p>
+<p>$ curl -F"jcr:primaryType=nt:unstructured" -Ftitle="some title text" -Ftext="some body text content" http://host/some/new/content</p>
+<p>Similarly, you may assign JCR mixin node types using the <code>jcr:mixinTypes</code> property and a Sling resource type using the <code>sling:resourceType</code> property. For example:</p>
+<p>$ curl -F"sling:resourceType=sling:sample" -Ftitle="some title text" -Ftext="some body text content" http://host/some/new/content</p>
+<h2>Preface: multipart/form-data POSTs</h2>
+<p>Sometimes you might want to have the content modifications applied in a certain order. This is particularly interesting if you use fields to create child nodes and if you want to stipulate a certain child node order based on the form fields.</p>
+<p>In this case, ensure you are submitting the POST request using <code>multipart/form-data</code> encoding. This preserves the order of parameter application according to the original HTML form. To this avail, ensure to always include the <code>enctype=&quot;multipart/form-data&quot;</code> attribute with the <code>&lt;form&gt;</code> tag.</p>
+<p>This support requires Sling Engine 2.1.0 and the Sling Default Post Servlet 2.0.6.</p>
+<h2>SlingPostServlet Operations</h2>
+<p>The SlingPostServlet is actually just a front-end to the actual operations. To select the actual operation to execute, the <code>:operation</code> request parameter is used. Out of the box, the SlingPostServlet supports the following operations:</p>
+<ul>
+  <li>property not set or empty -- Create new content or modify existing content</li>
+  <li><code>delete</code> -- Remove existing content</li>
+  <li><code>move</code> -- Move existing content to a new location</li>
+  <li><code>copy</code> -- Copy existing content to a new location</li>
+  <li><code>import</code> -- Import content structures from JSON/XML/Zip</li>
+  <li><code>nop</code> -- Explicitly requests to do nothing and just sets the response status</li>
+  <li><code>checkin</code> - Check in a versionable node</li>
+  <li><code>checkout</code> - Check out a versionable node</li>
+</ul>
+<p>All these operations always operate on the resource of the request as returned by <code>SlingHttpServletRequest.getResource()</code>. Some operations require additional parameters to be set to operate completely.</p>
+<p>Please note that operations are mutually exclusive. For a single POST request only one operation may be executed. Operations also only consume the request parameters as described below. Any excess parameters are silently ignored.</p>
+<div class="note">
+<b>Automated tests</b>:
+Note that the `launchpad/testing` module contains a number of <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/post/">integration tests</a> for the SlingPostServlet. Most of these tests are fairly readable, and can be used to find out more details about the servlet's behavior.
+</div>
+<div class="note">
+<b>Trailing star in the :applyTo parameter</b>:
+This applies to operations that use this parameter, since version 2.1.2 of the *org.apache.sling.servlets.post* bundle: If the last segment of the `:applyTo` value is '*' then the operation applies to all the children of the resolved parent resource. This can be used to act on all the children
+of a resource without having to specify the path of each individual child resource.
+</div>
+<h3>Content Creation or Modification</h3>
+<p>The simplest and most common use case, probably, is content creation and modification. We already saw an example above in the quickstart section. In this section we elaborate more on the concrete stuff.</p>
+<p>First, the request URL indicates the actual repository node to be handled. If the URL addresses an existing node, the request parameters just provide values for the properties to be set on the existing node.</p>
+<p>If the resource of the request is a synthetic resource, e.g. <code>NonExistingResource</code> or <code>StarResource</code>, a new item is created. The path (including name) of the item to be created is derived from the resource path:</p>
+<ul>
+  <li>If the resource path ends with a <code>/*</code> or <code>/</code> the name of the item is automatically created using a name creation algorithm taking into account various request parameters.</li>
+  <li>Otherwise the resource path is used as the path and name of the new item.</li>
+</ul>
+<p>In both cases the path may still include selectors and extensions, which are cut off the path before finding out, what to do.</p>
+<p>To illustrate this algorithm, lets look at some examples (and check the <a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletCreateTest.java"><code>PostServletCreateTest</code></a> in case of doubt):</p>
+<table>
+  <thead>
+    <tr>
+      <th>Resource Path </th>
+      <th>Item path </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>/content/new</code> </td>
+      <td><code>/content/new</code> </td>
+    </tr>
+    <tr>
+      <td><code>/content/new.html</code> </td>
+      <td><code>/content/new</code> </td>
+    </tr>
+    <tr>
+      <td><code>/content/new.print.a4.html</code> </td>
+      <td><code>/content/new</code> </td>
+    </tr>
+    <tr>
+      <td><code>/content/</code> </td>
+      <td><code>/content/xxx</code> where <code>xxx</code> is a generated name </td>
+    </tr>
+    <tr>
+      <td><code>/content/*</code></td>
+      <td><code>/content/xxx</code> where <code>xxx</code> is a generated name </td>
+    </tr>
+    <tr>
+      <td><code>/content/*.html</code></td>
+      <td><code>/content/xxx</code> where <code>xxx</code> is a generated name </td>
+    </tr>
+    <tr>
+      <td><code>/content/*.print.a4.html</code></td>
+      <td><code>/content/xxx</code> where <code>xxx</code> is a generated name </td>
+    </tr>
+  </tbody>
+</table>
+<h5>Setting Property Values</h5>
+<p>Setting property values is as simple as just adding a request parameter whose name is the name of the property to be set and whose value is the value to be assigned to the property. We already saw how to do this in the quick start examples above.</p>
+<p>Here is another example show a simple HTML form to create a new node with an automatically created name:</p>
+<form method="POST" action="/content/page/first" enctype="multipart/form-data">
+<input type="text" name="title" />
+<input type="text" name="text" />
+<input type="Submit" />
+</form>
+<p>If this form is submitted with <em>title</em> and <em>This is some Text</em> as values for the <code>title</code> and <code>text</code> fields respectively, a new node is created at the path <code>/content/page/first</code> and the <code>title</code> and <code>text</code> properties set to the respective field values. If a node at <code>/content/page/first</code> already existed before submitting the form, the <code>title</code> and <code>text</code> properties are just updated to the new values from the form fields.</p>
+<p>If a parameter has multiple values, the respective property will be created as a multi-value property. So for example the command line:</p>
+<p>$ curl -Fmulti=one -Fmulti=two http://host/content/page</p>
+<p>Would assign the <code>/content/page/multi</code> property the value <em>[ "one", "two" ]</em>.</p>
+<p>This is pretty much all there is to know about creating and modifying content. The following sections will now introduce more functionality which help you with more fine-grained control in your content management application.</p>
+<h5>Automatic property values: last modified and created by</h5>
+<p>To make it easier to set "last modified" and "created by" property values from POST requests, values are generated automatically for the following property names <em>if they are supplied with empty values in such a request</em>:</p>
+<ul>
+  <li>
+  <p><code>created</code> and <code>jcr:created</code> are set to the node creation time, as a Date value.</p></li>
+  <li>
+  <p><code>lastModified</code>, <code>jcr:lastModified</code> are set to the node modification time, as a Date value.</p></li>
+  <li>
+  <p><code>createdBy</code> and <code>jcr:createdBy</code> are set to the name of the user who created the node.</p></li>
+  <li>
+  <p><code>lastModifiedBy</code>, <code>jcr:lastModifiedBy</code> are set to the name of the user who modified the node.</p></li>
+</ul>
+<p>This is demonstrated by the <a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/SlingAutoPropertiesTest.java">SlingAutoPropertiesTest</a> which is part of our launchpad integration tests.</p>
+<h5>File Uploads</h5>
+<p>File uploads are typically done using the <code>&lt;input type=&quot;file&quot;&quot;/&gt;</code> element of an HTML form and ensuring the correct form encoding. The SlingPostServlet handles uploaded files specially, in that the file data is not simply written into a property, but a node is actually created with three properties:</p>
+<ul>
+  <li><code>jcr:data</code> -- The actual file contents</li>
+  <li><code>jcr:lastModified</code> -- The time stamp of processing the uploaded file</li>
+  <li><code>jcr:mimeType</code> -- The MIME type from the original file submission (if contained in the file body part) or derived from the original file name</li>
+</ul>
+<p>The name of the node is either taken from the parameter name or if the name is <code>*</code> from the name of the uploaded file.</p>
+<p>The primary node type of the uploaded file is selected using the following algorithm:</p>
+<ul>
+  <li>If a `@TypeHint suffixed parameter (see below for a description) is present check whether the value is a known non-mixin node type. If so, the node is created with this primary node type.</li>
+  <li>If a <code>@TypeHint</code> suffixed parameter is not present or the value does not denote an existing non-mixin node type, the node will be created as an <code>nt:file</code> node if the parent node is of type <code>nt:folder</code>. Otherwise the node will be created with primary node type <code>nt:resource</code>.</li>
+</ul>
+<p>If the node to be created is <code>nt:file</code>, the actual file data will really be stored in the <code>jcr:content</code> child node of the new <code>nt:file</code> node whose primary node type is then set as <code>nt:resource</code>.</p>
+<p>Example 1: Upload an image to a node named <code>image</code> below <code>/content/page</code>:</p>
+<form method="POST" action="/content/page" enctype="multipart/form-data">
+<input type="file" name="image" />
+<input type="Submit" />
+</form>
+<p>Example 2: Upload a file as a node of type <code>nt:file</code> below <code>/content/folder</code>:</p>
+<form method="POST" action="/content/page" enctype="multipart/form-data">
+<input type="file" name="*" />
+<input type="hidden" name="*@TypeHint" value="nt:file" />
+<input type="Submit" />
+</form>
+<p>Assuming the user selected a file named <code>myImage.jpg</code> the uploaded file would be stored in an <code>nt:file</code> node at <code>/content/folder/myImage.jpg</code>.</p>
+<h5>Date properties</h5>
+<p>Parameters providing date/time values to be stored in JCR properties of type <em>Date</em> require special handling. The problem is that there are a number of formats to represent such date/time values. To account for this open-ended list of formats, the Sling Post Servlet supports configurability of the process of parsing strings into <code>Calendar</code> objects.</p>
+<p>The Sling Post Servlet configuration property <code>servlet.post.dateFormats</code> takes a list of format strings which are used to setup <code>java.text.SimpleDateFormat</code> instances for parsing date/time string representations. A special format string <code>ISO8601</code> is supported to indicate the string to be parsed as a JCR standard string representation of a <em>Date</em> property. Only the latter supports storing the actual timezone offset. All the parsers leveraging <code>java.text.SimpleDateFormat</code> loose the given timezone and convert that just to the default timezone of the JRE (when creating the <code>Calendar</code> out of the <code>Date</code>, because <code>java.lang.Date</code> is not carrying any timezone information).</p>
+<p>The default list of configured date/time parse pattern is:</p>
+<ul>
+  <li>EEE MMM dd yyyy HH:mm:ss 'GMT'Z</li>
+  <li>ISO8601, using the org.apache.jackrabbit.util.ISO8601 parser (±YYYY-MM-DDThh:mm:ss.SSSTZD)</li>
+  <li>yyyy-MM-dd'T'HH:mm:ss.SSSZ</li>
+  <li>yyyy-MM-dd'T'HH:mm:ss</li>
+  <li>yyyy-MM-dd</li>
+  <li>dd.MM.yyyy HH:mm:ss</li>
+  <li>dd.MM.yyyy</li>
+</ul>
+<p>Any date/time string parameter supplied is subject to the patterns in the configured order. The first pattern accepting the string and parsing it into a <code>Date</code> -- and thus a <code>Calendar</code> -- object is used. Therefore this list is best ordered in a most-stringent to least-stringent order.</p>
+<h5>Omitting Some Parameters</h5>
+<p>There may be times that you have forms which contain a lot of fields which you do not want to actually store in content. Such forms usually are created using some client-side GUI library which uses the fields for its own purposes. To be able to easily differentiate between real content to be actually stored and such control parameters, you may prefix the names of the fields destined for content with a dot-slash (<code>./</code>).</p>
+<p>As soon as the SlingPostServlet encounters parameters prefixed with dot-slash, only those parameters are considered for content updates while all other parameters not prefixed are just ignored. In addition to dot-slash prefixed parameters, also parameters prefixed with dot-dot-slash (<code>../</code>) and slash (<code>/</code>) are considered in this situation.</p>
+<p>For example, the following form only uses the first two fields for content update and ignores the rest:</p>
+<form method="POST" action="/content/page/first" enctype="multipart/form-data">
+<input type="text" name="./title" />
+<input type="text" name="../first/text" />
+<input type="hidden" name="control0" /><!-- ignored -->
+<input type="hidden" name="control1" /><!-- ignored -->
+<input type="Submit" />
+</form>
+<p>Because the SlingPostServlet encounters the <code>./title</code> parameter, only parameters prefixed with dot-slash, dot-dot-slash and slash are considered for content update. In this case this would <code>./title</code> and <code>../first/text</code> while <code>control0</code> and <code>control1</code> are not prefixed and thus ignored.</p>
+<p>Background: The name of the parameters used for content update are actually intended to be relative path names of the properties to modify. So in effect using the field name <code>text</code> is equivalent to <code>./text</code> -- dot-slash meaning relative to the current node identified by the <code>action</code> attribute value for <code>form</code> tag -- or <code>../first/text</code> if <code>first</code> is the name of the node to modify -- dot-dot-slash meaning relative to the parent node of the node identified by the <code>action</code> attribute value of the <code>form</code> tag.</p>
+<p>In addition to the mechanism explained here, the following parameters are also ignored:</p>
+<ul>
+  <li>Parameters whose name start with a colon (<code>:</code>) are always ignored by the SlingPostServlet with respect to content update. The reason is that the prefixing colon is intended as a marker for SlingPostServlet control parameters.</li>
+  <li>The <code>charset</code> request parameter is also never written back because this parameter is used to convey the character encoding used to transport the request parameters.</li>
+  <li>Request parameters matching a regular expression supplied with the <code>servlet.post.ignorePattern</code> configuration parameter are also ignored. By default this pattern is <code>j_.*</code> thus ignoring any request parameters with the prefix <code>j_</code> such as <code>j_username</code>. Those request parameters are generally used for authentication purposes and may hit the Sling POST Servlet in some situations.</li>
+</ul>
+<h5>Controlling Content Updates with <code>@</code> Suffixes</h5>
+<p>Generally just creating forms with parameters and their values suffices it completely. Sometimes, though, you want to have more control on how the parameter values are actually stored in the properties. For example, you want to set a property to a default value if the user did provide an actual value. Or you might want to store a parameter explicitly with a given data type, such as numeric, boolean etc.</p>
+<p>The SlingPostServlet provides such property control in the form of <code>@</code> suffixed parameters, which are now presented.</p>
+<p>The <code>@</code> suffixed parameters are not used on their own but always in conjunction with a plain parameter. The part of the parameter name before the <code>@</code> suffix is used in this case for correlation and must match exactly the name of the parameter to which the <code>@</code> suffixed parameter belongs.</p>
+<p>For example, the parameter <code>width@TypeHint</code> applies to the <code>width</code> parameter and the <code>./height@TypeHint</code> parameter applies to the <code>./height</code> parameter. As can be seen, the correlation between the parameters is a simple case-sensitive string comparison. That is the <code>widht@TypeHint</code> parameter would not apply to the <code>./width</code> even though both parameters address the same property but they do not have a string match.</p>
+<h6><code>@TypeHint</code></h6>
+<p>Parameters with the <code>@TypeHint</code> suffix may be used to force storing the named parameter in a property with the given type. The value of the <code>@TypeHint</code> parameter, if applied to a parameter for a property, is the JCR property type name. If the <code>@TypeHint</code> parameter is applied to a field upload parameter, the value is used to indicate the JCR primary node type for the node into which the uploaded file is stored.</p>
+<p>If the <code>@TypeHint</code> value ends with <code>[]</code>, it indicates a multi-value property. A multi-value property is usually auto-detected if there are multiple values for the property (i.e. request parameter). But if only a single value is present in the request, the desired property type needs to be explicitly defined as multi-value by stating <code>@TypeHint=&lt;type&gt;[]</code>.</p>
+<p>Example: The following form sets the numeric <code>width</code>, the boolean <code>checked</code>, and the multi-valued <code>hobbys</code> (with 3 values to enter) properties:</p>
+<form method="POST" action="/content/page/first" enctype="multipart/form-data">
+<input type="text" name="width" />
+<input type="hidden" name="width@TypeHint" value="Long" />
+<input type="checkbox" name="checked" />
+<input type="hidden" name="checked@TypeHint" value="Boolean" />
+<input type="text" name="hobbys"/>
+<input type="text" name="hobbys"/>
+<input type="text" name="hobbys"/>
+<input type="hidden" name="hobbys@TypeHint" value="String[]" />
+<input type="Submit" />
+</form>
+<p>In real applications you would need some JavaScript that allows to add/remove values, ie. add/remove inputs with the name "hobbys". Or a pure JavaScript based form post would be used, that gathers the properties to update programmatically, but the additional parameter <code>hobbys@TypeHint=String[]</code> would be the same.</p>
+<p>The <code>@TypeHint</code> suffixed parameter is assumed to be single-valued. If the parameter has multiple values, only the first is actually used.</p>
+<p>For multi-value properties, see also the <code>@Patch</code> option.</p>
+<p>For more information on applying <code>@TypeHint</code> to a file upload parameter see the section on File Uploads above.</p>
+<h6><code>@DefaultValue</code></h6>
+<p>The <code>@DefaultValue</code> suffixed parameter may be provided to set a property to a default value should no value be provided in the actual parameters. Same as for normal parameters, the <code>@DefaultValue</code> parameter may have multiple values to create multi-valued properties.</p>
+<p>Example: Set the <code>text</code> property to a default value if the user does not provide one:</p>
+<form method="POST" action="/content/page/first" enctype="multipart/form-data">
+<input type="text" name="text" />
+<input type="hidden" name="text@DefaultValue" value="--- Default Value ---" />
+<input type="Submit" />
+</form>
+<h6><code>@UseDefaultWhenMissing</code></h6>
+<p>As described above, <code>@DefaultValue</code> only takes effect if no value is provided for a particular parameter. However, in some cases, such as HTML checkboxes, this isn't sufficient because the parameter isn't submitted at all. To handle this scenario, you can use the <code>@UseDefaultWhenMissing</code> suffixed parameter.</p>
+<form method="POST" action="/content/page/first" enctype="multipart/form-data">
+<input name="queryIgnoreNoise" class="input" type="checkbox" value="true"/>
+<input type="hidden" name="queryIgnoreNoise@DefaultValue" value="false"/>
+<input type="hidden" name="queryIgnoreNoise@UseDefaultWhenMissing" value="true"/>
+</form>
+<h6><code>@IgnoreBlanks</code></h6>
+<p>Sometimes a form client will supply empty parameter values resulting in content being created or modified. For example submitting this form:</p>
+<form method="POST" action="/content/page/first" enctype="multipart/form-data">
+<input type="hidden" name="stringProperty@TypeHint" value="String[]"/>
+<input type="text" name="stringProperty" value="foo"/>
+<input type="text" name="stringProperty" value="bar"/>
+<input type="text" name="stringProperty" value=""/>
+</form>
+<p>will result in multi-value String property being set to [ "foo", "bar", "" ]. Notice the blank value.</p>
+<p>Likewise submitting this form without a value entered:</p>
+<form method="POST" action="/content/page/first" enctype="multipart/form-data">
+<input type="hidden" name="stringProperty@TypeHint" value="String"/>
+<input type="text" name="stringProperty" value=""/>
+</form>
+<p>will result in the single-value String property being set to an empty string.</p>
+<p>To overcome this situation the <code>@IgnoreBlanks</code> suffix may be used to consider parameters with an empty string value to be ignored during processing. That is such parameter values would be treated as if they would not be supplied.</p>
+<p>Adding</p>
+<input type="hidden" name="stringProperty@IgnoreBlanks" value="true"/>
+<p>to the above forms will cause the multi-value property be set to the two-element value [ "foo", "bar" ] and to not modify the property at all in the second single-value example.</p>
+<h6><code>@ValueFrom</code></h6>
+<p>In some situations, an HTML form with parameters may be reused to update content. But one or more form parameters may not comply with the names expected to be used for properties. In this case a parameter suffixed with <code>@ValueFrom</code> may be set containing the name of the parameter providing the actual data to be used.</p>
+<p>Example: To set the property <code>text</code> from a form element <code>supplied_text</code>, you might use the following form:</p>
+<form method="POST" action="/content/page/first" enctype="multipart/form-data">
+<input type="text" name="supplied_text" />
+<input type="hidden" name="./text@ValueFrom" value="supplied_text" />
+<input type="Submit" />
+</form>
+<p>To prevent storing the additional parameters in the repository you might want to use the prefixing mechanism as shown in the example above, where the <code>@ValueFrom</code> parameter is prefixed and thus the <code>supplied_text</code> parameter is not used for property setting.</p>
+<p>The <code>@ValueFrom</code> suffixed parameter is assumed to be single-valued. If the parameter has multiple values it is ignored completely.</p>
+<p>The <code>@ValueFrom</code> suffixed parameter is also special in that there must not be a correlated parameter without a suffix. Thus have parameters <code>text</code> and <code>text@ValueFrom</code> may have unexpected results.</p>
+<h6><code>@Delete</code></h6>
+<p>Sometimes it may be required to not set a property to a specific value but to just remove it while processing the content update request. One such situation is a property filled from one or more checkboxes in an HTML form. If none of the checkboxes are checked, no parameter is actually submitted for these checkboxes. Hence the SlingPostServlet will not touch this property and effectively leave it untouched, while the natural reaction would have been to remove the property.</p>
+<p>Here comes the <code>@Delete</code> suffixed parameter. This simply causes the indicated property be removed if it exists. If the property does not exist, nothing more happens. The actual value of the <code>@Delete</code> suffixed parameter does not care as long as the parameter is submitted.</p>
+<p>Example: To ensure the <code>color</code> property is actually removed if no color has been selected, you might use the following form:</p>
+<form method="POST" action="/content/page/first" enctype="multipart/form-data">
+<input type="checkbox" name="color" value="red" />
+<input type="checkbox" name="color" value="green" />
+<input type="checkbox" name="color" value="blue" />
+<input type="hidden" name="color@Delete" value="delete text" /><!-- actual value is ignored -->
+<input type="Submit" />
+</form>
+<p>The <code>@Delete</code> suffixed parameter is also special in that there need not be a correlated parameter without a suffix. If both -- a parameters <code>text</code> and <code>text@Delete</code> are set, the <code>text</code> property is first deleted and then filled with the new content.</p>
+<p>The <code>@Delete</code> suffixed parameter in fact calls for a sub-operation, which is executed after the node addressed by the request URL is created (if needed) but before any other tasks of content creation and modification are done. Any item -- this may be a property or a node, actually -- addressed by the <code>@Delete</code> suffixed parameter is just removed if it exists. If the item does not exist, nothing happens.</p>
+<h6><code>@MoveFrom</code></h6>
+<p>Now, that your bright and shiny content management application has great Flash-based file upload feature you will want to be able to use the pre-uploaded files for your content with the same request as when you upload other content. For example you might have a node storing some text and an illustration you uploaded as an image file.</p>
+<p>To support this kind of functionality, the <code>@MoveFrom</code> suffixed parameter may be set to the repository path of the node to where you uploaded the image file.</p>
+<p>Example: Your Flash-based file upload stored the file on the server at <code>/tmp/upload/123</code>. You now want to store this file along with a title and a text in a newly created node. The following form will be your friend:</p>
+<!-- trailing slash generates a name for the new node -->
+<form method="POST" action="/content/page/" enctype="multipart/form-data">
+<input type="hidden" name="image@MoveFrom" value="/tmp/upload/123" />
+<input type="text" name="title" />
+<input type="text" name="text" />
+<input type="Submit" />
+</form>
+<p>If there exists no repository item at the indicated path, nothing is done. If the item indicated by the <code>@MoveFrom</code> suffixed parameter already exists, it is replaced by the item addressed by the parameter value -- unless of course there is no item at the named location.</p>
+<p>The <code>@MoveFrom</code> suffixed parameter is assumed to be single-valued. If the parameter has multiple values it is ignored completely.</p>
+<p>The <code>@MoveFrom</code> suffixed parameter is also special in that there must not be a correlated parameter without a suffix. Thus have parameters <code>text</code> and <code>text@MoveFrom</code> may have unexpected results.</p>
+<p>The <code>@MoveFrom</code> suffixed parameter in fact calls for a sub-operation, which is executed after the <code>@Delete</code> sub operation but before any other tasks of content creation and modification are done.</p>
+<h6><code>@CopyFrom</code></h6>
+<p>Similar to the <code>@MoveFrom</code> suffix exists a <code>@CopyFrom</code> suffix. The latter works exactly the same as the former except that the item addressed by the parameter value is not moved but just copied.</p>
+<p>Example: Your Flash-based file upload stored the file on the server at <code>/tmp/upload/123</code>. You now want to store this file along with a title and a text in a newly created node. The following form may be your friend:</p>
+<!-- trailing slash generates a name for the new node -->
+<form method="POST" action="/content/page/" enctype="multipart/form-data">
+<input type="hidden" name="image@CopyFrom" value="/tmp/upload/123" />
+<input type="text" name="title" />
+<input type="text" name="text" />
+<input type="Submit" />
+</form>
+<p>If there exists no repository item at the indicated path, nothing is done. If the item indicated by the <code>@CopyFrom</code> suffixed parameter already exists, it is replaced by the item addressed by the parameter value -- unless of course there is no item at the named location.</p>
+<p>The <code>@CopyFrom</code> suffixed parameter is assumed to be single-valued. If the parameter has multiple values it is ignored completely.</p>
+<p>The <code>@CopyFrom</code> suffixed parameter is also special in that there must not be a correlated parameter without a suffix. Thus have parameters <code>text</code> and <code>text@CopyFrom</code> may have unexpected results.</p>
+<p>The <code>@CopyFrom</code> suffixed parameter in fact calls for a sub-operation, which is executed after the <code>@MoveFrom</code> sub operation but before any other tasks of content creation and modification are done.</p>
+<h6><code>@Patch</code></h6>
+<p>When modifying multi-value properties, the <code>@Patch</code> suffix can be used to just add <code>+</code> or remove <code>-</code> individual values without overwriting the full array. This allows to change the array without knowing the current values.</p>
+<p>For example, imagine a multi-value string property that stores tags or keywords. To both add a tag "cool" and remove "boring" from the list:</p>
+<form method="POST" action="/content/page/first" enctype="multipart/form-data">
+<input type="hidden" name="tags@TypeHint" value="String[]" />
+<input type="hidden" name="tags@Patch"    value="true" />
+<input type="text"   name="tags"          value="+cool"/>
+<input type="text"   name="tags"          value="-boring"/>
+<input type="Submit" />
+</form>
+<p>The array will be treated like a set: when adding a value, it will only be added once if it does not exist yet; when removing a value, all occurrences of it will be removed. For values not affected by the add or remove operations, nothing changes. An existing array with duplicate entries will not automatically be converted into a set.</p>
+<p>The format for an individual parameter value is <code>&lt;operation&gt;&lt;value&gt;</code>. If there is no or no valid operation given, this value will be ignored.</p>
+<p>Operation <code>+</code> will add the <code>&lt;value&gt;</code> to the array if it is not part of it yet.</p>
+<p>Operation <code>-</code> will remove all occurrences of <code>&lt;value&gt;</code> from the array.</p>
+<p>The value of the <code>@Patch</code> suffixed parameter is irrelevant, it can be empty (example above uses <code>true</code> for clarity).</p>
+<p>All types should be supported via <code>@TypeHint</code>, but it needs to indicate a multi-value property, ending with <code>[]</code>.</p>
+<h5>Algorithm for Node Name Creation</h5>
+<p>If request is posted with an URL ending in slash <code>/</code> or slash-star <code>/*</code>, the SlingPostServlet derives a name for the node to be created upon the request applying the following algorithm:</p>
+<ol>
+  <li>If a <code>:name</code> parameter is supplied, the (first) value of this parameter is used unmodified as the name for the new node. If the name is illegally formed with respect to JCR name requirements, an exception will be thrown when trying to create the node. The assumption with the <code>:name</code> parameter is, that the caller knows what he (or she) is supplying and should get the exact result if possible.</li>
+  <li>Otherwise if a <code>:nameHint</code> parameter is supplied, the (first) value of this parameter is used to generate the node name. A name filtering is applied to this hint to ensure a valid JCR node name.</li>
+  <li>Otherwise a series of request parameters supplied to set content is inspected for a possible name. The list of the names of these parameter is configurable with the SlingPostServlet and defaults to <code>[ title, jcr:title, name, description, jcr:description, abstract ](</code> refs.-title-jcr-title-name-description-jcr-description-abstract.path <code>)</code>. The first request parameter with a non-empty value is used and filtered to get the valid JCR name.</li>
+  <li>Otherwise an ever increasing auto generated number is used. Filtering is also applied to this numeric name.</li>
+</ol>
+<p>The filtering algorithm to create a valid name of the hints from above steps (except the first) works as follows:</p>
+<ul>
+  <li>Convert the proposed name to all lower case.</li>
+  <li>Replace all characters not in the range [0..9a..z*] by a single underscore <code>_</code>.</li>
+  <li>If the name starts with a digit prepend an underscore. Technically names with leading digits are valid, but they present major issues when using such names in JCR XPath expressions. The algorithm takes care to not create names with two or more consecutive underscore characters.</li>
+  <li>Finally the name is cut to a configurable maximum length (default is 20 characters).</li>
+</ul>
+<p>For example the <code>:nameHint</code> value <em>A quick brown Fox ...</em> is filtered to become <em>a_quick_brown_fox_</em>.</p>
+<p>After generating and filtering the name it is further guaranteed that the name is unique: If a node of the same name as just generated from the algorithm already exists below the same parent node a numeric index is appended to the new node name to make it unique.</p>
+<h5>Response Status</h5>
+<p>The modification operation has the following status responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status </th>
+      <th>Explanation </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200/OK </td>
+      <td>An existing node has been updated with content </td>
+    </tr>
+    <tr>
+      <td>201/CREATED </td>
+      <td>A new node has been created and filled with content </td>
+    </tr>
+    <tr>
+      <td>500/INTERNAL SERVER ERROR </td>
+      <td>Some exception, for example a <code>RepositoryException</code>, occurred while processing the request </td>
+    </tr>
+  </tbody>
+</table>
+<h3>Content Removal</h3>
+<p>To remove existing content just address the item to be removed and set the <code>:operation</code> parameter to <code>delete</code>. For example the following command line removes the <code>/content/sample</code> page:</p>
+<p>$ curl -F":operation=delete" http://host/content/sample</p>
+<h5>Response Status</h5>
+<p>The delete operation has the following status responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status </th>
+      <th>Explanation </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200/OK </td>
+      <td>The resource (and all its descendants) has been removed </td>
+    </tr>
+    <tr>
+      <td>404/NOT FOUND </td>
+      <td>The request URL does not address an existing repository item </td>
+    </tr>
+    <tr>
+      <td>500/INTERNAL SERVER ERROR </td>
+      <td>Some exception, for example a <code>RepositoryException</code>, occurred while processing the request </td>
+    </tr>
+  </tbody>
+</table>
+<h5>Deleting Multiple Items</h5>
+<p>By using the <code>:applyTo</code> request parameter it is possible to remove multiple items in one single request. Deleting items in this way leaves you with less control, though. In addition, if a single item removal fails, no item at all is removed.</p>
+<p>When specifying the item(s) to be removed with the <code>:applyTo</code> parameter, the request resource is left untouched (unless of course if listed in the <code>:applyTo</code> parameter) and only used to resolve any relative paths in the <code>:applyTo</code> parameter.</p>
+<p>To remove the <code>/content/page1</code> and <code>/content/page2</code> nodes, for example, you might use the following command line:</p>
+<p>$ curl -F":operation=delete" -F":applyTo=/content/page1" -F":applyTo=/content/page2" http://host/content/sample</p>
+<p>Using a trailing star in the :applyTo parameter (as mentioned before), you can remove all the children of the <code>/content</code> node, for example, as follows:</p>
+<p>$ curl -F":operation=delete" -F":applyTo=/content/*" http://host/content/sample</p>
+<p>If any resource listed in the <code>:applyTo</code> parameter does not exist, it is silently ignored.</p>
+<h6>Response Status</h6>
+<p>The delete operation applied to multiple resources has the following status responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status </th>
+      <th>Explanation </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200/OK </td>
+      <td>All requested and existing resources have been removed </td>
+    </tr>
+    <tr>
+      <td>500/INTERNAL SERVER ERROR </td>
+      <td>Some exception, for example a <code>RepositoryException</code>, occurred while processing the request </td>
+    </tr>
+  </tbody>
+</table>
+<h3>Copying Content</h3>
+<p>To copy existing content to a new location, the <code>copy</code> operation is specified. This operation copies the item addressed by the request URL to a new location indicated by the <code>:dest</code> parameter. The <code>:dest</code> parameter is the absolute or relative path to which the resource is copied. If the path is relative it is assumed to be below the same parent as the request resource. If it is terminated with a <code>/</code> character the request resource is copied to an item of the same name under the destination path.</p>
+<p>To illustrate the <code>:dest</code> parameter handling, lets look at a few examples. All examples are based on addressing the <code>/content/sample</code> item:</p>
+<table>
+  <thead>
+    <tr>
+      <th><code>:dest</code> Parameter </th>
+      <th>Destination Absolute Path </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>/content/newSample</code> </td>
+      <td><code>/content/newSample</code> </td>
+    </tr>
+    <tr>
+      <td><code>different/newSample</code> </td>
+      <td><code>/content/different/newSample</code> </td>
+    </tr>
+    <tr>
+      <td><code>/content/different/</code> </td>
+      <td><code>/content/different/sample</code> </td>
+    </tr>
+    <tr>
+      <td><code>different/</code> </td>
+      <td><code>/content/different/sample</code> </td>
+    </tr>
+  </tbody>
+</table>
+<p>If an item already exists at the location derived from the <code>:dest</code> parameter, the copy operation fails unless the <code>:replace</code> parameter is set to <code>true</code> (case is ignored when checking the parameter value).</p>
+<h5>Response Status</h5>
+<p>The copy operation has the following status responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status </th>
+      <th>Explanation </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200/OK </td>
+      <td>The node has been copied to the new location replacing an existing item at the destination </td>
+    </tr>
+    <tr>
+      <td>201/CREATED </td>
+      <td>The node has been copied to the new location creating a new item at the destination </td>
+    </tr>
+    <tr>
+      <td>404/NOT FOUND </td>
+      <td>The request URL does not address an existing repository item </td>
+    </tr>
+    <tr>
+      <td>412/PRECONDITION FAILED </td>
+      <td>An item already exists at the destination and the <code>:replace</code> parameter is not set to <code>true</code> </td>
+    </tr>
+    <tr>
+      <td>500/INTERNAL SERVER ERROR </td>
+      <td>Some exception, for example a <code>RepositoryException</code>, occurred while processing the request </td>
+    </tr>
+  </tbody>
+</table>
+<h5>Copying Multiple Items</h5>
+<p>By using the <code>:applyTo</code> request parameter it is possible to copy multiple items in one single request. Copying items in this way leaves you with less control, though. In addition, if a single item copy fails, no item at all is copied.</p>
+<p>When specifying the item(s) to be copied with the <code>:applyTo</code> parameter, the request resource is left untouched (unless of course if listed in the <code>:applyTo</code> parameter) and only used to resolve any relative paths in the <code>:applyTo</code> parameter.</p>
+<p>To copy the <code>/content/page1</code> and <code>/content/page2</code> nodes to <code>/content/target</code>, for example, use:</p>
+<p>$ curl -F":operation=copy" -F":applyTo=/content/page1" -F":applyTo=/content/page2" -F":dest=/content/target/" http://host/content/sample</p>
+<p>Please note the trailing slash character (<code>/</code>) in the value of the <code>:dest</code> parameter. This is required for multi-item copy operations using the <code>:applyTo</code> parameter. The copied items are created below the node indicated by the <code>:dest</code>.</p>
+<p>Using a trailing star in the :applyTo parameter (as mentioned before), you can copy all the children of the <code>/content</code> node, for example, as follows:</p>
+<p>$ curl -F":operation=copy" -F":applyTo=/content/*" -F":dest=/content/target/" http://host/content/sample</p>
+<p>If any resource listed in the <code>:applyTo</code> parameter does not exist, it is silently ignored. Any item already existing at the copy destination whose name is the same as the name of an item to be copied is silently overwritten with the source item.</p>
+<h6>Response Status</h6>
+<p>The copy operation applied to multiple resources has the following status responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status </th>
+      <th>Explanation </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200/OK </td>
+      <td>All requested and existing resources have been copied </td>
+    </tr>
+    <tr>
+      <td>412/PRECONDITION FAILED </td>
+      <td>The node indicated by the <code>:dest</code> parameter does not exist </td>
+    </tr>
+    <tr>
+      <td>500/INTERNAL SERVER ERROR </td>
+      <td>Some exception, for example a <code>RepositoryException</code>, occurred while processing the request. This status is also set if the <code>:dest</code> parameter value does not have a trailing slash character. </td>
+    </tr>
+  </tbody>
+</table>
+<h3>Moving Content</h3>
+<p>To move existing content to a new location, the <code>move</code> operation is specified. This operation moves the item addressed by the request URL to a new location indicated by the <code>:dest</code> parameter. The <code>:dest</code> parameter is the absolute or relative path to which the resource is moved. If the path is relative it is assumed to be below the same parent as the request resource. If it is terminated with a <code>/</code> character the request resource is moved to an item of the same name under the destination path.</p>
+<p>To illustrate the <code>:dest</code> parameter handling, lets look at a few examples. All examples are based on addressing the <code>/content/sample</code> item:</p>
+<table>
+  <thead>
+    <tr>
+      <th><code>:dest</code> Parameter </th>
+      <th>Destination Absolute Path </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>/content/newSample</code> </td>
+      <td><code>/content/newSample</code> </td>
+    </tr>
+    <tr>
+      <td><code>different/newSample</code> </td>
+      <td><code>/content/different/newSample</code> </td>
+    </tr>
+    <tr>
+      <td><code>/content/different/</code> </td>
+      <td><code>/content/different/sample</code> </td>
+    </tr>
+    <tr>
+      <td><code>different/</code> </td>
+      <td><code>/content/different/sample</code> </td>
+    </tr>
+  </tbody>
+</table>
+<p>If an item already exists at the location derived from the <code>:dest</code> parameter, the move operation fails unless the <code>:replace</code> parameter is set to <code>true</code> (case is ignored when checking the parameter value).</p>
+<h5>Response Status</h5>
+<p>The move operation has the following status responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status </th>
+      <th>Explanation </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200/OK </td>
+      <td>The node has been moved to the new location replacing an existing item at the destination </td>
+    </tr>
+    <tr>
+      <td>201/CREATED </td>
+      <td>The node has been moved to the new location creating a new item at the destination </td>
+    </tr>
+    <tr>
+      <td>404/NOT FOUND </td>
+      <td>The request URL does not address an existing repository item </td>
+    </tr>
+    <tr>
+      <td>412/PRECONDITION FAILED </td>
+      <td>An item already exists at the destination and the <code>:replace</code> parameter is not set to <code>true</code> </td>
+    </tr>
+    <tr>
+      <td>500/INTERNAL SERVER ERROR </td>
+      <td>Some exception, for example a <code>RepositoryException</code>, occurred while processing the request </td>
+    </tr>
+  </tbody>
+</table>
+<h5>Moving Multiple Items</h5>
+<p>By using the <code>:applyTo</code> request parameter it is possible to move multiple items in one single request. Moving items in this way leaves you with less control, though. In addition, if a single item move fails, no item at all is moved.</p>
+<p>When specifying the item(s) to be moved with the <code>:applyTo</code> parameter, the request resource is left untouched (unless of course if listed in the <code>:applyTo</code> parameter) and only used to resolve any relative paths in the <code>:applyTo</code> parameter.</p>
+<p>To for example move the <code>/content/page1</code> and <code>/content/page2</code> nodes to <code>/content/target</code>, you might use the following command line:</p>
+<p>$ curl -F":operation=move" -F":applyTo=/content/page1" -F":applyTo=/content/page2" -F":dest=/content/target/" http://host/content/sample</p>
+<p>Please note the trailing slash character (<code>/</code>) in the value of the <code>:dest</code> parameter. This is required for multi-item move operations using the <code>:applyTo</code> parameter. The moved items are created below the node indicated by the <code>:dest</code>.</p>
+<p>Using a trailing star in the :applyTo parameter (as mentioned before), you can move all the children of the <code>/content</code> node, for example, as follows:</p>
+<p>$ curl -F":operation=move" -F":applyTo=/content/*" -F":dest=/content/target/" http://host/content/sample</p>
+<p>If any resource listed in the <code>:applyTo</code> parameter does not exist, it is silently ignored. Any item already existing at the move destination whose name is the same as the name of an item to be moved is silently overwritten with the source item.</p>
+<h6>Response Status</h6>
+<p>The move operation applied to multiple resources has the following status responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status </th>
+      <th>Explanation </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200/OK </td>
+      <td>All requested and existing resources have been moved </td>
+    </tr>
+    <tr>
+      <td>412/PRECONDITION FAILED </td>
+      <td>The node indicated by the <code>:dest</code> parameter does not exist </td>
+    </tr>
+    <tr>
+      <td>500/INTERNAL SERVER ERROR </td>
+      <td>Some exception, for example a <code>RepositoryException</code>, occurred while processing the request. This status is also set if the <code>:dest</code> parameter value does not have a trailing slash character. </td>
+    </tr>
+  </tbody>
+</table>
+<h3>Importing Content Structures</h3>
+<p>To import content structures just address the parent item to import into and set the <code>:operation</code> parameter to <code>import</code>.</p>
+<p>The optional name of the root node of the imported content may optionally be supplied using the <a href="#algorithm-for-node-name-creation">Algorithm for Node Name Creation</a>.</p>
+<p>Other parameters for the import operation:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter </th>
+      <th>Required </th>
+      <th>Default value </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>:contentType</code> </td>
+      <td><code>true</code> </td>
+      <td> </td>
+      <td>The <code>:contentType</code> value specifies the type of content being imported. Possible values are: xml, jcr.xml, json, jar, zip </td>
+    </tr>
+    <tr>
+      <td><code>:content</code> </td>
+      <td><code>false</code> </td>
+      <td> </td>
+      <td>The <code>:content</code> value specifies content string to import. The format of the import content is the same as is used by the jcr.contentloader bundle. This parameter is required if the :contentFile parameter is not supplied. </td>
+    </tr>
+    <tr>
+      <td><code>:contentFile</code> </td>
+      <td><code>false</code> </td>
+      <td> </td>
+      <td>The <code>:contentFile</code> value specifies a file uploaded for import. The format of the import content is the same as is used by the jcr.contentloader bundle. This parameter is required if the :content parameter is not supplied. </td>
+    </tr>
+    <tr>
+      <td><code>:checkin</code> </td>
+      <td><code>false</code> </td>
+      <td>false </td>
+      <td>The <code>:checkin</code> value specifies whether versionable nodes should be checked in during the import. </td>
+    </tr>
+    <tr>
+      <td><code>:autoCheckout</code> </td>
+      <td><code>false</code> </td>
+      <td>false </td>
+      <td>The <code>:autoCheckout</code> value specifies whether versionable nodes should be checked out when necessary during the import. </td>
+    </tr>
+    <tr>
+      <td><code>:replace</code> </td>
+      <td><code>false</code> </td>
+      <td>false </td>
+      <td>The <code>:replace</code> value specifies whether the import should replace any existing nodes at the same path. Note: When true, the existing nodes will be deleted and a new node is created in the same place. </td>
+    </tr>
+    <tr>
+      <td><code>:replaceProperties</code> </td>
+      <td><code>false</code> </td>
+      <td>false </td>
+      <td>The <code>:replaceProperties</code> value specifies whether the import should replace properties if they already exist. </td>
+    </tr>
+  </tbody>
+</table>
+<p>For example the following command line imports the <code>/content/sample</code> page:</p>
+<p>$ curl -F":operation=import" -F":contentType=json" -F":name=sample" -F':content={ "jcr:primaryType": "nt:unstructured", "propOne" : "propOneValue", "childOne" : { "childPropOne" : true } }' http://host/content</p>
+<p>For example the following command line imports the <code>/content/sample</code> page without the optional name parameter:</p>
+<p>$ curl -F":operation=import" -F":contentType=json" -F':content={ "sample" : {"propOne" : "propOneValue", "childOne" : { "childPropOne" : true } } }' http://host/content</p>
+<p>For example the following form imports the <code>/content/sample</code> page:</p>
+<form method="POST" action="/content" enctype="multipart/form-data">
+<input type="hidden" name=":operation" value="import" />
+<input type="hidden" name=":contentType" value="json" />
+<input type="hidden" name=":nameHint" value="sample" />
+
+<input type="text" name=":content" value="{ &quot;jcr:primaryType&quot; : &quot;nt:unstructured&quot; , &quot;propOne&quot; : &quot;propOneValue&quot;, &quot;childOne&quot; : { &quot;childPropOne&quot; : true } }" />
+<input type="Submit" />
+</form>
+<p>For example the following form imports content from a file upload:</p>
+<form method="POST" action="/content" enctype="multipart/form-data">
+<input type="hidden" name=":operation" value="import" />
+<input type="hidden" name=":contentType" value="json" />
+<input type="hidden" name=":nameHint" value="sample" />
+
+<input type="file" name=":contentFile" />
+<input type="Submit" />
+</form>
+<h6>Response Status</h6>
+<p>The move operation applied to multiple resources has the following status responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status </th>
+      <th>Explanation </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200/OK </td>
+      <td>All requested content has been imported </td>
+    </tr>
+    <tr>
+      <td>404/NOT FOUND </td>
+      <td>The target parent node does not exist </td>
+    </tr>
+    <tr>
+      <td>412/PRECONDITION FAILED </td>
+      <td>One or more of the required parameters does not exist </td>
+    </tr>
+    <tr>
+      <td>500/INTERNAL SERVER ERROR </td>
+      <td>Some exception, for example a <code>RepositoryException</code>, occurred while processing the request. This status is also set if the ContentImporter service is missing. </td>
+    </tr>
+  </tbody>
+</table>
+<h3>Null Operation</h3>
+<p>Sometimes it is useful to explicitly request that nothing is to be done. The SlingPostServlet now provides such an operation under the name <code>nop</code>. Apart from doing nothing, the <code>nop</code> operations sets the response status to either the default <code>200/OK</code> or to any status requested by the <code>:nopstatus</code> request parameter.</p>
+<p>The <code>:nopstatus</code> request parameter must be an integral number in the range [ 100 .. 999 ]. If the parameter value cannot be parsed to an integer or the value is outside of this range, the default status <code>200/OK</code> is still set.</p>
+<h6>Response Status</h6>
+<p>The null operation sets a default status or the status requested by the <code>:nopstatus</code> request parameter.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status </th>
+      <th>Explanation </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200/OK </td>
+      <td>Default status set if <code>:nopstatus</code> parameter is not set or does not have a valid value </td>
+    </tr>
+    <tr>
+      <td>{:nopstatus} </td>
+      <td>The status as requested by the <code>:nopstatus</code> parameter </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Special Parameters</h2>
+<p>Some parameters have special significance for the complete processing of the SlingPostServlet or are used by multiple operations. This section summarizes these parameters:</p>
+<h3><code>:order</code></h3>
+<p>Child nodes may be ordered if the primary node type of their common parent node is defined as having orderable child nodes. To employ such ordering, the content creation/modification, move and copy operations support the <code>:order</code> parameter which apply child node ordering amongst its siblings of the target node.</p>
+<p>The <code>:order</code> parameter may have the following values:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Value </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>first</code> </td>
+      <td>Place the target node as the first amongst its siblings </td>
+    </tr>
+    <tr>
+      <td><code>last</code> </td>
+      <td>Place the target node as the last amongst its siblings </td>
+    </tr>
+    <tr>
+      <td><code>before *xyz*</code> </td>
+      <td>Place the target node immediately before the sibling whose name is <em>xyz</em> </td>
+    </tr>
+    <tr>
+      <td><code>after *xyz*</code> </td>
+      <td>Place the target node immediately after the sibling whose name is <em>xyz</em> </td>
+    </tr>
+    <tr>
+      <td>numeric </td>
+      <td>Place the target node at the indicated numeric place amongst its siblings where <em>0</em> is equivalent to <code>first</code> and <em>1</em> means the second place </td>
+    </tr>
+  </tbody>
+</table>
+<p>Note that simple content reordering can be requested without applying any other operations. This is easiest done by placing a request to the resource to be reordered and just setting the <code>:order</code> parameter. For example to order the <code>/content/sample/page5</code> resource above its sibling resource <code>/content/sample/other</code> a simple request</p>
+<p>$ curl -F":order=before other" http://host/content/sample/page5</p>
+<p>does the trick. To be redirected after the reodering, the <code>:redirect</code> parameter may optionally also be specified.</p>
+<h3><code>:redirect</code></h3>
+<p>Instructs the SlingPostServlet to redirect the client to the indicated location if the operation succeeds. That is the response status is set to <em>302/FOUND</em> and the <code>Location</code> header is set to the value of the <code>:redirect</code> parameter.</p>
+<h3><code>:status</code></h3>
+<p>By default the SlingPostServlet sets response status according to the status of the operation executed. In some cases, it may be desirable to not have the real status codes (e.g. 404 or 505) but a normal <em>200/OK</em> to trick the client browser into displaying the response content generated by the SlingPostServlet.</p>
+<p>To not send the actual response status back to the client, the <code>:status</code> request parameter should be set to <code>browser</code>. If this parameter is not set, is empty, is set to <code>standard</code> or to any other value, the actual status code is sent back to the client.</p>
+<h2>Response format</h2>
+<p>The SlingPostServlet produces a basic HTTP response body, listing the response status, what changes have been made, and other meta-data about the result of the POST request.</p>
+<p>The format of this response is either HTML or JSON (JSON support introduced with <a href="https://issues.apache.org/jira/browse/SLING-1336">SLING-1336</a>). SlingPostServlet determines which format to use by examining the Accept header of the incoming request. If the client has specified a preference for the media type "application/json", the JSON format is used, otherwise HTML is returned. The Accept header can be overridden (and simulated) by posting a :http-equiv-accept field, which should have the same format as the Accept header.</p>
+<p>Examples:</p>
+<ol>
+  <li>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,**/**;q=0.8</li>
+  <li>Accept: application/json,**/**;q=0.9</li>
+</ol>
+<p>In example #1, SlingPostServlet will return HTML, since the client has specified a preference for text/html. In example #2, SlingPostServlet will return JSON.</p>
+<p>See <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">RFC 2616, section 14.1</a> for information on the HTTP Accept header.</p>
+<h2>Versionable Node Support</h2>
+<p>The modify (default), delete, move, and copy operations of the SlingPostServlet support JCR Versionable Nodes. By default, when a node needs to be checked out for a modification to occur, it will be checked out and any nodes the operation checks out will be checked in upon completion of the request. Newly created versionable nodes (or non-versionable nodes made versionable by adding the mix:versionable mixin) will be left in their default, checked out state.</p>
+<p>This default behavior can be modified either globally (i.e. for all requests) or on a per-request basis. The global behavior is changed through OSGi ConfigAdmin using these three properties of the PID <code>org.apache.sling.servlets.post.impl.SlingPostServlet</code>:</p>
+<ul>
+  <li><code>servlet.post.checkinNewVersionableNodes</code></li>
+  <li><code>servlet.post.autoCheckout</code></li>
+  <li><code>servlet.post.autoCheckin</code></li>
+</ul>
+<p><img src="2010-07-01_1036.png" /></p>
+<p>On a per-request basis, these request parameters can be used:</p>
+<ul>
+  <li><code>:checkinNewVersionableNodes</code></li>
+  <li><code>:autoCheckout</code></li>
+  <li><code>:autoCheckin</code></li>
+</ul>
+<p>Checkout and Check In changes will be reflected in the ChangeLog portion of the response.</p>
+<h2>Extending the SlingPostServlet</h2>
+<h3>Additional POST operations</h3>
+<p>OSGi services of the <code>org.apache.sling.servlets.post.PostOperation</code> type can be used to implement new POST operations.</p>
+<p>Such services must have a <code>sling.post.operation</code> service registration property set to the name of the operation. This name is used as the value of the <code>:operation</code> parameter of POST requests to select the extended operation.</p>
+<p>Before version 2.1.2 of the <em>org.apache.sling.servlets.post</em> bundle, such additional operations were implemented by the <code>org.apache.sling.servlets.post.SlingPostOperation</code> interface, which is now deprecated but still supported via a bridge. See <a href="https://issues.apache.org/jira/browse/SLING-1725">SLING-1725</a> for details and discussions about this change.</p>
+<p>Two examples (old and new style) of additional POST operations are found in the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/post/">test-services</a> module, with the corresponding test code in the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/CustomPostOperationTest.java">integration-tests</a> module.</p>
+<h3>SlingPostProcessor</h3>
+<p>OSGi services of the <code>org.apache.sling.servlets.post.SlingPostOperation</code> type can be used to post process <code>PostOperation</code>s. They are called after the operation has performed its changes but before the changes are persisted (via commit). All registered SlingPostProcessors are always called in the reverse order of their service ranking (i.e. the one with the highest service ranking first).</p>
+<p>A <code>SlingPostProcessor</code> may perform additional changes or revert previous ones. It is important that the <code>SlingPostProcessor</code> does not commit its changes but rather only performs the changes in the transient space (with the resource resolver bound to the current request) and in addition reports the changes through the 2nd parameter of the method <code>process(SlingHttpServletRequest, List&lt;Modification&gt;)</code>.</p>
+<p>Two examples of SlingPostProcessors are found in the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/post/">test-services</a> module, with the corresponding test code in the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/SlingPostProcessorTest">integration-tests</a> module.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/metrics.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/metrics.html b/documentation/bundles/metrics.html
new file mode 100644
index 0000000..2b24803
--- /dev/null
+++ b/documentation/bundles/metrics.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Metrics</h1></header><p>Sling Metrics bundle provides integration with <a href="http://metrics.dropwizard.io/">Dropwizard Metrics</a> library which provides a toolkit to capture runtime performance statistics in your application.</p>
+<h2>Features</h2>
+<ul>
+  <li>Registers a <a href="https://github.com/apache/sling/blob/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/MetricsService.java">MetricsService</a> which can be used to create various types of Metric instances</li>
+  <li>WebConsole Plugin which provides a HTML Reporter for the various Metric instances</li>
+  <li>Inventory Plugin which dumps the Metric state in plain text format</li>
+</ul>
+<h2>Basic Usage</h2>
+<p>:::java import org.apache.sling.metrics.Counter; import org.apache.sling.metrics.MetricsService;</p>
+<p>@Reference private MetricsService metricsService;</p>
+<p>private Counter counter;</p>
+<p>@Activate private void activate(){ counter = metricsService.counter("sessionCounter"); }</p>
+<p>public void onSessionCreation(){ counter.increment(); }</p>
+<p>To make use of <code>MetricsService</code></p>
+<ol>
+  <li>Get a reference to <code>org.apache.sling.metrics.MetricsService</code></li>
+  <li>Initialize the metric e.g. Counter in above case. This avoids any potential lookup cost in critical code paths</li>
+  <li>Make use of metric instance to capture require stats</li>
+</ol>
+<p>Refer to <a href="https://dropwizard.github.io/metrics/3.1.0/getting-started/#counters">Metric Getting Started</a> guide to see how various types of Metric instances can be used. Note that when using Sling Commons Metrics bundle class names belong to <code>org.apache.sling.commons.metrics</code> package</p>
+<h2>Best Practices</h2>
+<ol>
+  <li>Use descriptive names - Qualify the name with class/package name where the metric is being used</li>
+  <li>Do not use the metrics for operation which take less than 1E-7s i.e. 1000 nano seconds otherwise timer overhead (Metrics makes use of System.nanoTime) would start affecting the performance.</li>
+</ol>
+<h2>API</h2>
+<p>Sling Metrics bundle provides its own Metric classes which are modelled on <a href="http://metrics.dropwizard.io/">Dropwizard Metrics</a> library. The metric interfaces defined by Sling bundle only provides methods related to data collection.</p>
+<ul>
+  <li><a href="https://github.com/apache/sling/blob/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Meter.java">org.apache.sling.commons.metrics.Meter</a> - Similar to <a href="https://dropwizard.github.io/metrics/3.1.0/manual/core/#meters">Dropwizard Meter</a></li>
+  <li><a href="https://github.com/apache/sling/blob/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Timer.java">org.apache.sling.commons.metrics.Timer</a> - Similar to <a href="https://dropwizard.github.io/metrics/3.1.0/manual/core/#timers">Dropwizard Timer</a></li>
+  <li><a href="https://github.com/apache/sling/blob/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counter.java">org.apache.sling.commons.metrics.Counter</a> - Similar to <a href="https://dropwizard.github.io/metrics/3.1.0/manual/core/#counters">Dropwizard Counter</a></li>
+  <li><a href="https://github.com/apache/sling/blob/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Histogram.java">org.apache.sling.commons.metrics.Histogram</a> - Similar to <a href="https://dropwizard.github.io/metrics/3.1.0/manual/core/#histograms">Dropwizard Histogram</a></li>
+</ul>
+<p>Further it provides a <code>MetricsService</code> which enables creation of different type of Metrics like Meter, Timer, Counter and Histogram.</p>
+<h3>Requirement of wrapper interfaces</h3>
+<ul>
+  <li>Abstraction - Provides an abstraction around how metrics are collected and how they are reported and consumed. Most of the code would only be concerned with collecting interesting data. How it gets consumed or reported is implementation detail.</li>
+  <li>Ability to turnoff stats collection - We can easily turn off data collection by switching to NOOP variant of <code>MetricsService</code> in case it starts adding appreciable overhead. Turning on and off can also be done on individual metric basis.</li>
+</ul>
+<p>It also allows us to later extend the type of data collected. For e.g. we can also collect <a href="https://jackrabbit.apache.org/api/2.6/org/apache/jackrabbit/api/stats/TimeSeries.html">TimerSeries</a> type of data for each metric without modifying the caller logic.</p>
+<h3>Access to Dropwizard Metrics API</h3>
+<p>Sling Metrics bundle also registers the <code>MetricRegistry</code> instance with OSGi service registry. The instance registered has a service property <code>name</code> set to <code>sling</code> (so as allow distinguishing from any other registered <code>MetricRegistry</code> instance). It can be used to get direct access to Dropwizard Metric API if required.</p>
+<p>:::java @Reference(target = "(name=sling)") private MetricRegistry registry;</p>
+<p>Also the wrapper Metric instance can be converted to actual instance via <code>adaptTo</code> calls.</p>
+<p>:::java import org.apache.sling.commons.metrics.Counter</p>
+<p>Counter counter = metricService.counter("login"); com.codahale.metrics.Counter = counter.adaptTo(com.codahale.metrics.Counter.class)</p>
+<h2>WebConsole Plugin</h2>
+<p>A Web Console plugin is also provided which is accessible at http://localhost:8080/system/console/slingmetrics. It lists down all registered Metric instances and their state.</p>
+<p><img src="/documentation/bundles/metric-web-console.png" alt="Metric Plugin" /></p>
+<p>The plugin lists all Metric instances from any <code>MetricRegistry</code> instance found in the OSGi service registry. If the <code>MetricRegistry</code> service has a <code>name</code> property defined then that would be prefixed to the Metric names from that registry. This allows use of same name in different registry instances.</p>
+<h2>Installation</h2>
+<p>Add following Maven dependency to your pom.xml:</p>
+<p>:::xml <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.commons.metrics</artifactId> <version>1.0.0</version> </dependency></p>
+<p>Or download from <a href="http://sling.apache.org/downloads.cgi">here</a></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[24/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/context-aware-configuration/context-aware-configuration.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/context-aware-configuration/context-aware-configuration.md b/content/documentation/bundles/context-aware-configuration/context-aware-configuration.md
deleted file mode 100644
index a092cfa..0000000
--- a/content/documentation/bundles/context-aware-configuration/context-aware-configuration.md
+++ /dev/null
@@ -1,255 +0,0 @@
-title=Apache Sling Context-Aware Configuration		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-# About
-
-These bundles provide a service API that can be used to get context-aware configurations. Context-aware configurations are configurations that are related to a content resource or a resource tree, e.g. a web site or a tenant site.
-
-Here is an example how your content structure may look like:
-
-![Configuration example](context-aware-config-example.png)
-
-The application needs different configuration for different sites, regions and tenants = different contexts. Some parameters may be shared, so inheritance for nested contexts and from global fallback values is supported as well. You have full control which content subtrees are the contexts in your application, the structure above is only an example.
-
-Using the Context-Aware Configuration Java API you can get the matching configuration for each content resource without caring where it is stored or how the inheritance works.
-
-
-# Java API
-
-To get and use configurations, the Java API must be used. Any using code must not make any assumptions on how the context-aware configurations are searched or stored!
-
-The Java API consists of two parts:
-
-- Context-Aware Resources: 'Low-level' API for accessing configuration resources (which can be anything, e.g. workflow definitions)
-- Context-Aware Configurations: 'High-level' API for accessing configuration data (key/value pairs)
-
-In most cases you will use only the 'High-level' API for getting context-aware configurations.
-
-
-## Context-Aware Resources
-
-The base concept are context-aware resources: for a given content resource, a named configuration resource can be get.
-The service for getting the configuration resources is called the ConfigurationResourceResolver. This service has two methods:
-
-- getting a named configuration resource
-- getting all child resources of a named configuration resource.
-
-For example to get a configuration resource for a content resource at /content/mysite/page1, you would get a reference to the OSGi service
-`org.apache.sling.caconfig.resource.ConfigurationResourceResolver` and write:
-
-#!java
-Resource contentResource = resourceResolver.getResource("/content/mysite/page1");
-
-Resource configResource = configurationResourceResolver.getResource(contentResource, "my-bucket", "my-config");
-
-Or if you have several configuration resources of the same type and you need all of them:
-
-#!java
-Collection<Resource> configResources = configurationResourceResolver.getResourceCollection(contentResource, "my-bucket", "my-config");
-
-The ConfigurationResourceResolver has a concept of "buckets" (2nd parameter in the method signatures) that allows to separate different types of configuration resources into different resource hierarchies, so you have a separate "namespaces" for the named configuration resources. For example one bucket for workflow definitions, one bucket for template definitions, one for key/value-pairs.
-
-The configuration name (3rd parameter) defines which configuration you are interested in. The name can be a relative path as well (e.g. `"sub1/my-config"`).
-
-
-## Context-Aware Configurations
-
-While context-aware resources give you pure resources and your application code can decide what to do with it,
-the most common use case is some configuration. A configuration is usually described by an annotation class
-(like Declarative Services does for component configurations). These are typed configuration objects
-and the context-aware configuration support automatically converts resources into the wanted configuration type.
-
-Context-aware configurations are built on top of context-aware resources. The same concept is used: configurations are
-named and the service to get them is the ConfigurationResolver. You can get a reference to the OSGi service
-`org.apache.sling.caconfig.ConfigurationResolver` - it has a single method to get a ConfigurationBuilder.
-Alternatively you can directly adapt your content resource directly to the ConfigurationBuilder interface and get the configuration:
-
-#!java
-Resource contentResource = resourceResolver.getResource("/content/mysite/page1");
-
-MyConfig config = contentResource.adaptTo(ConfigurationBuilder.class).as(MyConfig.class);
-
-Or if you want to get a list of configurations:
-
-#!java
-Collection<MyConfig> configs = contentResource.adaptTo(ConfigurationBuilder.class).asCollection(MyConfig.class);
-
-The ConfigurationBuilder also supports getting the configurations as ValueMap or by adapting the configuration resources e.g. to a Sling Model. In this case you have to specify a configuration name which is otherwise derived automatically from the annotation class.
-
-Internally the ConfigurationResolver used the ConfigurationResourceResolver to get the configuration resources. It uses always the bucket name `sling:configs`.
-
-
-# Contexts and configuration references
-
-When you use the [Default Implementation][default-impl] contexts in the content resource hierarchy is defined by setting `sling:configRef` properties. Each resource that has a `sling:configRef` property set defines the root resource of a context, the whole subtree is the context. Within the subtree further nested contexts can be defined. The property contains a resource path pointing to a resource below `/conf`. This is the configuration reference.
-
-Example:
-
-![Context and config reference](context-and-config-reference.png)
-
-If you define nested contexts or use a deeper hierarchy of resourced in `/conf` the inheritance rules are applied. Additionally it is possible to define default values as fallback if no configuration resource exists yet in `/conf`. See [Default Implementation][default-impl] for details.
-
-
-# Describe configurations via annotation classes
-
-You need an annotation class for each configuration you want to read via the ConfigurationBuilder. The annotation classes may be provided by
-the applications/libraries you use, or you can define your own annotation classes for your application.
-
-The annotation class may look like this:
-
-#!java
-@Configuration(label="My Configuration", description="Describe me")
-public @interface MyConfig {
-
-@Property(label="Parameter #1", description="Describe me")
-String param1();
-
-@Property(label="Parameter with Default value", description="Describe me")
-String paramWithDefault() default "defValue";
-
-@Property(label="Integer parameter", description="Describe me")
-int intParam();
-
-}
-
-The `@Configuration` annotation is mandatory. All properties on the `@Configuration` annotation and the `@Property` annotations are optional - they provide additional metadata for tooling e.g. configuration editors.
-
-By default the annotation class name is used as configuration name, which is also the recommended option. If you want to use an arbitrary configuration name you can specify it via a `name` property on the `@Configuration` annotation.
-
-You may specify custom properties (via `property` string array) for the configuration class or each properties. They are not used by the Sling Context-Aware configuration implementation, but may be used by additional tooling to manage the configurations.
-
-If you provide your own configuration annotation classes in your bundle, you have to export them and list all class names in a bundle header named `Sling-ContextAware-Configuration-Classes` - example:
-
-Sling-ContextAware-Configuration-Classes: x.y.z.MyConfig, x.y.z.MyConfig2
-
-To automate this you can use the Context-Aware Configuration bnd plugin (see next chapter).
-
-
-# Accessing configuration from HTL/Sightly templates
-
-Context-Aware configuration contains a Scripting Binding Values provider with automatically registeres a `caconfig` variable in your HTL/Sightly scripts to directly access context-aware configurations. It supports both singleton configurations and configuration lists. Please note that configuration lists are only supported when configuration metadata is present (e.g. via an annotation class).
-
-Example for accessing a property of a singleton configuration (with a config name `x.y.z.ConfigSample`):
-
-#!html
-<dl>
-<dt>stringParam:</dt>
-<dd>${caconfig['x.y.z.ConfigSample'].stringParam}</dd>
-</dl>
-
-Example for accessing a property of a configuration list (with a config name `x.y.z.ConfigSampleList`):
-
-#!html
-<ul data-sly-list.item="${caconfig['x.y.z.ConfigSampleList']}">
-<li>stringParam: ${item.stringParam}</li>
-</ul>
-
-If you want to access nested configurations you have to use a slash "/" as separator in the property name. Example:
-
-#!html
-${caconfig['x.y.z.ConfigSample']['nestedConfig/stringParam']}
-
-
-# Context-Aware Configuration bnd plugin
-
-A [bnd](http://bnd.bndtools.org/) plugin is provided that scans the classpath of a bundle Maven project at build time and automatically generates a `Sling-ContextAware-Configuration-Classes` bundle header for all annotation classes annotated with `@Configuration`. It can be used by both [maven-bundle-plugin](http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html) and [bnd-maven-plugin](https://github.com/bndtools/bnd/tree/master/maven), as both use the bnd library internally.
-
-Example configuration:
-
-#!xml
-<plugin>
-<groupId>org.apache.felix</groupId>
-<artifactId>maven-bundle-plugin</artifactId>
-<extensions>true</extensions>
-<configuration>
-<instructions>
-<!-- Generate bundle header containing all configuration annotation classes -->
-<_plugin>org.apache.sling.caconfig.bndplugin.ConfigurationClassScannerPlugin</_plugin>
-</instructions>
-</configuration>
-<dependencies>
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.caconfig.bnd-plugin</artifactId>
-<version>1.0.2</version>
-</dependency>
-</dependencies>
-</plugin>
-
-
-# Unit Tests with Context-Aware Configuration
-
-When your code depends on Sling Context-Aware Configuration and you want to write Sling Mocks-based unit tests running against the Context-Aware configuration implementation you have to register the proper OSGi services to use them. To make this easier, a "Apache Sling Context-Aware Configuration Mock Plugin" is provided which does this job for you.
-
-Example for setting up the unit test context rule:
-
-#!java
-import static org.apache.sling.testing.mock.caconfig.ContextPlugins.CACONFIG;
-
-public class MyTest {
-
-@Rule
-public SlingContext context = new SlingContextBuilder().plugin(CACONFIG).build();
-
-@Before
-public void setUp() {
-// register configuration annotation class
-MockContextAwareConfig.registerAnnotationClasses(context, SimpleConfig.class);
-}
-...
-
-In you project define a test dependency (additionally the sling-mock dependency is required):
-
-#!xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.testing.caconfig-mock-plugin</artifactId>
-<scope>test</scope>
-</dependency>
-
-Full example: [Apache Sling Context-Aware Configuration Mock Plugin Test](https://github.com/apache/sling/blob/trunk/testing/mocks/caconfig-mock-plugin/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java)
-
-
-# Customizing the configuration lookup
-
-The Context-Aware Configuration implementation provides a set of Service Provider Interfaces (SPI) that allows you to overlay, enhance or replace the default implementation and adapt it to your needs.
-
-See [SPI][spi] for details.
-
-You can also override specific context-aware configuration within an instance - see [Override][override] for details.
-
-
-# Web Console plugins
-
-The Context-Aware Configuration implementation provides two extension to the Felix Web Console:
-
-- A plugin "Sling / Context-Aware Configuration" that allows to test configuration resolution and prints outs all metadata. This is helpful debugging the resolution and collection and property inheritance. For each resource and property value the the real source resource path is listed.
-- A inventory printer "Sling Context-Aware Configuration" which lists all SPI implementations that are deployed, and additionally prints out all configuration metadata and override strings
-
-To use the web console plugin you need to configure a "Service User" mapping for the bundle `org.apache.sling.caconfig.impl` to a system user which has read access to all context and configuration resources. By default this should be `/content`, `/conf`, `/apps/conf` and `/libs/conf`.
-
-
-# Management API
-
-The Context-Aware Configuration Implementation Bundle provides a Management API which allows to read and write configuration data. It supports only Context-Aware configurations, not context-aware resources. It should not be used directly in applications, but is intended to provide an API for editor GUIs and other tools which allow to manage configurations.
-
-The main entry point is the OSGi service `org.apache.sling.caconfig.management.ConfigurationManager`. It allows to get, write or delete singleton configurations and configuration lists. Configuration data is returned using `ConfigurationData` and `ConfigurationCollectionData` objects which also provide access to additional metadata about the resolving process and inheritance/override status of each property. Internally the configuration manager uses the [SPI][spi] implementation to resolve and write the configuration data.
-
-Whenever configuration data is read or written from the configuration resources a filtering of property names is applied to make sure "system properties" like `jcr:primaryType` or `jcr:created` are not returned as part of the configuration data. A list of regular expressions for this filtering can be configured via the "Apache Sling Context-Aware Configuration Management Settings" OSGi configuration. The configuration is accessible to custom persistence implementations via the `org.apache.sling.caconfig.management.ConfigurationManagementSettings` OSGi service. By default all properties in the `jcr:` namespace are filtered out.
-
-
-# References
-
-* [Context-Aware Configuration - Default Implementation][default-impl]
-* [Context-Aware Configuration - SPI][spi]
-* [Context-Aware Configuration - Override][override]
-* [Sling Context-Aware Configuration - Talk from adaptTo() 2016](https://adapt.to/2016/en/schedule/sling-context-aware-configuration.html)
-
-
-[default-impl]: http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html
-[spi]: http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html
-[override]: http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/context-aware-configuration/illustration-sources.pptx
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/context-aware-configuration/illustration-sources.pptx b/content/documentation/bundles/context-aware-configuration/illustration-sources.pptx
deleted file mode 100644
index 324604e..0000000
Binary files a/content/documentation/bundles/context-aware-configuration/illustration-sources.pptx and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/context-aware-configuration/resource-inheritance.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/context-aware-configuration/resource-inheritance.png b/content/documentation/bundles/context-aware-configuration/resource-inheritance.png
deleted file mode 100644
index 89cc9f4..0000000
Binary files a/content/documentation/bundles/context-aware-configuration/resource-inheritance.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/datasource-providers.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/datasource-providers.md b/content/documentation/bundles/datasource-providers.md
deleted file mode 100644
index 64942c8..0000000
--- a/content/documentation/bundles/datasource-providers.md
+++ /dev/null
@@ -1,123 +0,0 @@
-title=DataSource Provider		
-type=page
-status=published
-~~~~~~
-
-DataSource provider bundle supports creation of `DataSource` instance and registering them with
-the OSGi service registry. Application using the DataSource just obtains it from OSGi while
-an administrator can configure the DataSource via Felix WebConsole configuration UI.
-
-[TOC]
-
-## Pooled Connection DataSource Provider
-
-This bundle enables creating and configuring JDBC DataSource in OSGi environment based on
-OSGi configuration. It uses [Tomcat JDBC Pool][1] as the JDBC Connection Pool provider.
-
-1. Supports configuring the DataSource based on OSGi config with rich metatype
-2. Supports deploying of JDBC Driver as independent bundles and not as fragment
-3. Exposes the DataSource stats as JMX MBean
-4. Supports updating of DataSource connection pool properties at runtime without restart
-
-### Driver Loading
-
-Loading of JDBC driver is tricky on OSGi env. Mostly one has to attach the Driver bundle as a
-fragment bundle to the code which creates the JDBC Connection.
-
-With JDBC 4 onwards the Driver class can be loaded via Java SE Service Provider mechanism (SPM)
-JDBC 4.0 drivers must include the file META-INF/services/java.sql.Driver. This file contains
-the name of the JDBC driver's implementation of java.sql.Driver. For example, to load the JDBC
-driver to connect to a Apache Derby database, the META-INF/services/java.sql.Driver file would
-contain the following entry:
-
-org.apache.derby.jdbc.EmbeddedDriver
-
-Sling DataSource Provider bundles maintains a `DriverRegistry` which contains mapping of Driver
-bundle to Driver class supported by it. With this feature there is no need to wrap the Driver
-bundle as fragment to DataSource provider bundle
-
-
-### Configuration
-
-1. Install the current bundle
-2. Install the JDBC Driver bundle
-3. Configure the DataSource from OSGi config for PID `org.apache.sling.datasource.DataSourceFactory`
-
-If Felix WebConsole is used then you can configure it via Configuration UI at
-http://localhost:8080/system/console/configMgr/org.apache.sling.datasource.DataSourceFactory
-
-![Web Console Config](/documentation/development/sling-datasource-config.png)
-
-Using the config ui above one can directly configure most of the properties as explained in [Tomcat Docs][1]
-
-### Convert Driver jars to Bundle
-
-Most of the JDBC driver jars have the required OSGi headers and can be directly deployed to OSGi container
-as bundles. However some of the drivers e.g. Postgres are not having such headers and hence need to be
-converted to OSGi bundles. For them we can use the [Bnd Wrap][2] command.
-
-For example to convert the Postgres driver jar follow the steps below
-
-$ wget https://github.com/bndtools/bnd/releases/download/2.3.0.REL/biz.aQute.bnd-2.3.0.jar -O bnd.jar
-$ wget http://jdbc.postgresql.org/download/postgresql-9.3-1101.jdbc41.jar
-$ cat > bnd.bnd <<EOT
-Bundle-Version: 9.3.1101
-Bundle-SymbolicName: org.postgresql
-Export-Package: org.postgresql
-Include-Resource: @postgresql-9.3-1101.jdbc41.jar
-EOT
-$ java -jar bnd.jar bnd.bnd
-
-In the steps above we
-
-1. Download the bnd jar and postgres driver jar
-2. Create a bnd file with required instructions.
-3. Execute the bnd command
-4. Resulting bundle is present in `org.postgresql-9.3.1101.jar`
-
-## JNDI DataSource
-
-While running in Application Server the DataSource instance might be managed by app server and registered with
-JNDI. To enable lookup of DataSource instance from JNDI you can configure `JNDIDataSourceFactory`
-
-1. Configure the DataSource from OSGi config for PID `org.apache.sling.datasource.JNDIDataSourceFactory`
-2. Provide the JNDI name to lookup from and other details
-
-If Felix WebConsole is used then you can configure it via Configuration UI at
-http://localhost:8080/system/console/configMgr/org.apache.sling.datasource.JNDIDataSourceFactory
-
-Once configured `JNDIDataSourceFactory` would lookup the DataSource instance and register it with OSGi
-ServiceRegistry
-
-## Usage
-
-Once the required configuration is done the `DataSource` would be registered as part of the OSGi Service Registry
-The service is registered with service property `datasource.name` whose value is the name of datasource provided in
-OSGi config.
-
-Following snippet demonstrates accessing the DataSource named `foo` via DS annotation
-
-::java
-import javax.sql.DataSource;
-import org.apache.felix.scr.annotations.Reference;
-
-public class DSExample {
-
-@Reference(target = "(&(objectclass=javax.sql.DataSource)(datasource.name=foo))")
-private DataSource dataSource;
-}
-
-## Installation
-
-Download the bundle from [here][3] or use following Maven dependency
-
-::xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.datasource</artifactId>
-<version>1.0.0</version>
-</dependency>
-
-[1]: http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
-[2]: http://bnd.bndtools.org/chapters/390-wrapping.html
-[3]: http://sling.apache.org/downloads.cgi

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/discovery-api-and-impl.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/discovery-api-and-impl.md b/content/documentation/bundles/discovery-api-and-impl.md
deleted file mode 100644
index 10abaf9..0000000
--- a/content/documentation/bundles/discovery-api-and-impl.md
+++ /dev/null
@@ -1,413 +0,0 @@
-title=Discovery API and its implementations		
-type=page
-status=published
-~~~~~~
-
-In many situations a particular Sling-based deployment consists of several Sling instances:
-typically a number of instances would form a `cluster` that share a common content repository -
-in other situations, or additionally, instances might be loosely coupled, each with their own repository.
-
-The `discovery-api` bundle introduces an abstraction for such scenarios called `topology`. It provides
-access to the current topology, allows to be informed of any changes in the topology (such as joining or leaving
-instances) and contains a simple property exchange mechanism, e.g. to allow building communication services on top of it.
-
-[TOC]
-
-## Discovery Entities
-
-The Discovery API defines the following entities
-
-### Instance, InstanceDescription
-
-A Sling instance running in one VM is represented in the discovery API by an `InstanceDescription`:
-
-* it represents one Sling instance
-* it has thus a unique Sling ID
-* it has a flag that marks if it is leader in a cluster (more details below)
-* plus it has properties (which can be provided via `PropertyProviders`)
-
-### Cluster, ClusterView
-
-Multiple instances that are connected to the same underlying repository are commonly referred to as a 'Cluster'. The reasoning behind this terminology being that they access the same data and can thus deliver or modify the same data.
-
-In the discovery API this cluster concept is represented via a `ClusterView` object. A 'view' because it is a momentary snapshot of the cluster and only contains instances that are currently alive. It's features are:
-
-* each cluster has a stable leader. Stable meaning it won't change unless that leader crashes.
-* it has an ordered, stable list of instances that are part of it, thus currently alive. the relative order of instances in this list is stable, meaning that it only stays or moves up one position if an instance listed 'above' crashes - a newly started instance will always be added at the end of this list.
-* plus it has a unique id that is persistent across restarts
-
-### Topology, TopologyView
-
-The topology - or more precisely the `TopologyView` - represents a snapshot (`view`) of a number of loosely coupled Sling instances (`InstanceDescription`)
-and clusters (`ClusterView`) of a particular deployment. A cluster can consist of one or more instances. Each instance
-is always part of a cluster (even if the cluster consists of only one instance). The features are:
-
-* only one: it has a list of clusters
-
-There are no further assumption made on the structure of a topology.
-
-If different clusters in the topology should represent different 'types of clusters' (eg a publish or an author cluster),
-then that is not explicitly handled by the discovery API. Instead, applications can define properties on each instance
-that model such cluster types or other aspects.
-
-## Cluster Leader and Instance Ordering
-
-As mentioned the discovery API introduces support for a `cluster leader`: within each cluster, the API guarantees that one and only one
-instance is leader at any time. That leader is guaranteed to be `stable`, ie as long as it stays alive and is visible
-by other instances of the same cluster, it will stay leader. As soon as it leaves the cluster (or the corresponding
-implementation bundle is deactivated), another instance in that cluster is elected leader. The leader can be used to
-deal with work that must be guaranteed to only execute on one (but any) instance in the cluster.
-
-Additionally each cluster (`ClusterView`) orders its instances in a stable list: each newly joined instances is added
-at the end of the list and retains its order in the list as long as it doesn't leave the cluster. This can be used
-to distribute "singleton" work amongst the cluster to more than just the leader.
-
-## Topology Changes
-
-The `DiscoveryService` provides access to the currently valid `TopologyView`. Additionally, applications can
-register a `TopologyEventListener` and thus be informed about any changes in the topology. Whenever the discovery
-service detects that an instance is no longer responding or has newly joined, or a new leader has been elected,
-it sends a `TOPOLOGY_CHANGING` event, starts
-settling the change within the topology (i.e. making sure everybody else in the topology agrees with the change) and finally
-sends a `TOPOLOGY_CHANGED` event with the new topology.
-
-Additionally, when "only" properties have changed, a `PROPERTIES_CHANGED` event is sent.
-
-Note that the detection of topology (or properties) changes will incur a delay which is implementation dependent.
-
-The following is an example of a listener. Note that the binding is done automatically by OSGi, as soon as a
-`TopologyEventListener` is registered.
-
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
-import org.apache.sling.discovery.TopologyEvent;
-import org.apache.sling.discovery.TopologyEventListener;
-
-@Component
-@Service(value = { TopologyEventListener.class })
-public class MyTopologyEventListener implements TopologyEventListener {
-
-public void handleTopologyEvent(final TopologyEvent event) {
-// your code here
-}
-
-}
-
-
-## Properties
-
-The discovery API not only lists all clusters and instances that are part of a topology but also provides a simple
-mechanism for announcing properties of each instance to the topology, via the `PropertyProvider` service interface.
-
-Typical use cases for this are announcements of endpoint URLs or ports such that applications can communicate to other
-instances in the topology.
-
-Note that the properties mechanism is not meant be used as a messaging tool: both from an API point of view and
-the implementation of it are not optimized for frequent changes and its use for messaging is discouraged. It is only
-meant to be used to announce configuration information for accessing proper messaging services.
-
-The following is an example of a `PropertyProvider` that provides `sample.value1` and `sample.value2` properties:
-
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
-import org.apache.sling.discovery.PropertyProvider;
-
-@Component
-@Service(value = { PropertyProvider.class })
-@Property(name = PropertyProvider.PROPERTY_PROPERTIES,
-value = {"sample.value1", "sample.value2" })
-public class SamplePropertyProvider implements PropertyProvider {
-
-public String getProperty(final String name) {
-if ("sample.value1".equals(name)) {
-return "foo";
-} else if ("sample.value2".equals(name)) {
-return "bar";
-} else {
-return null;
-}
-}
-}
-
-## Deployment and configuration
-
-The discovery API makes no assumptions as to how the instances and clusters discover each other. This is entirely
-up to the implementations. Some might choose automatic discovery within a LAN using IP multicast, others
-might choose explicit configuration via a central service etc.
-
-## discovery.impl: Resource-based, OOTB Implementation
-
-The `discovery.impl` bundle is a resource-based, out of the box implementation of the `discovery.api` using standard Sling.
-
-The discovery within a cluster is done by writing heartbeat information into the (common) repository (there's no other form
-of communication within a cluster). The establishment of a
-clusterview is done by analyzing these heartbeats, initiating a voting within the cluster (such that each instance can agree
-that it sees the same number of instances) and by concluding the voting by promoting it as the new "established" view.
-
-The discovery of instances and clusters outside the local cluster requires explicit configuration of what is termed
-'topology connectors', which are HTTP PUTs (see below).
-
-### Location in Repository
-
-Administrative note: All the information about the topology is stored at the following location in the repository:
-
-/var/discovery/impl
-
-#### /var/discovery/impl/clusterInstances/&lt;slingId&gt;
-
-Each instance has its own node under `clusterInstances/` where it stores:
-
-* `lastHeartbeat`: property, which marks the instance as alive for another `heartbeatTimeout`
-* `leaderElectionId`: an id which is used to determine the leader: the instance with the lowest such leaderElectionId is the leader.
-Therefore this id is crucial to implement stable leader and ordering. The id contains a prefix (to account for a crx2 edge case
-where jobs might want to be executed on slave rather than on master), followed by the bundle activate time (to honour stability)
-and ultimately by the slingId (to have a discriminator should there be multiple instances started at the same time)
-* `runtimeId`: a plain, random UUID that is created fresh upon bundle activation. It is used to detect situations where
-multiple instances have the same slingId and thus write into the same `/var/discovery/impl/clusterInstances/<slingId>` node.
-* `slingHomePath` and `endpoints`: these are used for logging purpose only
-
-Additionally, there are two sub-nodes:
-
-* `announcements`: this contains announcements of topology connector peers (also see below). An announcement is a json-encoded
-representation of the sub-tree that the connector peer is aware of and is thereby announcing to this instance. Announcements
-are sent in both directions of a topology connector. Discovery.impl takes care of filtering out duplicate instances should
-the structure of topology connectors, and thus these announcements overlap (which is legal)
-* `properties`: contains all properties as specified by registered `PropertyProvider`
-
-#### /var/discovery/impl/establishedView
-
-This contains the currently valid, agreed/voted upon cluster view that lists all alive instances:
-
-* the name of the node directly under `establishedView` is a unique id of the current incarnation of the cluster view -
-thus changes whenever an instance joins or leaves or there is a new voting for another reason.
-** `clusterId` : name of the persistent identifier of this cluster. As this is propagated from cluster view to cluster view
-it stays unchanged forever.
-** `leaderElectionId`: the leaderElectionId that was winning, ie that was lowest
-** `leaderId`: the slingId of the instance that is leader of this cluster view
-* `members`: just an intermediate node containing all alive instances as child nodes
-* child node of `members`: each child represents a particular alive node (with the name being the slingId) and contains
-the following properties:
-** `leaderElectionId`: the id that will be used to determine the leader - this value is copied from the corresponding
-`/var/discovery/impl/clusterInstances/<slingId>`
-** `initiator`: this marks the instance that originally created this voting
-** `vote`: represents this instance's vote, which is true for a voting that got promoted to established view
-
-#### /var/discovery/impl/ongoingVotings
-
-This area is used for voting. Each instance can initiate a voting when it realizes that the live instances - denominated
-by those instances that have a not-yet-timed-out heartbeat property - does not match with the `establishedView`.
-
-Once a voting gets a yes vote by all instances it is promoted (moved) under `establishedView` by the initiating instance.
-Each establishedView was once a voting, thus the structure is the same as described above.
-
-#### /var/discovery/impl/previousView
-
-The instance that promotes its winning voting to `establishedView` first moves what was there before under `previousView`.
-This is purely for debugging and not used anywhere, it just represents a persistet history of previous views of length 1.
-
-### Heartbeats, Voting and Intra-Cluster Discovery
-
-`discovery.impl` uses the fact that all instance of a cluster are connected to the same repository as the
-basis for discovering those instances. It does so by using a heartbeat and voting mechanism:
-
-* each instance periodically stores a 'heartbeat' into the repository in a well-known location.
-This is done by setting a corresponding `lastHeartbeat` property to the current timestamp
-* a 'heartbeat' that has not yet timed out is considered a signal that the instance is alive
-* as soon as a 'heartbeat' is timed out, the assumption is that the corresponding instance is dead/shutdown
-
-To avoid having each instance make it's own, perhaps differing conclusions as to which instance/heartbeat is dead or not,
-there is an explicit, unanimous voting mechanism that agrees upon a list of alive instances. This list of alive
-instances is called cluster view.
-
-* as soon as any instance notices a change in the list of active instances, it is free to calculate a new
-such list and start a voting in the cluster - each voting carries a unique votingId
-* since any instance can do this, you can have concurrent creation of new votings
-* each instance has one 'yes' vote - and if there are multiple concurrent votings the lowest one wins
-* when a voting receives a 'yes' from all instances that it enlists it is considered as 'winning'
-and is promoted to be the new, valid view from now on.
-* a promoted view is stored in `/var/discovery/impl/establishedView` and any change therein is
-passed on in a TopologyEvent to all registered listeners.
-
-### pseudo-network partitioning aka split-brain
-
-`discovery.impl` requires the, eventually consistent, underlying repository to propagate changes within reasonable time:
-in less than the configured heartbeat timeout. If heartbeats for some reason are not becoming visible by peers in
-the cluster within that time, `discovery.impl` will consider that peer instance as dead. At which point it will
-first send a TOPOLOGY_CHANGING event to all listeners to make them aware that something is changing in the topology,
-and then start a new voting. Once the voting concludes a TOPOLOGY_CHANGED event will follow.
-
-Given the voting is happening through the repository as well, one could imagine a situation where the repository delays
-can cause a topology to be "pseudo partitioned" into two or more parts, each one agreeing on a set of instances in that
-sub-cluster (one requirement for such a scenario being that the delays must be asymmetric, ie changes from a subset
-of instances propagate slow, while the remaining changes propagate fast - ie. two different sets of delays in the cluster).
-Such a situation would only last as long as the repository delays are large (larger than
-the heartbeat timeouts). Exact cases where the repository experiences large delays depend of course on the
-repository configuration and deployment details, known cases include for example long running queries, large set
-of changes, large set of commits and long-running session.saves.
-
-The following is an illustration of the impact of large cluster delays:
-
-![discovery.impl split brain](discovery-impl-split-brain.png =360x)
-
-In discovery.impl 1.2.2 several improvements have been done to avoid pseudo-network partitioning including the following:
-(see SLING-3432 for more in-depth details)
-
-* SLING-5195 : monitor the HeartbeatHandler for long-running session.saves.
-* SLING-5280 : reduce synchronization for HeartbeatHandler to avoid other threads blocking it
-* SLING-5030 : avoid "isolated mode" and replace it with larger TOPOLOGY_CHANGING phase
-
-All of the above greatly reduce the likelyhood of pseudo-network partitioning with `discovery.impl`, however, as
-also described in SLING-4640, there is still a small time-window in which it cannot be ruled out entirely.
-The successor of discovery.impl, the `discovery.oak` bundle, addresses these concerns to avoid pseudo-network
-partitioning alltogether.
-
-In the context of `discovery.impl` it is therefore paramount that the underlying repository is monitored and optimized
-such that the delays are well under control and do not exceed the configured heartbeat timeout.
-
-### Topology Connectors for Cross-Cluster Discovery
-
-From a discovery API's point of view a cluster consists of all instances that are connected to the same repository.
-The above described built-in mechanism of storing a lastHeartbeat property into the (shared) repository, of voting on changes
-and creating an explicit establishedView results in automatic discovery within a cluster. There is therefore
-no further configuration needed for discovering instances in the same cluster.
-
-However, for discovering multiple clusters such an automatic discovery is not possible and the clusters need
-to be explicitly configured using (cross-cluster) topology connectors:
-
-A topology connector is a periodically issued HTTP PUT that announces the part of the topology known to the
-sending instance to the receiving instance and vica-verca the receiving instance announces its part of the
-topology to the sender in the response of the very same HTTP PUT. This way whatever other clusters are connected
-to sender or receiver will be made known to each other. Such a 'topology announcement' will be valid either until
-the same sender sends the announcement again (which it does periodically) - or until it times out (configurable).
-A topology connector is by definition always between clusters, never within the same cluster. Topology connectors
-can be structured in an arbitrary way (chain, star, tree, etc) with the only important point to note here that
-since changes in the topology propagate through these topology connectors they have a certain delay (namely
-the configured heartbeatInterval per hop).
-
-Topology connectors are configured at [/system/console/configMgr/org.apache.sling.discovery.impl.Config][1].
-They use the same interval and timeout as the repository heartbeats (heartbeatInterval and heartbeatTimeout).
-
-### WebConsole
-
-A Felix WebConsole plugin at [/system/console/topology][2] provides a (read-only) overview of the topology.
-
-### Configuration
-
-The following properties can be configured (at [/system/console/configMgr/org.apache.sling.discovery.impl.Config][1]):
-
-* heartbeatInterval: the time in seconds between two heartbeats (both cluster-internal and for HTTP-connectors). Default
-value is 15 seconds.
-
-* heartbeatTimeout: the time in seconds after which an instance is considered dead if no heartbeat was sent since. Default
-value is 20 seconds.
-
-* topologyConnectorUrls: a list of connector URLs to which this instance should connect to. The list can contain multiple
-instances of the same cluster (for fallback configurations). If the list is empty, no connector will be created.
-The default relative URL is /libs/sling/topology/connector. Note that this URL is accessible without authentication -
-to avoid having to configure administrative username/passwords in all instances. Instead, a whitelist approach is used
-(see next item).
-
-* topologyConnectorWhitelist: As mentioned above, the path /libs/sling/topology/connector does not require authentication.
-To assure that only trusted instances can connect to the topology, its hostname or IP address must be in a whitelist.
-By default this whitelist only contains localhost and 127.0.0.1.
-
-* minEventDelay: To reduce the number of events sent during changes, there is a delay (in seconds) before the event is sent.
-If additional changes happen during this delay, the change will be combined in one event.
-
-* leaderElectionRepositoryDescriptor: this is an advanced parameter. It denotes a repository descriptor that is evaluated
-and taken into account for leader Election: the corresponding value of the descriptor is sorted by first.
-
-* hmacEnabled: If this is true, and sharedKey is set to a value on all Sling instances within the same topology, then messages are
-validates using a signature of the content of the message based on the shared key. The signature and the digest of the content
-appear as http headers. When hmac message validation is enabled, whitelisting is disabled. This use useful where the topology
-messages are transported through multiple reverse proxy layers or the topology is dynamic. The Hmac algorithm in use is HmacSHA256.
-The JVM is expected to have a provider implementing this algorithm (The Standard JDKs do).
-
-* sharedKey: If hmacEnabled is true, this must be set to a secret value, shared amongst all Sling instances that are members of the
-same topology.
-
-* enableEncryption: If hmacEnabled is true, and sharedKey is set, setting this to true will encrypt the body of the message using 128 Bit
-AES encryption. The encryption key is derived from the sharedKey using a 9 byte random salt, giving 2^^72 potential salt values.
-
-* hmacSharedKeyTTL: The key used for the signatures is derived from the shared key. Each derived key has a lifetime before the next key
-is generated. This parameter sets the lifetime of each key in ms. The default is 4h. Messages sent using old keys will remain valid for
-2x the TTL, after which time the message will be ignored.
-
-
-[1]: http://localhost:8888/system/console/configMgr/org.apache.sling.discovery.impl.Config
-[2]: http://localhost:8888/system/console/topology
-
-
-## discovery.oak: Oak-based, OOTB-implementation
-
-When running discovery.impl ontop of an eventually consistent repository (such as documentMK of oak), the heartbeat mechanism
-becomes unreliable. The eventual-ness of the repository has an inherent problem in that it doesn't guarantee by when a change
-initiated from instance A is visible by instance B. And when there are no hard guarantees, it becomes impossible to choose
-a `heartbeatTimeout` that works for all eventualities.
-
-Therefore it becomes necessary to be able to store heartbeats in a (low-level) location that provides higher consistency (than eventualness).
-Such a 'low-level location' is the DocumentStore of oak (which is an internal API of the DocumentNodeStore). Turns out that
-the DocumentNodeStore already has a heartbeat-like concept called leases. Those can be re-used for discovery to fulfill the same
-aspect as heartbeats do: indicate alive instances. This can further be combined with
-an explicit materialization of a "cluster view" in the DocumentStore so that all instances agree and refer to the same
-view without the actual need for voting (this is possible since the DocumentStore allows to do conditional updates).
-
-### Jackrabbit Oak's discovery-lite
-
-All of the above mentioned features have been implemented in so-called 'discovery-lite': Discovery-lite is a simplified
-version of discovery on the oak level. Other than the discovery API it only provides one thing, and that's the
-clusterview-json:
-
-#### 'oak.discoverylite.clusterview'
-
-The discovery-lite descriptor `oak.discoverylite.clusterview` is a shrink-wrapped json-formatted object representing
-the current state of the cluster. It contains the following:
-
-* `active`: a list of active nodes in the documentNodeStore cluster
-* `deactivating`: a list of nodes that are in the process of being deactivated
-* `inactive`: a list of nodes that are inactive
-* `me`: the id (number) of the local instance (which is always part of the active nodes)
-* `id`: the id (unique, persistent) of the cluster (which thus survives node/cluster restarts)
-* `seq`: a sequence number that is incremented upon each change in this descriptor (to be able to identify a change even if
-the other values are unchanged) and shared amongst all instances in the cluster, ie all instances see the same sequence number.
-This number can thus be used by upper layers to identify this particular incarnation of clusterview.
-* `final`: when this flag is `false` it indicates that the sequence number has changed (as well as eg `active` and `inactive`),
-but that the local instance has not yet fully processed this changed on a low-level. I.e. it marks that the local
-instance has not yet read the entire back-log of another, deactivating instance. Thus when `final==false`, the upper layers
-should wait until `final==true`, at which point they know oak has finished processing an instance crashing/shutting down.
-
-#### Accessing discovery-lite
-
-The `oak.discoverylite.clusterview` descriptor is exposed as a JCR repository descriptor and can be accessed like so:
-
-getRepository().getDescriptor("oak.discoverylite.clusterview")
-
-which will return the json-formatted clusterview as described above.
-
-Note however, that this API is not meant to be a public, stable API and changes will be done without prior notice.
-It is merely an internal information exposed by oak and not standardized nor guaranteed to remain supported or unchanged!
-
-### Sling's discovery.oak
-
-discovery.oak is a implementation of the discovery API that now makes use of this new discovery-lite descriptor in oak.
-It basically delegates the detection of the instances in the local cluster to discovery-lite. To do so, it periodically
-reads this descriptor (which is designed to be read at a high-frequency without problems) and triggers `TopologyEvents`
-when this descriptor changes.
-
-The advantage of using discovery-lite (which uses oak leases) instead of writing heartbeats into the repository
-is that discovery.oak thus becomes independent of the speed/latency that the repository can produce under high load.
-The discovery-lite should be entirley resilient to high load, thus is discovery.oak.
-
-Additionally, it reuses functionality from discovery.impl, such as the way properties (from `PropertyProviders`) or
-cross-cluster topology announcements (via topology connectors) are handled.
-
-In order to do this, the discovery.impl bundle has been refactored as follows:
-
-#### discovery.commons
-
-This is a bundle usable by any implementation of discovery and contains very basic, implementation-independent functionality
-
-#### discovery.base
-
-This is the base bundle solely used by discovery.impl and discovery.oak and contains exactly the mentioned
-properties and announcement handling.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/discovery-impl-split-brain.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/discovery-impl-split-brain.png b/content/documentation/bundles/discovery-impl-split-brain.png
deleted file mode 100644
index d14c7fe..0000000
Binary files a/content/documentation/bundles/discovery-impl-split-brain.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/dynamic-includes.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/dynamic-includes.md b/content/documentation/bundles/dynamic-includes.md
deleted file mode 100644
index 54a4b77..0000000
--- a/content/documentation/bundles/dynamic-includes.md
+++ /dev/null
@@ -1,27 +0,0 @@
-title=Apache Sling Dynamic Include		
-type=page
-status=published
-~~~~~~
-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.
-
-Sling Dynamic Include (org.apache.sling.dynamic-include)
-========================================================
-For now the Sling Dynamic Include documentation can be found
-[in the Sling codebase](https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/sling-dynamic-include/README.md)
-or
-[on our GitHub mirror](https://github.com/apache/sling/tree/trunk/contrib/extensions/sling-dynamic-include) if that's in sync.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/file-installer-provider.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/file-installer-provider.md b/content/documentation/bundles/file-installer-provider.md
deleted file mode 100644
index 9332f83..0000000
--- a/content/documentation/bundles/file-installer-provider.md
+++ /dev/null
@@ -1,42 +0,0 @@
-title=File Installer Provider		
-type=page
-status=published
-~~~~~~
-
-The file installer provider scans configured directories and provides the found artifacts (files) to the [OSGI installer](/documentation/bundles/osgi-installer.html). The functionality is very similar to Apache Felix FileInstall, with the major difference that this service implements just the task of scanning a file directory. All the management logic is implemented in the OSGi installer and support of various artifact types like bundles, configurations or custom formats is implemented by plugins for the OSGi installer.
-
-
-## Setup
-
-The file installer can be configured with these framework (system) properties:
-
-|Property|Default|Description|
-|--|--|--|
-|`sling.fileinstall.dir`| |The name/path of the directories to watch. Several directories can be specified by using a comma separated list. Each directory might have arbitrarily many sub directories (even nested ones) which may contain the artifacts|
-|`sling.fileinstall.interval`|5000 ms|Number of milliseconds between 2 polls of the directory|
-|`sling.fileinstall.writeback`|true|If the file provider supports writeback of changed artifacts, e.g. if a configuration is changed through Config Admin the change is written back to the file system.|
-
-## Bundles
-
-Bundles are supported by the OSGi installer. If a bundle jar is added to a scanned directory, this bundle is installed. If the file is updated/changed, the bundle is updated. If the file is removed, the bundle gets removed.
-Of course, these are the simple rules. The actual action depends by the overall state of the system and is controlled by the OSGi installer. For example if already the same bundle with a higher version is installed, when a bundle is dropped into the install folder, the OSGi installer will perform no operation.
-
-Start levels are supported as well by creating a directory with the name of the start level within the scan directory and putting the bundles within this directory. For example, if the `install` folder is scanned, the bundle `install/3/mybundle.jar` will be installed with start level 3. Without such a directory the default start level is used.
-
-## Configurations
-
-Configurations are handled by the [Configuration Installer Factory](/documentation/bundles/configuration-installer-factory.html). The different formats are described there.
-
-## Custom Artifacts
-
-Custom artifacts are handled by the OSGi installer depending on the installed plugins. Have a look at the OSGi installer and its plugins for more information.
-
-## Runmode Support
-
-The file installer supports run modes for installing artifacts (added with [SLING-4478](https://issues.apache.org/jira/browse/SLING-4478)). Within the scanned directory, a folder prefixed with "install." and followed by one or more run modes (separated by ".") will only be considered if all the respective run modes are active. For example artifacts below a folder named `install.a1.dev` are only taken into account if the run modes `a1` and `dev` are both active.
-
-You can even combine start level and run mode support. Just pay attention that the run mode foldername must be set on a direct child folder of `sling.fileinstall.dir` while the start level must be set directly on the parent folder of the artifact you want to install. E.g. `<sling.fileinstall.dir>/install.a1.dev/3/mybundle.jar` will only be considered if both run modes `a1` and `dev` are set. If this is the case then the according artifact will be installed in start level 3.
-
-# Project Info
-
-* File installer provider ([org.apache.sling.installer.provider.file](http://svn.apache.org/repos/asf/sling/trunk/installer/providers/file))

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/internationalization-support-i18n.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/internationalization-support-i18n.md b/content/documentation/bundles/internationalization-support-i18n.md
deleted file mode 100644
index 49961ca..0000000
--- a/content/documentation/bundles/internationalization-support-i18n.md
+++ /dev/null
@@ -1,177 +0,0 @@
-title=Internationalization Support (i18n)		
-type=page
-status=published
-~~~~~~
-
-Internationalization support in Sling consists of four methods in the `SlingHttpServletRequest` interface:
-
-* `getLocale()` -- Returns the primary `Locale` for the current request. This method is inherited from the `javax.servlet.ServletRequest` interface.
-* `getLocales()` -- Returns the `Locale` instances for the current request. This method is inherited from the `javax.servlet.ServletRequest` interface.
-* `getResourceBundle(Locale)` -- Returns a `ResourceBundle` for the given `Locale`. This method is specific to Sling.
-* `getResourceBundle(String, Locale)` -- Returns a `ResourceBundle` of a given base name for the given `Locale`. This method is specific to Sling.
-
-
-These methods have a default implementation in the `org.apache.sling.core` bundle and an extended and extensible implementation in the `org.apache.sling.i18n` bundle.
-
-
-## Default Implementation in the `org.apache.sling.engine` Bundle
-
-The default implementation of the above mentioned four methods in the Sling Engine bundle is contained in the bundle-private class `org.apache.sling.engine.impl.SlingHttpServletRequestImpl` which is the primary implementation of the `SlingHttpServletRequest` interface:
-
-* `getLocale()` -- Returns the `Locale` from the request object of the servlet container in which Sling is running. As per the Servlet API specification, this is either the primary Locale of the `Accept-Language` request header or the server default locale.
-* `getLocales()` -- Returns the `Enumeration` from the request object of the servlet container in which Sling is running. As per the Servlet API specification, this is either based on the `Accept-Language` request header or just the server default locale.
-* `getResourceBundle(Locale)` -- Returns a `ResourceBundle` whose `getString(String key)` method returns the `key` as the message and whose `getKeys()` method returns an empty `Enumeration`.
-* `getResourceBundle(String, Locale)` -- Returns a `ResourceBundle` whose `getString(String key)` method returns the `key` as the message and whose `getKeys()` method returns an empty `Enumeration`.
-
-
-NOTE: Unlike the default implementations of the `ResourceBundle` abstract class in the Java Runtime -- `PropertyResourceBundle` and `ListResourceBundle` -- the `ResourceBundle` returned by the default implementation of the `getResourceBundle(Locale)` and `getResourceBundle(String, Locale)` always returns a string message for any key, which is the key itself. This prevents throwing `MissingResourceException`.
-
-
-
-## Extensible Implementation in the `org.apache.sling.i18n` Bundle
-
-The `org.apache.sling.i18n` Bundle implements a request level `Filter` providing extensible implementations of the above mentioned three methods. Extensibility is attained by defining two service interfaces:
-
-* `LocaleResolver` -- The `LocaleResolver` interface defines a method which may be implemented by a service outside of the sling.i18n bundle. If no such service is registered the default behaviour is as described above for the sling.core bundle. The service described by this interface is used to implement the `getLocale()` and `getLocales()` method.
-
-* `ResourceBundleProvider` -- The `ResourceBundleProvider` interface defines two methods to acquire a `ResourceBundle` for any `Locale` and an optional base name. This service interface is not intended to be implemented outside of the sling.i18n bundle: A JCR Repository based implementation is contained in the sling.i18n bundle. The `ResourceBundleProvider` service is not only used within the sling.i18n bundle to implement the `SlingHttpServletRequest.getResourceBundle(Locale)` and  `SlingHttpServletRequest.getResourceBundle(String, Locale)` methods. The service may also be used by Sling applications to acquire `ResourceBundle` instances without having a request object by getting the service and calling its `getResourceBundle(Locale)` or `getResourceBundle(String, Locale)` method directly.
-
-
-
-### JCR Repository based `ResourceBundleProvider`
-
-The sling.i18n Bundle provides the implementation of the `ResourceBundleProvider` interface, which may also be used outside of Sling requests for service tasks. This implementation gets the messages from a JCR Repository stored below nodes of the mixin node type `mix:language`. These language nodes have a `jcr:language` property naming the language of the resources. In the context of the JCR based `ResourceBundleProvider` this is of course expected to be the string value of respective `Locale`. The format may either be the format as described in [Locale.toString](http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#toString%28%29) or as described in [BCP 47](https://tools.ietf.org/html/bcp47), while for the latter you may only provide ISO 3166-1 country codes (for the region) and ISO 639-1 alpha 2 language codes (for the language). Both formats are also accepted in lower-case.
-
-The exact location of these nodes is not relevant as the `ResourceBundleProvider` finds them by applying a JCR search.
-
-Two different types of storage formats are supported for the individual dictionaries
-
-#### `sling:MessageEntry` based
-
-The (direct) child nodes of the `mix:language` node must have the `jcr:primaryType` set to `sling:MessageEntry` and must contain two special properties naming the key string and the message:
-
-* `sling:key` -- The `sling:key` property is a string property being the key for which the node contains the message(s). This property is optional. If it is not set the key is determined by the name of this `sling:messageEntry` resource.
-* `sling:message` -- The `sling:message` property represents the resource for the key.
-
-It is only required that the message nodes are located below `mix:language` nodes. Such structures may also be scattered in the repository to allow storing message resources next to where they are most likely used, such as request scripts.
-
-##### Sample Resources
-
-Content for dictionaries in this format might look like this:
-
-/libs/languages
-+-- English (nt:folder, mix:language)
-|    +-- jcr:language = en
-|    +-- m1 (sling:MessageEntry)
-|    |    +-- sling:key = "msg001"
-|    |    +-- sling:message = "This is a message"
-|    +-- m2 (sling:MessageEntry)
-|         +-- sling:key = "msg002"
-|         +-- sling:message = "Another message"
-+-- Deutsch (nt:folder, mix:language)
-+-- jcr:language = de
-+-- m1 (sling:MessageEntry)
-|    +-- sling:key = "msg001"
-|    +-- sling:message = "Das ist ein Text"
-+-- m2 (sling:MessageEntry)
-+-- sling:key = "msg002"
-+-- sling:message = "Ein anderer Text"
-
-/apps/myApp
-+-- English (nt:folder, mix:language)
-|    +-- jcr:language = en
-|    +-- mx (sling:MessageEntry)
-|         +-- sling:key = "msgXXX"
-|         +-- sling:message = "An Application Text"
-+-- Deutsch (nt:folder, mix:language)
-+-- jcr:language = de
-+-- mx (sling:MessageEntry)
-+-- sling:key = "msgXXX"
-+-- sling:message = "Ein Anwendungstext"
-
-This content defines two languages *en* and *de* with three messages *msg001*, *msg002* and *msgXXX* each. The names of the respective resources have no significance (in case the `sling:key` is set).
-
-#### JSON-file based
-
-Since Version 2.4.2 the i18n bundle supports dictionaries in JSON-format ([SLING-4543](https://issues.apache.org/jira/browse/SLING-4543)).
-Since loading such dictionaries is much faster than loading the ones based on `sling:MessageEntry`s this format should be used preferably.
-This format is assumed if the `mix:language` resource name is ending with the extension `.json`.
-The parser will take any "key":"value" pair in the JSON file, including those in nested objects or arrays. Normally, a dictionary will be just a single json object = hash map though.
-
-##### Sample Resources
-
-Content for this format might look like this:
-
-/libs/languages
-+-- english.json (nt:file, mix:language)
-|    +-- jcr:language = en
-|    +-- jcr:content (nt:resource)
-|         + jcr:data (containing the actual JSON file)
-+-- deutsch.json (nt:file, mix:language)
-+-- jcr:language = de
-+-- jcr:content (nt:resource)
-+ jcr:data (containing the actual JSON file)
-
-
-#### JCR Node Types supporting the JCR Repository based `ResourceBundleProvider`
-
-The sling.i18n bundle asserts the following node types:
-
-[mix:language]
-mixin
-- jcr:language (string)
-
-
-The `mix:language` mixin node type allows setting the `jcr:language` property required by the `ResourceBundleProvider` implementation to identify the message `Locale`.
-
-[sling:Message]
-mixin
-- sling:key (string)
-- sling:message (undefined)
-
-[sling:MessageEntry] > nt:hierarchyNode, sling:Message
-
-
-The `sling:Message` and `sling:MessageEntry` are helper node types. The latter must be used to create the nodes for the `sling:MessageEntry` based format.
-
-### `ResourceBundle` with base names
-
-Similar to standard Java `ResourceBundle` instances, Sling `ResourceBundle` instances may be created for base names through any of the `getResourceBundle(String, Locale)` methods. These methods use the base name parameter as a selector for the values of the `sling:basename` property of the `mix:language` nodes.
-
-The base name argument can take one three values:
-
-| Value | `ResourceBundle` selection |
-|--|--|
-| `null` | Selects messages of `mix:language` nodes ignoring the existence or absence of `sling:basename` properties |
-| Empty String | Selects messages of `mix:language` nodes which have `sling:basename` properties, ignoring the actual values |
-| Any other Value | Selects messages of `mix:language` nodes whose `sling:basename` properties has any value which matches the base name string |
-
-The `sling:basename` property may be multi-valued, that is the messages of a `mix:language` nodes may belong to multiple base names and thus `ResourceBundle` instances.
-
-### `ResourceBundle` hierarchies
-The dictionary entries for one `JcrResourceBundle` are always ordered like the resource resolver search paths, so usually
-
-1. dictionary entries below `/apps`
-2. dictionary entries below `/libs`
-3. dictionary entries anywhere else (outside the search path)
-
-That means that the message for the same key in `/apps` overwrites the one in `/libs` (if both are for the same locale and base name). Within those categories the order is non-deterministic, so if there is more than one entry for the same key in `/apps/...` (for the same locale and base name), any of those entries may be used.
-
-The resource bundles of the same base name with different locales also form a hierarchy. Each key is looked up recursively first in the current resource bundle and then in its parent resource bundle. The parent resource bundle is the one having the same base name but the parent locale.
-
-The locale hierarchy is ordered like this:
-
-1. `<Language> <Country> <Variant>`
-2. `<Language> <Country>`
-3. `<Language>`
-4. `<Default Locale>`, usually `en`
-
-So for the locale `de-DE-MAC` the fallback order would be
-
-1. `de-DE-MAC`
-2. `de-DE`
-3. `de`
-4. `en`
-
-In case there is a resource bundle requested for a locale without country or variant, there is only 1 fallback (i.e. the default locale).
-The last resort (root resource bundle in all hierarchies) is always the bundle which returns the requested key as the value.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/jconsole-hc.jpg
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/jconsole-hc.jpg b/content/documentation/bundles/jconsole-hc.jpg
deleted file mode 100644
index 4087cf9..0000000
Binary files a/content/documentation/bundles/jconsole-hc.jpg and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/jcr-installer-provider.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/jcr-installer-provider.md b/content/documentation/bundles/jcr-installer-provider.md
deleted file mode 100644
index 73fc668..0000000
--- a/content/documentation/bundles/jcr-installer-provider.md
+++ /dev/null
@@ -1,149 +0,0 @@
-title=JCR Installer Provider		
-type=page
-status=published
-~~~~~~
-
-The JCR installer provider scans the JCR repository for artifacts and provides them to the [OSGI installer](/documentation/bundles/osgi-installer.html).
-
-## Configuration and Scanning
-
-The JCR installer provider can be configured with weighted paths which are scanned. By default, the installer scans in */apps* and */libs* where artifacts found in */apps* get a higher priority. The installer does a deep scan and uses a regular expression to detect folders containing artifacts to be installed. By default, artifacts from within a folder named *install* are provided to the OSGi installer.
-
-If such an install folder contains a binary artifact (e.g. a bundle or a config file as described in [Configuration Installer Factory](/documentation/bundles/configuration-installer-factory.html)) this is provided to the OSGi installer.
-
-In addition every node of type *sling:OsgiConfig* is provided as a configuration to the installer. This has the advantage of leveraging the JCR structure better than binary files, but has the known limitations outlined in [SLING-4183](https://issues.apache.org/jira/browse/SLING-4183) and [SLING-2477](https://issues.apache.org/jira/browse/SLING-2477), therefore it is recommended to stick to one of the binary formats described in [Configuration Installer Factory](/documentation/bundles/configuration-installer-factory.html).
-
-The JCR installer provider does not check or scan the artifacts itself, the detection and installation is deferred to the OSGi installer.
-
-### Runmode Support
-
-The JCR installer supports run modes for installing artifacts. By default folders named *install* are checked for artifacts. If Apache Sling is started with one (or more run modes), all folders named *install.[RUNMODE]* are scanned as well. To be precise, the folder name can be followed by any number of run modes separated by comma. For example, if started with run modes *dev*, *a1*, and *public*, folders like *install.dev*, *install.a1*, *install.public* are searched as well as *install.dev.a1*, or *install.a1.dev*.
-
-Artifacts from folders with a run mode get a higher priority. For example by default, an *install* folder underneath */libs* gets the priority *50*. For each run mode in the folder name, this priority is increased by *1*, so *install.dev* has *51* and *install.a1.dev* is *52*.
-
-## Write Back Support
-
-The JCR installer supports writing back of configurations which are changed by some other ways, e.g by using the Apache Felix web console. If this is a new configuration which was not originally stored in the repository, a new configuration is stored under */apps/sling/install*. The highest search path is used together with a configurable folder (*sling/install* in this case).
-If a configuration is changed which already exists in the repository, then it depends where the original configuration is stored. If its under */libs* a new configuration at the same path under */apps* is created. Otherwise the configuration is directly modified.
-As JCR properties do not support all Java primitive types like Integer, the write back does not generate a node of type *sling:OsgiConfig* in the repository but a properties file as described in [Configuration Installer Factory](/documentation/bundles/configuration-installer-factory.html).
-
-Write back can be turned off by configuration.
-
-### Start Level Support
-
-If the parent folder of a bundle has a name which is a number, this is used as the start level (when installing the bundle for the first time, compare with [SLING-2011](https://issues.apache.org/jira/browse/SLING-2011)). So e.g. a bundle in the path `/libs/sling/install/15/somebundle.jar` is having the start level **15**.
-
-# Example
-Here's a quick walkthrough of the JCR installer functionality.
-
-## Installation
-Start the Sling [launchpad/app](http://svn.apache.org/repos/asf/sling/trunk/launchpad/app) and make sure that the following bundles are present and started:
-* [RunMode service]({{ refs.run-modes-org-apache-sling-runmode.path }})
-* OSGi installer service ([org.apache.sling.installer.core](http://svn.apache.org/repos/asf/sling/trunk/installer/core))
-* JCR installer provider ([org.apache.sling.installer.provider.jcr](http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr))
-
-To watch the logs produced by these modules, you can filter `sling/logs/error.log` using `egrep 'jcrinstall|osgi.installer'`.
-
-## Install and remove a bundle
-
-We'll use the [Knopflerfish Desktop](http://www.knopflerfish.org/releases/2.0.5/jars/desktop_awt/desktop_awt_all-2.0.0.jar) bundle for this example, it is convenient as it displays a graphical user interface when started.
-
-We use `curl` to create content, to make it easy to reproduce the example by copying and pasting the `curl` commands. Any other way to create content in the repository will work, of course.
-
-By default, JCRInstall picks up bundles found in folders named *install* under `/libs` and `/apps`, so we start by creating such a folder:
-
-
-curl -X MKCOL  http://admin:admin@localhost:8888/apps/jcrtest
-curl -X MKCOL  http://admin:admin@localhost:8888/apps/jcrtest/install
-
-
-And we copy the bundle to install in that folder (a backslash in command lines means *continued on next line*):
-
-
-curl -T desktop_awt_all-2.0.0.jar       http://admin:admin@localhost:8888/apps/jcrtest/install/desktop_awt_all-2.0.0.jar
-
-
-That's it. After 2-3 seconds, the bundle should be picked up by JCRInstall, installed and started. If this works you'll see a small *Knopflerfish Desktop* window on your desktop, and Sling's OSGi console can of course be used to check the details.
-
-Removing the bundle from the repository will cause it to be uninstalled, so:
-
-
-curl -X DELETE       http://admin:admin@localhost:8888/apps/jcrtest/install/desktop_awt_all-2.0.0.jar
-
-
-Should cause the *Knopflerfish Desktop* window to disappear as the bundle is uninstalled.
-
-
-## Install, modify and remove a configuration
-JCRInstall installs OSGi configurations from nodes having the *sling:OsgiConfig* node type, found in folders named *install* under the installation roots (/apps and /libs).
-
-Let's try this feature by creating a configuration with two properties:
-
-
-curl       -F "jcr:primaryType=sling:OsgiConfig"       -F foo=bar -F works=yes       http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid
-
-
-And verify the contents of our config node:
-
-curl       http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid.json
-
-
-Which should display something like
-
-{"foo":"bar",
-"jcr:created":"Wed Aug 26 2009 17:06:40GMT+0200",
-"jcr:primaryType":"sling:OsgiConfig","works":"yes"}
-
-
-At this point, JCRInstall should have picked up our new config and installed it. The logs would confirm that, but we can also use the OSGi console's config status page (http://localhost:8888/system/console/config) to check it. That page should now contain:
-
-
-PID=some.config.pid
-BundleLocation=Unbound
-_jcr_config_path=jcrinstall:/apps/jcrtest/install/some.config.pid
-foo=bars
-service.pid=some.config.pid
-works=yes
-
-
-Indicating that the configuration has been installed.
-
-Let's try modifying the configuration parameters:
-
-
-curl       -F works=updated -F even=more       http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid
-
-
-And check the changes in the console page:
-
-
-PID=some.config.pid
-BundleLocation=Unbound
-_jcr_config_path=jcrinstall:/apps/jcrtest/install/some.config.pid
-even=more
-foo=bars
-service.pid=some.config.pid
-works=updated
-
-
-We can now delete the configuration node:
-
-
-curl -X DELETE       http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid
-
-
-And verify that the corresponding configuration is gone in the console page (after 1-2 seconds, like for all other JCRInstall operations).
-
-A node named like `o.a.s.foo.bar-a` uses *o.a.s.foo.bar* as its factory PID creating a configuration with an automatically generated PID. The value of *a* is stored as an alias in the OSGi installer to correlate the configuration object with the repository node.
-
-# Automated Tests
-The following modules contain lots of automated tests (under `src/test`, as usual):
-
-* OSGi installer integration tests ([org.apache.sling.installer.it](http://svn.apache.org/repos/asf/sling/trunk/installer/it))
-* JCR installer service ([org.apache.sling.installer.providers.jcr](http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr))
-
-Many of these tests are fairly readable, and can be used to find out in more detail how these modules work.
-
-# Project Info
-
-* JCR installer provider ([org.apache.sling.installer.provider.jcr](http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr))

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/log-tracers.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/log-tracers.md b/content/documentation/bundles/log-tracers.md
deleted file mode 100644
index b6630a5..0000000
--- a/content/documentation/bundles/log-tracers.md
+++ /dev/null
@@ -1,243 +0,0 @@
-title=Log Tracer		
-type=page
-status=published
-~~~~~~
-
-[Log Tracer][SLING-4739] provides support for enabling the logs for specific category at specific
-level and only for specific request. It provides a very fine level of control via config provided
-as part of HTTP request around how the logging should be performed for given category.
-
-This is specially useful for those parts of the system which are involved in every request.
-For such parts enabling the log at global level would flood the logs and create lots of noise.
-Using Tracer one can enable log for that request which is required to be probed.
-
-For e.g. determining what nodes are written for a given POST request can be simply done by including
-an extra request parameters.
-
-curl -D - -u admin:admin      -d "./jcr:content/jcr:title=Summer Collection"      -d ":name=summer-collection"      -d "./jcr:primaryType=sling:Folder"      -d "./jcr:content/jcr:primaryType=nt:unstructured"      -d "tracers=oak-writes"      http://localhost:4502/content/dam/
-
-## Configuration
-
-![Tracer Config](/documentation/bundles/tracer-config.png)
-
-**Note that by default Tracer would not be enabled and you would need to save the OSGi config to
-get it activated**
-
-Tracer support two ways to enable logging.
-
-### Tracer Sets
-
-Tracer sets are collection of predefined logging categories matching specific area of an application.
-These can for now be configured as part of OSGi config
-
-oak-query : org.apache.jackrabbit.oak.query.QueryEngineImpl;level=debug
-auth : org.apache.sling.auth;level=trace,org.apache.jackrabbit.oak.security
-
-The config is of following format
-
-< set name > : <tracer config>
-
-Where the config is of following format
-
-tracerConfig := loggerConfig ( ',' loggerConfig) *
-loggerConfig := loggerName (; attributes)*
-attributes := attributeName '=' attributeValue
-
-Currently following attributes are support
-
-* `level` - Either of TRACE, DEBUG, INFO, WARN, ERROR
-* `caller` - Used to dump stacktrace of caller. It can have following value (_since 1.0.0_, [SLING-5505][SLING-5505])
-* `true` - Complete call stack for that logger would be included
-* `<depth>` - Call stack upto depth (integer) would be included e.g. caller=5
-* `caller-exclude-filter` - (optional) - '|' separated package prefixes which should not be
-included in the output. e.g. _org.apache.jackrabbit.oak.query.QueryImpl;caller=28;caller-exclude-filter="org.eclipse|org.felix"_
-this would exclude eclipse and felix packages from the resulting stack
-
-### Performance Impact
-
-Tracer makes use of [Logback TuboFilter][1] to intercept the logging calls and only enable them for
-those which are enabled via tracer config for the request. The filter is only registered for the
-duration of that request hence would avoid adding the cost for normal run.
-
-You can also disable the Tracer completely via OSGi config.
-
-## Where do logs go
-
-The logs captured are logged at two places
-
-### RequestProgressTracker
-
-Sling provides support for recording recent requests which can be accessed via [Recent Requests
-Plugin][2]. It would list down the list of recent request and then on clicking them you can see the
-logs showed on the UI.
-
-The logging there is done via [RequestProgressTracker][3] ([intro][4]). By default recent request
-plugin gets overflown as it captures request even for css, js files. To avoid that you can modify
-the config as part of _Sling Main Servlet_ config
-
-![Sling Main Servlet Config](/documentation/bundles/sling-main-servlet-config.png)
-
-Using a regex like ```^.*.(?!jpg$|png$|js$|css$|woff$)[^.]+$``` would avoid noise
-
-With that you can see log entries like below at http://localhost:8080/system/console/requests?index=xxx
-
-132 (2015-05-11 17:39:55) LOG [JCR]  Query SELECT * FROM [granite:InboxItem] AS s where  status='ACTIVE' ORDER BY s.startTime DESC
-134 (2015-05-11 17:39:55) TIMER_END{53,/libs/cq/gui/components/endor/badge/badge.jsp#18}
-...
-1316 (2015-05-11 17:39:56) LOG JCR Query Count 3
-1320 (2015-05-11 17:39:56) TIMER_END{1320,Request Processing} Request Processing
-
-### Server Logs
-
-Further the logs also go to normal server side logs. By default they would go to the error.log. If
-you have routed the logs of specific categories to different files then normal Logback logging rules
-would apply
-
-## Usage
-
-Tracing can be done in various ways for a given HTTP request. Tracer looks for following hints as part of request
-
-* Tracer set names - Comma separated list of tracer set names which need to be enabled. e.g. `oak-query, oak-writes` etc
-* tracerConfig - Raw tracing config only used for that specific request
-
-### Request Parameters
-
-Param names
-
-* `tracers`  - Tracer set names
-* `tracerConfig` - Tracer config like org.apache.sling.auth;level=trace`
-
-curl -u admin:admin http://localhost:4802/projects.html?tracerConfig=org.apache.sling
-
-Above request would turn on debug level logging (default level for tracer) for `org.apache.sling` category.
-
-curl -D - -u admin:admin      -d "./jcr:content/jcr:title=Summer Collection"      -d ":name=summer-collection"      -d "./jcr:primaryType=sling:Folder"      -d "./jcr:content/jcr:primaryType=nt:unstructured"      -d "tracers=oak-writes"      http://localhost:4502/content/dam/
-
-Above request would create a folder in Assets and for that we have enabled the `oak-writes` tracer. This would result in following output
-
-2015-05-11 17:30:42,840 INFO  admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] c.a.acs.acs-aem-tools-bundle - Service [4858] ServiceEvent REGISTERED
-2015-05-11 17:30:42,846 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] Adding node [/content/dam/summer-collection]
-2015-05-11 17:30:42,849 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] setPrimaryType
-2015-05-11 17:30:42,849 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] Adding node [/content/dam/summer-collection/jcr:content]
-2015-05-11 17:30:42,849 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] Setting property [/content/dam/summer-collection/jcr:content/jcr:title]
-2015-05-11 17:30:42,850 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] setPrimaryType
-2015-05-11 17:30:42,850 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] setPrimaryType
-2015-05-11 17:30:42,856 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] save
-
-### Request Headers
-
-Some request like initial authentication processing does not involve Sling MainServlet and hence for
-those request logging cannot be done to RequestProgressTracker. Instead we can just get logs enabled
-and route them to normal logging on server side. For that you need to use HTTP header
-
-* `Sling-Tracers` - Set of tracer set names
-* `Sling-Tracer-Config` - Tracer config
-
-So to enable authentication related logging following request can be sent
-
-curl -D - -d "j_username=admin"         -d "j_password=admin"         -d "j_validate=true"          -H "Sling-Tracer-Config : org.apache.sling.auth;level=trace,org.apache.jackrabbit.oak.security;level=trace"         http://localhost:8080/libs/content/login.html/j_security_check
-
-This would result in following server side logs
-
-2015-05-11 17:34:56,531 INFO  NA [qtp1395423247-193] c.a.acs.acs-aem-tools-bundle - Service [4859] ServiceEvent REGISTERED
-2015-05-11 17:34:56,532 DEBUG NA [qtp1395423247-193] o.a.s.a.c.i.SlingAuthenticator - doHandleSecurity: Trying to get a session for null
-2015-05-11 17:34:56,532 DEBUG NA [qtp1395423247-193] o.a.j.o.s.a.LoginContextProviderImpl - Found pre-authenticated subject: No further login actions required.
-2015-05-11 17:34:56,532 DEBUG NA [qtp1395423247-193] o.a.j.o.s.a.LoginContextProviderImpl - Found pre-authenticated subject: No further login actions required.
-2015-05-11 17:34:56,548 DEBUG NA [qtp1395423247-193] o.a.j.o.s.a.u.LoginModuleImpl - Adding Credentials to shared state.
-2015-05-11 17:34:56,548 DEBUG NA [qtp1395423247-193] o.a.j.o.s.a.u.LoginModuleImpl - Adding login name to shared state.
-
-## Tracer Recording
-
-_Since 1.0.0 [SLING-5459][SLING-5459]_
-
-Apart from routing the logs to the server logs they can also be stored in memory and accessed in
-json form from Felix Web Console. By default support for recording is disabled and it needs to be
-explicitly enabled via OSGi config
-
-Recording features works as explained below
-
-1. Client sends an HTTP request with header `Sling-Tracer-Record`​ set to `true`
-
-curl -D - -u admin:admin           -H "Sling-Tracer-Record : true"          -d "./jcr:content/jcr:title=Summer Collection"          -d ":name=summer-collection"          -d "./jcr:primaryType=sling:Folder"          -d "./jcr:content/jcr:primaryType=nt:unstructured"          -d "tracers=oak-writes"          http://localhost:4802/content/dam/
-
-2. Server includes a request id as part of `Sling-Tracer-Request-Id` response headers
-
-HTTP/1.1 201 Created
-Date: Wed, 27 Jan 2016 07:30:22 GMT
-Sling-Tracer-Request-Id: 9b5b01f6-f269-47c3-a889-2dc8d4d7938f
-X-Content-Type-Options: nosniff
-X-Frame-Options: SAMEORIGIN
-Location: /content/dam/summer-collection
-Content-Type: text/html; charset=UTF-8
-Transfer-Encoding: chunked
-
-3. The logs in json format can then be fetched from server at `/system/console/tracer` like
-http://localhost:8080/system/console/tracer/9b5b01f6-f269-47c3-a889-2dc8d4d7938f.json.
-
-curl -s -D - -H "Sling-Tracer-Record : true" -H "Sling-Tracers : oak-query"         -H "Sling-Tracer-Config : org.apache.jackrabbit.oak.query"         -u admin:admin http://localhost:4512/assets.html/content/dam -o /dev/null
-
-Below is a json output for GET request
-
-:::javascript
-{
-"method": "GET",
-"time": 15140,
-"timestamp": 1461574009024,
-"requestProgressLogs": [
-"0 TIMER_START{Request Processing}",
-"0 COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message>",
-...
-],
-"queries": [{
-"query": "/jcr:root/etc/workflow/instances//element(*,app:Workflow)[@status='RUNNING'] order by @startTime descending",
-"plan": "[app:Workflow] as [a] /* property status = RUNNING where ([a].[status] = 'RUNNING') and (isdescendantnode([a], [/etc/workflow/instances])) */",
-"caller": "com.example.WorkflowManager.getWorkflowInstances(WorkflowManager.java:902)"
-}
-],
-"logs": [{
-"timestamp": 1461574022401,
-"level": "DEBUG",
-"logger": "org.apache.jackrabbit.oak.query.QueryEngineImpl",
-"message": "Parsing xpath statement: /jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING'] order by @startTime descending",
-"params": [
-"xpath",
-"/jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING'] order by @startTime descending"
-]
-}
-...
-]
-}
-
-JSON output consist of following sections
-
-1. `method` - Request method
-2. `time` - Time in mills spent in request processing on server
-3. `timestamp` - Request start time
-4. `requestProgressLogs` - Sling Request Progress Tracker log for the given request
-5. `queries` - List of queries fired along with details around `query`, `plan` and `caller` i.e. from where
-the query is invoked
-6. `logs` - List of log entries captured (as enabled by tracer config) for current request
-
-The recordings are held in memory for 15 mins (per default setting) and can be seen listed at http://localhost:8080/system/console/tracer. Look into the OSGi config for more config options
-around this.
-
-## Installation
-
-Download the bundle from [here][5] or use following Maven dependency
-
-::xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.tracer</artifactId>
-<version>1.0.0</version>
-</dependency>
-
-
-[1]: http://logback.qos.ch/manual/filters.html#TurboFilter
-[2]: https://sling.apache.org/documentation/development/monitoring-requests.html
-[3]: https://sling.apache.org/apidocs/sling5/org/apache/sling/api/request/RequestProgressTracker.html
-[4]: http://dev.day.com/content/ddc/blog/2008/06/requestprogresstracker.html
-[SLING-4739]: https://issues.apache.org/jira/browse/SLING-4739
-[SLING-5505]: https://issues.apache.org/jira/browse/SLING-5505
-[SLING-5459]: https://issues.apache.org/jira/browse/SLING-5459
-[5]: http://sling.apache.org/downloads.cgi


[26/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/lib/path.pm
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/lib/path.pm b/OLD-from-apache-cms/lib/path.pm
deleted file mode 100644
index 5e95026..0000000
--- a/OLD-from-apache-cms/lib/path.pm
+++ /dev/null
@@ -1,39 +0,0 @@
-package path;
-use ASF::Value;
-
-# taken from django's url.py
-
-our @patterns = (
-	[qr!\.mdtext$!, single_narrative => { template => "single_narrative.html" }],
-	[qr!^/sitemap\.html$!, sitemap => { headers => { title => "Sling Sitemap" }}],
-	[qr!^/downloads\.list$!, downloads => { template => "downloads.html" }],
-) ;
-
-# for specifying interdependencies between files
-
-#our %dependencies = (
-#    "/sling/sitemap.html" => [ grep s!^content!!, glob "content/sling/*.mdtext" ],
-#);
-
-1;
-
-=head1 LICENSE
-
-           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.
-
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/lib/view.pm
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/lib/view.pm b/OLD-from-apache-cms/lib/view.pm
deleted file mode 100644
index 9770af2..0000000
--- a/OLD-from-apache-cms/lib/view.pm
+++ /dev/null
@@ -1,434 +0,0 @@
-package view;
-
-#
-# BUILD CONSTRAINT:  all views must return $content, $extension.
-# additional return values (as seen below) are optional.  However,
-# careful use of symlinks and dependency management in path.pm can
-# resolve most issues with this constraint.
-#
-
-use strict;
-use warnings;
-use Dotiac::DTL qw/Template/;
-use Dotiac::DTL::Addon::markup;
-use ASF::Util qw/read_text_file shuffle/;
-use File::Temp qw/tempfile/;
-use LWP::Simple;
-use SVN::Client;
-use File::Find;
-use File::Basename;
-
-push @Dotiac::DTL::TEMPLATE_DIRS, "templates";
-
-# This is most widely used view.  It takes a
-# 'template' argument and a 'path' argument.
-# Assuming the path ends in foo.mdtext, any files
-# like foo/bar.mdtext will be parsed and
-# passed to the template in the "bar" (hash)
-# variable.
-
-sub single_narrative {
-    my %args = @_;
-    my $file = "content$args{path}";
-    my $template = $args{template};
-    $args{path} =~ s/\.mdtext$/\.html/;
-    $args{breadcrumbs} = breadcrumbs($args{path});
-    $args{svninfo} = svninfo($file);
-
-    read_text_file $file, \%args;
-
-    $args{refs} = {};
-
-    # render tip box with reference to Confluence export
-    # if translation for a page is still pending
-    if($args{headers}->{translation_pending}) {
-        $args{oldpage} = "/site/" . basename($args{path});
-    }
-
-    # ensure loading child pages
-    my $page_path = $file;
-    $page_path =~ s/\.[^.]+$//;
-    if (-d $page_path) {
-        $args{children} = {};
-        for my $f (grep -f, glob "$page_path/*.mdtext") {
-            $f =~ m!/([^/]+)\.mdtext$! or die "Bad filename: $f\n";
-            $args{children}->{$1} = read_ref_page_data($f);
-            $args{refs}->{$1} = $args{children}->{$1};
-        }
-    }
-
-    # ensure loading pages referenced with ref.XXX.*    
-    while( $args{content} =~ /refs\.([^.]+)\./g ) {
-        my $label = $1;
-        if(!$args{refs}->{$label}) {
-            my $refPagePath;
-            find(sub {
-                if(!$refPagePath && $_ eq "$label.mdtext") {
-                    $refPagePath = $File::Find::name;
-                }
-            }, "content");
-            
-            if($refPagePath) {
-                $args{refs}->{$label} = read_ref_page_data($refPagePath);
-            }
-        }
-    }
-
-#	$args{sidenav} = {};
-#	read_text_file "templates/sidenav.mdtext", $args{sidenav} ;
-
-#	select STDOUT ;
-#	$| = 1 ;
-#	for my $ke (keys %args) {
-#		print STDOUT "$ke \n";
-#	}
-
-    # use the content as a template if it contains Django templates
-    if ($args{content} =~ /\{[{%][^}]*[%}]\}/) {
-        print STDOUT "Applying $args{path} as a Django template\n";
-        $args{content} = Dotiac::DTL->new(\$args{content})->render(\%args);
-    }
-    
-    return Dotiac::DTL::Template($template)->render(\%args), html => \%args;
-}
-
-# The specially crafted download page
-# Input is a list of artifacts formatted as:
-#
-#   <title>|<id>|<version>[|<qualifier>]
-#
-# Special handling if title is "sling": This denotes the
-# version of the Sling Launchpad distribution whie is
-# rendered specially: The id is actually the launchpad
-# distribution version
-sub downloads {
-	my %args = @_;	
-    my $file = "content$args{path}";
-    my $template = $args{template};
-    $args{path} =~ s/\.list$/\.html/;
-    $args{breadcrumbs} = breadcrumbs($args{path});
-    $args{svninfo} = svninfo($file);
-	
-    read_text_file $file, \%args;
-
-    my $result = "|Artifact | Version | Binary | Source|\n|--|--|--|--|\n";
-    my $maven = "|Artifact | Version | Binary | Source|\n|--|--|--|--|\n";
-    my $launchpad = "| Artifact | Version | Provides | Package |\n|-|-|-|-|\n";
-    my $ide = "|Artifact | Version | Provides | Update site |\n|--|--|--|--|\n";
-
-    my @lines = split( /\n/, $args{content} );
-    @lines = sort @lines;
-    for my $line (@lines) {
-    	next if (!$line || $line =~ /^\s*#/);
-    	
-    	my ($title, $artifact, $version, $classifier, $ext) = split(/\|/, $line);
-    	$ext = "jar" unless ($ext);
-    	$classifier = ($classifier) ? "-$classifier" : "";
-    	
-    	if ($title eq "sling") {
-    		
-            $launchpad .="| Sling Standalone Application | $artifact | A self-runnable Sling jar. | " . downloadLink("org.apache.sling.launchpad-$artifact.jar"). "|\n";
-            $launchpad .="| Sling Web Application | $artifact | A ready-to run Sling webapp as a war file. | " . downloadLink("org.apache.sling.launchpad-$artifact-webapp.war"). "|\n";
-            $launchpad .="| Sling Source Release | $artifact | The released Sling source code. | " . downloadLink("org.apache.sling.launchpad-$artifact-source-release.zip")." |\n";
-        } elsif ( $title eq "sling-ide-tooling" ) {
-
-            $ide .= "| Sling IDE Tooling for Eclipse | $artifact | A p2 update site which can be installed in Eclipse. | " . downloadLinkWithoutSigs("eclipse/$artifact", "Update site") . " " . downloadLink("org.apache.sling.ide.p2update-$artifact.zip", "(zip download)") ." |\n";
-    	} else {
-	    	
-	    	my $target = \$result;
-	    	my $artifactLabel;
-	    	if ($ext eq "war") {
-                $artifactLabel = "Web Application";
-	    	} elsif ($classifier eq "-app") {
-                $artifactLabel = "Java Application";
-	    	} elsif ($artifact =~/^maven-.*-plugin|.*-maven-plugin/) {
-	    		$target = \$maven;
-                $artifactLabel = "Maven Plugin";
-	    	} else {
-	    		$artifactLabel = "Bundle";
-	    	}
-	    	
-	        ${$target} .= "|$title|$version|" . downloadLink("$artifact-$version$classifier.$ext", $artifactLabel) . " | " . downloadLink("$artifact-$version-source-release.zip", "Source ZIP") . "|\n";
-    	}
-    }
-
-    $args{launchpad} = $launchpad;
-    $args{content} = $result;
-    $args{maven} = $maven;
-    $args{ide} = $ide;
-    
-    return Dotiac::DTL::Template($template)->render(\%args), html => \%args;
-}
-
-# Has the same behavior as the above for foo/bar.txt
-# files, parsing them into a bar variable for the template.
-# Otherwise presumes the template is the path.
-
-sub news_page {
-    my %args = @_;
-    my $template = "content$args{path}";
-    $args{breadcrumbs} = breadcrumbs($args{path});
-
-    my $page_path = $template;
-    $page_path =~ s/\.[^.]+$//;
-    if (-d $page_path) {
-        for my $f (grep -f, glob "$page_path/*.mdtext") {
-            $f =~ m!/([^/]+)\.mdtext$! or die "Bad filename: $f\n";
-            $args{$1} = {};
-            read_text_file $f, $args{$1};
-        }
-    }
-
-    for ((fetch_doap_url_list())[0..2]) {
-        push @{$args{projects}}, parse_doap($_);
-    }
-
-    return Dotiac::DTL::Template($template)->render(\%args), html => \%args;
-}
-
-# Recursive Sitemap generation
-# Taken from: http://svn.apache.org/repos/asf/chemistry/site/trunk/lib/view.pm
-sub sitemap {
-   my %args = @_;
-   my $template = "content$args{path}";
-   my $file = $template;
-
-   # Find the list of files
-   my ($dir) = ($file =~ /^(.*)\/.*?/);
-   my $entries = {};
-   sitemapFind($dir, $entries);
-
-   my $sitemap = "<ul>\n";
-   $sitemap = sitemapRender($sitemap, $entries, "");
-   $sitemap .= "</ul>\n";
-   $args{sitemap} = $sitemap;
-   
-   return Dotiac::DTL::Template($template)->render(\%args), html => \%args;   
-}
-
-sub sitemapFind {
-   my ($dir, $entries) = @_;
-   $entries->{"title"} = "";
-   $entries->{"entries"} = {};
-   my %entries = ( "title"=>"", "entries"=>{} );
-
-   foreach my $item (<$dir/*>) {
-      my ($rel) = ($item =~ /^.*\/(.*?)$/);
-
-      if(-d $item) {
-      	 # Only consider folders which have content page by them
-      	 if(-f "$item.mdtext") {
-            $rel .= ".mdtext" ;
-            $entries->{"entries"}->{$rel} = {};
-            sitemapFind($item, $entries->{"entries"}->{$rel});
-      	 }
-      } elsif($item =~ /\.(html|mdtext)$/) {
-         # Grab the title
-         my $title = $rel;
-         if($rel =~ /\.mdtext$/) {
-             my %args;
-             read_text_file $item, \%args;
-             $title = $args{"headers"}->{"title"};
-         } elsif ($rel =~ /\.png$/ || $rel =~ /\.jpg$/) {
-            next;
-         } else {
-             open F, "<$item";
-             my $file = "";
-             while(my $line = <F>) {
-                $file .= $line;
-             }
-             close F;
-
-             if($file =~ /block\s+title\s*\%\}(.*?)\{/) {
-                $title = $1;
-             } elsif($file =~ /title\>(.*?)\</) {
-                $title = $1;
-             }
-         }
-
-         # Process
-         if($rel =~ /^index\.(html|mdtext)$/) {
-            $entries->{"title"} = $title;
-         } else {
-            $entries->{entries}->{$rel}->{title} = $title;
-         }
-      }
-   }
-   return %entries;
-}
-
-sub sitemapRender {
-   my ($sitemap, $dir, $path) = @_;
-   my %entries = %{$dir->{"entries"}};
-
-   foreach my $e (sort keys %entries) {
-      my $fn = $e;
-      $fn =~ s/\.mdtext/.html/;
-      if($fn eq "images/" or $fn eq "resources/") {
-         next;
-      }
-
-      my $title = $entries{$e}->{title};
-      unless($title) {
-         $title = $e;
-      }
-
-      $sitemap .= "<li><a href=\"$path/$fn\">".$title."</a>";
-      if($entries{$e}->{entries}) {
-         my $parent = $e;
-         $parent =~ s/\.mdtext$//;
-         $sitemap .= "<ul>\n";
-         $sitemap = sitemapRender($sitemap, $entries{$e}, "$path/$parent");
-         $sitemap .= "</ul>\n";
-      }
-      $sitemap .= "</li>\n";
-   }
-   return $sitemap;
-}
-
-
-
-sub exports {
-    my %args = @_;
-    my $template = "content$args{path}";
-    $args{breadcrumbs} = breadcrumbs($args{path});
-
-    my $page_path = $template;
-    $page_path =~ s/\.[^.]+$/.page/;
-    if (-d $page_path) {
-        for my $f (grep -f, glob "$page_path/*.mdtext") {
-            $f =~ m!/([^/]+)\.mdtext$! or die "Bad filename: $f\n";
-            $args{$1} = {};
-            read_text_file $f, $args{$1};
-        }
-        $args{table} = `xsltproc $page_path/eccnmatrix.xsl $page_path/eccnmatrix.xml`;
-
-    }
-
-    return Dotiac::DTL::Template($template)->render(\%args), html => \%args;
-}
-
-sub parse_doap {
-    my $url = shift;
-    my $doap = get $url or die "Can't get $url: $!\n";
-    my ($fh, $filename) = tempfile("XXXXXX");
-    print $fh $doap;
-    close $fh;
-    my $result = eval `xsltproc lib/doap2perl.xsl $filename`;
-    unlink $filename;
-    return $result;
-}
-
-sub fetch_doap_url_list {
-    my $xml = get "http://svn.apache.org/repos/asf/infrastructure/site-tools/trunk/projects/files.xml"
-        or die "Can't get doap file list: $!\n";
-    my ($fh, $filename) = tempfile("XXXXXX");
-    print $fh $xml;
-    close $fh;
-    chomp(my @urls = grep /^http/, `xsltproc lib/list2urls.xsl $filename`);
-    unlink $filename;
-    shuffle \@urls;
-    return @urls;
-}
-
-1;
-
-
-# Reads data of a referenced page
-sub read_ref_page_data {
-    my $file = shift;
-    my $out = {};
-    
-    read_text_file $file, $out;
-    $out->{path} = "$file";
-    $out->{path} =~ s/content(\/.*)\.mdtext/$1.html/;
-    
-    return $out;
-}
-
-sub downloadLink {
-	my ($artifact, $label) = @_;
-    my $dp = "http://www.apache.org/dist";
-    $label = $artifact unless ($label);
-    return "[$label]([preferred]sling/$artifact) ([asc]($dp/sling/$artifact.asc), [md5]($dp/sling/$artifact.md5))";
-}
-
-sub downloadLinkWithoutSigs {
-
-	my ($artifact, $label) = @_;
-    $label = $artifact unless ($label);
-    return "[$label]([preferred]sling/$artifact)";
-}
-
-sub breadcrumbs {
-    my @path = split m!/!, shift;
-    pop @path;
-    my @rv;
-    my $relpath = "";
-    my $ext;
-    my $sep = "/";
-    for (@path) {
-        $relpath .= "$sep$_";
-        if ($_) {
-            $_ = "";
-            my $datafile = "content$relpath.mdtext";
-            my %data;
-            if (-f $datafile) {
-                read_text_file $datafile, \%data;
-                $ext = ".html";
-                $sep = "/";
-                my $title = ${data{headers}}{title};
-                if ($title) {
-                    $_ = $title;
-                }
-            }
-        } else {
-            $_ = "Home";
-            $ext = "";
-            $sep = "";
-        }
-        push @rv, qq(<a href="$relpath$ext">$_</a>) if $_;
-    }
-    return join "&nbsp;&raquo&nbsp;", @rv;
-}
-
-
-# Returns information on the last change to the file
-# as a reference to a has with three properties
-# - rev The SVN Revision
-# - date The last modification date (seconds since the epoch)
-# - author of the revision
-sub svninfo {
-  my $source = $_[0];
-  my %info;
-  my $receiver = sub {
-    my $svninfo = $_[1];
-    $info{rev} = $svninfo->last_changed_rev;
-    $info{date} = $svninfo->last_changed_date / 1000000;
-    $info{author} = $svninfo->last_changed_author;
-  };
-
-  my $ctx = SVN::Client->new;
-  $ctx->info($source, undef, undef, $receiver, 0);
-  return \%info;
-}
-
-
-=head1 LICENSE
-
-           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.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/templates/downloads.html
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/templates/downloads.html b/OLD-from-apache-cms/templates/downloads.html
deleted file mode 100644
index f9f1cbc..0000000
--- a/OLD-from-apache-cms/templates/downloads.html
+++ /dev/null
@@ -1,93 +0,0 @@
-{% extends "skeleton.html" %}
-{% block title %}Downloads{% endblock %}
-{% block content %}
-<p>
-To get the latest development release of Apache Sling, you can check out
-the <a href="/project-information.html#source-repository">Source Code</a>
-and <a href="/documentation/development/getting-and-building-sling.html">Getting and Building Sling</a>
-yourself. Otherwise, the releases below are available for download. To
-install, just download and extract. The PGP keys at
-<a href="https://people.apache.org/keys/group/sling.asc">https://people.apache.org/keys/group/sling.asc</a>
-can be used to verify the integrity of the release archives.
-</p>
-
-<p>
-All Apache Sling products are distributed under the terms of The Apache
-Software License (version 2.0). See our
-<a href="/project-information/project-license.html">license</a>, or the LICENSE file included
-in each distribution.
-</p>
-
-<div class="toc">
-<ul>
-<li><a href="#mirrors">Mirrors</a></li>
-<li><a href="#application">Sling Application</a></li>
-<li><a href="#ide-tooling">Sling IDE Tooling</a></li>
-<li><a href="#components">Sling Components</a></li>
-<li><a href="#maven">Maven Plugins</a></li>
-</ul>
-</div>
-
-<h2 id="mirrors">Mirrors</h2>
-
-<p>
-Use the links below to download binary or source distributions of Apache
-Sling from one of our mirrors.
-</p>
-
-<p>
-You are currently using <b>[preferred]</b>. If you encounter a problem with
-this mirror, please select another mirror. If all mirrors are failing,
-there are backup mirrors (at the end of the mirrors list) that should be
-available. If the mirror displayed above is labeled <i>preferred</i>, then
-please reload this page by <a href="/downloads.cgi">clicking here</a>.
-</p>
-
-<form action="[location]" method="get" id="SelectMirror">
-<p>Other mirrors: </p>
-<select name="Preferred">
-[if-any http]
-[for http]<option value="[http]">[http]</option>[end]
-[end]
-[if-any ftp]
-[for ftp]<option value="[ftp]">[ftp]</option>[end]
-[end]
-[if-any backup]
-[for backup]<option value="[backup]">[backup] (backup)</option>[end]
-[end]
-</select>
-<input type="submit" value="Change"></input>
-</form>
-
-<h2 id="application">Sling Application</h2>
-
-{{ launchpad|markdown }}
-
-<p>For quick provisioning using docker you can simply run <code>docker pull apachesling/sling</code> to get access to the latest version of the launchpad.</p>
-
-<p>
-To get the latest code you can
-<a href="/documentation/development/getting-and-building-sling.html">build Sling yourself</a>,
-it's not that hard.
-</p>
-
-<p>
-If you are looking for previous releases of Apache Sling, have a look in
-the <a href="http://archive.apache.org/dist/sling/">archives</a>. For previous
-incubator releases of Apache Sling, have a look in the
-<a href="http://archive.apache.org/dist/incubator/sling/">Incubator archives</a>.
-</p>
-
-<h2 id="ide-tooling">Sling IDE Tooling</h2>
-
-<p>If you want to install the convenience binaries for the IDE tooling, it's recommended that you add <a href="[preferred]sling/eclipse">[preferred]sling/eclipse</a> as an update site URL. This way you will receive updates every time a new version is released. For specific versions and zipped update site download, see the table below.</p>
-
-{{ ide|markdown }}
-
-<h2 id="components">Sling Components</h2>
-{{ content|markdown }}
-
-<h2 id="maven">Maven Plugins</h2>
-{{ maven|markdown }}
-
-{% endblock %}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/templates/force-site-build
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/templates/force-site-build b/OLD-from-apache-cms/templates/force-site-build
deleted file mode 100644
index 76aece7..0000000
--- a/OLD-from-apache-cms/templates/force-site-build
+++ /dev/null
@@ -1 +0,0 @@
-http://www.apache.org/dev/cmsref.html#force-site-build

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/templates/sidenav.mdtext
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/templates/sidenav.mdtext b/OLD-from-apache-cms/templates/sidenav.mdtext
deleted file mode 100644
index 87131cd..0000000
--- a/OLD-from-apache-cms/templates/sidenav.mdtext
+++ /dev/null
@@ -1,51 +0,0 @@
-**[Documentation](/documentation.html)**   
-[Getting Started](/documentation/getting-started.html)   
-[The Sling Engine](/documentation/the-sling-engine.html)   
-[Development](/documentation/development.html)   
-[Bundles](/documentation/bundles.html)   
-[Tutorials & How-Tos](/documentation/tutorials-how-tos.html)   
-[Configuration](/documentation/configuration.html)   
-
-[Wiki](http://s.apache.org/sling.wiki)   
-[FAQ](http://s.apache.org/sling.faq)   
-
-**API Docs**    
-[Sling 9](/apidocs/sling9/index.html)   
-[Sling 8](/apidocs/sling8/index.html)   
-[Sling 7](/apidocs/sling7/index.html)   
-[Sling 6](/apidocs/sling6/index.html)   
-[Sling 5](/apidocs/sling5/index.html)   
-[Archive at javadoc.io](/javadoc-io.html)   
-
-**Project info**   
-[Downloads](/downloads.cgi)   
-[License](http://www.apache.org/licenses/)   
-[Contributing](/contributing.html)   
-[News](/news.html)   
-[Links](/links.html)   
-[Project Information](/project-information.html)   
-[Issue Tracker](https://issues.apache.org/jira/browse/SLING)   
-[Build Server](http://ci.apache.org/builders/sling-trunk)   
-[Security](/project-information/security.html)   
-
-**Source**   
-[Subversion](http://svn.apache.org/viewvc/sling/trunk)   
-[Git](git://git.apache.org/sling.git)   
-[Github Mirror](https://github.com/apache/sling)   
-
-**Sponsorship**   
-[Thanks](http://www.apache.org/foundation/thanks.html)   
-[Become a Sponsor](http://www.apache.org/foundation/sponsorship.html)   
-[Buy Stuff](http://www.apache.org/foundation/buy_stuff.html)   
-
-**[Site Map](/sitemap.html)**
-
-<!-- no valid ads for now, we'll  reactivate this when needed
-<iframe 
-	src="http://www.apache.org/ads/button.html"
-	style="border-width:0; float: left" frameborder="0" 
-	scrolling="no"
-	width="135" 
-	height="135">
-</iframe>
--->

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/templates/single_narrative.html
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/templates/single_narrative.html b/OLD-from-apache-cms/templates/single_narrative.html
deleted file mode 100644
index 42900c5..0000000
--- a/OLD-from-apache-cms/templates/single_narrative.html
+++ /dev/null
@@ -1,3 +0,0 @@
-{% extends "skeleton.html" %}
-{% block title %}{{ headers.title }}{% endblock %}
-{% block content %}{{ content|markdown }}{% endblock %}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/templates/skeleton.html
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/templates/skeleton.html b/OLD-from-apache-cms/templates/skeleton.html
deleted file mode 100644
index d77ce39..0000000
--- a/OLD-from-apache-cms/templates/skeleton.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<!--
-
-    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.
--->
-  <head>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-    <title>Apache Sling - {% block title %}{% endblock %}</title>
-    <link rel="icon" href="/res/favicon.ico">
-    <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
-    <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
-  </head>
-  <body>
-    <div class="title">
-      <div class="logo">
-        <a href="//sling.apache.org/">
-          <img border="0" alt="Apache Sling" src="/res/logo.svg">
-        </a>
-      </div>
-      <div class="header">
-        <a href="//www.apache.org/">
-          <img border="0" alt="Apache" src="/res/apache.png">
-        </a>
-      </div>
-    </div>
-    
-    <div class="menu"> 
-      {% filter markdown %}{% include "sidenav.mdtext" %}{% endfilter %}
-    </div>
-    
-    <div class="main">
-      <div class="breadcrump" style="font-size: 80%;">
-        {{ breadcrumbs|safe }}
-      </div>
-
-      {%if oldpage %}
-      <div class="tip">
-           This page is a translated version of <a href="{{ oldpage }}" target="sling_cwiki">{{ oldpage }}</a>. In case of
-           doubt you might want to refer to the old page.
-      </div>
-      {% endif %}
-      
-      <h1>{% block title %}{% endblock %}</h1>
-      {% block content %}{% endblock %}
-      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. {{ svninfo.rev }} by {{ svninfo.author|safe }} on {{ svninfo.date|date:"D, j M Y H:i:s O" }}
-      </div>
-      <div class="trademarkFooter"> 
-        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
-        logo are trademarks of The Apache Software Foundation. All other marks mentioned
-        may be trademarks or registered trademarks of their respective owners.
-      </div>
-    </div>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/update-obr.sh
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/update-obr.sh b/OLD-from-apache-cms/update-obr.sh
deleted file mode 100755
index edef12a..0000000
--- a/OLD-from-apache-cms/update-obr.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-
-# Note: so far this is only tested on Mac OSX. Please remove this comment
-#       if it works on Linux, or fix if it doesn't.
-
-if [ "$2" == "" ]; then
-    echo "Usage: sh $0 <module> <version>"
-    echo "       e.g. sh $0 org.apache.sling.commons.threads 3.2.2"
-    exit 1
-fi
-
-MODULE=$1
-VERSION=$2
-
-TMP_DIR=tmp-update-obr/$MODULE-$VERSION
-
-URL_PREFIX=https://repository.apache.org/content/groups/public/org/apache/sling/$MODULE/$VERSION
-JAR_NAME=$MODULE-$VERSION.jar
-POM_NAME=$MODULE-$VERSION.pom
-
-SITE_DIR=$(pwd)
-
-function download {
-    FILE=$1
-    curl -fO $URL_PREFIX/$FILE 2> /dev/null
-    if [ "$?" != "0" ]; then
-        echo Failed to download artifact $URL_PREFIX/$FILE
-        echo Please verify that the desired artifact is available. 
-        exit 1;
-    fi
-}
-
-mkdir -p $TMP_DIR
-
-(
-    cd $TMP_DIR                       
-
-    download $POM_NAME
-    download $JAR_NAME
-
-    mvn org.apache.felix:maven-bundle-plugin:deploy-file \
-        -Dfile=$JAR_NAME -DpomFile=$POM_NAME \
-        -DbundleUrl=http://repo1.maven.org/maven2/org/apache/sling/$MODULE/$VERSION/$JAR_NAME \
-        -Durl=file:///$SITE_DIR/content/obr \
-        -DprefixUrl=http://repo1.maven.org/maven2 \
-        -DremoteOBR=sling.xml
-)
-
-rm -rf tmp-update-obr/
-echo OBR updated successfully. Please review the changes and commit.
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
deleted file mode 100644
index 146d958..0000000
--- a/README.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# sling-jbake
-Experimenting with JBake for the Apache Sling website.
-
-See also https://issues.apache.org/jira/browse/SLING-6955
-
-
-## How to build the site locally
-* Clone this repository
-* Run `./bake.sh`
-* Open http://localhost:8820/ and enjoy.
-
-## TODO
-
-### "Looks easy" (famous last words)
-* Move images and other files to /assets and convert their links
-* Enumerate child pages in documentation/tutorials-how-tos.html -> replace with a manually generated list? or use tags to mark and select that content.
-* Fix references like `refs.authentication-tasks.headers.excerpt` as well as `.title` references -> replace with copies of those titles and excerpts, or use tags to mark and select
-* Fix remaining `refs.` links -> those are probably broken anyway
-* The `#!java` macro is not supported -> convert to monospaced code
-* Finish the dynamic downloads page, links are still TODO + test with CGI script
-* sitemap page is missing
-
-### Nice to have
-* JBake 2.5.x does not support the `[TOC]` macro but apparently that will be available once JBake moves to https://github.com/vsch/flexmark-java , probably in its next version. We might wait for that and just mark the TOCs as unsupported for now.
-* Left menu is not yellow as on the old site (we might refresh the overall style anyway)
-
-### Final validation, activation etc.
-* Review all pages
-* Resync the content with the current Sling website if needed, initially synced at r1798604
-* Move the Git repository to apache.org, create an `asf-site` branch for the live content and ask infra to setup gitpubsub to activate it
-
-### Done
-* Fix internal links like `refs.project-information.path` 
-* Page header and footer, logo etc
-* Remove unused assets files and templates (copied from JBake Groovy sample)
-* Tables work now, needed the pegdown TABLES extension
-
-## JBake notes
-* Currently using 2.5.1, see under `/bin`, docs at http://jbake.org/docs/2.5.1
-* Uses https://github.com/sirthias/pegdown for Markdown, syntax info at https://github.com/sirthias/pegdown/blob/master/src/test/resources/MarkdownTest103/Markdown%20Documentation%20-%20Syntax.md , extensions at http://www.decodified.com/pegdown/api/org/pegdown/Extensions.html
-* Groovy MarkupTemplateEngine examples at https://github.com/jbake-org/jbake-example-project-groovy-mt , docs for that engine at http://groovy-lang.org/templating.html#_simpletemplateengine

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/UNUSED-from-tamaya-example/bake-jenkins.sh
----------------------------------------------------------------------
diff --git a/UNUSED-from-tamaya-example/bake-jenkins.sh b/UNUSED-from-tamaya-example/bake-jenkins.sh
deleted file mode 100755
index 3d3283b..0000000
--- a/UNUSED-from-tamaya-example/bake-jenkins.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash -x
-echo "Starting to bake our project homepage ...."
-export JBAKE_HOME="$(dirname "$0")/bin/jbake-2.5.1"
-echo $JBAKE_HOME
-$JBAKE_HOME/bin/jbake -b --reset
-echo "DONE"
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/UNUSED-from-tamaya-example/copysite.sh
----------------------------------------------------------------------
diff --git a/UNUSED-from-tamaya-example/copysite.sh b/UNUSED-from-tamaya-example/copysite.sh
deleted file mode 100755
index 19c9008..0000000
--- a/UNUSED-from-tamaya-example/copysite.sh
+++ /dev/null
@@ -1,7 +0,0 @@
- #!/bin/bash          
-echo "Starting to bake our project homepage ...."
-export JBAKE_HOME="$(dirname "$0")/bin/jbake-2.5.1"
-echo $JBAKE_HOME
-$JBAKE_HOME/bin/jbake -b
-echo "Copying stuff from original into new branch ..."
-git checkout asf-site && ./copy-site.sh

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/WEBSITE-HOWTO.txt
----------------------------------------------------------------------
diff --git a/WEBSITE-HOWTO.txt b/WEBSITE-HOWTO.txt
deleted file mode 100644
index b592fe9..0000000
--- a/WEBSITE-HOWTO.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-How to update the Sling website
--------------------------------
-TODO describe how to use the JBake/gitpubsub setup.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/assets/res/css/codehilite.css
----------------------------------------------------------------------
diff --git a/assets/res/css/codehilite.css b/assets/res/css/codehilite.css
deleted file mode 100644
index 93ce023..0000000
--- a/assets/res/css/codehilite.css
+++ /dev/null
@@ -1,429 +0,0 @@
-/*************************************************************************
-
-    For reference: classes defined by the Confluence batch.css
-    
-.code {
-    border-width: 1px;
-    border-style: dashed;
-    overflow: auto;
-}
-
-.code,.preformatted {
-    background-color: #fff;
-}
-
-.code pre,.preformatted pre {
-    font-family: "Courier New", Courier, monospace;
-    line-height: 1.3;
-}
-
-.code-keyword {
-    color: #000091;
-    background-color: inherit;
-}
-
-.code-object {
-    color: #910091;
-    background-color: inherit;
-}
-
-.code-quote {
-    color: #009100;
-    background-color: inherit;
-}
-
-.code-comment {
-    color: #808080;
-    background-color: inherit;
-}
-
-.code-xml .code-keyword {
-    color: inherit;
-    font-weight: bold;
-}
-
-.code-tag {
-    color: #000091;
-    background-color: inherit;
-}
-
-*/
-
-/*************************************************************************
-
-    For reference: classes defined by the old Sling Site CSS
-
-.codehilite {
-    color: black;
-    background-color: #f0f0f0;
-    border: solid 1px black;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-    padding: 0.5em
-}
-
-.codeHeader {
-    text-align: center;
-    font-family: monospace;
-    border-bottom: 1px solid black;
-    padding-top: 0.5em;
-    padding-bottom: 0.5em;
-    margin-bottom: 0.5em;
-}
-
-
-.codehilite pre {
-    margin: 0em
-}
-
-.code-keyword {
-    color: #880000
-}
-
-.code-quote {
-    color: #008800
-}
-
-.code-object {
-    color: #0000dd
-}
-
-.code-java {
-    margin: 0em
-}
-
-*/
-
-/**
-  Apache CMS Code High Lighting
-
-  HTML structure for default (:::, un-numbered code)
-  
-  <div class="codehilite">
-    <pre>
-    ... span-tagged code ...
-    </pre>
-  </div>
-
-
-  HTML structure for #! (line numbered code)
-  
-  <table class="codehilitetable">
-    <tr>
-        <td class="linenos">
-            <div class="linenodiv">
-                <pre>
-                ... line numbers ...
-                </pre>
-            </div>
-        </td>
-        <td class="code">
-            <div class="codehilite">
-                <pre>
-                ... span-tagged code ...
-                </pre>
-            </div>
-        </td>
-    </tr>
-  </table>
-*/
-
-.codehilitetable, .codehilite {
-    color: black;
-    background-color: #f4f4f4;
-    border: solid 1px #DDD;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-    padding: 0.5em;
-}
-
-.codehilitetable .linenos {
-    border: none;
-}
-
-.codehilitetable .linenos .linenodiv {
-}
-
-.codehilitetable .linenos .linenodiv pre {
-    margin: 0px;
-    padding: 0px;
-}
-
-.codehilitetable .code {
-    border: none;
-}
-
-.codehilitetable .code .codehilite {
-    /** overwrite from .codehilite class above */
-    border: none;
-    margin: 0px;
-    padding: 0px;
-}
-
-.codehilite pre {
-    /* Applies to both .codehilite divs, top level and in table */
-    margin: 0px;
-    padding: 0px;
-    overflow: auto;
-}
-
-
-/**
- * Pygments Code Formatter Styles
- */
- 
-/** Whitespace */
-.codehilite .w {
-}
-/** Error */
-.codehilite .err {
-}
-/** Other */
-.codehilite .x {
-}
-
-/** Keyword */
-.codehilite .k {
-    color: #880000
-}
-/** Keyword.Constant */
-.codehilite .kc {
-    color: #880000
-}
-/** Keyword.Declaration */
-.codehilite .kd {
-    color: #880000
-}
-/** Keyword.Namespace */
-.codehilite .kn {
-    color: #880000
-}
-/** Keyword.Pseudo */
-.codehilite .kp {
-    color: #880000
-}
-/** Keyword.Reserved */
-.codehilite .kr {
-    color: #880000
-}
-/** Keyword.Type */
-.codehilite .kt {
-    color: #880000
-}
-    
-/** Name */
-.codehilite .n {
-    color: #0000dd
-}
-/** Name.Attribute */
-.codehilite .na {
-    color: #0000dd
-}
-/** Name.Builtin */
-.codehilite .nb {
-    color: #0000dd
-}
-/** Name.Builtin.Pseudo */
-.codehilite .bp {
-    color: #0000dd
-}
-/** Name.Class */
-.codehilite .nc {
-    color: #0000dd
-}
-/** Name.Constant */
-.codehilite .no {
-    color: #0000dd
-}
-/** Name.Decorator */
-.codehilite .nd {
-    color: #0000dd
-}
-/** Name.Entity */
-.codehilite .ni {
-    color: #0000dd
-}
-/** Name.Exception */
-.codehilite .ne {
-    color: #0000dd
-}
-/** Name.Function */
-.codehilite .nf {
-    color: #0000dd
-}
-/** Name.Property */
-.codehilite .py {
-    color: #0000dd
-}
-/** Name.Label */
-.codehilite .nl {
-    color: #0000dd
-}
-/** Name.Namespace */
-.codehilite .nn {
-    color: #0000dd
-}
-/** Name.Other */
-.codehilite .nx {
-    color: #0000dd
-}
-/** Name.Tag */
-.codehilite .nt {
-    color: #0000dd
-}
-/** Name.Variable */
-.codehilite .nv {
-    color: #0000dd
-}
-/** Name.Variable.Class */
-.codehilite .vc {
-    color: #0000dd
-}
-/** Name.Variable.Global */
-.codehilite .vg {
-    color: #0000dd
-}
-/** Name.Variable.Instance */
-.codehilite .vi {
-    color: #0000dd
-}
-    
-/** Literal */
-.codehilite .l {
-}
-/** Literal.Date */
-.codehilite .ld {
-}
-
-/** String */
-.codehilite .s {
-    color: #008800
-}
-/** String.Backtick */
-.codehilite .sb {
-    color: #008800
-}
-/** String.Char */
-.codehilite .sc {
-    color: #008800
-}
-/** String.Doc */
-.codehilite .sd {
-    color: #008800
-}
-/** String.Double */
-.codehilite .s2 {
-    color: #008800
-}
-/** String.Escape */
-.codehilite .se {
-    color: #008800
-}
-/** String.Heredoc */
-.codehilite .sh {
-    color: #008800
-}
-/** String.Interpol */
-.codehilite .si {
-    color: #008800
-}
-/** String.Other */
-.codehilite .sx {
-    color: #008800
-}
-/** String.Regex */
-.codehilite .sr {
-    color: #008800
-}
-/** String.Single */
-.codehilite .s1 {
-    color: #008800
-}
-/** String.Symbol */
-.codehilite .ss {
-    color: #008800
-}
-    
-/** Number */
-.codehilite .m {
-}
-/** Number.Float */
-.codehilite .mf {
-}
-/** Number.Hex */
-.codehilite .mh {
-}
-/** Number.Integer */
-.codehilite .mi {
-}
-/** Number.Integer.Long */
-.codehilite .il {
-}
-/** Number.Oct */
-.codehilite .mo {
-}
-/** Operator */
-.codehilite .o {
-}
-/** Operator.Word */
-.codehilite .ow {
-}
-/** Punctuation */
-.codehilite .p {
-}
-
-/** Comment */
-.codehilite .c {
-    color: #808080;
-}
-/** Comment.Multiline */
-.codehilite .cm {
-    color: #808080;
-}
-/** Comment.Preproc */
-.codehilite .cp {
-    color: #808080;
-}
-/** Comment.Single */
-.codehilite .c1 {
-    color: #808080;
-}
-/** Comment.Special */
-.codehilite .cs {
-    color: #808080;
-}
-    
-/** Generic */
-.codehilite .g {
-}
-/** Generic.Deleted */
-.codehilite .gd {
-}
-/** Generic.Emph */
-.codehilite .ge {
-}
-/** Generic.Error */
-.codehilite .gr {
-}
-/** Generic.Heading */
-.codehilite .gh {
-}
-/** Generic.Inserted */
-.codehilite .gi {
-}
-/** Generic.Output */
-.codehilite .go {
-}
-/** Generic.Prompt */
-.codehilite .gp {
-}
-/** Generic.Strong */
-.codehilite .gs {
-}
-/** Generic.Subheading */
-.codehilite .gu {
-}
-/** Generic.Traceback */
-.codehilite .gt {
-}
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/assets/res/css/site.css
----------------------------------------------------------------------
diff --git a/assets/res/css/site.css b/assets/res/css/site.css
deleted file mode 100644
index a626a5a..0000000
--- a/assets/res/css/site.css
+++ /dev/null
@@ -1,263 +0,0 @@
-body {
-    background-color: #ffffff;
-    color: #3b3b3b;
-    font-family: Tahoma, Arial, sans-serif;
-    font-size: 10pt;
-    line-height: 140%
-}
-
-h1,h2,h3,h4,h5,h6 {
-    font-weight: normal;
-    color: #000000;
-    line-height: 100%;
-}
-
-h1 {
-    font-size: 200%;
-    font-weight: bold;
-    border-bottom: solid #EEE 1px;
-    border-top: solid #EEE 1px;
-    padding-top:.2em;
-    padding-bottom:.2em;
-}
-
-h2 {
-    font-size: 200%;
-    margin-top: 1em;
-    font-weight: normal;
-    border-top: solid rgb(155, 155, 155) 2px;
-    padding-top: 0.45em;
-}
-
-h3 {
-    font-size: 150%
-}
-
-h4 {
-    font-size: 140%
-}
-
-h5 {
-    font-size: 130%
-}
-
-h6 {
-    font-size: 120%
-}
-
-a {
-    color: #1980af
-}
-
-a:visited {
-    color: #1980af
-}
-
-a:hover {
-    color: #1faae9
-}
-
-img {
-    max-width: 100%;
-    border: solid 1px #EEE;
-    margin-top: 0.5em;
-    margin-bottom: 0.5em;
-    padding: 0.5em
-}
-
-.title {
-    position: absolute;
-    left: 1px;
-    right: 1px;
-    top: 25px;
-    height: 81px;
-    background:
-        url(https://sling.apache.org/site/media.data/gradient.png)
-        repeat-x;
-    background-position: bottom;
-}
-
-.title img {
-    width: auto;
-    border: none;
-    margin-top: 0px;
-    margin-bottom: 0px;
-    padding: 0px;    
-}
-
-.logo {
-    position: absolute;
-    width: 15em;
-    height: 81px;
-    text-align: center;
-}
-
-.logo img {
-    height: 63px;
-}
-
-.header {
-    text-align: right;
-    margin-right: 20pt;
-}
-
-.menu {
-    border-top: 10px solid #f9bb00;
-    position: absolute;
-    top: 107px;
-    left: 1px;
-    width: 15em;
-    bottom: 0px;
-    padding: 0px;
-    background-color: #fcfcfc
-}
-
-.menu ul,.menu p {
-    background-color: #fdf5d9;
-    list-style: none;
-    padding-left: 4em;
-    margin-top: 0px;
-    padding-top: 2em;
-    padding-bottom: 2em;
-    margin-left: 0px;
-    color: #4a4a43
-}
-
-.menu p {
-    font-size: 90%;
-    margin: 0px;
-    padding: 1px;
-    padding-left: 1em;
-    padding-bottom: 1em;
-}
-
-.menu a {
-    text-decoration: none;
-    color: #4a4a43
-}
-
-.main {
-    position: absolute;
-    border-top: 10px solid #cde0ea;
-    top: 107px;
-    left: 15em;
-    right: 1px;
-    margin-left: 2px;
-    padding-right: 4em;
-    padding-left: 1em;
-    padding-top: 1em;
-}
-
-.preformatted {
-    color: black;
-    background-color: #eeeeee;
-    border: solid 1px black;
-    padding: 0.5em
-}
-
-.preformattedContent pre {
-    margin: 0em
-}
-
-table {
-    border-collapse: collapse;
-    margin: 5px;
-}
-
-th {
-    background-color: #FDF5D9;
-    border: 1px solid #DDD;
-    padding: 3px 4px;
-    text-align: left;
-    font-weight:bold;
-    font-size:90%;
-    padding: 3px 4px;
-}
-
-td {
-    border: 1px solid #DDD;
-    padding: 3px 4px;
-}
-
-.note
-{
-/*
-    background-color: #FFFFCE;
-    border: 1px solid #F0C000;
-*/
-    border: 1px solid #f0c000;
-	background: #ffffce url('icons/warning.gif') no-repeat 5px 5px;
-	text-align: left;
-	margin-top: 5px;
-	margin-bottom: 5px;
-	padding: 5px 5px 5px 28px;
-}
-
-.warning
-{
-/*
-    background-color: #FFCCCC;
-    border: 1px solid #CC0000;
-*/
-    border: 1px solid #f0c000;
-	background: #ffffce url('icons/forbidden.gif') no-repeat 5px 5px;
-	text-align: left;
-	margin-top: 5px;
-	margin-bottom: 5px;
-	padding: 5px 5px 5px 28px;
-}
-
-.info
-{
-/*
-    background-color: #D8E4F1;
-    border: 1px solid #3C78B5;
-*/
-    border: 1px solid #3c78b5;
-	background: #D8E4F1 url('icons/information.gif') no-repeat 5px 5px;
-	text-align: left;
-	margin-top: 5px;
-	margin-bottom: 5px;
-	padding: 5px 5px 5px 28px;
-}
-
-.tip
-{
-/*
-    background-color: #DDFFDD;
-    border: 1px solid #009900;
-*/
-	border: 1px solid #090;
-	background: #dfd url('/res/icons/check.gif') no-repeat 5px 5px;
-	text-align: left;
-	margin-top: 5px;
-	margin-bottom: 5px;
-	padding: 5px 5px 5px 28px;
-}
-
-/** Breadcrump at the top of each page */
-.breadcrump {
-    font-size: 80%;
-}
-
-/** Last modification information at the botton of each page */
-.timestamp {
-    margin-top: 30px;
-    font-size: 80%;
-    text-align: right;
-}
-
-/** Trademark text at the bottom of each page */
-.trademarkFooter {
-    font-size: 80%;
-    font-style: italic;
-    margin-top: 10px;
-    text-align: left;
-}
-
-blockquote {
-    font-style: italic;
-    margin: 0;
-    padding-left: 1em;
-    border-left: 1px solid black;
-}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/assets/res/logos/apache.png
----------------------------------------------------------------------
diff --git a/assets/res/logos/apache.png b/assets/res/logos/apache.png
deleted file mode 100644
index fc3f667..0000000
Binary files a/assets/res/logos/apache.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/assets/res/logos/sling.png
----------------------------------------------------------------------
diff --git a/assets/res/logos/sling.png b/assets/res/logos/sling.png
deleted file mode 100644
index 69163d9..0000000
Binary files a/assets/res/logos/sling.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/assets/res/logos/sling.svg
----------------------------------------------------------------------
diff --git a/assets/res/logos/sling.svg b/assets/res/logos/sling.svg
deleted file mode 100644
index ac3c0e7..0000000
--- a/assets/res/logos/sling.svg
+++ /dev/null
@@ -1,19 +0,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.
--->
-<svg id="Sling_Logo" data-name="Sling Logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 768 392"><defs><linearGradient id="linear-gradient" x1="-8576.57" y1="2068.26" x2="-8523.42" y2="2006.11" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f69923"/><stop offset="0.31" stop-color="#f79a23"/><stop offset="0.84" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-2" x1="-8969.97" y1="2075.12" x2="-8590.74" y2="2075.12" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0.32" stop-color="#9e2064"/><stop offset="0.63" stop-color="#c92037"/><stop offset="0.75" stop-color="#cd2335"/><stop offset="1" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-3" x1="-8924.2" y1="2037.09" x2="-8698.21" y2="2037.09" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.
 13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#282662"/><stop offset="0.1" stop-color="#662e8d"/><stop offset="0.79" stop-color="#9f2064"/><stop offset="0.95" stop-color="#cd2032"/></linearGradient><linearGradient id="linear-gradient-4" x1="-8948.67" y1="2078.65" x2="-8569.44" y2="2078.65" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-5" x1="-8921.02" y1="2073.54" x2="-8721.72" y2="2073.54" xlink:href="#linear-gradient-3"/><linearGradient id="linear-gradient-6" x1="-8948.67" y1="2039.41" x2="-8569.45" y2="2039.41" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-7" x1="-8972.2" y1="2041.35" x2="-8592.97" y2="2041.35" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-8" x1="-8948.67" y1="2027.74" x2="-8569.45" y2="2027.74" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-9" x1="-8948.67" y1="2029.08" x2="-8569.45" y2="2029.08" xlink:href="#linear-gradient-2"/><linearGradient 
 id="linear-gradient-10" x1="-8735.63" y1="2029.35" x2="-8692.34" y2="2029.35" xlink:href="#linear-gradient-2"/></defs><title>Logo - Close Crop</title><path d="M223.41,235.88V63l-36.64-.32V251.7q0,33.89,24.93,33.89c13.7,0,18.88-5.26,24.53-15.93C224.68,266.15,223.41,254.84,223.41,235.88Z" style="fill:#00678c"/><polygon points="260.96 158.86 275.98 158.86 275.98 283.36 311.94 283.36 311.94 129.39 260.96 129.39 260.96 158.86" style="fill:#00678c"/><path d="M294.3,69.73a19.91,19.91,0,0,0-14.58,6.09,21,21,0,0,0,0,29.47,20.43,20.43,0,0,0,28.89.26l.26-.26a21,21,0,0,0,0-29.47A19.91,19.91,0,0,0,294.3,69.73Z" style="fill:#00678c"/><path d="M431.14,125.93q-28.59,0-43.25,17V128.75H355.27V281.09h35.84V171a39,39,0,0,1,14.14-11,38.47,38.47,0,0,1,16.89-4.42q17.08,0,24.65,9T454.31,193v88h35.84V187.66q0-29.15-15.93-45.44T431.14,125.93Z" style="fill:#00678c"/><path d="M154.85,385l-2.77-.73-.18,0-1.25-.34c-21.81-5.87-37-11.75-45.1-17.46a33.85,33.85,0,0,1-7-6.59h-67V311.43A170.49,170.49,0,0,1,.15,298.89V
 392H185.77c-4.64-.92-9.31-1.89-14-2.92C165.58,387.68,160,386.35,154.85,385Z" style="fill:#00678c"/><path d="M129.72,354.16c5.61,4,18.63,8.84,36.46,13.64l14.09-18.15a264,264,0,0,1-35.69-9.1l-1.26-.43,1.26.43c3.54,1.14,14.73,4.43,35.49,7.65-5-9.83-14.05-24.37-21.89-36-22.71,5.71-29,17.47-29,17.47S118.18,346,129.72,354.16Z" style="fill:url(#linear-gradient)"/><path d="M242.78,323.18a1.49,1.49,0,0,0-.14-.19l.79,1.34.23.19C243.37,324.08,243.08,323.62,242.78,323.18Z" style="fill:none"/><path d="M280.45,318.26c.54.73,1,1.48,1.55,2.25C281.5,319.74,281,319,280.45,318.26Z" style="fill:none"/><path d="M385.47,352.77l-1,.06q-10,.61-19.52,1.08-10.69.52-20.78.89-10.65.38-20.62.59-10.49.22-20.27.28-8,0-15.48,0l-5-.05c-3.26,0-6.44-.09-9.57-.15-2.89-.06-5.71-.13-8.5-.21l-2.76-.09h-.44l.67,1.14-1.46,1.81.67,0q6.29.28,12.66.45l7.38.18q10.24.22,20.58.24t20.86-.13q10.24-.15,20.39-.45c6.76-.2,13.48-.43,20.12-.71,6.94-.29,13.82-.63,20.57-1l4.57-.25q8.19-.47,16.13-1l2.31-2.85-.76-1.28-.48,0Q395.4,352.16,38
 5.47,352.77Z" style="fill:none"/><path d="M282.36,321.09h0l0,0Z" style="fill:none"/><path d="M300,317.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S300.42,317.63,300,317.05Z" style="fill:#be202e"/><path d="M300,317.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S300.42,317.63,300,317.05Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.34,321.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e"/><path d="M282.34,321.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M241.13,357c-6.91-.48-13.72-1-20.39-1.7q-10.4-1-20.33-2.4l-1.17-.16c-6.5-.91-12.83-1.95-18.95-3.11L166.2,367.79l3.76,1c4.8,1.25,9.91,2.47,15.29,3.67,6.07,1.35,12.47,2.67,19.15,3.92,6.16,1.16,12.57,2.26,19.16,3.29q8.4,1.33,17.17,2.46l.65.08,19.46-24.12Q250.85,357.66,241.13,357Z" style="fill:url(#linear-gradient-2)"/><path d="M409.33,35
 1.14q8.1-.6,16.48-1.31l.24,0,2.38-.2c3.77-.32,7.15-.64,14.85-1.36,0-4.53,3.17-9.58,7-14.74a22.55,22.55,0,0,0-11.14,13c-7.51-18.92-19.4-32.77-36.66-34.91a40.68,40.68,0,0,0-4.74-.31c6.45,1.61,10.56,5.34,14,14.33l0,0,0,0c-11.58-10.3-20-14.26-31.79-15.85-2.79-.37-5.76-.62-9-.78,16.66,6,25.83,17.64,29.54,32.52l5.78,9.81Z" style="fill:url(#linear-gradient-3)"/><path d="M384,356.74q-10.15.55-20.57,1-10,.41-20.12.71t-20.39.45q-10.41.15-20.86.13t-20.58-.24l-7.38-.18q-6.36-.19-12.66-.45l-.67,0-19.46,24.12,1.31.17c6.19.79,12.49,1.51,18.87,2.13s13,1.16,19.53,1.58q8.31.55,16.65.86l3.36.1q10.46.29,20,.1c7.19-.14,14-.47,20.31-.94q6.27-.47,12-1.1c3.25-.38,6.47-.83,9.68-1.29q11.31-1.66,22.19-4.11l19.53-24.22q-7.93.52-16.13,1C387.12,356.58,385.58,356.65,384,356.74Z" style="fill:url(#linear-gradient-4)"/><path d="M386.18,379.5a214.44,214.44,0,0,0,25.68-7.57l.87-.31c-4.61,6.89-6,20.43-6,20.38,7.66-12.68,16.08-23.48,26.53-29.23,2.69,3.73,4,9.91,4.55,17.48,3.17-9.58,2.6-15.45,2.17-17.64,3.19,6.05,10.39,1
 0.61,18.27,14.93-8.2-7.81-13.23-14.82-14.46-20.92,28.78-2.42,60.13-6,93.19-10.28a8.39,8.39,0,0,0-7.4-2.92c-6,.81-45.23,6-98,10.16l-4.53.36-1.27.1c-5.54.42-11.21.83-17,1.22l-4,.26h-.08L385.2,379.73C385.53,379.64,385.86,379.58,386.18,379.5Z" style="fill:url(#linear-gradient-5)"/><path d="M262,355.16l2.76.09q4.16.12,8.5.21c3.13.06,6.31.12,9.57.15l5,.05q7.52.06,15.48,0,9.78-.05,20.27-.28,10-.21,20.62-.59,10.09-.36,20.78-.89,9.53-.47,19.52-1.08l1-.06q9.93-.6,20.34-1.37l.48,0-5.78-9.81c.06.23.13.43.17.67-7.1-11.64-23.7-23.9-39.86-29.37a107.71,107.71,0,0,0-24.72-5,176.41,176.41,0,0,0-21.88-.54c-6.86.22-14.14.75-21.92,1.6a40.76,40.76,0,0,1,7.7,8.16c.41.57.83,1.16,1.23,1.74s.81,1.21,1.2,1.83h0l0,0c-9.61-9.52-21.42-12.92-34.27-13.47a44.67,44.67,0,0,1,12.3,11.11c.54.73,1,1.48,1.55,2.25.13.19.25.38.37.58h0l0,0h0a51.59,51.59,0,0,0-10.38-7.7c-.76-.41-1.51-.81-2.29-1.16-1.17-.55-2.37-1-3.59-1.46-.78-.27-1.57-.53-2.37-.74a43.86,43.86,0,0,0-5.88-1.22l-1.9-.24-2.67-.13c-4-.15-7.41-.14-10.41,0-1.49.05
 -2.87.14-4.13.25-.5,0-1,.08-1.45.14-1.4.14-2.63.3-3.69.46a36.5,36.5,0,0,0-3.71.76h0a12.78,12.78,0,0,1,1.51.93c3.64,2.54,8.22,7.65,11.27,12.05l-5.31-9,5.31,9a1.49,1.49,0,0,0,.14.19l.88,1.34-.23-.19,18.16,30.82A2,2,0,0,0,262,355.16Z" style="fill:url(#linear-gradient-6)"/><path d="M180.07,348.2c5.72.89,12.16,1.77,19.38,2.6l1.14.13Q210,352,221,352.9c6.39.52,13.2,1,20.47,1.38q9.51.51,20.07.86l-18.16-30.82c-8.59-7.49-14.43-9.94-22-11.47-2.05-.38-4.19-.74-6.37-1.06-6.7-1-13.9-1.68-20.89-2a186.88,186.88,0,0,0-19.1-.07,87.87,87.87,0,0,0-9.87,1c-2.52.42-4.86.93-7.06,1.48C166,323.83,175,338.37,180.07,348.2Z" style="fill:url(#linear-gradient-7)"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:#be202e"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:ur
 l(#linear-gradient-8)"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:url(#linear-gradient-9)"/><path d="M282.35,321.08Z" style="fill:#be202e"/><path d="M282.35,321.08Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.35,321.08Z" style="fill:url(#linear-gradient-10)"/><path d="M600.39,249.82a39.59,39.59,0,0,0,31.86-13.62c7.49-9,11.47-25.25,11.47-39.83a45,45,0,0,0-12.39-31.86,40.7,40.7,0,0,0-30.94-13.18,43,43,0,0,0-32.74,13.18,44.64,44.64,0,0,0-12.39,32c0,14.06,4.22,30.19,12.19,39.43A41.62,41.62,0,0,0,600.39,249.82Z" style="fill:none"/><rect width="768" height="392" style="fill:none"/><path d="M623.13,292.79c-5.77.68-11.51,1.59-17.24,2.47-12.74,2-25.45,4.54-38.23,6.25-4,.52-9.24,1.08-11.95-2.59-3.78
 -5.54,5.93-11.71,9.28-14.18,4-2.95,12.31-6.61,12.82-7.13a67.43,67.43,0,0,1,7.33.52,95.86,95.86,0,0,0,52.41-8.32,79.66,79.66,0,0,0,18-11.95A61.61,61.61,0,0,0,668.77,241a92.09,92.09,0,0,0,7.37-23.58,112.68,112.68,0,0,0,1.63-25.85,75.07,75.07,0,0,0-4.5-21.86,130.22,130.22,0,0,0-9.16-17.44l19.47-19.63V0H76.93Q43.72.68,22.29,20.47A67.42,67.42,0,0,0,.15,72.24,81.36,81.36,0,0,0,11.5,116.05q11.35,18.24,39.83,31.54l22.74,10.63q30.39,14.26,37.91,26.32a48.39,48.39,0,0,1,7.53,26.13,39.83,39.83,0,0,1-13.58,31,51.77,51.77,0,0,1-35.84,12.15,92.75,92.75,0,0,1-28.55-5.22A95.3,95.3,0,0,1,15,235.41L1,270.37a112.55,112.55,0,0,0,63.72,17.48q42.41,0,67.7-21.86a67.7,67.7,0,0,0,25.09-53.21q0-28.87-11.55-47.79t-40.22-32.18l-23.1-10.63a166.78,166.78,0,0,1-29.31-16.53A40.46,40.46,0,0,1,42.16,91a45.8,45.8,0,0,1-4-19.39A38,38,0,0,1,49.37,43.33a34.77,34.77,0,0,1,27.4-11.95H652.17v88.33l-11.71,11.95a28.32,28.32,0,0,0-5.5-2.87A96.14,96.14,0,0,0,602.15,122a93.39,93.39,0,0,0-33.29,4.38A77,77,0,0,0,542,144.21a80.93,8
 0.93,0,0,0-15,21.7,87.14,87.14,0,0,0-6.85,26,85.11,85.11,0,0,0,1,26.68,75.39,75.39,0,0,0,8.64,22.9,78.86,78.86,0,0,0,14.34,16.29,99.57,99.57,0,0,0,10.31,8.72c-4,2.51-7.73,5.3-11.43,8-9.8,7.41-19.08,19.55-14.34,33.29s20.15,17.68,33.05,18.76a134.77,134.77,0,0,0,35.13-2.71c8.72-1.59,17.6-2.31,26.44-3.15,3.66-.36,7.25-1,11-1.08A21.11,21.11,0,0,1,651.33,326a13.32,13.32,0,0,1,1.13,2l0,.1c7.5,18.4-22.1,26.47-44.63,29.16-12.64,1.51-41,3.55-60.63,2.13-.68,13.23-6.45,24.89-15.74,32.55,15.74,0,38.51-.12,51.52-.91,11.1-.67,21.88-1,33.42-2.69,40-5.13,71.64-26.27,71.64-51C688,308.74,663.92,287.06,623.13,292.79ZM567.66,164.52a43,43,0,0,1,32.74-13.18,40.7,40.7,0,0,1,30.94,13.18,45,45,0,0,1,12.39,31.86c0,14.58-4,30.82-11.47,39.83a39.59,39.59,0,0,1-31.86,13.62A41.62,41.62,0,0,1,567.46,236c-8-9.24-12.19-25.37-12.19-39.43A44.64,44.64,0,0,1,567.66,164.52Z" style="fill:#00678c"/><path d="M728.16,3.74H716.93V34h-4V3.74H701.66V0h26.5Z" style="fill:#6d6e71"/><path d="M732.91,0h6l11.52,26.64h.1L762.14,0H768V
 34h-4V5.47h-.1L751.68,34h-2.45L737,5.47h-.09V34h-4Z" style="fill:#6d6e71"/></svg>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bake.sh
----------------------------------------------------------------------
diff --git a/bake.sh b/bake.sh
deleted file mode 100755
index 7a1bc23..0000000
--- a/bake.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-clear
-echo "Cleaning up caches ..."
-rm -rf cache/ output/
-echo "Starting to bake our project homepage ...."
-export JBAKE_HOME="$(dirname "$0")/bin/jbake-2.5.1"
-echo $JBAKE_HOME
-$JBAKE_HOME/bin/jbake -b -s

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/README.md
----------------------------------------------------------------------
diff --git a/bin/README.md b/bin/README.md
deleted file mode 100644
index 3a3b70c..0000000
--- a/bin/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Attention
-
-Since the commits of a full jbake binary are very large you should split the contents of the lib-subfolder into multiple commits.
-
-Before that call:
-``` 
-$ git config --global http.postBuffer 524288000 
-``` 
-
-In case of errors you may get the following behaviour, push takes a couple of minutes and fails:
-``` 
-$ git push
-Zähle Objekte: 33, Fertig.
-Delta compression using up to 4 threads.
-Komprimiere Objekte: 100% (32/32), Fertig.
-Schreibe Objekte: 100% (33/33), 8.05 MiB | 0 bytes/s, Fertig.
-Total 33 (delta 10), reused 0 (delta 0)
-error: RPC failed; HTTP 408 curl 22 The requested URL returned error: 408 Request Timeout
-fatal: The remote end hung up unexpectedly
-fatal: The remote end hung up unexpectedly
-Everything up-to-date
-``` 

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/LICENSE
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/LICENSE b/bin/jbake-2.5.1/LICENSE
deleted file mode 100644
index 0245a07..0000000
--- a/bin/jbake-2.5.1/LICENSE
+++ /dev/null
@@ -1,17 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 Jonathan Bullock & Contributors 
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
-documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
-the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
-to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions 
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
-TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
-CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
-DEALINGS IN THE SOFTWARE.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/bin/jbake
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/bin/jbake b/bin/jbake-2.5.1/bin/jbake
deleted file mode 100755
index c1180fc..0000000
--- a/bin/jbake-2.5.1/bin/jbake
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-P=$(realpath $0 2>/dev/null)
-if [ 0 -ne $? ]; then
-  P=$0
-fi
-
-EXEC_LOC="`dirname "$P"`"
-EXEC_PARENT="`dirname $EXEC_LOC`"
-
-CYGWIN=false;
-case "`uname`" in
-  CYGWIN*) CYGWIN=true;;
-esac
-
-if $CYGWIN ;
-then
-    java -jar $(cygpath -w "${EXEC_PARENT}/jbake-core.jar") $@
-else
-    java -jar "${EXEC_PARENT}/jbake-core.jar" $@
-fi
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/bin/jbake.bat
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/bin/jbake.bat b/bin/jbake-2.5.1/bin/jbake.bat
deleted file mode 100644
index dccbf14..0000000
--- a/bin/jbake-2.5.1/bin/jbake.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo off
-java -jar "%~dp0\..\jbake-core.jar" %*

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/jbake-core.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/jbake-core.jar b/bin/jbake-2.5.1/jbake-core.jar
deleted file mode 100644
index 984b383..0000000
Binary files a/bin/jbake-2.5.1/jbake-core.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/args4j-2.33.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/args4j-2.33.jar b/bin/jbake-2.5.1/lib/args4j-2.33.jar
deleted file mode 100644
index 61be8f3..0000000
Binary files a/bin/jbake-2.5.1/lib/args4j-2.33.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/asciidoctorj-1.5.4.1.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/asciidoctorj-1.5.4.1.jar b/bin/jbake-2.5.1/lib/asciidoctorj-1.5.4.1.jar
deleted file mode 100644
index 78ad8d9..0000000
Binary files a/bin/jbake-2.5.1/lib/asciidoctorj-1.5.4.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/asm-5.0.3.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/asm-5.0.3.jar b/bin/jbake-2.5.1/lib/asm-5.0.3.jar
deleted file mode 100644
index 573535b..0000000
Binary files a/bin/jbake-2.5.1/lib/asm-5.0.3.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/asm-analysis-5.0.3.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/asm-analysis-5.0.3.jar b/bin/jbake-2.5.1/lib/asm-analysis-5.0.3.jar
deleted file mode 100644
index 8b73cf0..0000000
Binary files a/bin/jbake-2.5.1/lib/asm-analysis-5.0.3.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/asm-tree-5.0.3.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/asm-tree-5.0.3.jar b/bin/jbake-2.5.1/lib/asm-tree-5.0.3.jar
deleted file mode 100644
index e7eae53..0000000
Binary files a/bin/jbake-2.5.1/lib/asm-tree-5.0.3.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/asm-util-5.0.3.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/asm-util-5.0.3.jar b/bin/jbake-2.5.1/lib/asm-util-5.0.3.jar
deleted file mode 100644
index e89f1b7..0000000
Binary files a/bin/jbake-2.5.1/lib/asm-util-5.0.3.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/attoparser-2.0.2.RELEASE.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/attoparser-2.0.2.RELEASE.jar b/bin/jbake-2.5.1/lib/attoparser-2.0.2.RELEASE.jar
deleted file mode 100644
index daba134..0000000
Binary files a/bin/jbake-2.5.1/lib/attoparser-2.0.2.RELEASE.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/commons-collections-3.2.2.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/commons-collections-3.2.2.jar b/bin/jbake-2.5.1/lib/commons-collections-3.2.2.jar
deleted file mode 100644
index fa5df82..0000000
Binary files a/bin/jbake-2.5.1/lib/commons-collections-3.2.2.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/commons-configuration-1.10.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/commons-configuration-1.10.jar b/bin/jbake-2.5.1/lib/commons-configuration-1.10.jar
deleted file mode 100644
index 7922436..0000000
Binary files a/bin/jbake-2.5.1/lib/commons-configuration-1.10.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/commons-io-2.5.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/commons-io-2.5.jar b/bin/jbake-2.5.1/lib/commons-io-2.5.jar
deleted file mode 100644
index 107b061..0000000
Binary files a/bin/jbake-2.5.1/lib/commons-io-2.5.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/commons-jexl-2.1.1.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/commons-jexl-2.1.1.jar b/bin/jbake-2.5.1/lib/commons-jexl-2.1.1.jar
deleted file mode 100644
index d160a23..0000000
Binary files a/bin/jbake-2.5.1/lib/commons-jexl-2.1.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/commons-lang-2.6.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/commons-lang-2.6.jar b/bin/jbake-2.5.1/lib/commons-lang-2.6.jar
deleted file mode 100644
index 98467d3..0000000
Binary files a/bin/jbake-2.5.1/lib/commons-lang-2.6.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/commons-lang3-3.4.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/commons-lang3-3.4.jar b/bin/jbake-2.5.1/lib/commons-lang3-3.4.jar
deleted file mode 100644
index 8ec91d4..0000000
Binary files a/bin/jbake-2.5.1/lib/commons-lang3-3.4.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/commons-logging-1.1.1.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/commons-logging-1.1.1.jar b/bin/jbake-2.5.1/lib/commons-logging-1.1.1.jar
deleted file mode 100644
index 1deef14..0000000
Binary files a/bin/jbake-2.5.1/lib/commons-logging-1.1.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/commons-vfs2-2.1.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/commons-vfs2-2.1.jar b/bin/jbake-2.5.1/lib/commons-vfs2-2.1.jar
deleted file mode 100644
index d00c947..0000000
Binary files a/bin/jbake-2.5.1/lib/commons-vfs2-2.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/concurrentlinkedhashmap-lru-1.4.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/concurrentlinkedhashmap-lru-1.4.jar b/bin/jbake-2.5.1/lib/concurrentlinkedhashmap-lru-1.4.jar
deleted file mode 100644
index 572b258..0000000
Binary files a/bin/jbake-2.5.1/lib/concurrentlinkedhashmap-lru-1.4.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/freemarker-2.3.25-incubating.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/freemarker-2.3.25-incubating.jar b/bin/jbake-2.5.1/lib/freemarker-2.3.25-incubating.jar
deleted file mode 100644
index 76be1c0..0000000
Binary files a/bin/jbake-2.5.1/lib/freemarker-2.3.25-incubating.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/groovy-2.4.8.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/groovy-2.4.8.jar b/bin/jbake-2.5.1/lib/groovy-2.4.8.jar
deleted file mode 100644
index be156d8..0000000
Binary files a/bin/jbake-2.5.1/lib/groovy-2.4.8.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/groovy-templates-2.4.8.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/groovy-templates-2.4.8.jar b/bin/jbake-2.5.1/lib/groovy-templates-2.4.8.jar
deleted file mode 100644
index c570602..0000000
Binary files a/bin/jbake-2.5.1/lib/groovy-templates-2.4.8.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/groovy-xml-2.4.8.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/groovy-xml-2.4.8.jar b/bin/jbake-2.5.1/lib/groovy-xml-2.4.8.jar
deleted file mode 100644
index 2017576..0000000
Binary files a/bin/jbake-2.5.1/lib/groovy-xml-2.4.8.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jade4j-1.2.5.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jade4j-1.2.5.jar b/bin/jbake-2.5.1/lib/jade4j-1.2.5.jar
deleted file mode 100644
index 1dfa32e..0000000
Binary files a/bin/jbake-2.5.1/lib/jade4j-1.2.5.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/javassist-3.20.0-GA.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/javassist-3.20.0-GA.jar b/bin/jbake-2.5.1/lib/javassist-3.20.0-GA.jar
deleted file mode 100644
index 0f1ff72..0000000
Binary files a/bin/jbake-2.5.1/lib/javassist-3.20.0-GA.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/javax.servlet-3.0.0.v201112011016.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/javax.servlet-3.0.0.v201112011016.jar b/bin/jbake-2.5.1/lib/javax.servlet-3.0.0.v201112011016.jar
deleted file mode 100644
index b135409..0000000
Binary files a/bin/jbake-2.5.1/lib/javax.servlet-3.0.0.v201112011016.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jcommander-1.35.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jcommander-1.35.jar b/bin/jbake-2.5.1/lib/jcommander-1.35.jar
deleted file mode 100644
index e86b47b..0000000
Binary files a/bin/jbake-2.5.1/lib/jcommander-1.35.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jetty-continuation-8.1.19.v20160209.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jetty-continuation-8.1.19.v20160209.jar b/bin/jbake-2.5.1/lib/jetty-continuation-8.1.19.v20160209.jar
deleted file mode 100644
index ce0a9f5..0000000
Binary files a/bin/jbake-2.5.1/lib/jetty-continuation-8.1.19.v20160209.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jetty-http-8.1.19.v20160209.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jetty-http-8.1.19.v20160209.jar b/bin/jbake-2.5.1/lib/jetty-http-8.1.19.v20160209.jar
deleted file mode 100644
index 6e947b6..0000000
Binary files a/bin/jbake-2.5.1/lib/jetty-http-8.1.19.v20160209.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jetty-io-8.1.19.v20160209.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jetty-io-8.1.19.v20160209.jar b/bin/jbake-2.5.1/lib/jetty-io-8.1.19.v20160209.jar
deleted file mode 100644
index 49bc708..0000000
Binary files a/bin/jbake-2.5.1/lib/jetty-io-8.1.19.v20160209.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jetty-server-8.1.19.v20160209.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jetty-server-8.1.19.v20160209.jar b/bin/jbake-2.5.1/lib/jetty-server-8.1.19.v20160209.jar
deleted file mode 100644
index 507bb54..0000000
Binary files a/bin/jbake-2.5.1/lib/jetty-server-8.1.19.v20160209.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jetty-util-8.1.19.v20160209.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jetty-util-8.1.19.v20160209.jar b/bin/jbake-2.5.1/lib/jetty-util-8.1.19.v20160209.jar
deleted file mode 100644
index 6acb419..0000000
Binary files a/bin/jbake-2.5.1/lib/jetty-util-8.1.19.v20160209.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jna-4.0.0.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jna-4.0.0.jar b/bin/jbake-2.5.1/lib/jna-4.0.0.jar
deleted file mode 100644
index 9038048..0000000
Binary files a/bin/jbake-2.5.1/lib/jna-4.0.0.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jna-platform-4.0.0.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jna-platform-4.0.0.jar b/bin/jbake-2.5.1/lib/jna-platform-4.0.0.jar
deleted file mode 100644
index 4b3d567..0000000
Binary files a/bin/jbake-2.5.1/lib/jna-platform-4.0.0.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jruby-complete-1.7.25.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jruby-complete-1.7.25.jar b/bin/jbake-2.5.1/lib/jruby-complete-1.7.25.jar
deleted file mode 100644
index c1aa930..0000000
Binary files a/bin/jbake-2.5.1/lib/jruby-complete-1.7.25.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/json-simple-1.1.1.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/json-simple-1.1.1.jar b/bin/jbake-2.5.1/lib/json-simple-1.1.1.jar
deleted file mode 100644
index dfd5856..0000000
Binary files a/bin/jbake-2.5.1/lib/json-simple-1.1.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/jul-to-slf4j-1.7.22.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/jul-to-slf4j-1.7.22.jar b/bin/jbake-2.5.1/lib/jul-to-slf4j-1.7.22.jar
deleted file mode 100644
index 2a3e000..0000000
Binary files a/bin/jbake-2.5.1/lib/jul-to-slf4j-1.7.22.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/logback-classic-1.1.9.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/logback-classic-1.1.9.jar b/bin/jbake-2.5.1/lib/logback-classic-1.1.9.jar
deleted file mode 100644
index eaa2925..0000000
Binary files a/bin/jbake-2.5.1/lib/logback-classic-1.1.9.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/logback-core-1.1.9.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/logback-core-1.1.9.jar b/bin/jbake-2.5.1/lib/logback-core-1.1.9.jar
deleted file mode 100644
index ea355ac..0000000
Binary files a/bin/jbake-2.5.1/lib/logback-core-1.1.9.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/logback.xml
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/logback.xml b/bin/jbake-2.5.1/lib/logback.xml
deleted file mode 100644
index 31b0905..0000000
--- a/bin/jbake-2.5.1/lib/logback.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<configuration>
-
-  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-    <!-- encoders are assigned the type
-         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
-    <encoder>
-      <!-- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> -->
-      <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
-    </encoder>
-  </appender>
-
-  <logger name="org.thymeleaf" level="WARN"/>
-  <logger name="org.asciidoctor" level="INFO"/>
-
-  <!-- Strictly speaking, the level attribute is not necessary since -->
-  <!-- the level of the root level is set to DEBUG by default.       -->
-  <root level="DEBUG">
-    <appender-ref ref="CONSOLE" />
-  </root>
-  
-</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/ognl-3.1.12.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/ognl-3.1.12.jar b/bin/jbake-2.5.1/lib/ognl-3.1.12.jar
deleted file mode 100644
index 3007532..0000000
Binary files a/bin/jbake-2.5.1/lib/ognl-3.1.12.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/orient-commons-1.7.10.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/orient-commons-1.7.10.jar b/bin/jbake-2.5.1/lib/orient-commons-1.7.10.jar
deleted file mode 100644
index cb95346..0000000
Binary files a/bin/jbake-2.5.1/lib/orient-commons-1.7.10.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/orientdb-core-1.7.10.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/orientdb-core-1.7.10.jar b/bin/jbake-2.5.1/lib/orientdb-core-1.7.10.jar
deleted file mode 100644
index 8071c31..0000000
Binary files a/bin/jbake-2.5.1/lib/orientdb-core-1.7.10.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/orientdb-nativeos-1.7.10.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/orientdb-nativeos-1.7.10.jar b/bin/jbake-2.5.1/lib/orientdb-nativeos-1.7.10.jar
deleted file mode 100644
index 8f8dba6..0000000
Binary files a/bin/jbake-2.5.1/lib/orientdb-nativeos-1.7.10.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/parboiled-core-1.1.7.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/parboiled-core-1.1.7.jar b/bin/jbake-2.5.1/lib/parboiled-core-1.1.7.jar
deleted file mode 100644
index ee49777..0000000
Binary files a/bin/jbake-2.5.1/lib/parboiled-core-1.1.7.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/parboiled-java-1.1.7.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/parboiled-java-1.1.7.jar b/bin/jbake-2.5.1/lib/parboiled-java-1.1.7.jar
deleted file mode 100644
index e3289cd..0000000
Binary files a/bin/jbake-2.5.1/lib/parboiled-java-1.1.7.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/pegdown-1.6.0.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/pegdown-1.6.0.jar b/bin/jbake-2.5.1/lib/pegdown-1.6.0.jar
deleted file mode 100644
index 9eb06e6..0000000
Binary files a/bin/jbake-2.5.1/lib/pegdown-1.6.0.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/slf4j-api-1.7.22.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/slf4j-api-1.7.22.jar b/bin/jbake-2.5.1/lib/slf4j-api-1.7.22.jar
deleted file mode 100644
index 3c3d953..0000000
Binary files a/bin/jbake-2.5.1/lib/slf4j-api-1.7.22.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/snappy-java-1.1.0.1.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/snappy-java-1.1.0.1.jar b/bin/jbake-2.5.1/lib/snappy-java-1.1.0.1.jar
deleted file mode 100644
index 3ef919f..0000000
Binary files a/bin/jbake-2.5.1/lib/snappy-java-1.1.0.1.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/thymeleaf-3.0.3.RELEASE.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/thymeleaf-3.0.3.RELEASE.jar b/bin/jbake-2.5.1/lib/thymeleaf-3.0.3.RELEASE.jar
deleted file mode 100644
index d1c4553..0000000
Binary files a/bin/jbake-2.5.1/lib/thymeleaf-3.0.3.RELEASE.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/bin/jbake-2.5.1/lib/unbescape-1.1.4.RELEASE.jar
----------------------------------------------------------------------
diff --git a/bin/jbake-2.5.1/lib/unbescape-1.1.4.RELEASE.jar b/bin/jbake-2.5.1/lib/unbescape-1.1.4.RELEASE.jar
deleted file mode 100644
index 6e46339..0000000
Binary files a/bin/jbake-2.5.1/lib/unbescape-1.1.4.RELEASE.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/.htaccess
----------------------------------------------------------------------
diff --git a/content/.htaccess b/content/.htaccess
deleted file mode 100644
index e63d607..0000000
--- a/content/.htaccess
+++ /dev/null
@@ -1,8 +0,0 @@
-ErrorDocument 403 /errors/403.html
-ErrorDocument 404 /errors/404.html
-
-Redirect Permanent /downloads.html /downloads.cgi
-Redirect Permanent /media.html /
-Redirect Permanent /plugins.html /
-Redirect Permanent /documentation/the-sling-engine/eventing-and-jobs.html /documentation/bundles/apache-sling-eventing-and-job-handling.html
-Redirect Permanent /documentation/bundles/scripting/scripting-sightly.html /documentation/bundles/scripting/scripting-htl.html

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/apidocs/TODO.md
----------------------------------------------------------------------
diff --git a/content/apidocs/TODO.md b/content/apidocs/TODO.md
deleted file mode 100644
index 48f6d15..0000000
--- a/content/apidocs/TODO.md
+++ /dev/null
@@ -1,5 +0,0 @@
-title=		
-type=page
-status=published
-~~~~~~
-TODO: re-add apidocs

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/components/TODO.md
----------------------------------------------------------------------
diff --git a/content/components/TODO.md b/content/components/TODO.md
deleted file mode 100644
index 79d497b..0000000
--- a/content/components/TODO.md
+++ /dev/null
@@ -1,5 +0,0 @@
-title=		
-type=page
-status=published
-~~~~~~
-TODO re-add content/components

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/contributing.md
----------------------------------------------------------------------
diff --git a/content/contributing.md b/content/contributing.md
deleted file mode 100644
index fcb586c..0000000
--- a/content/contributing.md
+++ /dev/null
@@ -1,20 +0,0 @@
-title=Contributing		
-type=page
-status=published
-~~~~~~
-
-See [Project Information](/project-information.html) for details about the tools mentioned below.
-
-Apache Sling is a volunteer effort, so there is always plenty of work that needs to be accomplished. If you want to help support Sling, this page is intended as a starting point for specific contribution ideas. To further understand how the Sling community operates, refer to the Community Roles and Processes document and/or join the mailing lists.
-
-The Sling project organizes its "to do" list using the JIRA issue tracking system. Specific items from Sling's JIRA issue tracking system are highlighted on this page, but are not limited to it. The purpose of the list here is to highlight issues that are either more important or serve as good entry points for new contributors.
-
-It is important to point out that you do not need to be a programmer to contribute to Sling. As such, we will break out the list of issues below for non-programmers and programmers.
-
-## Non-Programmers
-
-Improve web site or documentation (e.g., create/propose FAQ entries). There is no specific JIRA issue for this task, but any contributions could be posted as new JIRA issues for the Documentation component.
-
-## Programmers
-
-Implement support for various rendering technologies in Sling. Examples coming to mind are JSF and Wicket.


[22/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/mimetypes.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/mimetypes.png b/content/documentation/bundles/mimetypes.png
deleted file mode 100644
index ec54519..0000000
Binary files a/content/documentation/bundles/mimetypes.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/models.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/models.md b/content/documentation/bundles/models.md
deleted file mode 100644
index 21669bf..0000000
--- a/content/documentation/bundles/models.md
+++ /dev/null
@@ -1,522 +0,0 @@
-title=Sling Models		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-Many Sling projects want to be able to create model objects - POJOs which are automatically mapped from Sling objects, typically resources, but also request objects. Sometimes these POJOs need OSGi services as well.
-
-# Design Goals
-
-* Entirely annotation driven. "Pure" POJOs.
-* Use standard annotations where possible.
-* Pluggable
-* OOTB, support resource properties (via ValueMap), SlingBindings, OSGi services, request attributes
-* Adapt multiple objects - minimal required Resource and SlingHttpServletRequest
-* Client doesn't know/care that these objects are different than any other adapter factory
-* Support both classes and interfaces.
-* Work with existing Sling infrastructure (i.e. not require changes to other bundles).
-
-# Basic Usage
-In the simplest case, the class is annotated with `@Model` and the adaptable class. Fields which need to be injected are annotated with `@Inject`:
-
-::java
-@Model(adaptables=Resource.class)
-public class MyModel {
-
-@Inject
-private String propertyName;
-}
-
-In this case, a property named "propertyName" will be looked up from the Resource (after first adapting it to a `ValueMap`) and it is injected.
-
-For an interface, it is similar:
-
-::java
-@Model(adaptables=Resource.class)
-public interface MyModel {
-
-@Inject
-String getPropertyName();
-}
-
-Constructor injection is also supported (as of Sling Models 1.1.0):
-
-::java
-@Model(adaptables=Resource.class)
-public class MyModel {
-@Inject
-public MyModel(@Named("propertyName") String propertyName) {
-// constructor code
-}
-}
-
-Because the name of a constructor argument parameter cannot be detected via the Java Reflection API a `@Named` annotation is mandatory for injectors that require a name for resolving the injection.
-
-In order for these classes to be picked up, there is a header which must be added to the bundle's manifest:
-
-<Sling-Model-Packages>
-org.apache.sling.models.it.models
-</Sling-Model-Packages>
-
-This header must contain all packages which contain model classes or interfaces. However, subpackages need not be listed
-individually, e.g. the header above will also pick up model classes in `org.apache.sling.models.it.models.sub`. Multiple packages
-can be listed in a comma-separated list (any whitespace will be removed):
-
-<Sling-Model-Packages>
-org.apache.sling.models.it.models,
-org.apache.sling.other.models
-</Sling-Model-Packages>
-
-Alternatively it is possible to list all classes individually that are Sling Models classes via the `Sling-Model-Classes` header.
-
-If you use the Sling Models bnd plugin all required bundle headers are generated automatically at build time (see chapter 'Registration of Sling Models classes via bnd plugin' below).
-
-# Client Code
-## adaptTo()
-
-Client code doesn't need to be aware that Sling Models is being used. It just uses the Sling Adapter framework:
-
-::java
-MyModel model = resource.adaptTo(MyModel.class)
-
-Or
-
-::jsp
-<sling:adaptTo adaptable="${resource}" adaptTo="org.apache.sling.models.it.models.MyModel" var="model"/>
-
-Or
-
-::jsp
-${sling:adaptTo(resource, 'org.apache.sling.models.it.models.MyModel')}
-
-As with other AdapterFactories, if the adaptation can't be made for any reason, `adaptTo()` returns null.
-## ModelFactory (since 1.2.0)
-*See also  [SLING-3709](https://issues.apache.org/jira/browse/SLING-3709)*
-
-Since Sling Models 1.2.0 there is another way of instantiating models. The OSGi service `ModelFactory` provides a method for instantiating a model that throws exceptions. This is not allowed by the Javadoc contract of the adaptTo method. That way `null` checks are not necessary and it is easier to see why instantiation of the model failed.
-
-::java
-try {
-MyModel model = modelFactory.createModel(object, MyModel.class);
-} catch (Exception e) {
-// give out error message that the model could not be instantiated.
-// The exception contains further information.
-// See the javadoc of the ModelFactory for which Exception can be expected here
-}
-
-In addition `ModelFactory` provides methods for checking whether a given class is a model at all (having the model annotation) or whether a class can be adapted from a given adaptable.
-
-# Other Options
-## Names
-If the field or method name doesn't exactly match the property name, `@Named` can be used:
-
-::java
-@Model(adaptables=Resource.class)
-public class MyModel {
-
-@Inject @Named("secondPropertyName")
-private String otherName;
-}
-
-## Optional and Required
-`@Inject`ed fields/methods are assumed to be required. To mark them as optional, use `@Optional`:
-
-::java
-@Model(adaptables=Resource.class)
-public class MyModel {
-
-@Inject @Optional
-private String otherName;
-}
-
-If a majority of `@Inject`ed fields/methods are optional, it is possible (since Sling Models API 1.0.2/Impl 1.0.6) to change the default injection
-strategy by using adding `defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL` to the `@Model` annotation:
-
-::java
-@Model(adaptables=Resource.class, defaultInjectionStrategy=DefaultInjectionStrategy.OPTIONAL)
-public class MyModel {
-
-@Inject
-private String otherName;
-}
-
-To still mark some fields/methods as being mandatory while relying on `defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL` for all other fields, the annotation `@Required` can be used.
-
-`@Optional` annotations are only evaluated when using the `defaultInjectionStrategy = DefaultInjectionStrategy.REQUIRED` (which is the default), `@Required` annotations only if using `defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL`.
-
-## Defaults
-A default value can be provided (for Strings & primitives):
-
-::java
-@Model(adaptables=Resource.class)
-public class MyModel {
-
-@Inject @Default(values="defaultValue")
-private String name;
-}
-
-Defaults can also be arrays:
-
-::java
-@Model(adaptables=Resource.class)
-public class MyModel {
-
-@Inject @Default(intValues={1,2,3,4})
-private int[] integers;
-}
-
-
-OSGi services can be injected:
-
-::java
-@Model(adaptables=Resource.class)
-public class MyModel {
-
-@Inject
-private ResourceResolverFactory resourceResolverFactory;
-}
-
-
-In this case, the name is not used -- only the class name.
-
-## Collections
-Lists and arrays are supported by some injectors. For the details look at the table given in [Available Injectors](#available-injectors):
-
-::java
-@Model(adaptables=Resource.class)
-public class MyModel {
-
-@Inject
-private List<Servlet> servlets;
-}
-
-List injection for *child resources* works by injecting grand child resources (since Sling Models Impl 1.0.6). For example, the class
-
-::java
-@Model(adaptables=Resource.class)
-public class MyModel {
-
-@Inject
-private List<Resource> addresses;
-}
-
-Is suitable for a resource structure such as:
-
-+- resource (being adapted)
-|
-+- addresses
-|
-+- address1
-|
-+- address2
-
-In this case, the `addresses` `List` will contain `address1` and `address2`.
-
-## OSGi Service Filters
-OSGi injection can be filtered:
-
-::java
-@Model(adaptables=SlingHttpServletRequest.class)
-public class MyModel {
-
-@Inject
-private PrintWriter out;
-
-@Inject
-@Named("log")
-private Logger logger;
-
-@Inject
-@Filter("(paths=/bin/something)")
-private List<Servlet> servlets;
-}
-
-## PostConstruct Methods
-The `@PostConstruct` annotation can be used to add methods which are invoked upon completion of all injections:
-
-::java
-@Model(adaptables=SlingHttpServletRequest.class)
-public class MyModel {
-
-@Inject
-private PrintWriter out;
-
-@Inject
-@Named("log")
-private Logger logger;
-
-@PostConstruct
-protected void sayHello() {
-logger.info("hello");
-}
-}
-
-`@PostConstruct` methods in a super class will be invoked first.
-
-## Via
-If the injection should be based on a JavaBean property of the adaptable, you can indicate this using the `@Via` annotation:
-
-::java
-@Model(adaptables=SlingHttpServletRequest.class)
-public interface MyModel {
-
-// will return request.getResource().adaptTo(ValueMap.class).get("propertyName", String.class)
-@Inject @Via("resource")
-String getPropertyName();
-}
-
-## Source
-If there is ambiguity where a given injection could be handled by more than one injector, the `@Source` annotation can be used to define which injector is responsible:
-
-::java
-@Model(adaptables=SlingHttpServletRequest.class)
-public interface MyModel {
-
-// Ensure that "resource" is retrived from the bindings, not a request attribute
-@Inject @Source("script-bindings")
-Resource getResource();
-}
-
-## Adaptations
-If the injected object does not match the desired type and the object implements the `Adaptable` interface, Sling Models will try to adapt it. This provides the ability to create rich object graphs. For example:
-
-::java
-@Model(adaptables=Resource.class)
-public interface MyModel {
-
-@Inject
-ImageModel getImage();
-}
-
-@Model(adaptables=Resource.class)
-public interface ImageModel {
-
-@Inject
-String getPath();
-}
-
-When a resource is adapted to `MyModel`, a child resource named `image` is automatically adapted to an instance of `ImageModel`.
-
-Constructor injection is supported for the adaptable itself. For example:
-
-::java
-@Model(adaptables=Resource.class)
-public class MyModel {
-
-public MyModel(Resource resource) {
-this.resource = resource;
-}
-
-private final Resource resource;
-
-@Inject
-private String propertyName;
-}
-
-## Sling Validation (since 1.2.0)
-<a name="validation">*See also [SLING-4161](https://issues.apache.org/jira/browse/SLING-4161)*</a>
-
-You can use the attribute `validation` on the Model annotation to call a validation service on the resource being used by the Sling model. That attribute supports three different values:
-
-Value |  Description |  Invalid validation model |  No validation model found |  Resource invalid according to model
------ | ------- | ------------- | -------------| ---------
-`DISABLED` (default) | don't validate the resource bound to the Model | Model instantiated | Model instantiated  | Model instantiated
-`REQUIRED` | enforce validation of the resource bound to the Model | Model not instantiated | Model not instantiated | Model not instantiated
-`OPTIONAL` | validate the resource bound to the Model (if a validation model is found) | Model not instantiated | Model instantiated | Model not instantiated
-
-In case the model is not instantiated an appropriate error message is logged (if `adaptTo()` is used) or an appropriate exception is thrown (if `ModelFactory.createModel()` is used).
-
-The only implementation for this Sling Models validation service is leveraging [Sling Validation](/documentation/bundles/validation.html) and is located in the bundle [org.apache.sling.models.validation-impl](https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/validation-impl/). Validation is only working on models which are adapted from either `Resource` or `SlingHttpServletRequest` and if the Sling Validation Bundle is deployed.
-
-# Custom Injectors
-
-To create a custom injector, simply implement the `org.apache.sling.models.spi.Injector` interface and register your implementation with the OSGi service registry. Please refer to the standard injectors in [Subversion](http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/) for examples.
-
-Injectors are invoked in order of their service ranking, from lowest to highest. See the table below for the rankings of the standard injectors.
-
-# Annotation Reference
-`@Model`
-:   declares a model class or interface
-
-`@Inject`
-:   marks a field or method as injectable
-
-`@Named`
-:   declare a name for the injection (otherwise, defaults based on field or method name).
-
-`@Optional`
-:   marks a field or method injection as optional
-
-`@Source`
-:   explictly tie an injected field or method to a particular injector (by name). Can also be on other annotations.
-
-`@Filter`
-:   an OSGi service filter
-
-`@PostConstruct`
-:   methods to call upon model option creation (only for model classes)
-
-`@Via`
-:   use a JavaBean property of the adaptable as the source of the injection
-
-`@Default`
-:   set default values for a field or method
-
-`@Path`
-:   only used together with the resource-path injector to specify the path of a resource
-
-`@Exporters`/`@Exporter`/`@ExporterOptions`/`@ExporterOption`
-:   See Exporter Framework section below
-
-In addition all [injector-specific annotations](#injector-specific-annotations).
-
-# Available Injectors
-
-Title              |  Name (for `@Source`)   | Service Ranking     | Available Since (Implementation Version) | Description  | Applicable To (including using `@Via`) | Accepts Null Name? | Array Support | Parameterized Type Support
------------------  | ----------------------- | ------------------- | ---------------------------------------- | ------------ | -------------------------------------- | ------------------ | ------------- | --------------------------
-Script Bindings    | `script-bindings`       | 1000                | 1.0.0                                    | Lookup objects in the script bindings object by name. | A ServletRequest object which has the `Sling Bindings` attribute defined | no | no conversion is done | If a parameterized type is passed, the bindings value must be of a compatible type of the parameterized type.
-Value Map          | `valuemap`              | 2000                | 1.0.0                                    | Gets a property from a `ValueMap` by name. | Any object which is or can be adapted to a `ValueMap`| no | Primitive arrays wrapped/unwrapped as necessary. Wrapper object arrays are unwrapped/wrapped as necessary. | Parameterized `List` and `Collection` injection points are injected by getting an array of the component type and creating an unmodifiable `List` from the array.
-Child Resources    | `child-resources`       | 3000                | 1.0.0                                    | Gets a child resource by name. | `Resource` objects | no | none | if a parameterized type `List` or `Collection` is passed, a `List<Resource>` is returned (the contents of which may be adapted to the target type) filled with all child resources of the resource looked up by the given name.
-Request Attributes | `request-attributes`    | 4000                | 1.0.0                                    | Get a request attribute by name. | `ServletRequest` objects | no | no conversion is done | If a parameterized type is passed, the request attribute must be of a compatible type of the parameterized type.
-OSGi Services      | `osgi-services`         | 5000                | 1.0.0                                    | Lookup services based on class name. Since Sling Models Impl 1.2.8 ([SLING-5664](https://issues.apache.org/jira/browse/SLING-5664)) the service with the highest service ranking is returned. In case multiple services are returned, they are ordered descending by their service ranking (i.e. the one with the highest ranking first). | Any object | yes | yes | Parameterized `List` and `Collection` injection points are injected by getting an array of the services and creating an unmodifiable `List` from the array.
-Resource Path      | `resource-path`         | 2500                | 1.1.0                                    | Injects one or multiple resources. The resource paths are either given by `@Path` annotations, the element `path` or `paths` of the annotation `@ResourcePath` or by paths given through a resource property being referenced by either `@Named` or element `name` of the annotation `@ResourcePath`. | `Resource` or `SlingHttpServletRequest` objects | yes | yes | none
-Self               | `self`                  | `Integer.MAX_VALUE` | 1.1.0                                    | Injects the adaptable object itself (if the class of the field matches or is a supertype). If the @Self annotation is present it is tried to adapt the adaptable to the field type.  | Any object | yes | none | none
-Sling Object       | `sling-object`          | `Integer.MAX_VALUE` | 1.1.0                                    | Injects commonly used sling objects if the field matches with the class: request, response, resource resolver, current resource, SlingScriptHelper. This works only if the adaptable can get the according information, i.e. all objects are available via `SlingHttpServletRequest` while `ResourceResolver` can only resolve the `ResourceResolver` object and nothing else. A discussion around this limitation can be found at [SLING-4083](https://issues.apache.org/jira/browse/SLING-4083). Also `Resource`s can only be injected if the according injector-specific annotation is used (`@SlingObject`). | `Resource`, `ResourceResolver` or `SlingHttpServletRequest` objects (not all objects can be resolved by all adaptables).  | yes | none | none
-
-# Injector-specific Annotations
-
-*Introduced with [SLING-3499](https://issues.apache.org/jira/browse/SLING-3499) in Sling Models Impl 1.0.6*
-
-Sometimes it is desirable to use customized annotations which aggregate the standard annotations described above. This will generally have
-the following advantages over using the standard annotations:
-
-* Less code to write (only one annotation is necessary in most of the cases)
-* More robust (in case of name collisions among the different injectors, you make sure that the right injector is used)
-* Better IDE support (because the annotations provide elements for each configuration which is available for that specific injector, i.e. `filter` only for OSGi services)
-
-The follow annotations are provided which are tied to specific injectors:
-
-Annotation          | Supported Optional Elements    | Injector | Description
------------------   | ------------------------------ |-------------------------
-`@ScriptVariable`   | `injectionStrategy` and `name`          | `script-bindings` | Injects the script variable defined via [Sling Bindings](https://cwiki.apache.org/confluence/display/SLING/Scripting+variables). If `name` is not set the name is derived from the method/field name.
-`@ValueMapValue`    | `injectionStrategy`, `name` and `via`   | `valuemap` | Injects a `ValueMap` value. If `via` is not set, it will automatically take `resource` if the adaptable is the `SlingHttpServletRequest`. If `name` is not set the name is derived from the method/field name.
-`@ChildResource`    | `injectionStrategy`, `name` and `via`   | `child-resources` | Injects a child resource by name. If `via` is not set, it will automatically take `resource` if the adaptable is the `SlingHttpServletRequest`. If `name` is not set the name is derived from the method/field name.
-`@RequestAttribute` | `injectionStrategy`, `name` and `via`   | `request-attributes` | Injects a request attribute by name. If `name` is not set the name is derived from the method/field name.
-`@ResourcePath`     | `injectionStrategy`, `path`, and `name` | `resource-path` | Injects a resource either by path or by reading a property with the given name.
-`@OSGiService`      | `injectionStrategy`, `filter`           | `osgi-services` | Injects an OSGi service by type. The `filter` can be used give an OSGi service filter.
-`@Self`             | `injectionStrategy`                     | `self` | Injects the adaptable itself. If the field type does not match with the adaptable it is tried to adapt the adaptable to the requested type.
-`@SlingObject`      | `injectionStrategy`                     | `sling-object` |Injects commonly used sling objects if the field matches with the class: request, response, resource resolver, current resource, SlingScriptHelper
-
-## Hints
-
-Those annotations replace `@Via`, `@Filter`, `@Named`, `@Optional`, `@Required`, `@Source` and `@Inject`.
-Instead of using the deprecated annotation element `optional` you should rather use `injectionStrategy` with the values `DEFAULT`, `OPTIONAL` or `REQUIRED` (see also [SLING-4155](https://issues.apache.org/jira/browse/SLING-4155)).
-`@Default` may still be used in addition to the injector-specific annotation to set default values. All elements given above are optional.
-
-## Custom Annotations
-
-To create a custom annotation, implement the `org.apache.sling.models.spi.injectorspecific.StaticInjectAnnotationProcessorFactory` interface.
-This interface may be implemented by the same class as implements an injector, but this is not strictly necessary. Please refer to the
-injectors in [Subversion](http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/) for examples.
-
-# Specifying an Alternate Adapter Class (since 1.1.0)
-
-By default, each model class is registered using its own implementation class as adapter. If the class has additional interfaces this is not relevant.
-
-The `@Model` annotations provides an optional `adapters` attribute which allows specifying under which type(s) the model
-implementation should be registered in the Models Adapter Factory. Prior to *Sling Models Impl 1.3.10* only the given class names
-are used as adapter classes, since 1.3.10 the implementation class is always being registered implicitly as adapter as well (see [SLING-6658](https://issues.apache.org/jira/browse/SLING-6658)).
-With this attribute it is possible to register the model
-to one (or multiple) interfaces, or a superclass. This allows separating the model interface from the implementation, which
-makes it easier to provide mock implementations for unit tests as well.
-
-Example:
-
-::java
-@Model(adaptables = Resource.class, adapters = MyService.class)
-public class MyModel implements MyService {
-// injects fields and implements the MyService methods
-}
-
-In this example a `Resource` can be adapted to a `MyService` interface, and the Sling Models implementation instantiates a
-`MyModel` class for this.
-
-It is possible to have multiple models implementing the same interface. By default Sling Models will just take the first one
-ordered alphabetically by the class name. Applications can provide an OSGi service implementing the `ImplementationPicker`
-SPI interface which could use context to determine which implementation can be chosen, e.g. depending an a tenant or
-content path context. If multiple implementations of the `ImplementationPicker` interface are present, they are queried
-one after another in order of their service ranking property, the first one that picks an implementation wins.
-
-# Associating a Model Class with a Resource Type (since 1.3.0)
-
-The `@Model` annotation provides an optional `resourceType` attribute which allows for model classes to be associated with one or
-more resource types. This is used in three different ways.
-
-In the case of multiple model classes implementing the same interface, the class with the "closest" resource type will be used when
-adapting to the interface.
-
-The `ModelFactory` service interface has methods `Object getModelFromResource(Resource)` and `Object getModelFromRequest(SlingHttpServletRequest)` which will dynamically determine the adapter class based on the `Resource` using its type. In the case of the `SlingHttpServletRequest` method, it uses the request's `Resource` object (i.e. by calling `request.getResource()`)
-
-The resource type is also used as part of the Exporter framework (see next section).
-
-# Exporter Framework (since 1.3.0)
-
-Sling Models objects can be exported to arbitrary Java objects through the Sling Models Exporter framework. Model objects can be
-programatically exported by calling the `ModelFactory` method `exportModel()`. This method takes as its arguments:
-
-* the model object
-* an exporter name
-* a target class
-* a map of options
-
-The exact semantics of the exporting will be determined by an implementation of the `ModelExporter` service interface. Sling Models
-currently includes a single exporter, using the Jackson framework, which is capable of serializing models as JSON or transforming them to `java.util.Map` objects.
-
-In addition, model objects can have servlets automatically registered for their resource type (if it is set) using the `@Exporter` annotation. For example, a model class with the annotation
-
-::java
-@Model(adaptable = Resource.class, resourceType = "myco/components/foo")
-@Exporter(name = "jackson", extensions = "json")
-
-results in the registration of a servlet with the resource type and extension specified and a selector of 'model' (overridable
-through the `@Exporter` annotation's `selector` attribute). When this servlet is invoked, the `Resource` will be adapted to the
-model, exported as a `java.lang.String` (via the named Exporter) and then returned to the client.
-
-
-# Registration of Sling Models classes via bnd plugin
-
-With the Sling Models bnd plugin it is possible to automatically generated the necessary bundle header to register the Sling Models classes contained in the Maven bundle project - either with maven-bundle-plugin or with bnd-maven-plugin. By default the plugin generates a `Sling-Model-Classes` header (only compatible with Sling Models Impl since version 1.3.4, see [SLING-6308](https://issues.apache.org/jira/browse/SLING-6308)).
-
-Example configuration:
-
-#!xml
-<plugin>
-<groupId>org.apache.felix</groupId>
-<artifactId>maven-bundle-plugin</artifactId>
-<extensions>true</extensions>
-<configuration>
-<instructions>
-<_plugin>org.apache.sling.bnd.models.ModelsScannerPlugin</_plugin>
-</instructions>
-</configuration>
-<dependencies>
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.bnd.models</artifactId>
-<version>1.0.0</version>
-</dependency>
-</dependencies>
-</plugin>
-
-If a `Sling-Model-Packages` or `Sling-Model-Classes` was already manually defined for the bundle the bnd plugin does nothing. So if you want to migrate an existing project to use this plugin remove the existing header definitions.
-
-If you want to generate a bundle header compliant with Sling Models < 1.3.4 (i.e. `Sling-Model-Packages`) you need to specify the attribute `generatePackagesHeader=true`. An example configuration looks like this
-
-#!xml
-<configuration>
-<instructions>
-<_plugin>org.apache.sling.bnd.models.ModelsScannerPlugin;generatePackagesHeader=true</_plugin>
-</instructions>
-</configuration>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/nosql-resource-providers.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/nosql-resource-providers.md b/content/documentation/bundles/nosql-resource-providers.md
deleted file mode 100644
index 8e765f8..0000000
--- a/content/documentation/bundles/nosql-resource-providers.md
+++ /dev/null
@@ -1,77 +0,0 @@
-title=NoSQL Resource Providers (org.apache.sling.nosql)		
-type=page
-status=published
-~~~~~~
-[TOC]
-
-
-## Introduction
-
-Apache Sling provides resource-based access to NoSQL document stores like MongoDB and Couchbase via its Resource API using the NoSQL resource providers. This is possible in combination with a JCR-based repository (e.g. only on a special path in the resource tree), or a only persistence for the whole resource tree depending on the resource provider configuration.
-
-The general concept of retrieving from and storing resource data in NoSQL document stores is the same independently from the NoSQL product used:
-
-* For each resource a structured document is stored (usually in JSON format)
-* The path of the resource is the key of the document
-* The properties of the resource are stored in a map-like form in the document
-* Special mapping applies to convert special data types like numbers, dates and binary data to a format that can safely stored in the document event if the format is not natively supported (e.g. converting dates to strings and binary to base64)
-* The Sling CRUD support defines a simple transaction model with buffering all changes in memory until a call to "commit()" persists them to the NoSQL database
-* Iterating over child resources and deleting a resource including all descendants requires some basic query capabilities in the NoSQL store
-
-All these general features are implemented in an abstraction layer called ["Apache Sling NoSQL Generic Resource Provider"](https://github.com/apache/sling/tree/trunk/contrib/nosql/generic), which is used by the resource provider implementations per NoSQL product. Those implementation than only implement a thin "adapter" which maps the resource data to the NoSQL product-specific storage formats and query capabilities, without having to care about all the complex resource provider handling.
-
-This generic resource provider also contains a set of integration tests covering the most relevant resource read- and write usecases which can be used to test a NoSQL product-specific  resource provider implementation and the underlying NoSQL database.
-
-
-## MongoDB NoSQL Resource Provider
-
-Resource provider for [MongoDB](https://www.mongodb.org/) NoSQL database.
-
-Tested with MongoDB Server 3.0.6 and MongoDB Java Driver 3.1.1.
-
-Configuration example:
-
-org.apache.sling.nosql.mongodb.resourceprovider.MongoDBNoSqlResourceProviderFactory.factory.config-default
-provider.roots=["/"]
-connectionString="localhost:27017"
-database="sling"
-collection="resources"
-
-See Apache Felix OSGi console for detailed documentation of the parameters. All resource data is stored in one Collection of one MongoDB database. Each resource is stored as a document with the path stored in an "_id" property.
-
-Source code: [Apache Sling NoSQL MongoDB Resource Provider](https://github.com/apache/sling/tree/trunk/contrib/nosql/mongodb-resourceprovider)
-
-Please note: there is an [alternative MongoDB resource provider implementation](https://github.com/apache/sling/tree/trunk/contrib/extensions/mongodb) from 2012 which has less features, a slightly different concept for storing resource data (in multiple collections), and it does not use the "Generic Resource Provider".
-
-
-## Couchbase NoSQL Resource Provider
-
-Resource provider for [Couchbase](http://www.couchbase.com/) NoSQL database.
-
-Tested with Couchbase Server 4.0.0 and Couchbase Java SDK 2.2.4. Please note: Couchbase 4 or higher is mandatory because N1QL support is required.
-
-Configuration example:
-
-org.apache.sling.nosql.couchbase.resourceprovider.CouchbaseNoSqlResourceProviderFactory.factory.config-default
-provider.roots=["/"]
-
-org.apache.sling.nosql.couchbase.client.CouchbaseClient.factory.config-default
-clientId="sling-resourceprovider-couchbase"
-couchbaseHosts="localhost:8091"
-bucketName="sling"
-enabled=B"true"
-
-See Apache Felix OSGi console for detailed documentation of the parameters. All resource data is stored in one Couchbase bucket. Each resource is stored as a document with the path as key.
-
-Source code: [Apache Sling NoSQL Couchbase Resource Provider](https://github.com/apache/sling/tree/trunk/contrib/nosql/couchbase-resourceprovider)
-
-The resource provider requires and additional bundle [Apache Sling NoSQL Couchbase Client](https://github.com/apache/sling/tree/trunk/contrib/nosql/couchbase-client) which wraps the Couchbase Java SDK (which itself is not an OSGi bundle), and ensures that the Couchbase Environment instance is used as a singleton in the VM.
-
-
-## Example Launchpad
-
-An example launchpad is provided that contains the NoSQL resource providers configured as main resource provider at `/`.
-
-Source code: [Apache Sling NoSQL Launchpad](https://github.com/apache/sling/tree/trunk/contrib/nosql/launchpad)
-
-See README for details how to start the launchpad.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/org-apache-sling-junit-bundles.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/org-apache-sling-junit-bundles.md b/content/documentation/bundles/org-apache-sling-junit-bundles.md
deleted file mode 100644
index 8eae937..0000000
--- a/content/documentation/bundles/org-apache-sling-junit-bundles.md
+++ /dev/null
@@ -1,213 +0,0 @@
-title=JUnit server-side testing support bundles		
-type=page
-status=published
-~~~~~~
-
-This is an overview of the Sling bundles that provide support for server-side JUnit tests.
-
-The Maven modules below [`testing/samples`](https://svn.apache.org/repos/asf/sling/trunk/testing/samples)
-provide different examples including HTTP-based and server-side teleported tests in a
-bundle module, running against a full Sling instance setup in the same Maven module.
-
-## org.apache.sling.junit.core: server-side JUnit tests support
-This bundle provides a `JUnitServlet` that runs JUnit tests found in bundles.
-
-<div class="warning">
-Note that the JUnitServlet does not require authentication, so it would allow any client to run tests. The servlet can be disabled by configuration if needed, but in general the `/system` path should not be accessible to website visitors anyway.
-</div>
-
-<div class="note">
-For tighter integration with Sling, the alternate `SlingJUnitServlet` is registered with the `sling/junit/testing` resource type and `.junit` selector, if the bundle is running in a Sling system. Using this servlet instead of the plain JUnitServlet also allows Sling authentication to be used for running the tests, and the standard Sling request processing is used, including servlet filters for example.
-</div>
-
-To make tests available to that servlet, the bundle that contains them must point to them
-with a `Sling-Test-Regexp` bundle header that defines a regular expression that matches
-the test class names, like for example:
-
-Sling-Test-Regexp=com.example.*ServerSideTest
-
-### The TeleporterRule
-
-The `TeleporterRule` supplied by this bundle (since V1.0.12) makes it easy to write such tests, as it takes care of
-all the mechanics of
-
-1. creating the test bundle including all necessary classes for execution
-1. adding the `Sling-Test-Regexp` header to the bundles manifest
-1. deploy the bundle on an Sling server (with the help of the customizer)
-1. calling the `JUnitServlet` from the client-side and report back the results
-1. uninstalling the test bundle
-
-Most of these steps are done on the client-side by the org.apache.sling.junit.teleporter module (see below).
-
-Using this rule the server-side tests can be mixed with other tests in the source code if that's convenient, it just
-requires the `junit.core` and `junit.teleporter` modules described on this page to create such tests.
-
-Here's a basic example of a server-side test that accesses OSGi services:
-
-public class BasicTeleporterTest {
-
-@Rule
-public final TeleporterRule teleporter = TeleporterRule.forClass(getClass(), "Launchpad");
-
-@Test
-public void testConfigAdmin() throws IOException {
-final String pid = "TEST_" + getClass().getName() + UUID.randomUUID();
-
-final ConfigurationAdmin ca = teleporter.getService(ConfigurationAdmin.class);
-assertNotNull("Teleporter should provide a ConfigurationAdmin", ca);
-
-final Configuration cfg = ca.getConfiguration(pid);
-assertNotNull("Expecting to get a Configuration", cfg);
-assertEquals("Expecting the correct pid", pid, cfg.getPid());
-}
-}
-
-That's all there is to it, the `TeleporterRule` takes care of the rest.
-
-The test bundle being build and deployed through this rule usually happens quickly as the temporary bundle is
-very small. Both the client-side and server-side parts of the test can be debugged easily
-with the appropriate IDE settings.
-
-The `Teleporter.getService` method takes an optional OSGi LDAP filter for service
-selection, like for example:
-
-final StringTransformer t = teleporter.getService(StringTransformer.class, "(mode=uppercase)");
-
-The method waits for the service to be available or until the timeout elapsed ([SLING-6031](https://issues.apache.org/jira/browse/SLING-6031)).
-
-And starting with version 1.0.4 of the `org.apache.sling.junit.teleporter` bundle, you can specify
-resources to embed in the test bundle, as in this example:
-
-@Rule
-public final TeleporterRule teleporter =
-TeleporterRule.forClass(getClass(), "Launchpad")
-.withResources("/foo/", "/some/other/resource.txt");
-
-which will embed all resources found under `/foo` as well as the `resource.txt` in the test
-bundle, making them available to the server-side tests.
-
-This teleporter mechanism is used in our integration tests, search for `TeleporterRule` in there
-for examples or look at the
-[`integrationtest.teleporter`]( https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/teleporter)
-package.
-
-As I write this the teleporter mechanism is quite new, I suspect there might be some weird interactions
-between things like `@AfterClass`, custom test runners and this mechanism but it works well to a growing
-number of tests in our `launchpad/integration-tests` module. Moving to JUnit `Rules` as much as possible,
-and combining them using JUnit's `RuleChain`, should help work around such limitations if they arise.
-
-### More details on the JUnitServlet
-To try the JUnitServlet interactively, you can install a
-bundle that contains tests and a `Sling-Test-Regexp` bundle header that points to them, as
-described above. Or use the `TeleporterRule` and set a breakpoint in the tests execution, when the test bundle in
-installed and listed by the test servlet.
-
-To list the available tests, open `/system/sling/junit/` in your browser. The servlet shows available tests and allows
-you to execute them via a POST request.
-
-Adding a path allows you to select a specific subset of tests, as in
-`/system/sling/junit/org.apache.sling.junit.remote.html`
-
-The JUnitServlet provides various output formats, including in particular JSON, see
-`/system/sling/junit/.json` for example.
-
-## org.apache.sling.junit.teleporter: client-side TeleporterRule support
-This module provides the `ClientSideTeleporter` which the `TeleporterRule` uses to package the server-side tests
-in bundles that's installed temporarily on the test server. Almost all steps described above in [The TeleporterRule](#the-teleporterrule) are being performed by this module.
-
-This module is not a bundle, as it's used on the client only, as a dependency when running the tests.
-
-### TeleporterRule.Customizer ###
-A `TeleporterRule.Customizer` is used to setup the `ClientSideTeleporter`. That customizer is instantiated dynamically
-based on a String passed to the `TeleporterRule.forClass` method as 2nd parameter. As an example from our `launchpad/integration-tests` module, this call
-
-TeleporterRule.forClass(getClass(), "Launchpad:author");
-
-causes the `TeleporterRule` to use the `org.apache.sling.junit.teleporter.customizers.LaunchpadCustomizer` class
-to setup the `ClientSideTeleporter`, and passes the "author" string to it as an option. Although our current `LaunchpadCustomizer`
-does not use this options string, it is meant to select a specific server (of family of servers) to run the tests on.
-
-The options string can also use a full class name instead of the `Launchpad` short form used here, if needed. The part
-of that string that follows the first colon is passed to the customizer as is.
-
-Using Strings for customization reduces the coupling with the `junit.core` bundle, as it does not need to know those
-classes which are used only on the client side when running tests.
-
-If `TeleporterRule.forClass(getClass())` is used (the method without an additional 2nd parameter) the default customizer is used ([SLING-5677](https://issues.apache.org/jira/browse/SLING-5677), since version 1.0.8).
-
-The following customizers are currently used in Sling
-
-### Default Customizer ###
-
-*[DefaultPropertyBasedCustomizer.java](https://svn.apache.org/repos/asf/sling/trunk/testing/junit/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/DefaultPropertyBasedCustomizer.java)* is used by default when no other customizer is referenced in `TeleporterRule.forClass(getClass())`. It relies on the following system properties:
-
-| Property Name                | Description                                     | Mandatory to set | Default value | Since version | Related JIRA |
-|------------------------------|-------------------------------------------------|------------------| ----- | ---| --- |
-| `ClientSideTeleporter.baseUrl` | base url of the Sling Server to which to deploy. | yes | - | 1.0.8 | [SLING-5677](https://issues.apache.org/jira/browse/SLING-5677) |
-| `ClientSideTeleporter.includeDependencyPrefixes` | comma-separated list of package prefixes for classes referenced from the IT. Only the classes having one of the given package prefix are included in the bundle being deployed to the given Sling instance together with the IT class itself.  They are only included though in case they are referenced! If this is not set, no referenced classes will be included. | no | - | 1.0.8 | [SLING-5677](https://issues.apache.org/jira/browse/SLING-5677) |
-| `ClientSideTeleporter.excludeDependencyPrefixes` | comma-separated list of package prefixes for classes referenced from the IT. Classes having one of the given package prefix will not be included in the bundle being deployed to the given Sling instance together with the IT class itself. This takes precedence over the `ClientSideTeleporter.includeDependencyPrefixes`. | no | - | 1.0.8 | [SLING-5677](https://issues.apache.org/jira/browse/SLING-5677) |
-| `ClientSideTeleporter.embedClasses` | comma-separated list of fully qualified class names which should be embedded in the test bundle. Use this only for classes which are not detected automatically by the Maven Dependency Analyzer but still should be embedded in the test bundle | no | - | 1.0.8 | [SLING-5677](https://issues.apache.org/jira/browse/SLING-5677) |
-| `ClientSideTeleporter.embedClassesDirectories` | comma-separated list directories containing class files which should be embedded in the test bundle. Use this only for classes which are not detected automatically by the Maven Dependency Analyzer but still should be embedded in the test bundle | no | - | 1.0.12 | [SLING-6551](https://issues.apache.org/jira/browse/SLING-6551) |
-| `ClientSideTeleporter.additionalBundleHeaders` | comma-separated list of entries in the format `<name>:<value>` which should be added to the test bundle as additional headers | no | - | 1.0.12 | [SLING-6558](https://issues.apache.org/jira/browse/SLING-6558) |
-| `ClientSideTeleporter.testReadyTimeoutSeconds` | how long to wait for our test to be ready on the server-side in seconds, after installing the test bundle. | no | `12` | 1.0.8 | [SLING-5677](https://issues.apache.org/jira/browse/SLING-5677) |
-| `ClientSideTeleporter.serverUsername` | the username with which to send requests to the Sling server. | no | `admin` | 1.0.8 | [SLING-5677](https://issues.apache.org/jira/browse/SLING-5677) |
-| `ClientSideTeleporter.serverPassword` | the password with which to send requests to the Sling server. | no | `admin` | 1.0.8 | [SLING-5677](https://issues.apache.org/jira/browse/SLING-5677) |
-| `ClientSideTeleporter.enableLogging` | set to `true` to log the tasks being performed by the teleporter. Useful for debugging. | no | `false` | 1.0.12 | [SLING-6546](https://issues.apache.org/jira/browse/SLING-6546) |
-| `ClientSideTeleporter.preventToUninstallBundle` | set to `true` to not automatically uninstall the test bundle after test execution. Useful for debugging. | no | `false` | 1.0.12 | [SLING-6546](https://issues.apache.org/jira/browse/SLING-6546) |
-| `ClientSideTeleporter.testBundleDirectory` | if set the test bundles are being persisted (before being installed) within the given directory name. If the directory does not exist, it will be automatically created. Useful for debugging. Recommended value `${project.build.directory}/test-bundles`. | no | - | 1.0.12 | [SLING-6546](https://issues.apache.org/jira/browse/SLING-6546) |
-
-
-The provisioning of an appropriate instance can be done with the [slingstart-maven-plugin](/documentation/development/slingstart.html). An example for that is given at [`testing/samples/module-with-it`](https://svn.apache.org/viewvc/sling/trunk/testing/samples/module-with-it). Since `slingstart-maven-plugin` 1.5.0 it is possible to bootstrap a Sling Server from a `model.txt` below `src/test/provisioning` independent of the packaging (see [SLING-6068](https://issues.apache.org/jira/browse/SLING-6068)).
-
-#### LaunchpadCustomizer ####
-The *[`LaunchpadCustomizer.java`](https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/junit/teleporter/customizers/LaunchpadCustomizer.java)* only verifies that a Sling instance is ready at a given port and configures the `ClientSideTeleporter` to deploy to `http://localhost:8888` with the credentials `admin`:`admin`. `LaunchpadCustomizer` uses the `HttpTestBase` therefore some parameters are customizable through system properties. There is no bootstrapping of an instance done here, so this must be done separately!
-
-#### BWIT_TeleporterCustomizer ####
-The *[`BWIT_TeleporterCustomizer.java`](http://svn.apache.org/viewvc/sling/trunk/testing/samples/bundle-with-it/src/test/java/org/apache/sling/junit/teleporter/customizers/BWIT_TeleporterCustomizer.java)* relies on `SlingTestBase` to set the server's base url and credentials. Additionally the test bundle is adjusted so that the API is not included in it (but rather referenced from another bundle). The bootstrapping of the Sling instance is tweaked through system properties which are desribed [here](http://labs.6dglobal.com/blog/2013-06-05/creating-integration-tests-apache-sling/) and implicitly done by the customizer itself.
-
-Those should give you an overview on what can be done with a customizer and decide whether you need to write your own one or using the default customizer is just enough.
-
-## org.apache.sling.junit.healthcheck: run JUnit tests as Sling Health Checks
-This bundle allows JUnit tests to run as [Sling Health Checks](/documentation/bundles/sling-health-check-tool.html),
-which can be useful when defining smoke tests for example, allowing them to be used both at build time and run time.
-
-See the `JUnitHealthCheck` class for details.
-
-## org.apache.sling.junit.scriptable: scriptable server-side tests
-This bundle allows Sling scripts to be executed from the `JUnitServlet` as JUnit tests, as follows:
-
-* A node that has the `sling:Test` mixin is a scriptable test node.
-* For security reasons, scriptable test nodes are only executed as tests if they are found under `/libs` or `/apps`, or more precisely under a path that's part of Sling's `ResourceResolver` search path.
-* To execute a test, the scriptable tests provider makes an HTTP request to the test node's path, with a `.test.txt` selector and extension, and expects the output to contain only the string `TEST_PASSED`. Empty lines and comment lines starting with a hash sign (#) are ignored in the output, and other lines are reported as failures.
-
-Here's a minimal example that sets up and executes a scriptable test:
-
-$ curl -u admin:admin -Fjcr:primaryNodeType=sling:Folder -Fsling:resourceType=foo -Fjcr:mixinTypes=sling:Test http://localhost:8080/apps/foo
-...
-$ echo TEST_PASSED > /tmp/test.txt.esp ; curl -u admin:admin -T/tmp/test.txt.esp http://localhost:8080/apps/foo/test.txt.esp
-
-At this point, foo.test.txt is what the scriptable test framework will request, and that outputs just TEST_PASSED:
-
-$ curl -u admin:admin http://localhost:8080/apps/foo.test.txt
-TEST_PASSED
-
-And a POST to the JUnit servlet returns information on the test's execution:
-
-curl -u admin:admin -XPOST http://localhost:8080/system/sling/junit/org.apache.sling.junit.scriptable.ScriptableTestsProvider.json
-[{
-"INFO_TYPE": "test",
-"description": "verifyContent[0](org.apache.sling.junit.scriptable.TestAllPaths)",
-"test_metadata": {
-"test_execution_time_msec": 2
-}
-}
-]
-
-Test failures would be included in this JSON representation - you can test that by modifying the script to fail and making the
-same request again.
-
-## org.apache.sling.junit.remote: obsolete
-
-The `org.apache.sling.junit.remote` bundle provides utilities to run server-side JUnit tests,
-but using the newer `TeleporterRule` described above is much simpler. As a result, this bundle
-should only be needed for existing tests that were written using its mechanisms.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/osgi-installer.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/osgi-installer.md b/content/documentation/bundles/osgi-installer.md
deleted file mode 100644
index 26a06ab..0000000
--- a/content/documentation/bundles/osgi-installer.md
+++ /dev/null
@@ -1,96 +0,0 @@
-title=OSGi Installer		
-type=page
-status=published
-~~~~~~
-
-# Overview
-
-The OSGi installer is a central service for handling installs, updates and uninstall of "artifacts". By default, the installer supports bundles and has an extension for handling configurations for the OSGi configuration admin.
-
-![Apache Sling OSGI Installer Diagram](/documentation/bundles/Slide14.jpg)
-
-The OSGi installer itself is "just" the central service managing the tasks and states of the artifacts. The artifacts can be provided through various providers, e.g. through a file system provider reading artifacts from configured directories or the jcr provider reading artifacts from a JCR repository.
-
-A provider is just scanning for artifacts and their removal. It informs the OSGi installer about new artifacts and removed artifacts. The provider itself has usually no knowledge about the contents of an artifact. It does not know about bundles, configurations etc.
-
-As the OSGi installer itself is not performing the actual install, update or removal of an artifact, its possible to install transformers and installer factories. A transformer inspects the artifacts and tries to detect its type. By default, detecting of bundles and configurations is supported. The final service is an installer factory creating the actual task, like install this bundle, update that bundle etc.
-
-It's possible to add own providers, transformers and installer factories to support custom scenarios.
-
-## API
-The installer API is defined by the `org.apache.sling.installer.api` package
-of the [org.apache.sling.installer.core](http://svn.apache.org/repos/asf/sling/trunk/installer/core/) module. The main
-interface is the `OsgiInstaller` with which installable resources can be registered.
-
-The [installer integration tests][1] module can be useful to understand the details of how the installer works.
-
-## Artifact Handling
-
-Once an artifact is detected by a transformer, it gets a unique id. By default a bundle gets the symbolic name as the unique identifier and a configuration the PID.
-In addition to this id, an artifact gets a priority information from the provider. The priority is used if an artifact with the same id is provided several times from different locations. For example if a file system provider is scanning two directories and an artifact with the same id (like a configuration) is added to both directories, one should have precedence over the other. This is handled by the priority.
-
-Artifacts with the same unique id are grouped and then sorted by priority and maybe other artifact dependent metadata like the bundle version. Only the first artifact in this sorted group is tried to be applied!
-
-## Bundle Handling
-
-In general, the OSGi installer always tries to install the highest version of a bundle if several bundles with the same symbolic name are provided. In this case higher version wins over priority.
-If an installed bundle is removed by a provider, for example deleted in the repository, the OSGi installer uninstall the bundle.
-If a bundle is removed from a provider which is currently not installed, this has no effect at all.
-If an installed bundle is removed and another version of this bundle is provided (a lower version), than this one is installed instead. This is basically a downgrade of the bundle.
-If a bundle is installed and a higher version is provided, an upgrade is performed.
-If an installed bundle is managed via any other OSGi tooling, like uninstalling it through the web console, the OSGi installer does no action at all!
-
-If a failure occurs during bundle installation or update, the OSGi installer will retry this as soon as another bundle has been installed. The common use case is an application installation with several bundles where one bundle depends on another. As they are installed in arbitrary order, this mechanism ensures that in the end all bundles are properly wired and installed.
-
-When all artifacts have been processed (either install, update or delete), a package refresh is automatically called.
-
-### Versions and Snapshots
-
-The OSGi installer asumes that a symbolic name and version (not a snapshot version) uniquely identifies a bundle. Obviously this is a common development requirement that a released version of an artifact never changes over time. Therefore, once a bundle with a specific version is installed, it will not be reinstalled if the corresponding artifact changes. For example, if  bundle A with version 1.0 is put into the JCR repository, it gets installed. If now this jar in the repository is overwritten either with the same contents or with a different one, and this new artifact has again A as the symbolic name and version set to 1.0, nothing will happen as this exact bundle is already installed.
-
-During development, SNAPSHOT versions should be used, like 1.0.0-SNAPSHOT (using the Maven convention). If a bundle with a snapshot version is changed, it gets updated by the OSGI installer.
-
-## Start Level Handling
-
-The OSGi installer supports handling of start levels for bundles. If the provided bundle artifacts contain a start level information the bundle is installed with that start level, otherwise the default start level is used.
-Therefore, for initial provisioning to make use of start levels, the OSGi installer and the corresponding provider (see below) should run at a very low start level, probably at 1. This ensure that the bundles with a start level are started with respect to the start level.
-
-When an update of bundles is performed through the installer, by default the installer stays in the current start level and updates the bundles. However, if bundles at low start levels are affected, this might result in a lot of churn going on. Therefore, the OSGi installer can be configured to use a more intelligent start level handling:
-
-* If the framework property "sling.installer.switchstartlevel" is set to "true" and
-* there is no asynchronous install task in the list of tasks to perform, then
-* the start level is set to (the lowest level of the bundles to be updated - 1) - if the start level is lower than the level of the installer itself, the start level of the installer is used.
-* the bundles are updated/installed
-* the start level is increased to the previous level
-
-## Plugins
-
-### Factories
-
-An installer factory provides support for a specific artifact type, like a configuration or a deployment package etc.
-
-* [Configuration Installer Factory](/documentation/bundles/configuration-installer-factory.html)
-* [Subsystem Installer Factory](/documentation/bundles/subsystem-installer-factory.html)
-
-### Providers
-
-A provider provides artifacts, e.g. by scanning a directory or a database etc.
-
-* [File Installer Provider](/documentation/bundles/file-installer-provider.html)
-* [JCR Installer Provider](/documentation/bundles/jcr-installer-provider.html)
-
-## Health Check
-
-The OSGi installer provides a [Sling Health Check](/documentation/bundles/sling-health-check-tool.html) which validates that the processed OSGi installer resources have the correct state ([SLING-5888](https://issues.apache.org/jira/browse/SLING-5888)).
-By default it will only check resources with a URL prefix `jcrinstall:/apps/`, so only the resources being provided through the [JCR Installer Provider](/documentation/bundles/jcr-installer-provider.html) initially located below the repository resource `/apps/` are considered.
-The health check will fail in the following cases:
-
-### Bundles Installation Failure
-
-The checked bundle was not installed because it has been installed in a newer version through some other means (e.g. manually through the Felix Web Console or by another provider. For further details please review the OSGi Installer console at `/system/console/osgi-installer` and check for all bundles with the given symbolic name (=OSGi installers resource id) and the according URL.
-
-### Configuration Installation Failure
-
-The checked configuration was not installed because it has either been overwritten manually in the Felix Web Console or is installed by some non-checked provider (which has a higher priority). To revert manually overwritten configurations just go to `/system/console/configMgr` and delete the according configuration. That way the OSGi installer should automatically create a new configuration for the same PID based on the configuration provided by some provider with the highest prio. In case another non-checked provider has provided already a configuration you can see from where it has been installed by looking at the OSGi Installer console at `/system/console/osgi-installer` and look for all configurations with the given PID.
-
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.md b/content/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.md
deleted file mode 100644
index 5b9bc45..0000000
--- a/content/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.md
+++ /dev/null
@@ -1,99 +0,0 @@
-title=Output Rewriting Pipelines (org.apache.sling.rewriter)		
-type=page
-status=published
-~~~~~~
-
-The Apache Sling Rewriter is a module for rewriting the output generated by a usual Sling rendering process. Some possible use cases include rewriting or checking all links in an HTML page, manipulating the HTML page, or using the generated output as the base for further transformation. An example of further transformation is to use XSLT to transform rendered XML to some output format like HTML or XSL:FO for generating PDF.
-
-For supporting these use cases, the rewriter uses the concept for a processor. The processor is a component that is injected through a servlet filter into the response. By implementing the *Processor* interface one is able to rewrite the whole response in one go. A more convenient way of processing the output is by using a so called pipeline; the Apache Sling rewriter basically uses the same concept as the famous Apache Cocoon: an XML based pipeline for further post processing of the output. The pipeline is based on SAX events.
-
-## SAX Pipelines
-
-The rewriter allows to configure a pipeline for post processing of the generated response. Depending on how the pipeline is assembled the rewriting process might buffer the whole output in order to do proper post processing - for example this is required if an HTML response is "transformed" to XHTML or if XSLT is used to process the response.
-
-As the pipeline is based on SAX events, there needs to be a component that generates these events and sends them through the pipeline. By default the Sling rendering scripts write to an output stream, so there is a need to parse this output and generate the SAX events.
-
-The first component in the pipeline generating the initial SAX events is called a generator. The generator gets the output from Sling, generates SAX events (XML), and streams these events into the pipeline. The counterpart of the generator is the serializer which builds the end of the pipeline. The serializer collects all incomming SAX events, transforms them into the required response by writing into output stream of the response.
-
-Between the generator and the serializer so called transformers can be placed in a chain. A transformer receives SAX events from the previous component in the pipeline and sends SAX events to the next component in the pipeline. A transformer can remove events, change events, add events or just pass on the events.
-
-Sling contains a default pipeline which is executed for all HTML responses: it starts with an HTML generator, parsing the HTML output and sending events into the pipeline. An HTML serializer collects all events and serializes the output.
-
-The pipelines can be configured in the repository as a child node of */apps/APPNAME/config/rewriter* (or */libs/APPNAME/config/rewriter*). (In fact the configured search paths of the resource resolver are observed.) Each node can have the following properties:
-
-* generatorType - the type of the generator (required)
-* transformerTypes (multi value string) - the types of the transformers (optional)
-* serializerType - the type of the serializer (required)
-* paths (multi value string) - the paths this pipeline should run on (content paths)
-* contentTypes (multi value string) - the content types this pipeline should be used for (optional)
-* extensions (multi value string) - the extensions this pipeline should be used for (optional)
-* resourceTypes (multi value string) - the resource types this pipeline should be used for (optional)
-* unwrapResources (boolean) - check resource types of unwrapped resources as well (optional, since 1.1.0)
-* selectors (multi value string) - a set of selectors the pipeline should be used for (optional, since 1.1.0)
-* order (long) - the configurations are sorted by this order, order must be higher or equal to 0. The configuration with the highest order is tried first.
-* enabled (boolean) - Is this configuration active? (default yes)
-
-As you can see from the configuration there are several possibilities to define when a pipeline should be used for a response, like paths, extensions, content types, or resource types. It is possible to specify several of them at once. In this case all conditions must be met.
-
-If a component needs a configuration, the configuration is stored in a child node which name is *{componentType}-{name}*, e.g. to configure the HTML generator (named *html-generator*), the node should have the name *generator-html-generator*. In the case that the pipeline contains the same transformer several times, the configuration child node should have the formant *{componentType}-{index}* where index is the index of the transformer starting with 1. For example if you have a pipeline with the following transformers, xslt, html-cleaner, xslt, link-checker, then the configuration nodes should be named *transformer-1* (for the first xslt), *transformer-html-cleaner*, *transformer-3* (for the second xslt), and *transformer-link-checker*.
-
-
-### Default Pipeline
-
-The default pipeline is configured for the *text/html* mime type and the *html* extensions and consists of the *html-generator* as the generator, and the *html-serializer* for generating the final response.
-As the HTML generated by Sling is not required to be valid XHTML, the HTML parser is using an HTML parser to create valid SAX events. In order to perform this, the generator needs to buffer the whole response first.
-
-## Implementing Pipeline Components
-
-Each pipeline component type has a corresponding Java interface (Generator, Transformer, and Serializer) together with a factory interface (GeneratorFactory, TransformerFactory, and SerializerFactory). When implementing such a component, both interfaces need to be implemented. The factory has only one method which creates a new instance of that type for the current request. The factory has to be registered as a service. For example if you're using the Maven SCR plugin, it looks like this:
-
-::java
-@scr.component metatype="no"
-@scr.service interface="TransformerFactory"
-@scr.property value="pipeline.type" value="validator"
-
-The factory needs to implement the according interface and should be registered as a service for this factory interface (this is a plain service and not a factory service in the OSGi sense). Each factory gets a unique name through the *pipeline.type* property. The pipeline configuration in the repository just references this unique name (like validator).
-
-## Extending the Pipeline
-With the possibilities from above, it is possible to define new pipelines and add custom components to the pipeline. However, in some cases it is required to just add a custom transformer to the existing pipeline. Therefore the rewriting can be configured with pre and post transformers that are simply added to each configured pipeline. This allows a more flexible way of customizing the pipeline without changing/adding a configuration in the repository.
-
-The approach here is nearly the same. A transformer factory needs to be implemented, but instead of giving this factory a unique name, this factory is marked as a global factory:
-
-::java
-@scr.component metatype="no"
-@scr.service interface="TransformerFactory"
-@scr.property name="pipeline.mode" value="global"
-@scr.property name="service.ranking" value="RANKING" type="Integer"
-
-*RANKING* is an integer value (don't forget the type attribute otherwise the ranking is interpreted as zero!) specifying where to add the transformer in the pipeline. If the value is less than zero the transformer is added at the beginning of the pipeline right after the generator. If the ranking is equal or higher as zero, the transformer is added at the end of the pipeline before the serializer.
-
-The *TransformerFactory* interface has just one method which returns a new transformer instance. If you plan to use other services in your transformer you might declare the references on the factory and pass in the instances into the newly created transformer.
-
-Since the transformer carries information about the current response it is not advisable to reuse the same transformer instance among multiple calls of `TransformerFactory.createTransformer`.
-
-
-## Implementing a Processor
-
-A processor must conform to the Java interface *org.apache.sling.rewriter.Processor*. It gets initializd (method *init*) with the *ProcessingContext*. This context contains all necessary information for the current request (especially the output writer to write the rewritten content to).
-The *getWriter* method should return a writer where the output is written to. When the output is written or an error occured *finished* is called.
-
-Like the pipeline components a processor is generated by a factory which has to be registered as a service factory, like this:
-
-::java
-@scr.component metatype="no"
-@scr.service interface="ProcessorFactory"
-@scr.property value="pipeline.type" value="uniqueName"
-
-## Configuring a Processor
-
-The processors can be configured in the repository as a child node of */apps/APPNAME/config/rewriter* (or libs or any configured search path). Each node can have the following properties:
-
-* processorType - the type of the processor (required) - this is the part from the scr factory information after the slash (in the example above this is *uniqueName*)
-* paths (multi value string) - the paths this processor should run on (content paths)
-* contentTypes (multi value string) - the content types this processor should be used for (optional)
-* extensions (multi value string) - the extensions this processor should be used for (optional)
-* resourceTypes (multi value string) - the resource types this processor should be used for (optional)
-* unwrapResources (boolean) - check resource types of unwrapped resources as well (optional, since 1.1.0)
-* selectors (multi value string) - a set of selectors the pipeline should be used for (optional, since 1.1.0)
-* order (long) - the configurations are sorted by this order, order must be higher or equal to 0. The configuration with the highest order is tried first.
-* enabled (boolean) - Is this configuration active? (default yes)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/rendering-content-default-get-servlets.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/rendering-content-default-get-servlets.md b/content/documentation/bundles/rendering-content-default-get-servlets.md
deleted file mode 100644
index ebed222..0000000
--- a/content/documentation/bundles/rendering-content-default-get-servlets.md
+++ /dev/null
@@ -1,76 +0,0 @@
-title=Rendering Content - Default GET Servlets		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-<div class="note">
-Not all features of the <b>org.apache.sling.servlets.get</b> bundle are described below - this
-page needs more work.
-</div>
-
-# Default GET and HEAD servlets
-
-Sling provides a number of default GET and HEAD servlets, in the `org.apache.sling.servlets.get` bundle.
-
-This provides useful functionality out of the box: JSON rendering of content for example, usually does
-not require custom code.
-
-This page provides an overview of these default servlets.
-
-Currently, only the `DefaultGetServlet` has configuration parameters. Those are found at
-`/system/console/configMgr/org.apache.sling.servlets.get.DefaultGetServlet` on a standard Sling setup,
-and should be self-explaining. One common use is to disable some of the default renderings listed below,
-as they might not be useful or desired on production systems.
-
-# Default renderings
-
-## Default JSON rendering
-Adding a .json extension to a request triggers the default Sling GET servlet in JSON mode, unless a
-more specific servlet or script is provided for the current resource.
-
-This servlet currently supports the following selectors:
-
-* `.tidy` causes the JSON output to be formatted
-* `.harray` causes child nodes to be output as arrays instead of objects, to preserve their order (requires `org.apache.sling.servlets.get` V2.1.10)
-* A numeric value or `.infinity` as the last selector selects the desired recursion level
-
-Note that the number of elements is limited by a configurable value, see the `DefaultGetServlet` configuration for more info.
-
-## Default HTML rendering
-
-In a similar way, adding a `.html` extension to a request triggers the default Sling GET servlet in HTML
-mode. That rendering just dumps the current node values in a readable way, but it's only really useful
-for troubleshooting.
-
-## Default text rendering
-
-A basic text rendering is also provided if the request has a `.txt` extension, unless more specific servlets
-or scripts are provided.
-
-## Default XML rendering
-
-Adding a `.xml` extension triggers the default XML rendering, once again unless a more specific script or
-servlet is registered for the current resource.
-
-That XML rendering currently uses the JCR "document view" export functionality directly, so it only supports
-rendering resources that are backed by JCR nodes.
-
-## StreamRendererServlet
-
-Whenever the request carries the extension `.res` or no extension at all, the resource's input stream is spooled to the servlet response (leveraging `Resource.adaptTo(InputStream.class)`). This servlet supports conditional requests ([RFC 7232](https://tools.ietf.org/html/rfc7232)) evaluating the resource's modification date from `Resource.getResourceMetadata().getModificationTime()`  and range requests ([RFC 7233](https://tools.ietf.org/html/rfc7233)).
-
-## RedirectServlet
-
-The `RedirectServlet` handles the `sling:redirect` resource type, using the `sling:target` property of the
-resource to define the redirect target, and the `sling:status` property to define the HTTP status to use (default is 302).
-
-This is not to be confused with the `sling:redirect` property used under `/etc/map`, which is described in
-[Mappings for Resource Resolution](/documentation/the-sling-engine/mappings-for-resource-resolution.html)
-
-## SlingInfoServlet
-
-The `SlingInfoServlet` provides info on the current JCR session, for requests that map to JCR nodes.
-
-It is available at `/system/sling/info.sessionInfo` by default, and supports `.json` and `.txt` extensions.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/repository-initialization.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/repository-initialization.md b/content/documentation/bundles/repository-initialization.md
deleted file mode 100644
index f501e0c..0000000
--- a/content/documentation/bundles/repository-initialization.md
+++ /dev/null
@@ -1,151 +0,0 @@
-title=		
-type=page
-status=published
-~~~~~~
-
-The `SlingRepositoryInitializer` mechanism allows for running code before the `SlingRepository` service is registered.
-
-This is useful for initialization and content migration purposes.
-
-Please be aware of potential clustering and coordination issues when using this mechanism, if your environment lets several Sling instances access
-the same content repository you'll need to implement a synchronization mechanism for such operations.
-
-## SlingRepositoryInitializer
-The `SlingRepositoryInitializer` is a very simple service interface, available from version 2.4.0 of the `org.apache.sling.jcr.api` and `org.apache.sling.jcr.base` bundles.
-
-public interface SlingRepositoryInitializer {
-public void processRepository(SlingRepository repo) throws Exception;
-}
-
-Services that implement this interface are called when setting up the JCR-based `SlingRepository` service, before registering it as an OSGi service.
-
-They are called in increasing order of their `service.ranking` service property, which needs to be an `Integer` as usual.
-
-If any of them throws an Exception, the `SlingRepository` service is not registered.
-
-## The 'repoinit' Repository Initialization Language
-The `org.apache.sling.repoinit.parser` implements a mini-language meant to create paths, service users and Access Control Lists in a content repository, as
-well as registering JCR namespaces and node types.
-
-The language grammar is defined (using the JavaCC compiler-compiler, which has no runtime dependencies) in the `RepoInitGrammar.jjt` file in that module, and the automated tests provide a number of [test cases](https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases) which demonstrate various features.
-
-The companion `org.apache.sling.jcr.repoinit` module implements those operations on an Oak JCR repository, using a `SlingRepositoryInitializer`
-registered by default with a service ranking of 100. It also provides a `JcrRepoInitOpsProcessor` service to explicitly apply the output
-of the repoinit parser to a JCR repository.
-
-Here's a current example from the test cases mentioned above, that uses all language features as of version 1.0.2 of the parser module.
-
-The language is self-explaining but please refer to the actual test cases for details that are guaranteed to be up to date, assuming the tests pass.
-
-create service user user1, u-ser_2
-set ACL on /libs,/apps
-allow jcr:read for user1,u-ser_2
-
-deny jcr:write for u-ser_2
-deny jcr:lockManagement for user1
-remove jcr:understand,some:other for u3
-end
-
-create service user bob_the_service
-
-set ACL on /tmp
-allow some:otherPrivilege for bob_the_service
-end
-
-# Nodetypes inside the path apply to just that path element
-create path /content/example.com(sling:Folder)
-
-# A nodetype in front is used as the default for all path elements
-create path (nt:unstructured) /var
-
-set ACL for alice, bob,fred
-# remove is currently not supported by the jcr.repoinit module
-remove * on /
-allow jcr:read on /content,/var
-deny jcr:write on /content/example.com
-deny jcr:all on / nodetypes example:Page
-end
-
-set ACL for restrictions_examples
-deny jcr:modifyProperties on /apps, /content nodetypes sling:Folder, nt:unstructured restriction(rep:itemNames,prop1,prop2)
-allow jcr:addChildNodes on /apps restriction(rep:ntNames,sling:Folder,nt:unstructured)
-allow jcr:modifyProperties on /apps restriction(rep:ntNames,sling:Folder,nt:unstructured) restriction(rep:itemNames,prop1,prop2)
-allow jcr:addChildNodes on /apps,/content restriction(rep:glob,/cat/*,*/cat,*cat/*)
-end
-
-# register namespace requires
-# o.a.s.repoinit.parser 1.0.4
-# and o.a.s.jcr.repoinit 1.0.2
-register namespace ( NSprefix ) uri:someURI/v1.42
-
-# register nodetypes in CND format
-# (same bundle requirements as register namespaces)
-#
-# The optional << markers are used when embedding
-# this in a Sling provisioning model, to avoid syntax errors
-#
-# The CND instructions are passed as is to the JCR
-# modules, so the full CND syntax is supported.
-#
-register nodetypes
-<<===
-<<  <slingevent='http://sling.apache.org/jcr/event/1.0'>
-<<
-<<  [slingevent:Event] > nt:unstructured, nt:hierarchyNode
-<<    - slingevent:topic (string)
-<<    - slingevent:properties (binary)
-===>>
-
-create user demoUser with password {SHA-256} dc460da4ad72c482231e28e688e01f2778a88ce31a08826899d54ef7183998b5
-
-create service user the-last-one
-
-## Providing repoinit statements from the Sling provisioning model or other URLs
-
-All bundles required for this feature need to be active before the `SlingRepository` service starts.
-
-From version 1.0.2 of the `org.apache.sling.jcr.repoinit` bundle, the `o.a.s.jcr.repoinit.RepositoryInitializer` component uses an OSGi
-configuration as shown in this example to define where to read repoinit statements:
-
-org.apache.sling.jcr.repoinit.impl.RepositoryInitializer
-references=["model:context:/resources/provisioning/model.txt","model@repoinitTwo:context:/resources/provisioning/model.txt"]
-
-This example defines two _references_ to URLs that supply repoinit statements. Their syntax is described below.
-
-By default the `RepositoryInitializer` uses the first URL shown in the above example, which points to the provisioning model that's embedded by default in the Sling Launchpad runnable jar.
-
-Note that previous versions of the `org.apache.sling.jcr.repoinit` bundle used different configuration parameters. From version 1.0.2 on, warnings are logged if those old parameters (_text.url,text.format,model.section.name_) are used.
-
-### References to Sling Provisioning Model additional sections
-The `slingstart-maven-plugin`, from V1.4.2 on, allows for embedding so-called "additional sections" in the Sling provisioning model by starting
-their name with a colon.
-
-At runtime this requires the `org.apache.sling.provisioning.model` bundle, version 1.4.2 or later.
-
-The `o.a.s.jcr.repoinit` bundle can use this feature to execute `repoinit` statements provided by Sling provisioning models, as in this
-provisioning model example fragment:
-
-[:repoinit]
-create path /repoinit/provisioningModelTest
-
-create service user provisioningModelUser
-
-To read repoinit statements from such an additional provisioning model section, the `RepositoryInitializer` configuration shown above uses references like
-
-model@repoinitTwo:context:/resources/provisioning/model.txt
-
-Where _model_ means "use the provisioning model format", _repoinitTwo_ is the name of the additional section to read statements from in the provisioning
-model (without the leading colon) and _context:/resources/..._ is the URL to use to retrieve the provisioning model.
-
-In this example the URL uses the _context_ scheme defined by the Sling Launchpad, but any scheme can be used provided a suitable URL handler is active.
-
-The section name in that reference is optional and defaults to _repoinit_. If it's not specified the `@` should be omitted as well.
-
-### References to URLs providing raw repoinit statements
-Using a `RepositoryInitializer` reference like in this example, with the _raw_ prefix, means that its content is passed as is to the repoinit parser:
-
-raw:classpath://some-repoinit-file.txt
-
-Which points to a `classpath:` URL to provide the raw repoinit statements in this example, but again any valid URL scheme can be used.
-
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/request-analysis.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/request-analysis.md b/content/documentation/bundles/request-analysis.md
deleted file mode 100644
index cde35eb..0000000
--- a/content/documentation/bundles/request-analysis.md
+++ /dev/null
@@ -1,62 +0,0 @@
-title=Request Processing Analyzer (reqanalyzer)		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-
-## Introduction
-
-Sling provides a helpful functionality to track progress of requests
-being processed: The [RequestProgressTracker](http://sling.apache.org/apidocs/sling6/org/apache/sling/api/request/RequestProgressTracker.html) which is available through the [SlingHttpServletRequest](http://sling.apache.org/apidocs/sling6/org/apache/sling/api/SlingHttpServletRequest.html#getRequestProgressTracker%28%29).
-
-This tool provides mechanims to record states of request processing and a simple mechanism to time periods of processing. By default Sling itself uses this tool to track progress through Sling like script resolution and calling scripts.
-
-Scripts and servlets called during Sling's request processing may themselves use the `RequestProgressTracker` to log their own processing.
-
-Usually the data collected by the `RequestProgressTracker` is just dropped or it may be visible for a certain number of recent requests on the *Recent Requests* page of the Web Console. When doing load tests, though, this Web Console page is of limited use because a lot more requests are handled than can be displayed in the Web Console.
-
-This is where the [Request Processing Analyzer](http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/reqanalyzer) comes in handy. When deployed as a bundle it registers as a request level servlet Filter with the Sling Main Servlet. Each request is logged in a special file (currently fixed at `${sling.home}/logs/requesttracker.txt`) with a header line provding core information on the request:
-
-* Start time stamp in ms since the Epoch
-* Request processing time in ms
-* Request Method
-* Request URL
-* Response content type (plus character encoding if available)
-* Response Status
-
-After that first line the complete data from the requests `RequestProgressTracker` is dumped.
-
-## Web Console Integration
-
-The Request Processing Analyzer is available through the Web Console in the _Sling_ category to
-
-* Download the `requesttracker.txt` file as a plain text or ZIP-ed file
-* Launch the Swing-based GUI to analyze the file
-
-The option to launch the Swing-based GUI is only available if the Sling application
-is not running in headless mode and if the Web Console is accessed on _localhost_,
-that is on the same host as the Sling instance is running.
-
-
-## Analyzing the `requesttracker.txt` file
-
-To analyze the `requesttracker.txt` file the *Request Processing Analyzer* module can also be used as a standalone Java application. Just start the module using the `java` command:
-
-$ java -jar org.apache.sling.reqanalyzer-0.0.1-SNAPSHOT.jar requesttracker.txt
-
-The command supports two command line arguments:
-
-1. The tracker file (required)
-2. The number of requests to load and display from the file. This second option is optional and may be used to limit the request information loaded to the first requests in the file
-
-After starting and parsing the file, a window is opened showing the core request information in simple table. This table can be sorted by any of the columns by clicking on the column title.
-
-![Recorded Requests](requesttracker.png)
-
-Clicking on any row opens a second window displaying the detail request progress information as recorded before with the `RequestProgressTracker`.
-
-![Details of a recorded Request](requesttracker-details.png)
-
-The size, location, and the widths of the table columns are persisted with the Java Preferences API and thus when starting the application again, these settings are preserved.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/requesttracker-details.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/requesttracker-details.png b/content/documentation/bundles/requesttracker-details.png
deleted file mode 100644
index 3640579..0000000
Binary files a/content/documentation/bundles/requesttracker-details.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/requesttracker.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/requesttracker.png b/content/documentation/bundles/requesttracker.png
deleted file mode 100644
index e625a5c..0000000
Binary files a/content/documentation/bundles/requesttracker.png and /dev/null differ


[35/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/the-sling-launchpad.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/the-sling-launchpad.html b/documentation/the-sling-engine/the-sling-launchpad.html
new file mode 100644
index 0000000..c8c916b
--- /dev/null
+++ b/documentation/the-sling-engine/the-sling-launchpad.html
@@ -0,0 +1,179 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>The Sling Launchpad</h1></header><p>[TOC]</p>
+<p>This tries to explain how exactly the Sling Launchpad works, what constitutes the Sling Launchpad and how you can use the Sling Launchpad to custom create you Sling launchers. For a view behind the scenes of the Sling Launchpad Base module (the actual launcher) you might want to refer to the <a href="/documentation/development/embedding-sling.html">Embedding Sling</a> page.</p>
+<h2>Sling Home</h2>
+<p>Since Sling requires some space on the filesystem to store various files Sling has to know where this filesystem space is located.</p>
+<p>The following is a list of uses for the Sling Home directory:</p>
+<ul>
+  <li><code>sling.properties</code> -- The main configuration file used by Sling to launch the framework. It mainly contains OSGi framework configuration and initial configuration for some bundles. This file is read on each startup of <em>Launcher JAR</em>. That is, changes to this file require a restart of the <em>Launcher JAR</em>.</li>
+  <li><code>org.apache.sling.launchpad.base.jar</code> -- This is the <em>Launcher JAR</em> file used by the Standalone Application or the Web Application to start the OSGi Framework. This file is initially placed when first starting Sling and may later be updated by updating the system bundle with a new <em>Launcher JAR</em>.</li>
+  <li><code>felix</code> -- The directory into which the Apache Felix Framework places the bundles, which have been installed into the system. This does generally not need to be touched.</li>
+  <li><code>config</code> -- The directory into which the Apache Felix Configuration Admin Service stores the configurationes. Do not change any files in this directory, since changes will not generally be picked up.</li>
+  <li><code>jackrabbit</code> -- The directory in which the Apache Jackrabbit JCR repository is started ( only applicable when using Apache Jackrabbit 2.x ). This is only available for Sling Launchpad 7 or older. Amongst other things this also contains the Jackrabbit configuration file <code>repository.xml</code>. You may modify this file, but don't forget to restart the Embedded Jackrabbit Repository bundle after doing this.</li>
+  <li><code>oak</code> - The directory in which the Apache Jackrabbit Oak JCR Repository is started ( only applicable when using Apache Jackrabbit Oak with the SegmentNodeStoreBackend ). This is only available for Sling Launchpad 8 or newer.</li>
+  <li><code>logs</code> -- Contains the log files generated by Sling. By default this contains the error.log and its rotated generations.</li>
+</ul>
+<h2>Command Line Options</h2>
+<p>The Java Standalone Application supports a number of command line options, which influence the operation of the launch process.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Option </th>
+      <th>Argument </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+</table>
+<p>| <code>start</code> | -- | Open a TCP/IP server socket when starting Sling. Uses option <code>-j</code> to define the local socket address. | | <code>status</code> | -- | Check whether a (remote) Sling application is running. Uses option <code>-j</code> to define the address of the Sling instance to check. Note, that the Sling application terminates after checking for the (remote) Sling status. | | <code>stop</code> | -- | Stop a (remote) Sling application is running. Uses option <code>-j</code> to define the address of the Sling instance to stop. Note, that the Sling application tesrminates after stopping the (remote) Sling instance. | | <code>-j</code> | [ host ":" ] port | The socket address to listen on for control connections (<code>start</code> or to use as the remote endpoint for the control connection (<code>status</code> and <code>stop</code>. If this parameter has no arguments or is not specified, the address defaults to any free port on localhost/127.0.0.1. If only th
 e port is specified localhost/127.0.0.1 is used as the host part of the address. | | <code>-c</code> | slinghome | The directory in which Sling locates its initial configuration file <code>sling.properties</code> and where files of Sling itself such as the Apache Felix bundle archive or the JCR repository files are stored. This defaults to the <code>sling</code> folder in the current working directory. This is the value which is commonly refered to as <code>${sling.home}.</code> | <code>-i</code> | launchpadhome | The launchpad directory. If not set, this is the same as <code>${sling.home}.</code> (since Sling Launchpad 2.4.0) | | <code>-l</code> | loglevel | Sets the initial loglevel as an integer in the range 0 to 4 or as one of the well known level strings <code>ERROR</code>, <code>WARN</code>, <code>INFO</code>, or <code>DEBUG</code>. This option overwrites the <code>org.apache.sling.osg.log.level</code> setting the <code>sling.properties</code> file. The default is <code>INFO</
 code>. | | <code>-f</code> | logfile | The log file to use or <code>-</code> to log to standard out. This option overwrites the <code>org.apache.sling.osg.log.file</code> setting in the <code>sling.properties</code> file. The default is <code>${sling.home}/logs/error.log</code>. | | <code>-a</code> | address | The interfact to bind to (use 0.0.0.0 for any). This option overwrites the <code>org.apache.felix.http.host</code> setting in the <code>sling.properties</code> file and requires the embedded Http Service implementation to honor this property. (supported since Sling Launchpad 2.4.0) | | <code>-p</code> | port | The port to listen (default 8080) to handle HTTP requests. This option overwrites the <code>org.osgi.service.http.port</code> setting in the <code>sling.properties</code> file. | | <code>-r</code> | path | The root servlet context path for the Http Service (default is /). This option overwrites the <code>org.apache.felix.http.context_path</code> setting in the <code>slin
 g.properties</code> file and requires the embedded Http Service implementation to honor this property. (since Sling Launchpad 2.4.0) | | <code>-D</code> | n=v | Sets the property <code>n</code> to the value <code>v</code>. This option can be added repeatedly setting additional properties. Any property set in this manner overwrites same named properties in the <code>sling.properties</code> file. (since Sling Launchpad 2.4.0) | | <code>-n</code> | -- | Don't install the shutdown hook. See <a href="#shutdown-hook">Shutdown Hook</a> below. (since Sling Launchpad 2.5.2) | | <code>-h</code> | -- | Prints a simple usage message listing all available command line options. |</p>
+<p>The Sling Standalone application looks for a definition of the <code>sling.home</code> setting in the following locations in order of precendence:</p>
+<ol>
+  <li>The <code>-c</code> command line option</li>
+  <li>The <code>sling.home</code> system property</li>
+  <li>The <code>SLING_HOME</code> environment variable</li>
+  <li>If none of the above resolves to a non-null value, the default value of <code>sling</code> is assumed</li>
+</ol>
+<h3>Control Port</h3>
+<p>When starting the Sling Standalone Application with the <code>start</code> command line option, a TCP control port is opened to receive simple commands which allow for stopping an instance and getting thread dumps.</p>
+<p>Currently supported commands are</p>
+<ul>
+  <li><code>stop</code> to stop the Sling instance</li>
+  <li><code>status</code> to get the instance status (OK or STOPPING)</li>
+  <li><code>threads</code> to get a thread dump</li>
+</ul>
+<p>For the Whole Truth about this functionality see the <a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/app/ControlListener.java">ControlListener class source code</a>.</p>
+<p>The interface and port is configurable with the <code>-j</code> command line option. The actual address and port used are written to the <code>${sling.home}/conf/controlport</code> file. So technically the <code>-j</code> option is not required for the <code>status</code> and <code>stop</code> operations because the port information can be read from that file.</p>
+<p>Note that using a control connection for the Sling Standalone Application presents a potential security issue. For this reason the following defaults apply:</p>
+<ul>
+  <li>The server side socket for a running Sling Standalone Application is not created by default, but only if the application is started with the <code>start</code> command line option.</li>
+  <li>The default control port configuration is <code>localhost/127.0.0.1</code> meaning that the socket is only accessible from the same system as the Sling Standalone Application is running on.</li>
+  <li>A nonce, followed by a space character, must be used as a prefix for every command sent to the control port. This nonce is generated by Sling at startup and also written to the <code>controlport</code> file mentioned above.</li>
+</ul>
+<p>For additional security, do not allow the control port to be opened on an externally visible network interface and strictly restrict access to the Sling installation folder (<code>${sling.home}</code>).</p>
+<p>Here's an example session where a Sling Standalone Application is started with the control port active:</p>
+<p>$ java -jar target/org.apache.sling.launchpad-9-SNAPSHOT.jar start 05.04.2016 11:50:45.003 *INFO * [main] Setting sling.home=sling (default) 05.04.2016 11:50:45.006 *INFO * [main] Starting Apache Sling in /foo/sling/launchpad/builder/sling ... 05.04.2016 11:50:45.012 *INFO * [Apache Sling Control Listener@/127.0.0.1:59239] Apache Sling Control Listener started ...</p>
+<p>And stopped using its control port, from another terminal:</p>
+<p>$ cat sling/conf/controlport 127.0.0.1:59239 mdsryh1k5fpcgvm7suqnckxkr7fvluzv</p>
+<p>$ telnet 127.0.0.1 59239 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.</p>
+<p>mdsryh1k5fpcgvm7suqnckxkr7fvluzv stop</p>
+<p>OK Connection closed by foreign host.</p>
+<h3>Shutdown Hook</h3>
+<p>By default the Sling Launchpad standalone application installs a Shutdown Hook with the Java Runtime to make sure the framework is properly terminated in case of a Java termination. In some situations or setups you want to control shutdown of Sling yourselves, so Sling supports a command line option <code>-n</code> to prevent the installation of a shutdown hook.</p>
+<p>Apart from the command line option, the <code>sling.shutdown.hook</code> system property is also supported: If this property is set to <code>true</code> or is not set at all the shutdown hook is installed as expected. If the property is set to anything other than <code>true</code>, e.g. <code>false</code>, the shutdown hook is not installed.</p>
+<p>If you are embedding the Sling Launchpad application's <code>Main</code> class, the <code>sling.shutdown.hook</code> property can also be set as a member of the <code>props</code> map handed to the <code>Main</code> constructor.</p>
+<h2>Servlet Parameters</h2>
+<p>The Web Application does not require specific servlet parameters. Those which are specified are used to overwrite any properties with the same name from the <code>sling.properties</code> file. One exception to this rule is the <code>sling.home</code> parameter, which is used to set the value of the <code>sling.home</code> property. If no parameter with this name is defined the Sling home directory is derived from the context path at which the Sling Web Application is registered.</p>
+<p>The <code>sling.home</code> folders for Sling Web Applications without the <code>sling.home</code> servlet parameter are all located in the <code>sling</code> folder in the current working directory as reported by the <code>user.dir</code> system property. The name of the actual directory is derived from the Web Application Context Path by replacing all slash characters <code>/</code> by underscore characters <code>_</code>. For the root context a single underscore character <code>_</code> is used.</p>
+<p>Examples:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Servlet Context </th>
+      <th>Default <code>sling.home</code> </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><em>root</em> </td>
+      <td><code>sling/_</code> </td>
+    </tr>
+    <tr>
+      <td><code>/sling</code> </td>
+      <td><code>sling/_sling</code> </td>
+    </tr>
+    <tr>
+      <td><code>/sling/instance1</code> </td>
+      <td><code>sling/_sling/instance1</code> </td>
+    </tr>
+  </tbody>
+</table>
+<p>Starting with Launchpad Base 2.2.2 the fixed prefix <code>sling</code> is configurable with the <code>sling.home.prefix</code> system property. If this property is set the value used as the prefix.</p>
+<p>Examples: Assume the <code>sling.home.prefix</code> system property is set to <code>/var/sling</code></p>
+<table>
+  <thead>
+    <tr>
+      <th>Servlet Context </th>
+      <th>Default <code>sling.home</code> </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><em>root</em> </td>
+      <td><code>/var/sling/_</code> </td>
+    </tr>
+    <tr>
+      <td><code>/sling</code> </td>
+      <td><code>/var/sling/_sling</code> </td>
+    </tr>
+    <tr>
+      <td><code>/sling/instance1</code> </td>
+      <td><code>/var/sling/_sling/instance1</code> </td>
+    </tr>
+  </tbody>
+</table>
+<h2>sling.properties</h2>
+<p>The <code>sling.properties</code> file contains the initial setup of the Sling Application and the OSGi framework. Some of the parameters are required and should not be modified without a very good reason. Some parameters may be freely modified to your needs. Please see the inlined comment in the <code>sling.properties</code> file installed when Sling is first started.</p>
+<p>One thing to note is, that the <code>sling.properties</code> file is a simple Java Properties file with support for property references. That is, the value of properties may refer other property values by means of the well known <code>${name}</code> notation. Such property references may even be nested as in</p>
+<p>java.packages=${jre-${java.specification.version}}</p>
+<h2>Components</h2>
+<p>The Sling Launchapd consists of <em>Launchbad Base</em> project and three additional projects which ultimately create a Standalone Java Application and a Web Appliction with standard parts of Sling.</p>
+<h3>Launchpad Base</h3>
+<p>The <em>Launchpad Base</em> projects creates the following artifacts, which are required in actual setups to get a Sling application:</p>
+<ul>
+  <li>
+  <p><em>Launcher JAR</em> -- The primary artifact of the Base project contains the actual support to launch the Apache Felix OSGi Framework and install bundles, which are packaged with the application. It also contains the Apache Felix Framework together with the OSGi R4.1 Core and Compendium libraries as well as the Equinox HttpService bridge and the Servlet API.</p></li>
+  <li>
+  <p><em>App JAR</em> -- The secondary artifact with classifier <em>app</em> is a minimal Standalone Java Application which may be started by simply typing</p></li>
+</ul>
+<p>$ java -jar org.apache.sling.launchpad.base-app.jar</p>
+<ul>
+  <li>
+  <p><em>Web App Archive</em> -- The secondary artifact with classifier <em>webapp</em> is a minimal Web Application, which may simply be deployed into your favirourite servlet container, provided it supports at least Servlet API 2.4.</p></li>
+  <li>
+  <p><em>Source JAR</em> -- The secondary artifact with the classifier <em>sources</em> is simple the source of the <em>Launchpad Base</em> project.</p></li>
+</ul>
+<p>To build a very basic Sling launcher, the <em>Launchpad Base</em> is actually all you need. But to really glue this together and get a usable system, some more work is required. Lets see how the additionaly projects <em>Launchpad Bundles</em>, <em>Launchpad App</em>, and <em>Launchpad WebApp</em> get to that.</p>
+<h3>Launchpad App and Launchpad WebApp</h3>
+<p>The <em>Launchpad App</em> and <em>Launchpad WebApp</em> bundles are actually projects which just glue together artifacts from the Launchpad projects. There is nothing special about them. Here's what is done:</p>
+<ul>
+  <li>Take the appropriate secondary artifact from the <em>Launchpad Base</em> project: <em>app</em> for the Standalone Java Application or <em>webapp</em> for the Web Application and unpack</li>
+  <li>Take the <em>Launchpad Base</em> primary artifact and place it under the name <code>org.apache.sling.launchpad.base.jar</code> into the <code>resources</code> folder</li>
+  <li>Copies the list of artifacts defined in the <a href="/documentation/development/slingstart.html">Provisioning model</a></li>
+  <li>Finally pack all together into a single big JAR or WAR file</li>
+</ul>
+<p>The artifacts can be configured to use different JCR repository implementations, based on the value of the <code>-Dsling.run.modes</code> property. The following run modes are available for the 8 version of the Sling Launchpad:</p>
+<ul>
+  <li><code>oak</code>: configures and starts up an Apache Jackrabbit Oak repository implementation with a SegmentNodeStore ( TarMK ) implementation</li>
+  <li><code>oak,oak_mongo</code>: configures and starts up an Apache Jackrabbit Oak repository implementation with a DocumentNodeStore implementation connected to a MongoDB database. The default configuration points to a MongoDB instance at mongodb://localhost:27017 and a database named sling.</li>
+</ul>
+<p>That's it. The resulting artifact may be directly used to launch the Standalone Java Application or may directly be deployed into any Servlet API 3.0 (or later) compliant servlet container.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/url-decomposition.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/url-decomposition.html b/documentation/the-sling-engine/url-decomposition.html
new file mode 100644
index 0000000..9534fc6
--- /dev/null
+++ b/documentation/the-sling-engine/url-decomposition.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>URL decomposition</h1></header><p>[TOC]</p>
+<h1>Overview</h1>
+<p>During the <em>Resource Resolution</em> step, the client request URI (as being returned by [HttpServletRequest.getRequestURI()](http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getRequestURI())) is decomposed into the following parts (in exactly this order):</p>
+<ol>
+  <li><strong>Resource Path</strong> - For existing resources the resource path is the longest match (also considering its <a href="/documentation/the-sling-engine/mappings-for-resource-resolution.html">mappings</a>) pointing to a resource where the next character is either a dot (<code>.</code>) or it is the full request URI. Otherwise (for a path not matching any existing resource) the resource path ends at the <em>first dot (<code>.</code>)</em> in the request url. The exact logic for retrieving the resource path is implemented at <a href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#resolve-javax.servlet.http.HttpServletRequest-java.lang.String-">ResourceResolver.resolve(HttpServletRequest,String)</a>. <em>It is impossible to tell from just looking at the request URI where the resource path part ends. You have to know the underlying resource structure to know how a URL is decomposed. You cannot safely assume that the resource path w
 ill always end at the first dot!</em>.</li>
+  <li><strong>Selectors</strong> - If the first character in the request URL after the resource path is a dot (<code>.</code>), the string after the dot up to but not including the last dot before the next slash character or the end of the request URL comprises the selectors. If the resource path spans the complete request URL no selectors exist. If only one dot follows the resource path before the end of the request URL or the next slash, also no selectors exist.</li>
+  <li><strong>Extension</strong> - The string after the last dot after the resource path in the request URL but before the end of the request URL or the next slash after the resource path in the request URL is the extension.</li>
+  <li><strong>Suffix</strong> - If the request URL contains a slash character after the resource path and optional selectors and extension, the path starting with the slash up to the end of the request URL is the suffix path. Otherwise, the suffix path is empty. Note, that after the resource path at least a dot must be in the URL to let Sling detect the suffix.</li>
+</ol>
+<p>Those decomposed parts can be accessed through the <code>RequestPathInfo</code> object, which is retrieved via <a href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/SlingHttpServletRequest.html#getRequestPathInfo--">SlingHttpServletRequest.getPathInfo()</a>.</p>
+<p>There's a cheat sheet in Adobe's AEM documentation at <a href="https://docs.adobe.com/docs/en/aem/6-2/develop/platform/sling-cheatsheet.html">https://docs.adobe.com/docs/en/aem/6-2/develop/platform/sling-cheatsheet.html</a> available to get you familiar with the URL decomposition of Sling.</p>
+<h1>Examples</h1>
+<p>Assume there is a Resource at <code>/a/b</code>, which has no children.</p>
+<table>
+  <thead>
+    <tr>
+      <th>URI </th>
+      <th>Resource Path </th>
+      <th>Selectors </th>
+      <th>Extension </th>
+      <th>Suffix </th>
+      <th>Resource Found </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>/a/b </td>
+      <td>/a/b </td>
+      <td>null </td>
+      <td>null </td>
+      <td>null </td>
+      <td>yes </td>
+    </tr>
+    <tr>
+      <td>/a/b.html </td>
+      <td>/a/b </td>
+      <td>null </td>
+      <td>html </td>
+      <td>null </td>
+      <td>yes </td>
+    </tr>
+    <tr>
+      <td>/a/b.s1.html </td>
+      <td>/a/b </td>
+      <td>s1 </td>
+      <td>html </td>
+      <td>null </td>
+      <td>yes </td>
+    </tr>
+    <tr>
+      <td>/a/b.s1.s2.html </td>
+      <td>/a/b </td>
+      <td>s1.s2 </td>
+      <td>html </td>
+      <td>null </td>
+      <td>yes </td>
+    </tr>
+    <tr>
+      <td>/a/b/c/d </td>
+      <td>/a/b/c/d </td>
+      <td>null </td>
+      <td>null </td>
+      <td>null </td>
+      <td>no! </td>
+    </tr>
+    <tr>
+      <td>/a/c.html/s.txt </td>
+      <td>/a/c </td>
+      <td>null </td>
+      <td>html </td>
+      <td>/s.txt </td>
+      <td>no! </td>
+    </tr>
+    <tr>
+      <td>/a/b./c/d </td>
+      <td>/a/b </td>
+      <td>null </td>
+      <td>null </td>
+      <td>/c/d </td>
+      <td>yes </td>
+    </tr>
+    <tr>
+      <td>/a/b.html/c/d </td>
+      <td>/a/b </td>
+      <td>null </td>
+      <td>html </td>
+      <td>/c/d </td>
+      <td>yes </td>
+    </tr>
+    <tr>
+      <td>/a/b.s1.html/c/d </td>
+      <td>/a/b </td>
+      <td>s1 </td>
+      <td>html </td>
+      <td>/c/d </td>
+      <td>yes </td>
+    </tr>
+    <tr>
+      <td>/a/b.s1.s2.html/c/d </td>
+      <td>/a/b </td>
+      <td>s1.s2 </td>
+      <td>html </td>
+      <td>/c/d </td>
+      <td>yes </td>
+    </tr>
+    <tr>
+      <td>/a/b/c/d.s.txt </td>
+      <td>/a/b/c/d </td>
+      <td>s </td>
+      <td>txt </td>
+      <td>null </td>
+      <td>no! </td>
+    </tr>
+    <tr>
+      <td>/a/b.html/c/d.s.txt </td>
+      <td>/a/b </td>
+      <td>null </td>
+      <td>html </td>
+      <td>/c/d.s.txt </td>
+      <td>yes </td>
+    </tr>
+    <tr>
+      <td>/a/b.s1.html/c/d.s.txt </td>
+      <td>/a/b </td>
+      <td>s1 </td>
+      <td>html </td>
+      <td>/c/d.s.txt </td>
+      <td>yes </td>
+    </tr>
+    <tr>
+      <td>/a/b.s1.s2.html/c/d.s.txt </td>
+      <td>/a/b </td>
+      <td>s1.s2 </td>
+      <td>html </td>
+      <td>/c/d.s.txt </td>
+      <td>yes </td>
+    </tr>
+  </tbody>
+</table>
+<h1>Automated Tests</h1>
+<p>The tests at</p>
+<ul>
+  <li><a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java">ResourceResolverImplTest</a> shows the split between resource path and the rest. Mostly in the method <code>testBasicAPIAssumptions</code>.</li>
+  <li><a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/SlingRequestPathInfoTest.java">SlingRequestPathInfoTest</a> demonstrates the decomposition after the resource path part.</li>
+</ul>
+<p>Feel free to suggest additional tests that help clarify how this works!</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/url-to-script-resolution.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/url-to-script-resolution.html b/documentation/the-sling-engine/url-to-script-resolution.html
new file mode 100644
index 0000000..e29f836
--- /dev/null
+++ b/documentation/the-sling-engine/url-to-script-resolution.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>URL to Script Resolution</h1></header><p>[TOC]</p>
+<p>This page explains how Sling maps URLs to a script or and servlet.</p>
+<p>See also <a href="/documentation/the-sling-engine/servlets.html">Servlets and Scripts</a> which provides detailed info about how to register servlets.</p>
+<p>First of all Sling looks up the resource identified by the URL - typically a path inside the JCR repository, which is annotated by the <code>sling:resourceType</code> property which defines the resource type of that resource. Using this resource type (which is kind of a relative path, eg. "myblog/comment"), scripts or servlets are looked up. For more details about how the initial resource is identified for a specific request URL look at <a href="/documentation/the-sling-engine/url-decomposition.html">URL decomposition</a>.</p>
+<p>Scripts and servlets are itself resources in Sling and thus have a resource path: this is either the location in the JCR repository, the resource type in a servlet component configuration or the "virtual" bundle resource path (if a script is provided inside a bundle without being installed into the JCR repository).</p>
+<p>For the whole Truth about script resolution, see the <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java">ScriptSelectionTest</a> class. If you see interesting cases that are not covered there, please let us know via the Sling users mailing list.</p>
+<p>TODO: explain super types, servlet path mappings, node type resource types (<code>my:type -&gt; my/type</code>)</p>
+<h2>Fundamental: Scripts and Servlets are equal</h2>
+<p>In the following discussion, I will write about scripts. This will always include servlets as well. In fact, internally, Sling only handles with Servlets, whereas scripts are packed inside a Servlet wrapping and representing the script.</p>
+<h2>Base: Resource Type Inheritance</h2>
+<p>While not exactly part of our discussion, resource type inheritance as implemented for <a href="https://issues.apache.org/jira/browse/SLING-278">SLING-278</a> plays a vital role in script resolution.</p>
+<p>Each resource type may have a resource super type, which may be defined in various ways. One example is having a <code>sling:resourceSuperType</code> property in the node addressed by the resource type. See <a href="http://www.mail-archive.com/sling-dev@incubator.apache.org/msg02365.html">http://www.mail-archive.com/sling-dev@incubator.apache.org/msg02365.html</a> and <a href="http://issues.apache.org/jira/browse/SLING-278">SLING-278</a> for more details.</p>
+<p>If a resource type has no explicit resource super type, the resource super type is assumed to be "sling/servlet/default". That is the resource type used for default script selection is also acting as a basic resource type much like java.lang.Object does for other types in the Java language.</p>
+<h2>Script Locations</h2>
+<p>Scripts are looked up in a series of locations defined by the ResourceResolver.getSearchPath() and the resource type (and resource super types) of the requested resource:</p>
+<p>{scriptPathPrefix}/{resourceTypePath}</p>
+<p>The pseudo code for iterating the locations would be something like:</p>
+<p>var type = resource.getResourceType(); while (type != null) { for (String root: resourceResolver.getSearchPath()) { String path = root + type.toPath(); findScriptsIn(path); }</p>
+<p>if (type == defaultServlet) { type = null; } else { type = getResourceSuperType(type); if (type == null) { type = defaultServlet; } } }</p>
+<h2>All requests are NOT equal</h2>
+<p>GET and HEAD request methods are treated differently than the other request methods. Only for GET and HEAD requests will the request selectors and extension be considered for script selection. For other requests the servlet or script name (without the script extension) must exactly match the request method.</p>
+<p>That is for a PUT request, the script must be PUT.esp or PUT.jsp. For a GET request with a request extension of html, the script name may be html.esp or GET.esp.</p>
+<h2>Scripts for GET requests</h2>
+<p>Apart for supporting scripts named after the request method, scripts handling GET and HEAD requests may be named differently for Sling to support a more elaborate processing order.</p>
+<p>Depending on whether request selectors are considered, a script may have two forms:</p>
+<ul>
+  <li>a. Ignoring request selectors (e.g. there are none in the request URI) <code>{resourceTypeLabel}.{requestExtension}.{scriptExtension}</code></li>
+  <li>b. Handling request selectors <code>{selectorStringPath}.{requestExtension}.{scriptExtension}</code></li>
+</ul>
+<p>The constituents of these script names are as follows:</p>
+<ul>
+  <li><code>{resourceTypeLabel}</code> - The last path segment of the path created from the resource type. This part is optional if the <code>{requestExtension}</code> is used in the script name. The resource type might either be set via the <code>sling:resourceType</code> property on the accessed node or if that property is not there its primary node type (property <code>jcr:primaryType</code>) is taken as fallback.</li>
+  <li><code>{requestExtension}</code> - The request extension. This part may be ommitted if the request extension is "html", otherwise this part is required. If this part is ommitted, the <code>{resourceTypeLabel}</code> is required in the case of ignoring the selectors.</li>
+  <li><code>{scriptExtension}</code> - The extension, e.g. "esp" or "jsp", identifying the scripting langauage used.</li>
+  <li><code>{selectorStringPath}</code> - The selector string converted to a path, along the lines of <code>selectorString.replace(&#39;.&#39;, &#39;/&#39;)</code>. If less selectors are specified in the script name than given in the request, the script will only be taken into consideration if the given selectors are the <strong>first</strong> selectors in the request. This means <em>sel1/sel2.html.jsp</em> will be a candidate for the request url <em>/content/test.sel1.sel2.sel3.html</em> but not for <em>/content/test.sel3.sel1.sel2.html</em>. So the order of selectors is relevant!</li>
+</ul>
+<h2>Priority</h2>
+<p>The rules for script path priorization is defined as follows:</p>
+<ul>
+  <li>The more request selectors are matched, the better</li>
+  <li>A script including the request extension matches better than one without a request extension (for html only)</li>
+  <li>A script found earlier matches better than a script found later in the processing order. This means, that script closer to the original resource type in the resource type hierarchy is considered earlier.</li>
+</ul>
+<h2>Examples</h2>
+<p>Let's consider the following script paths for a request of a resource whose resource type is <code>slingsample</code> and the request selectors are <em>print.a4</em> and the request extension is <em>html</em>:</p>
+<ul>
+  <li>(0) GET.esp</li>
+  <li>(1) sample.esp</li>
+  <li>(2) html.esp</li>
+  <li>(3) print.esp</li>
+  <li>(4) print/a4.esp</li>
+  <li>(5) print.html.esp</li>
+  <li>(6) print/a4.html.esp</li>
+  <li>(7) a4.html.esp</li>
+  <li>(8) a4/print.html.esp</li>
+</ul>
+<p>The priority of script selection would be (starting with the best one): (6) - (4) - (5) - (3) - (2) - (1) - (0). Note that (4) is a better match than (5) because it matches more selectors even though (5) has an extension match where (4) does not. (7) is not a candidate because it does not include the first selector (print) and (8) is not a candidate because it has the wrong order of selectors.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/wrap-or-decorate-resources.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/wrap-or-decorate-resources.html b/documentation/the-sling-engine/wrap-or-decorate-resources.html
new file mode 100644
index 0000000..d0729a9
--- /dev/null
+++ b/documentation/the-sling-engine/wrap-or-decorate-resources.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Wrap or Decorate Resources</h1></header><h2>Introduction</h2>
+<p>The Sling API provides an easy way to wrap or decorate a resource before returning. Use cases for this could for example be * overwrite resource type/resource super type (for example based on the resource path) * add metadata</p>
+<p>##</p>
+<p>To add a resource decorator just register one or more services which implement the interface <code>ResourceDecorator</code></p>
+<p>:::java interface ResourceDecorator { /** Optionally decorate the supplied Resource */ Resource decorate(Resource)</p>
+<p>/** Only called if using older versions of Sling, see below */ @Deprecated Resource decorate(Resource, HttpServletRequest) }</p>
+<p>The registered decorators will be called from the resource resolver for each resource returned. If the service decorates the resource it should return the new resource (often using a <code>ResourceWrapper</code> to wrap the original Resource). If the service does not want to decorate the resource, it should return the original resource or null.</p>
+<p>Starting with version 2.1.0 of the JCR Resource bundle, the two-argument <code>decorate</code> method is not called anymore. Implementors of this interface targeting both newer and older versions of this bundle are advised to implement this method as:</p>
+<p>:::java public Resource decorate(Resource resource, HttpServletRequest request) { return this.decorate(resource); }</p>
+<p>And use some other mechanism (e.g. a <code>ThreadLocal</code>) to obtain the current request if necessary.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/tutorials-how-tos.html
----------------------------------------------------------------------
diff --git a/documentation/tutorials-how-tos.html b/documentation/tutorials-how-tos.html
new file mode 100644
index 0000000..e05f226
--- /dev/null
+++ b/documentation/tutorials-how-tos.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Tutorials & How-Tos</h1></header><p>{% for label, page in children %}* [{{ page.headers.title }}]({{ page.path }}) {% endfor %}</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/tutorials-how-tos/46-line-blog.html
----------------------------------------------------------------------
diff --git a/documentation/tutorials-how-tos/46-line-blog.html b/documentation/tutorials-how-tos/46-line-blog.html
new file mode 100644
index 0000000..009ebdb
--- /dev/null
+++ b/documentation/tutorials-how-tos/46-line-blog.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>46 Line Blog</h1></header><p>This tutorial is based on the first <em>Sling Gems</em> on dev.day.com: The <a href="http://dev.day.com/microsling/content/blogs/main/sling-46-lines-blog.html">Sling gems: a blog in 46 lines of code</a>. It has slightly been adapted to fit here.</p>
+<p>In this tutorial, the SlingPostServlet and the sling.js library are brought together using 46 (no kidding: <em>fourty-six</em>) lines of code to create a simple blog (or let's say <em>bloggish</em>) application.</p>
+<p>I used this example in my <a href="http://www.slideshare.net/bdelacretaz/rapid-jcr-applications-development-with-sling-1196003">Rapid JCR application development with Apache Sling</a> presentation at ApacheCon US 09 in Oakland (slides will be available soon), and I think it's a good testimony to the power and simplicity of Sling.</p>
+<h2>Audience</h2>
+<p>Although this is a simple sample, it requires some custom settings to work. If you're just starting with Sling, <a href="/documentation/getting-started/discover-sling-in-15-minutes.html">Discover Sling in 15 minutes</a> might be a better choice.</p>
+<h2>Step 0: Start, configure and login to Sling</h2>
+<p>See <a href="/documentation/development/getting-and-building-sling.html">Getting and Building Sling</a> for how to start Sling. Start it on port 8888 for the below links to work.</p>
+<p>For this sample we need the optional <em>org.apache.sling.samples.path-based.rtp</em> bundle, if it's not present in the <a href="http://localhost:8888/system/console/bundles">OSGi console</a>, install and start it. That bundle is not released yet so you might need to build it yourself, from its <a href="http://svn.apache.org/repos/asf/sling/trunk/samples/path-based-rtp">source</a>. The bundle must then appear in the <a href="http://localhost:8888/system/console/bundles">OSGI console's list of bundles</a>, with name = <em>org.apache.sling.samples.path-based.rtp</em> and status = <em>Active</em>.</p>
+<p>Then, login using <a href="http://localhost:8888/?sling:authRequestLogin=1">http://localhost:8888/?sling:authRequestLogin=1</a> which should prompt you for a username and password, use <em>admin</em> and <em>admin</em>. Once that's done, <a href="http://localhost:8888/index.html">http://localhost:8888/index.html</a> should say <em>You are currently logged in as user <em>admin</em> to workspace <em>default</em></em>.</p>
+<h2>Step 1: Creating content</h2>
+<p>The easiest way to create content in Sling is to use an HTTP POST request, let's use a simple HTML form:</p>
+<html>
+<body>
+<h1>Sling microblog</h1>
+
+<div>
+<form method="POST">
+<input type="text" name="title" style="width:100%"/>
+
+<br/>Text:<br/>
+<textarea style="width:100%" name="text"></textarea>
+
+<br/>
+<input type="submit" value="save"/>
+<input type="hidden" name=":redirect" value="*.html"/>
+
+<!-- used by Sling when decoding request parameters -->
+<input type="hidden" name="_charset_" value="UTF-8"/>
+</form>
+</div>
+
+<!-- code of step 2 comes here -->
+</body>
+</html>
+<p>That's two input fields, a submit button and a hidden field that tells Sling what to do after the POST (in this case: redirect to the html view of the node that was just created).</p>
+<p>To test the form, start Sling and save the above script as {{/apps/blog/blog.esp}} [^esp] in the Sling repository - a WebDAV mount is the easiest way to do that. Browsing to <a href="http://localhost:8888/content/blog/*.html">http://localhost:8888/content/blog/*.html</a> [^port] should display the above form.</p>
+<p>[^esp]: ESP is Sling's server-side javascript language [^port]: This assumes your instance of Sling is running on port 8888. If that's not the case, adjust the example URLs accordingly.</p>
+<p>Input some data (using "foo" for the title, for the sake of our examples below), save the form, and Sling should display the form again, using the URL of the node that was just created.</p>
+<div class="note">
+If you get an error saying _javax.jcr.AccessDeniedException: ...not allowed to add or modify item_ it means that you are not logged in as user _admin_. See instructions above for logging in.
+</div>
+<p>At this point you're probably looking at an empty form with an URL ending in <em>foo</em>, if you used that for the title. Or <em>foo_0</em> or <em>foo_1</em> if other _foo_s already existed. Don't worry about not seeing your content, we'll fix that right away.</p>
+<h2>Step 2: Where's my content?</h2>
+<p>To verify that our content has been created, we can have a look at the JSON data at <a href="http://localhost:8888/content/blog/foo.tidy.json">http://localhost:8888/content/blog/foo.tidy.json</a>, which should display our new node's values:</p>
+<p>{ "jcr:primaryType": "nt:unstructured", "text": "This is the foo text", "title": "foo" }</p>
+<p>That's reassuring, but what we really want is for these values to be displayed on the editing form for our post.</p>
+<p>Thanks to the <em>sling.js</em> client library, we just need to add a <code>Sling.wizard()</code> call to our form to display those values. Let's first add a <code>&lt;head&gt;</code> element to our form to load the <em>sling.js</em> library, before the existing <code>&lt;body&gt;</code> of course:</p>
+<head>
+<script src="/system/sling.js"></script>
+</head>
+<p>And add the <code>Sling.wizard()</code> after the form, where we had the <em>code of step 2 comes here</em> comment:</p>
+<!-- code of step 2 comes here -->
+<script>Sling.wizard();</script>
+<p>Reloading the form at <code>http://localhost:8888/content/blog/*.html</code> and creating a new post should now redirect to an editable version of the post, with the form fields correctly initialized.</p>
+<p>We can now create and edit posts; let's add some navigation, using more of the <em>sling.js</em> functionality.</p>
+<h2>Step 3: Navigation</h2>
+<p>The <em>sling.js</em> library provides utilities to access and manipulate content. For our blog, we'll use the <code>getContent(path)</code> method to list the siblings of the current node.</p>
+<p>Add the following code to your script, after the <code>Sling.wizard()</code> call that was added in step 2:</p>
+<h3>Navigation</h3>
+<ul>
+<li><em><a href="/content/blog/*.html">[Create new post]</a></em></li>
+<script>
+var posts = Sling.getContent("/content/blog", 2);
+for(var i in posts) {
+document.write("<li>"
++ "<a href='/content/blog/" + i + ".html'>"
++ posts[i].title
++ "</a></li>");
+}
+</script>
+</ul>
+<p>The first link to <code>/content/blog/*</code> brings us back to our content creating form, which is nothing else than the editing form reading empty values and posting to the "magic star" URL.</p>
+<p>The rest of the javascript runs client-side, as it is not embedded in <code>&lt;% %&gt;</code> code markers, calls the <code>sling.getContent</code> method to get two levels of node data below <code>/content/blog</code>, and displays links to nodes that it finds.</p>
+<p>That's a basic navigation, of course, in a real blog we'd need some paging and contextualization to cope with large numbers of posts.</p>
+<p>Nevertheless, with this addition our ESP script allows us to create, edit and navigate blog posts - not bad for 46 lines of code, including comments, whitespace and output formatting.</p>
+<h2>Step 4: Data first, structure later</h2>
+<p>You might have heard this mantra, which we apply in many areas of Sling.</p>
+<p>In this case, adding a new field to our blog posts could not be easier: just add an input field to the form, and Sling will do the rest.</p>
+<p>Adding this inside our script's <code>&lt;form&gt;</code> element, for example:</p>
+<p><br/>Author:<br/> <input type="author" name="author" style="width:100%"/></p>
+<p>Allows us to add an author name to our blog posts. No need to define anything at the repository level, as Sling is using it in unstructured mode in this case, and no need to migrate existing data, the author field of existing posts will simply be empty.</p>
+<h2>I want my ESP!</h2>
+<p>Now wait...we said we were going to create an ESP script, but our "application" is just static HTML and some client javascript at this point.</p>
+<p>That's correct - as we are using only Sling client-facing features at this point (HTTP POST and <code>sling.js</code>), we do not necessarily need to use ESP code.</p>
+<p>To keep things simple, we'll refrain from adding ESP-based features at this point, but you can of course use any ESP code in the <em>blog.esp</em> "script".</p>
+<h2>That's the power of Sling</h2>
+<p>The 46-line blog is a good example of the power of Sling. It leverages the <a href="/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">SlingPostServlet</a>, which handles POST requests in a form-friendly way, and the <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/servlets/post/src/main/resources/system/sling.js"><code>sling.js</code></a> client library, which provides high-level functionality on the client side.</p>
+<p>///Footnotes Go Here///</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.html
----------------------------------------------------------------------
diff --git a/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.html b/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.html
new file mode 100644
index 0000000..308f8c9
--- /dev/null
+++ b/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Getting Resources and Properties in Sling</h1></header><p>The Resource is one of the central parts of Sling. Extending from JCR's Everything is Content, Sling assumes Everthing is a Resource. Thus Sling is maintaining a virtual tree of resources, which is a merger of the actual contents in the JCR Repository and resources provided by so called resource providers. By doing this Sling fits very well in the paradigm of the REST architecture.</p>
+<p>In this article we will explore a few ways to programmatically map a resource path (String) to a resource object (Resource) and its properties in Sling, from within an OSGI service, a servlet and a JSP.</p>
+<p>The whole game consists in first getting a <code>ResourceResolver</code> and then getting the <code>Resource</code> itself.</p>
+<h2>Within an OSGI Service/Compoment</h2>
+<p>You can access a resource through the <code>ResourceResolverFactory</code> service:</p>
+<h1>!java</h1>
+<p>@Reference private ResourceResolverFactory resolverFactory;</p>
+<p>public void myMethod() { try { String resourcePath = "path/to/resource"; ResourceResolver resourceResolver = resolverFactory.getAdministrativeResourceResolver(null); Resource res = resourceResolver.getResource(resourcePath); // do something with the resource // when done, close the ResourceResolver resourceResolver.close(); } catch (LoginException e) { // log the error } }</p>
+<h2>Within a Servlet</h2>
+<p>You can access the resource defined by the request URL through the <code>SlingHttpServletRequest</code>:</p>
+<h1>!java</h1>
+<p>// req is the SlingHttpServletRequest Resource res = req.getResource();</p>
+<p>You can access any resource by first accessing the <code>ResourceResolver</code>:</p>
+<h1>!java</h1>
+<p>String resourcePath = "path/to/resource"; // req is the SlingHttpServletRequest ResourceResolver resourceResolver = req.getResourceResolver(); Resource res = resourceResolver.getResource(resourcePath);</p>
+<h2>Within a JSP file</h2>
+<p>When you use the <code>&lt;sling:defineObjects&gt;</code> tag in a JSP file, you have access to a few handy objects, one of them is <code>resource</code>, the resource that is resolved from the URL. Another one is <code>resourceResolver</code>, the <code>ResourceResolver</code> defined through the <code>SlingHttpServletRequest</code>.</p>
+<p>To access a resource:</p>
+<h1>!jsp</h1>
+<p>&lt;sling:defineObjects&gt; &lt;% String resourcePath = "path/to/resource"; Resource res = resourceResolver.getResource(resourcePath); %&gt;</p>
+<p>If needed you can adapt a Sling Resource to a JCR Node:</p>
+<h1>!java</h1>
+<p>Node node = resource.adaptTo(Node.class);</p>
+<p>Note: <code>resource.adaptTo(Node.class)</code> may return null if the resource is not backed by a JCR node. This is particularly the case for <code>NonExistingResource</code> resources or resource provided by a non-JCR resource provider.</p>
+<h2>Accessing a Property</h2>
+<p>The <code>ValueMap</code> is an easy way to access properties of a resource. With most resources you can use <code>Adaptable.adaptTo(Class)</code> to adapt the resource to a value map:</p>
+<h1>!java</h1>
+<p>// res is the Resource ValueMap properties = res.adaptTo(ValueMap.class);</p>
+<p>You can also access the properties through the <code>ResourceUtil</code> utility class:</p>
+<h1>!java</h1>
+<p>// res is the Resource ValueMap properties = ResourceUtil.getValueMap(res);</p>
+<p>Then, to access a specific String property called <code>propName</code>:</p>
+<h1>!java</h1>
+<p>String rule = properties.get(propName, (String) null);</p>
+<p>For more details about resources and how to access them in Sling, you can refer to the <a href="/documentation/the-sling-engine/resources.html">Sling documentation about Resources</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/tutorials-how-tos/how-to-manage-events-in-sling.html
----------------------------------------------------------------------
diff --git a/documentation/tutorials-how-tos/how-to-manage-events-in-sling.html b/documentation/tutorials-how-tos/how-to-manage-events-in-sling.html
new file mode 100644
index 0000000..e55ee4e
--- /dev/null
+++ b/documentation/tutorials-how-tos/how-to-manage-events-in-sling.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>How to Manage Job in Sling</h1></header><p>Apache Sling supports the execution of jobs with the guarantee of processing the job at least once. This can be seen as an extensions of the OSGi event admin, although jobs are not started or processed by OSGi events leveraging the OSGi event admin.</p>
+<p>For more details please refer to the following resources:</p>
+<ul>
+  <li>[Eventing, Jobs and Scheduling section]({{ refs.eventing-and-jobs.path }}) to get detailed information on the eventing mechanisms in Sling.</li>
+  <li>Package <a href="http://www.osgi.org/javadoc/r4v42/org/osgi/service/event/package-summary.html">org.osgi.service.event</a> of the OSGI API.</li>
+  <li>Package <a href="/apidocs/sling6/org/apache/sling/event/package-summary.html">org.apache.sling.event</a> of the Sling API.</li>
+</ul>
+<p>This page drives you through the implementation of two services that rely on the Sling job mechanism. The services implement the following use case: whenever a file is uploaded to a temporary location in your web application, the file is moved to a specific location according to its MIME type.</p>
+<h2>Introduction</h2>
+<p>You will now implement the logic to listen to files posted to <em>/tmp/dropbox</em> and to move them to the appropriate locations depending on the MIME type:</p>
+<ul>
+  <li>images (.png) are moved to <strong>/dropbox/images/</strong></li>
+  <li>music (.mp3) are moved to <strong>/dropbox/music/</strong></li>
+  <li>movies (.avi) are moved to <strong>/dropbox/movies/</strong></li>
+  <li>otherwise the files are moved to <strong>/dropbox/other/</strong></li>
+</ul>
+<p>To do that, you will implement two services. The first one, called <strong>DropBoxService</strong>:</p>
+<ul>
+  <li>Listens to specific OSGi events (Sling resource added events)</li>
+  <li>Starting a job event if a resource has been added to <strong>/tmp/dropbox</strong>.</li>
+</ul>
+<p>The second one, called <strong>DropBoxEventHandler</strong>:</p>
+<ul>
+  <li>Processes the former jobs</li>
+  <li>Moves the file according to its extension.</li>
+</ul>
+<h2>Listening to OSGI Events</h2>
+<p>To listen to OSGi events in Sling you just need to register an <strong>org.osgi.service.event.EventHandler</strong> service with an <strong>event.topics</strong> property that describes which event topics the handler is interested in.</p>
+<p>To listen to a Sling <strong>resource added</strong> events, for example, you'll set the <em>event.topics</em> property to <strong>org.apache.sling.api.SlingConstants.TOPIC_RESOURCE_ADDED</strong> in the class annotations:</p>
+<p>:::java @Property(name=org.osgi.service.event.EventConstants.EVENT_TOPIC, value=org.apache.sling.api.SlingConstants.TOPIC_RESOURCE_ADDED)</p>
+<p>The javadocs of the TOPIC_ constants in the <a href="/apidocs/sling6/org/apache/sling/api/SlingConstants.html">org.apache.sling.api.SlingConstants</a> class lists and explains the available event topics available in Sling.</p>
+<h2>Starting a job</h2>
+<p>To start a job, the <em>JobManager</em> service can be used. It needs a job topic and a payload. In our case we define our dropbox job topic and give the resource path as the payload:</p>
+<p>:::java final String resourcePath = ...; // path to the resource to handle final Map&lt;String, Object&gt; payload = new HashMap&lt;String, Object&gt;(); payload.put("resourcePath", resourcePath); // start job this.jobManager.addJob(JOB_TOPIC, payload);</p>
+<p>To receive the resource event, the service needs to implement the <strong>org.osgi.service.event.EventHandler</strong> interface and register it as an EventHandler service:</p>
+<p>:::java @Component(immediate=true) // immediate should only be used in rare cases (see below) @Service(value=EventHandler.class) public class DropBoxService implements EventHandler { ... }</p>
+<p>Usually a service should be lazy and therefore not declare itself to be immediate (in the Component annotation). However as this service is an event handler and might receive a lot of events even concurrently, it is advised to set the immediate flag to true on the component. Otherwise our event handler would be created and destroyed with every event coming in.</p>
+<p>To start the job we need a reference to the JobManager:</p>
+<p>:::java @Reference private JobManager jobManager;</p>
+<p>The job topic for dropbox job events needs to be defined:</p>
+<p>:::java /** The job topic for dropbox job events. */ public static final String JOB_TOPIC = "com/sling/eventing/dropbox/job";</p>
+<p>The <strong>org.osgi.service.event.EventHandler#handleEvent(Event event)</strong> method needs to be implemented:</p>
+<p>Its logic is as follows:</p>
+<ul>
+  <li>The OSGI event is analyzed.</li>
+  <li>If the event is a file that has been added to <em>/tmp/dropbox</em>:</li>
+  <li>An job is created with 1 property:</li>
+  <li>A property for the file path.</li>
+  <li>The job is started</li>
+</ul>
+<p>For example:</p>
+<p>:::java public void handleEvent(final Event event) { // get the resource event information final String propPath = (String) event.getProperty(SlingConstants.PROPERTY_PATH); final String propResType = (String) event.getProperty(SlingConstants.PROPERTY_RESOURCE_TYPE);</p>
+<p>// a job is started if a file is added to /tmp/dropbox if ( propPath.startsWith("/tmp/dropbox") &amp;&amp; "nt:file".equals(propResType) ) { // create payload final Map&lt;String, Object&gt; payload = new HashMap&lt;String, Object&gt;(); payload.put("resourcePath", propPath); // start job this.jobManager.addJob(JOB_TOPIC, payload); logger.info("the dropbox job has been started for: {}", propPath); } }</p>
+<p>The complete code for the <strong>DropBoxService</strong> service is available <a href="DropBoxService.java">here</a>.</p>
+<h2>Consuming Job Events</h2>
+<p>Now that you have implemented a service that starts a job when a file is uploaded to <strong>/tmp/dropbox</strong>, you will implement the service <strong>DropBoxEventHandler</strong> that processes those jobs and moves the files to a location according to their MIME types.</p>
+<p>To process to the job that have been defined before the property <strong>job.topics</strong> needs to be set to <strong>DropBoxService.JOB_TOPIC</strong> in the class annotations:</p>
+<p>:::java @Property(name="job.topics", value=DropBoxService.JOB_TOPIC)</p>
+<p>In addition the service needs to implement the <strong>org.apache.sling.event.jobs.consumer.JobConsumer</strong> interface:</p>
+<p>:::java public class DropBoxEventHandler implements JobConsumer {</p>
+<p>Some class fields need to be defined:</p>
+<ul>
+  <li>The default logger.</li>
+  <li>The references to the ResourceResolverFactory services, which are used in the implementation.</li>
+  <li>The destination paths of the files.</li>
+</ul>
+<p>For example:</p>
+<p>:::java /** Default log. */ protected final Logger logger = LoggerFactory.getLogger(this.getClass());</p>
+<p>@Reference private ResourceResolverFactory resolverFactory;</p>
+<p>private final static String IMAGES_PATH = "/dropbox/images/"; private final static String MUSIC_PATH = "/dropbox/music/"; private final static String MOVIES_PATH = "/dropbox/movies/"; private final static String OTHER_PATH = "/dropbox/other/";</p>
+<p>The <strong>org.apache.sling.event.jobs.consumer.JobConsume#process(Job job)</strong> method needs to be implemented:</p>
+<p>Its logic is as follows:</p>
+<ul>
+  <li>The resource path is extracted from the job.</li>
+  <li>The resource is obtained from the resource path.</li>
+  <li>If the resource is a file, the destination path is defined based on the file MIME type.</li>
+  <li>The file is moved to the new location by using a JCR session (as the Sling Resource API doesn't support move atm)</li>
+</ul>
+<p>or in Java Code:</p>
+<p>:::java public JobResult process(final Job job) { ResourceResolver adminResolver = null; try { adminResolver = resolverFactory.getAdministrativeResourceResolver(null);</p>
+<p>final String resourcePath = (String) job.getProperty("resourcePath"); final String resourceName = resourcePath.substring(resourcePath.lastIndexOf("/") + 1);</p>
+<p>final Resource res = adminResolver.getResource(resourcePath); if ( res.isResourceType("nt:file") ) { final String mimeType = res.getResourceMetadata().getContentType(); String destDir; if (mimeType.equals("image/png")) { destDir = IMAGES_PATH; } else if (mimeType.equals("audio/mpeg")) { destDir = MUSIC_PATH; } else if (mimeType.equals("video/x-msvideo")) { destDir = MOVIES_PATH; } else { destDir = OTHER_PATH; } final Session adminSession = adminResolver.adaptTo(Session.class); adminSession.move(resourcePath, destDir + resourceName); adminSession.save(); logger.info("The file {} has been moved to {}", resourceName, destDir); } return JobResult.OK; } catch (final Exception e) { logger.error("Exception: " + e, e); return JobResult.FAILED; } finally { if (adminResolver != null) { adminResolver.close(); } } }</p>
+<p>The complete code for the <strong>DropBoxEventHandler</strong> service is available <a href="DropBoxEventHandler.java">here</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[37/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/dispatching-requests.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/dispatching-requests.html b/documentation/the-sling-engine/dispatching-requests.html
new file mode 100644
index 0000000..ec03f60
--- /dev/null
+++ b/documentation/the-sling-engine/dispatching-requests.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Dispatching Requests</h1></header><h2>Main process</h2>
+<p>The following steps should give you an overview how a request is processed in Sling. Details can be found under provided links.</p>
+<ol>
+  <li>
+  <p>The client sends the request</p></li>
+  <li>
+  <p>This step applies only if a Servlet Container is installed and Sling is embedded: Servlet Container gets request and forwards to OSGi HttpService</p></li>
+  <li>
+  <p>OSGi HttpService looks for responsible registered Servlet or resource (see 102.4 of the OSGi compendium)</p></li>
+  <li>
+  <p>OSGi HttpService calls <code>handleSecurity</code> of the HttpContext associated with the servlet/resource. In case of Sling this calls into SlingMainServlet.handleSecurity and then into SlingAuthenticator.authenticate</p></li>
+  <li>
+  <p>SlingAuthenticator selects an authentication handler for the request and forwards the authenticate call. On success a <code>javax.jcr.Session</code> is created, the request attributes required by the HTTP Service spec are set (like <code>org.osgi.service.http.authentication.remote.user</code> and <code>org.osgi.service.http.authentication.type</code>and also the <code>javax.jcr.Session</code> which is used later is set in the request attributes. On success, continue with step 5.</p></li>
+  <li>
+  <p>If authentication fails either an anonymous session is acquired (if anonymous is allowed per configuration) or the login method is called. If anonymous is allowed, continue with step 5.</p></li>
+  <li>
+  <p>The login method selects an AuthenticationHandler and forwards the login call to the AuthenticationHandler.requestAuthentication method to cause the client to authenticate. Request processing stops here (<code>SlingMainServlet.handleSecurity</code> returns false).</p></li>
+  <li>
+  <p>After getting a response the HttpService either terminates the request (if authentication failed and <code>SlingMainServlet.handleSecurity</code> returned false) or continues by either spooling the resource or in the case of Sling calling the <code>SlingMainServlet.service</code> method.</p></li>
+  <li>
+  <p>The <code>SlingMainServlet.service</code> method is the entry point into the Sling proper. This method sets up the request:</p></li>
+</ol>
+<ul>
+  <li>Wraps the <code>HttpServletRequest</code> and the <code>HttpServletResponse</code> into the <code>SlingHttpServletRequest</code> and the <code>SlingHttpServletResponse</code></li>
+  <li>Checks if Sling is ready for processing the request (checks at the moment for an existing ResourceResolverFactory service, a ServletResolver service and a MimeTypeService)</li>
+  <li>Create the ResourceResolver based on the Session (by default creates a <code>JcrResourceResolver2</code>)</li>
+  <li>Locate the <a href="/documentation/the-sling-engine/resources.html">Resource</a> on the basis of the request by calling <code>ResourceResovler.resolve</code> through <code>RequestData.initResource</code> (see also <a href="/documentation/the-sling-engine/url-decomposition.html">URL decomposition</a>)</li>
+  <li>Locate the servlet or script (see <a href="/documentation/the-sling-engine/servlets.html">Servlets</a>) by calling <code>ServletResolver.resolveServlet</code> through <code>RequestData.initServlet</code></li>
+</ul>
+<ol>
+  <li>
+  <p>After this setup, the request level filters are called (the ones registered as <code>javax.servlet.Filter</code> with the property <code>filter.scope=request</code>, see <a href="/documentation/the-sling-engine/filters.html">Filters</a> for details). If any called filter doesn't call <code>FilterChain.doFilter</code> at the end of the <code>Filter.doFilter</code> method request processing stops here.</p></li>
+  <li>
+  <p>After having called all request level filters, the component level filters (registered with the property <code>filter.scope=component</code>, see <a href="/documentation/the-sling-engine/filters.html">Filters</a> for details) are called.</p></li>
+  <li>
+  <p>After having called the component level filters, the request servlet or script is finally called to process the request.</p></li>
+</ol>
+<h2>Include/Forward</h2>
+<p>If a servlet or script is including another resource for processing through the <code>RequestDispatcher.include</code> or <code>RequestDispatcher.forward</code> (or any JSP or feature of another scripting language which relies on one of this two methods) the following processing takes place:</p>
+<ol>
+  <li>
+  <p>Code in the processing servlet or script calls <code>RequestDispatcher.include</code> or <code>RequestDispatcher.forward</code>.</p></li>
+  <li>
+  <p>The resource is resolved though ResourceResolver.getResource (if the RequestDispatcher has not been created with a resource already)</p></li>
+  <li>
+  <p>The servlet or script to handle the resource is resolved calling the <code>ServletResolver.resolverServlet</code> method.</p></li>
+  <li>
+  <p>The component level filters (registered with the property <code>filter.scope=component</code>) are called again (see <a href="/documentation/the-sling-engine/filters.html">Filters</a> for details).</p></li>
+  <li>
+  <p>The servlet or script is called to process the request.</p></li>
+</ol>
+<p>Note that these steps are processed for every include or forward call.</p>
+<h2>Included Request Attributes</h2>
+<p>When servlet or script is called as a result of <code>RequestDispatcher.include</code> the following request attributes are set:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Attribute Name <br> Attribute Type </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>org.apache.sling.api.include.servlet</code> <br> <code>javax.servlet.Servlet</code> </td>
+      <td>The name of the request attribute containing the <code>Servlet</code> which included the servlet currently being active. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.api.include.resource</code> <br><code>org.apache.sling.api.resource.Resource</code> </td>
+      <td>The name of the request attribute containing the <code>Resource</code> underlying the <code>Servlet</code> which included the servlet currently being active. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.api.include.request_path_info</code> <br> <code>org.apache.sling.api.request.RequestPathInfo</code> </td>
+      <td>The name of the request attribute containing the <code>RequestPathInfo</code> underlying the <code>Servlet</code> which included the servlet currently being active </td>
+    </tr>
+    <tr>
+      <td><code>javax.servlet.include.request_uri</code> <br> <code>String</code> </td>
+      <td>The name of the request attribute containing the <code>HttpServletRequest.getRequestURI()</code> of the request which included the servlet currently being active underlying the <code>Servlet</code> which included the servlet currently being active.<br>**Note:** In Sling, the <code>HttpServletRequest.getRequestURI()</code> method will always return the same result regardless of whether it is called from the client request processing servlet or script or from an included servlet or script. This request attribute is set for compatibility with the Servlet API specification. </td>
+    </tr>
+    <tr>
+      <td><code>javax.servlet.include.context_path</code> <br> <code>String</code> </td>
+      <td>The name of the request attribute containing the <code>HttpServletRequest.getContextPath()</code> of the request which included the servlet currently being active underlying the <code>Servlet</code> which included the servlet currently being active.<br>**Note:** In Sling, the <code>HttpServletRequest.getContextPath()</code> method will always return the same result regardless of whether it is called from the client request processing servlet or script or from an included servlet or script. This request attribute is set for compatibility with the Servlet API specification. </td>
+    </tr>
+    <tr>
+      <td><code>javax.servlet.include.servlet_path</code> <br> <code>String</code> </td>
+      <td>The name of the request attribute containing the <code>HttpServletRequest.getServletPath()</code> of the request which included the servlet currently being active underlying the <code>Servlet</code> which included the servlet currently being active.<br>**Note:** In Sling, the <code>HttpServletRequest.getServletPath()</code> method will always return the same result regardless of whether it is called from the client request processing servlet or script or from an included servlet or script. This request attribute is set for compatibility with the Servlet API specification. </td>
+    </tr>
+    <tr>
+      <td><code>javax.servlet.include.path_info</code> <br> <code>String</code> </td>
+      <td>The name of the request attribute containing the <code>HttpServletRequest.getPathInfo()</code> of the request which included the servlet currently being active underlying the <code>Servlet</code> which included the servlet currently being active.<br>**Note:** In Sling, the <code>HttpServletRequest.getPathInfo()</code> method will always return the same result regardless of whether it is called from the client request processing servlet or script or from an included servlet or script. This request attribute is set for compatibility with the Servlet API specification.</td>
+    </tr>
+    <tr>
+      <td><code>javax.servlet.include.query_string</code> <br> <code>String</code> </td>
+      <td>The name of the request attribute containing the <code>HttpServletRequest.getQueryString()</code> of the request which included the servlet currently being active underlying the <code>Servlet</code> which included the servlet currently being active.<br>**Note:** In Sling, the <code>HttpServletRequest.getQueryString()</code> method will always return the same result regardless of whether it is called from the client request processing servlet or script or from an included servlet or script. This request attribute is set for compatibility with the Servlet API specification. </td>
+    </tr>
+  </tbody>
+</table>
+<p>Constants are defined in the <code>org.apache.sling.api.SlingConstants</code> class for these request attributes.</p>
+<p><strong>Note:</strong> These request attributes are not set if the servlet or script is called to handle the request or as a result of <code>RequestDispatcher.forward</code>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/errorhandling.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/errorhandling.html b/documentation/the-sling-engine/errorhandling.html
new file mode 100644
index 0000000..b638b79
--- /dev/null
+++ b/documentation/the-sling-engine/errorhandling.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Errorhandling</h1></header><p>The Sling Engine includes support for handling uncaught <code>Throwable</code> as well as rendering custom HTTP status code pages. This is implemented by expecting a (single) <code>org.apache.sling.engine.servlets.ErrorHandler</code> service to which handling of uncaught <code>Throwable</code> and HTTP status responses are delegated.</p>
+<p>The Sling Servlet Resolver bundle implements this interface by providing an elaborate mechanism to find the correct error handling script or servlet using the same algorithms as are used to select the scripts or servlets to handle regular requests.</p>
+<p>This page provides more information on how error handler scripts are selected and what is provided out of the box.</p>
+<p>The <a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolver/errorhandler/ErrorHandlingTest.java">ErrorHandlingTest</a> in our integration tests suite provides working examples of various error handling scenarios.</p>
+<p>[TOC]</p>
+<h2>Resetting the Response</h2>
+<p>Errorhandler scripts and servlets are script with the current response. Before setting the status and writing to the response such handlers should do the following:</p>
+<ul>
+  <li>Check whether the response has been committed or not</li>
+  <li>If the response has not been committed:</li>
+  <li>Reset the response</li>
+  <li>Set the status code (use <code>HttpServletResponse.setStatus</code>)</li>
+  <li>Set the response content type and character encoding (provided text data is sent back)</li>
+  <li>If the response has already been committed:</li>
+  <li>Do not try to reset since this would cause an <code>IllegalStateException</code>. Also the writer may not be available.</li>
+  <li>The best that might be done in this case is just log a message at warning or error level along with information about the failure.</li>
+</ul>
+<h2>HTTP Status Codes</h2>
+<p>The Sling engine implements the <code>HttpServletResponse.sendError</code> methods by calling the <code>ErrorHandler.handleError(int status, String message, SlingHttpServletRequest request, SlingHttpServletResponse response)</code> method.</p>
+<p>The Servlet Resolver bundle implementation looks up a script to handle the status code as follows:</p>
+<ul>
+  <li>The status code is converted to a string and used as the request extension. Any request extensions, selectors or suffixes from the actual request are ignored.</li>
+  <li>The same resource type hierarchy is followed to find the script as for regular script resolution. The difference is that for error handler scripts <code>sling/servlet/errorhandler</code> is used as the implied base resource type (as opposed to <code>sling/servlet/default</code> for regular script resolution.</li>
+</ul>
+<p><strong>Examples:</strong></p>
+<ul>
+  <li>An application provider my provide a default handler for the 404/NOT FOUND status. This script might be located in <code>/libs/sling/servlet/errorhandler/404.jsp</code>.</li>
+  <li>An programmer might provide a handler for the 403/FORBIDDEN status in <code>/apps/sling/servlet/errorhandler/403.esp</code>.</li>
+</ul>
+<h2>Uncaught Throwables</h2>
+<p>To handle uncaught Throwables the simple name (<code>Class.getSimpleName()</code>) of the <code>Throwable</code> class is used as request extension. Similarly to the Java try-catch clauses the class hierarchy is supported. That is to handle an uncaught <code>FileNotFoundException</code>, the names <code>FileNotFoundException</code>, <code>IOException</code>, <code>Exception</code>, <code>Throwable</code> are checked for a Servlet and the first one found is then used. Again, the Serlvet may be a Servlet registered as an OSGi service or may be a plain script stored in the JCR repository or provided through some custom Resource provider.</p>
+<p><strong>Example:</strong> To register a catch-all handler for any uncaught Throwables you might create a script <code>/apps/sling/servlet/errorhandler/Throwable.esp</code>.</p>
+<p><strong>Note:</strong> If no script or servlet to handle an uncaught <code>Throwable</code> is registered, the default handler kicks in, which sends back a 500/INTERNAL SERVER ERROR response containing the <code>Throwable</code> and the stack trace. This response is <strong>not</strong> handled by the HTTP Status Code handling described above because the response status is sent using <code>HttpServletResponse.setStatus(int, String)</code>. To prevent this default response you have to implement a catch-all handler for the <code>Throwable</code> class as shown in the example.</p>
+<h2>Default Handler</h2>
+<p>The Sling Servlet Resolver bundle provides a default error handler servlet which is used if the algorithms described above do not resolve to a handler script or servlet. The provided error handler servlet does the following:</p>
+<ul>
+  <li>Print a descriptive message, which is the <code>javax.servlet.error.message</code> request attribute by default</li>
+  <li>Print a stacktrace if the <code>javax.servlet.error.exception</code> is set</li>
+  <li>Dump the request progress tracker</li>
+</ul>
+<p>Starting with Sling Servlet Resolver version 2.0.10 the default error handler servlet is looked up using the string <code>default</code> as the request extension and the provided default servlet is registered as <code>&lt;prefix&gt;/sling/servlet/errorhandler/default.servlet</code> where <prefix> is the last entry in the resource resolver search path, <code>/libs</code> by default.</p>
+<p>Thus to overwrite the default error handler servlet provide a servlet or script for the <code>default</code> extension, for example <code>/apps/sling/servlet/errorhandler/default.groovy</code>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/featureflags.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/featureflags.html b/documentation/the-sling-engine/featureflags.html
new file mode 100644
index 0000000..b34d781
--- /dev/null
+++ b/documentation/the-sling-engine/featureflags.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Feature Flags</h1></header><p>Feature Flags are used to select whether a particular feature is enabled or not. This allows to continuosly deploy new features of an application without making them globally available yet.</p>
+<p>Features may be enabled based on various contextual data:</p>
+<ul>
+  <li>Time of Day</li>
+  <li>Segmentation Data (gender, age, etc.), if available</li>
+  <li>Request Parameter</li>
+  <li>Request Header</li>
+  <li>Cookie Value</li>
+  <li>Static Configuration</li>
+</ul>
+<p>Feature flags can be provided by registering <code>org.apache.sling.featureflags.Feature</code> services. Alternatively feature flags can be provided by factory configuration with factory PID <code>org.apache.sling.featureflags.Feature</code> as follows:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>name</code> </td>
+      <td>Short name of this feature. This name is used to refer to this feature when checking for it to be enabled or not. This property is required and defaults to a name derived from the feature's class name and object identity. It is strongly recommended to define a useful and unique for the feature</td>
+    </tr>
+    <tr>
+      <td><code>description</code> </td>
+      <td>Description for the feature. The intent is to descibe the behaviour of the application if this feature would be enabled. It is recommended to define this property. The default value is the value of the name property. </td>
+    </tr>
+    <tr>
+      <td><code>enabled</code> </td>
+      <td>Boolean flag indicating whether the feature is enabled or not by this configuration</td>
+    </tr>
+  </tbody>
+</table></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/filters.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/filters.html b/documentation/the-sling-engine/filters.html
new file mode 100644
index 0000000..4832c93
--- /dev/null
+++ b/documentation/the-sling-engine/filters.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Servlet Filter Support</h1></header><p>Sling supports filter processing by applying filter chains to the requests before actually dispatching to the servlet or script for processing. Filters to be used in such filter processing are plain OSGi services of type <code>javax.servlet.Filter</code> which of course means that the services implement this interface.</p>
+<div class="note">
+See <a href="https://issues.apache.org/jira/browse/SLING-1213">SLING-1213</a>,
+<a href="https://issues.apache.org/jira/browse/SLING-1734">SLING-1734</a>, and
+<a href="http://markmail.org/message/quxhm7d5s6u66crr">Registering filters with Sling</a>
+for more details. The
+<a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/filters/NoPropertyFilter.java">NoPropertyFilter</a>
+from our integration tests shows an example Sling Filter.
+</div>
+<p>For Sling to pick up a <code>javax.servlet.Filter</code> service for filter processing two service registration properties are inspected:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Type </th>
+      <th>Default Value </th>
+      <th>Valid Values </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>sling.filter.scope</code> </td>
+      <td><code>String</code>, <code>String[]({{ refs..path }})</code> or <code>Vector&lt;String&gt;</code> </td>
+      <td><code>request</code> </td>
+      <td><code>REQUEST</code>, <code>INCLUDE</code>, <code>FORWARD</code>, <code>ERROR</code>, <code>COMPONENT</code> </td>
+      <td>Indication of which chain the filter should be added to. This property is required. If it is missing from the service, the service is ignored because it is assumed another consumer will be interested in using the service. Any unknown values of this property are also ignored causing the service to be completely ignored if none of the values provided by the property are valid. See below for the description of the filter chains. </td>
+    </tr>
+    <tr>
+      <td><code>sling.filter.pattern</code> </td>
+      <td><code>String</code></td>
+      <td>`<code>| Any</code>String<code>value | Restrict the filter to paths that match the supplied regular expression. Requires Sling Engine 2.4.0. |
+|</code>service.ranking<code>|</code>Integer<code>|</code>0<code>| Any</code>Integer<code>value | Indication of where to place the filter in the filter chain. The higher the number the earlier in the filter chain. This value may span the whole range of integer values. Two filters with equal</code>service.ranking<code>property value (explicitly set or default value of zero) will be ordered according to their</code>service.id` service property as described in section 5.2.5, Service Properties, of the OSGi Core Specification R 4.2. </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Filter Chains</h2>
+<p>Sling maintains five filter chains: request level, component level, include filters, forward filters and error filters. Except for the component level filter these filter chains correspond to the filter <code>&lt;dispatcher&gt;</code> configurations as defined for Servlet API 2.5 web applications (see section SRV.6.2.5 Filters and the RequestDispatcher).</p>
+<p>The following table summarizes when each of the filter chains is called and what value must be defined in the <code>sling.filter.scope</code> property to have a filter added to the respective chain:</p>
+<table>
+  <thead>
+    <tr>
+      <th><code>sling.filter.scope</code> </th>
+      <th>Servlet API Correspondence </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>REQUEST</code> </td>
+      <td><code>REQUEST</code> </td>
+      <td>Filters are called once per request hitting Sling from the outside. These filters are called after the resource addressed by the request URL and the Servlet or script to process the request has been resolved before the <code>COMPONENT</code> filters (if any) and the Servlet or script are called. </td>
+    </tr>
+    <tr>
+      <td><code>INCLUDE</code> </td>
+      <td><code>INCLUDE</code> </td>
+      <td>Filters are called upon calling the <code>RequestDispatcher.include</code> method after the included resource and the Servlet or script to process the include have been resolved before the Servlet or script is called. </td>
+    </tr>
+    <tr>
+      <td><code>FORWARD</code> </td>
+      <td><code>FORWARD</code> </td>
+      <td>Filters are called upon calling the <code>RequestDispatcher.forward</code> method after the included resource and the Servlet or script to process the include have been resolved before the Servlet or script is called. </td>
+    </tr>
+    <tr>
+      <td><code>ERROR</code> </td>
+      <td><code>ERROR</code> </td>
+      <td>Filters are called upon <code>HttpServletResponse.sendError</code> or any uncaught <code>Throwable</code> before resolving the error handler Servlet or script. </td>
+    </tr>
+    <tr>
+      <td><code>COMPONENT</code> </td>
+      <td><code>REQUEST,INCLUDE,FORWARD</code> </td>
+      <td>The <code>COMPONENT</code> scoped filters are present for backwards compatibility with earlier Sling Engine releases. These filters will be called among the <code>INCLUDE</code> and <code>FORWARD</code> filters upon <code>RequestDispatcher.include</code> or <code>RequestDispatcher.forward</code> as well as before calling the request level Servlet or script after the <code>REQUEST</code> filters. </td>
+    </tr>
+  </tbody>
+</table>
+<p>Note on <code>INCLUDE</code> and <code>FORWARD</code> with respect to JSP tags: These filters are also called if the respective including (e.g. <code>&lt;jsp:include&gt;</code> or <code>&lt;sling:include&gt;</code>) or forwarding (e.g. <code>&lt;jsp:forward&gt;</code> or <code>&lt;sling:forward&gt;</code>) ultimately calls the <code>RequestDispatcher</code>.</p>
+<h2>Filter Processing</h2>
+<p>Filter processing is part of the Sling request processing, which may be sketched as follows:</p>
+<ul>
+  <li><em>Request Level</em>:</li>
+  <li>Authentication</li>
+  <li>Resource Resolution</li>
+  <li>Servlet/Script Resolution</li>
+  <li>Request Level Filter Processing</li>
+</ul>
+<p>The first step of request processing is the <em>Request Level</em> processing which is concerned with resolving the resource, finding the appropriate servlet and calling into the request level filter chain. The next step is the <em>Component Level</em> processing, calling into the component level filters before finally calling the servlet or script:</p>
+<ul>
+  <li><em>Component Level</em>:</li>
+  <li>Component Level Filter Processing</li>
+  <li>Call Servlet or Script</li>
+</ul>
+<p>When a servlet or script is including or forwarding to another resource for processing through the <code>RequestDispatcher</code> (or any JSP tag or other language feature ultimately using a <code>RequestDispatcher</code>) the following <em>Dispatch</em> processing takes place:</p>
+<ul>
+  <li><em>Dispatch</em>:</li>
+  <li>Resolve the resource to dispatch to if not already defined when getting the <code>RequestDispatcher</code></li>
+  <li>Servlet/Script resolution</li>
+  <li>Call include or forward filters depending on the kind of dispatch</li>
+  <li>Call Servlet or Script</li>
+</ul>
+<p>As a consequence, request level filters will be called at most once during request processing (they may not be called at all if a filter earlier in the filter chain decides to terminate the request) while the component level, include, and forward filters may be called multiple times while processing a request.</p>
+<h2>Troubleshooting</h2>
+<p>Apart form the logs which tell you when filters are executed, two Sling plugins provide information about filters in the OSGi console.</p>
+<h3>Recent Requests plugin</h3>
+<p>The request traces provided at <code>/system/console/requests</code> contain information about filter execution, as in this example:</p>
+<p>0 (2010-09-08 15:22:38) TIMER_START{Request Processing} ... 0 (2010-09-08 15:22:38) LOG Method=GET, PathInfo=/some/path.html 3 (2010-09-08 15:22:38) LOG Applying request filters 3 (2010-09-08 15:22:38) LOG Calling filter: org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter 3 (2010-09-08 15:22:38) LOG Calling filter: org.apache.sling.portal.container.internal.request.PortalFilter 3 (2010-09-08 15:22:38) LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter 3 (2010-09-08 15:22:38) LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter 3 (2010-09-08 15:22:38) LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter 3 (2010-09-08 15:22:38) LOG Applying inner filters 3 (2010-09-08 15:22:38) TIMER_START{/some/script.jsp#0} ... 8 (2010-09-08 15:22:38) TIMER_END{8,Request Processing} Request Processing</p>
+<h3>Config Status plugin</h3>
+<p>The configuration status page at <code>/system/console/config</code> includes the current list of active filters in its <em>Servlet Filters</em> category, as in this example:</p>
+<p>Current Apache Sling Servlet Filter Configuration</p>
+<p>Request Filters: -2147483648 : class org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter (2547) -3000 : class org.apache.sling.portal.container.internal.request.PortalFilter (2562) -2500 : class org.apache.sling.rewriter.impl.RewriterFilter (3365) -700 : class org.apache.sling.i18n.impl.I18NFilter (2334) 0 : class org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter (2402)</p>
+<h2>Error Filters:</h2>
+<p>Include Filters:</p>
+<p>Forward Filters: 1000 : class some.package.DebugFilter (2449)</p>
+<p>Component Filters: -200 : class some.package.SomeComponentFilter (2583)</p>
+<p>The first numbers on those lines are the filter priorities, and the last number in parentheses is the OSGi service ID.</p>
+<h2>Support in Sling Engine 2.1.0</h2>
+<p>Up to and including Sling Engine 2.1.0 support for Servlet Filters has been as follows:</p>
+<ul>
+  <li>Any <code>javax.servlet.Filter</code> service is accepted as a filter for Sling unless the <code>pattern</code> property used by the <a href="http://felix.apache.org/site/apache-felix-http-service.html#ApacheFelixHTTPService-UsingtheWhiteboard">Apache Felix HttpService whiteboard support</a> is set in the service registration properties.</li>
+  <li>The <code>filter.scope</code> property is optional and supports the case-sensitive values <code>request</code> and <code>component</code>.</li>
+  <li>Filter ordering is defined by the <code>filter.order</code> property whose default value is <code>Integer.MAX_VALUE</code> where smaller values have higher priority over higher values.</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/mappings-for-resource-resolution.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/mappings-for-resource-resolution.html b/documentation/the-sling-engine/mappings-for-resource-resolution.html
new file mode 100644
index 0000000..81531ee
--- /dev/null
+++ b/documentation/the-sling-engine/mappings-for-resource-resolution.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Mappings for Resource Resolution</h1></header><p>[TOC]</p>
+<h2>Configuration</h2>
+<h3>Properties</h3>
+<p>The mapping of request URLs to resources is mainly configured in a configuration tree which is (by default) located below <code>/etc/map</code>. The actual location can be configured with the <code>resource.resolver.map.location</code> property of the <code>org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl</code> configuration. That way you can even make it <a href="/documentation/bundles/sling-settings-org-apache-sling-settings.html">run mode specific</a> by having a unique path per [run mode specific OSGi configuration]({{ refs./jcr-installer-provider.path }}).</p>
+<p>When dealing with the new resource resolution we have a number of properties influencing the process:</p>
+<ul>
+  <li><code>sling:match</code> &ndash; This property when set on a node in the <code>/etc/map</code> tree (see below) defines a partial regular expression which is used instead of the node's name to match the incoming request. This property is only needed if the regular expression includes characters which are not valid JCR name characters. The list of invalid characters for JCR names is: <code>/, :, [, ], *, &#39;, &quot;, , |</code> and any whitespace except blank space. In addition a name without a name space may not be <code>.</code> or <code>..</code> and a blank space is only allowed inside the name.</li>
+  <li><code>sling:redirect</code> &ndash; This property when set on a node in the <code>/etc/map</code> tree (see below) causes a redirect response to be sent to the client, which causes the client to send in a new request with the modified location. The value of this property is applied to the actual request and sent back as the value of <code>Location</code> response header.</li>
+  <li><code>sling:status</code> &ndash; This property defines the HTTP status code sent to the client with the <code>sling:redirect</code> response. If this property is not set, it defaults to 302 (Found). Other status codes supported are 300 (Multiple Choices), 301 (Moved Permanently), 303 (See Other), and 307 (Temporary Redirect).</li>
+  <li><code>sling:internalRedirect</code> &ndash; This property when set on a node in the <code>/etc/map</code> tree (see below) causes the current path to be modified internally to continue with resource resolution. This is a multi-value property, i.e. multiple paths can be given here, which are tried one after another until one resolved to a resource.</li>
+  <li><code>sling:alias</code> &ndash; The property may be set on any resource to indicate an alias name for the resource. For example the resource <code>/content/visitors</code> may have the <code>sling:alias</code> property set to <code>besucher</code> allowing the resource to be addressed in an URL as <code>/content/besucher</code>.</li>
+</ul>
+<h4>Limitation of <code>sling:alias</code> for Principal with a limited access</h4>
+<p>Assuming there is</p>
+<ul>
+  <li>An User named <code>testuser</code></li>
+  <li>An ACE with deny <code>jcr:all</code> in <code>/</code> for <code>everyone</code></li>
+  <li>An ACE with allow <code>jcr:read</code> in <code>/content</code> for <code>testuser</code></li>
+</ul>
+<p>If the <code>sling:alias</code> property (e.g. <code>myalias</code>) is set directly in <code>/content</code>, the User <code>testuser</code> will not be able to address the resource <code>/content</code> in an URL as <code>/myalias</code>. Instead if the <code>sling:alias</code> property is set in any resource under <code>/content</code> (e.g. <code>/content/visitors</code>) the <code>sling:alias</code> feature will work as usual.</p>
+<h3>Node Types</h3>
+<p>To ease with the definition of redirects and aliases, the following node types are defined:</p>
+<ul>
+  <li><code>sling:ResourceAlias</code> &ndash; This mixin node type defines the <code>sling:alias</code> property and may be attached to any node, which does not otherwise allow setting a property named <code>sling:alias</code></li>
+  <li><code>sling:MappingSpec</code> &ndash; This mixin node type defines the <code>sling:match</code>, <code>sling:redirect</code>, <code>sling:status</code>, and <code>sling:internaleRedirect</code> properties to define a matching and redirection inside the <code>/etc/map</code> hierarchy.</li>
+  <li><code>sling:Mapping</code> &ndash; Primary node type which may be used to easily construct entries in the <code>/etc/map</code> tree. The node type extends the <code>sling:MappingSpec</code> mixin node type to allow setting the required matching and redirection. In addition the <code>sling:Resource</code> mixin node type is extended to allow setting a resource type and the <code>nt:hierarchyNode</code> node type is extended to allow locating nodes of this node type below <code>nt:folder</code> nodes.</li>
+</ul>
+<p>Note, that these node types only help setting the properties. The implementation itself only cares for the properties and their values and not for any of these node types.</p>
+<h2>Namespace Mangling</h2>
+<p>There are systems accessing Sling, which have a hard time handling URLs containing colons &ndash; <code>:</code> &ndash; in the path part correctly. Since URLs produced and supported by Sling may contain colons because JCR Item based resources may be namespaced (e.g. <code>jcr:content</code>), a special namespace mangling feature is built into the <code>ResourceResolver.resolve</code> and <code>ResourceResolver(map)</code> methods.</p>
+<p>Namespace mangling operates such, that any namespace prefix identified in resource path to be mapped as an URL in the <code>map</code> methods is modified such that the prefix is enclosed in underscores and the colon removed.</p>
+<p><em>Example</em>: The path <code>/content/*a*sample/jcr:content/jcr:data.png</code> is modified by namespace mangling in the <code>map</code> method to get at <code>/content/*a*sample/*jcr*content/*jcr*data.png</code>.</p>
+<p>Conversely the <code>resolve</code> methods must undo such namespace mangling to get back at the resource path. This is simple done by modifying any path such that segments starting with an underscore enclosed prefix are changed by removing the underscores and adding a colon after the prefix. There is one catch, tough: Due to the way the SlingPostServlets automatically generates names, there may be cases where the actual name would be matching this mechanism. Therefore only prefixes are modified which are actually namespace prefixes.</p>
+<p><em>Example</em>: The path <code>/content/*a*sample/*jcr*content/*jcr*data.png{*</code>} <em>is modified by namespace mangling in the</em> <code>{*}resolve{*</code>} <em>method to get</em> <code>*/content/*a*sample/jcr:content/jcr:data.png{*}{</code>}*. The prefix* <code>**a{*}{</code>}<code>{</code>} is not modified because there is no registered namespace with prefix <code>a</code>. On the other hand the prefix <code>{*}jcr{*</code>} is modified because there is of course a registered namespace with prefix <code>jcr</code>.</p>
+<h2>Root Level Mappings</h2>
+<p>Root Level Mappings apply to the request at large including the scheme, host, port and uri path. To accomplish this a path is constructed from the request lik this <code>{scheme}/{host}.{port}/{uri_path}</code>. This string is then matched against mapping entries below <code>/etc/map</code> which are structured in the content analogously. The longest matching entry string is used and the replacement, that is the redirection property, is applied.</p>
+<h3>Mapping Entry Specification</h3>
+<p>Each entry in the mapping table is a regular expression, which is constructed from the resource path below <code>/etc/map</code>. If any resource along the path has a <code>sling:match</code> property, the respective value is used in the corresponding segment instead of the resource name. Only resources either having a <code>sling:redirect</code> or <code>sling:internalRedirect</code> property are used as table entries. Other resources in the tree are just used to build the mapping structure.</p>
+<p><em>Example</em></p>
+<p>Consider the following content</p>
+<p>/etc/map +-- http +-- example.com.80 | +-- sling:redirect = "http://www.example.com/" +-- www.example.com.80 | +-- sling:internalRedirect = "/example" +-- any_example.com.80 | +-- sling:match = ".+.example.com.80" | +-- sling:redirect = "http://www.example.com/" +-- localhost_any | +-- sling:match = "localhost.d*" | +-- sling:internalRedirect = "/content" | +-- cgi-bin | | +-- sling:internalRedirect = "/scripts" | +-- gateway | | +-- sling:internalRedirect = "http://gbiv.com" | +-- (stories) | +-- sling:internalRedirect = "/anecdotes/$1" +-- regexmap +-- sling:match = "$1.example.com/$2" +-- sling:internalRedirect = "/content/([^/]+)/(.*)"</p>
+<p>This would define the following mapping entries:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Regular Expression </th>
+      <th>Redirect </th>
+      <th>Internal </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>http/example.com.80 </td>
+      <td>http://www.example.com </td>
+      <td>no </td>
+      <td>Redirect all requests to the Second Level Domain to www </td>
+    </tr>
+    <tr>
+      <td>http/www.example.com.80 </td>
+      <td>/example </td>
+      <td>yes </td>
+      <td>Prefix the URI paths of the requests sent to this domain with the string <code>/example</code> </td>
+    </tr>
+    <tr>
+      <td>http/.+.example.com.80 </td>
+      <td>http://www.example.com </td>
+      <td>no </td>
+      <td>Redirect all requests to sub domains to www. The actual regular expression for the host.port segment is taken from the <code>sling:match</code> property. </td>
+    </tr>
+    <tr>
+      <td>http/localhost.d* </td>
+      <td>/content </td>
+      <td>yes </td>
+      <td>Prefix the URI paths with <code>/content</code> for requests to localhost, regardless of actual port the request was received on. This entry only applies if the URI path does not start with <code>/cgi-bin</code>, <code>gateway</code> or <code>stories</code> because there are longer match entries. The actual regular expression for the host.port segment is taken from the <code>sling:match</code> property. </td>
+    </tr>
+    <tr>
+      <td>http/localhost.d*/cgi-bin </td>
+      <td>/scripts </td>
+      <td>yes </td>
+      <td>Replace the <code>/cgi-bin</code> prefix in the URI path with <code>/scripts</code> for requests to localhost, regardless of actual port the request was received on. </td>
+    </tr>
+    <tr>
+      <td>http/localhost.d*/gateway </td>
+      <td>http://gbiv.com </td>
+      <td>yes </td>
+      <td>Replace the <code>/gateway</code> prefix in the URI path with <code>http://gbiv.com</code> for requests to localhost, regardless of actual port the request was received on. </td>
+    </tr>
+    <tr>
+      <td>http/localhost.d*/(stories) </td>
+      <td>/anecdotes/stories </td>
+      <td>yes </td>
+      <td>Prepend the URI paths starting with <code>/stories</code> with <code>/anecdotes</code> for requests to localhost, regardless of actual port the request was received on. </td>
+    </tr>
+  </tbody>
+</table>
+<h3>Regular Expression Matching</h3>
+<p>As said above the mapping entries are regular expressions which are matched against path. As such these regular expressions may also contain capturing groups as shown in the example above: <code>http/localhost.d*/(stories)</code>. After matching the path against the regular expression, the replacement pattern is applied which allows references back to the capturing groups.</p>
+<p>To illustrate the matching and replacement is applied according to the following pseudo code:</p>
+<h1>!java</h1>
+<p>String path = request.getScheme + "/" + request.getServerName() + "." + request.getServerPort() + "/" + request.getPathInfo(); String result = null; for (MapEntry entry: mapEntries) { Matcher matcher = entry.pattern.matcher(path); if (matcher.find()) { StringBuffer buf = new StringBuffer(); matcher.appendReplacement(buf, entry.getRedirect()); matcher.appendTail(buf); result = buf.toString(); break; } }</p>
+<p>At the end of the loop, <code>result</code> contains the mapped path or <code>null</code> if no entry matches the request <code>path</code>.</p>
+<p><strong>NOTE:</strong> Since the entries in the <code>/etc/map</code> are also used to reverse map any resource paths to URLs, using regular expressions with wildcards in the Root Level Mappings prevent the respective entries from being used for reverse mappings. Therefor, it is strongly recommended to not use regular expression matching, unless you have a strong need.</p>
+<h4>Regular Expressions for Reverse Mappings</h4>
+<p>By default using regular expressions with wildcards will prevent to use the mapping entry for reverse mappings (see above).</p>
+<p>There is one exception though: If there is a <code>sling:internalRedirect</code> property containing a regular expression the map entry will be <em>exclusively used for reverse mappings</em> (i.e. used only for <code>ResourceResolver.map(...)</code>) (see also <a href="https://issues.apache.org/jira/browse/SLING-2560">SLING-2560</a>). The same resource may carry a <code>sling:match</code> property with wildcards and groups referring to the groups being defined in the <code>sling:internalRedirect</code> property.</p>
+<p>This example</p>
+<p>/etc/map +-- http +-- example.com.80 | +-- sling:internalRedirect = "/content/([^/]+)/home/(.*)" | +-- sling:match = "$1/index/$2"</p>
+<p>leads to the following entry being used in the reverse mapping table:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Pattern </th>
+      <th>Replacement </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>/content/([^/]+)/home/(.*) </td>
+      <td>http://example.com/$1/index/$2 </td>
+    </tr>
+  </tbody>
+</table>
+<h3>Redirection Values</h3>
+<p>The result of matching the request path and getting the redirection is either a path into the resource tree or another URL. If the result is an URL, it is converted into a path again and matched against the mapping entries. This may be taking place repeatedly until an absolute or relative path into the resource tree results.</p>
+<p>The following pseudo code summarizes this behaviour:</p>
+<h1>!java</h1>
+<p>String path = ....; String result = path; do { result = applyMapEntries(result); } while (isURL(result));</p>
+<p>As soon as the result of applying the map entries is an absolute or relative path (or no more map entries match), Root Level Mapping terminates and the next step in resource resolution, resource tree access, takes place.</p>
+<h2>Resource Tree Access</h2>
+<p>The result of Root Level Mapping is an absolute or relative path to a resource. If the path is relative &ndash; e.g. <code>myproject/docroot/sample.gif</code> &ndash; the resource resolver search path (<code>ResourceResolver.getSearchPath()</code> is used to build absolute paths and resolve the resource. In this case the first resource found is used. If the result of Root Level Mapping is an absolute path, the path is used as is.</p>
+<p>Accessing the resource tree after applying the Root Level Mappings has four options:</p>
+<ul>
+  <li>Check whether the path addresses a so called Star Resource. A Star Resource is a resource whose path ends with or contains <code>/*</code>. Such resources are used by the <code>SlingPostServlet</code> to create new content below an existing resource. If the path after Root Level Mapping is absolute, it is made absolute by prepending the first search path entry.</li>
+  <li>Check whether the path exists in the repository. if the path is absolute, it is tried directly. Otherwise the search path entries are prepended to the path until a resource is found or the search path is exhausted without finding a resource.</li>
+  <li>Drill down the resource tree starting from the root, optionally using the search path until a resource is found.</li>
+  <li>If no resource can be resolved, a Missing Resource is returned.</li>
+</ul>
+<h3>Drilling Down the Resource Tree</h3>
+<p>Drilling down the resource tree starts at the root and for each segment in the path checks whether a child resource of the given name exists or not. If not, a child resource is looked up, which has a <code>sling:alias</code> property whose value matches the given name. If neither exists, the search is terminated and the resource cannot be resolved.</p>
+<p>The following pseudo code shows this algorithm assuming the path is absolute:</p>
+<h1>!java</h1>
+<p>String path = ...; // the absolute path Resource current = getResource("/"); String[] segments = path.split("/"); for (String segment: segments) { Resource child = getResource(current, segment); if (child == null) { Iterator<Resource> children = listChildren(current); current = null; while (children.hasNext()) { child = children.next(); if (segment.equals(getSlingAlias(child))) { current = child; break; } } if (current == null) { // fail break; } } else { current = child; } }</p>
+<h2>Rebuild The Vanity Bloom Filter</h2>
+<p><a href="https://issues.apache.org/jira/browse/SLING-4216">SLING-4216</a> introduced the usage of a bloom filter in order to resolve long startup time with many vanityPath entries. The bloom filter is handled automatically by the Sling framework. In some cases though, as changing the maximum number of vanity bloom filter bytes, a rebuild of the vanity bloom filter is needed.</p>
+<p>In order to rebuild vanity bloom filter:</p>
+<ul>
+  <li>stop Apache Sling</li>
+  <li>locate the org.apache.sling.resourceresolver bundle in the file system (e.g. $SLING_HOME/felix/bundleXX)</li>
+  <li>locate the vanityBloomFilter.txt file in the file system (e.g. $SLING_HOME/felix/bundleXX/data/vanityBloomFilter.txt)</li>
+  <li>delete the vanityBloomFilter.txt file</li>
+  <li>start Apache Sling (this might take few minutes, depending on how many vanity path entries are present)</li>
+</ul>
+<h2>Debugging Issues</h2>
+<p>Use the Felix Web Console Plugin provided at <code>/system/console/jcrresolver</code> to inspect both the mapping and the resolver map entries. Also you can check what either <code>ResourceResolver.map(...)</code> or <code>ResourceResolver.resolve(...)</code> would return for a given URL/path.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/request-listeners.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/request-listeners.html b/documentation/the-sling-engine/request-listeners.html
new file mode 100644
index 0000000..565a0c8
--- /dev/null
+++ b/documentation/the-sling-engine/request-listeners.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Request Listeners</h1></header><p>Sling provides the possibility to "listen" to a request processed by the Sling Engine (<code>SlingMainServlet</code>). To get notified you implement the service interface <code>org.apache.sling.api.request.SlingRequestListener</code>.</p>
+<h1>!java</h1>
+<p>public interface SlingRequestListener {</p>
+<p>static final String SERVICE_NAME = "org.apache.sling.api.request.SlingRequestListener";</p>
+<p>/** * This method is called from the Sling application for every * <code>EventType</code> appearing during the dispatching of * a Sling request * * @param sre the object representing the event * * @see org.apache.sling.api.request.SlingRequestEvent.EventType */ public void onEvent( SlingRequestEvent sre ); }</p>
+<p>There are no special properties to set.</p>
+<h2>Supported types of events</h2>
+<p>At the moment you will get two different types of <code>SlingRequestEvent</code>:</p>
+<table>
+  <thead>
+    <tr>
+      <th>events types (<code>SlingRequestEvent.EventType</code>) </th>
+      <th>point in time </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>EVENT_INIT </td>
+      <td>after entering the <code>service</code> method in <code>SlingMainServlet</code>. Note that this will be <strong>after</strong> the <code>handleSecurity</code> call. </td>
+    </tr>
+    <tr>
+      <td>EVENT_DESTROY </td>
+      <td>at the end of the <code>service</code> method in <code>SlingMainServlet</code> </td>
+    </tr>
+  </tbody>
+</table></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/request-parameters.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/request-parameters.html b/documentation/the-sling-engine/request-parameters.html
new file mode 100644
index 0000000..429690c
--- /dev/null
+++ b/documentation/the-sling-engine/request-parameters.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Request Parameter Handling in Sling</h1></header><p>Excerpt: Explains how Sling provides request parameters to the <code>Component</code>.</p>
+<h2>Servlet API</h2>
+<p>The Servlet API specification provides the following methods to access the parameters of a request</p>
+<table>
+  <thead>
+    <tr>
+      <th>Method </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>HttpServletRequest.getQueryString()</code> </td>
+      <td>Returns the query part of the request URL </td>
+    </tr>
+    <tr>
+      <td><code>ServletRequest.getParameter(String)</code> </td>
+      <td>Returns the (first) named parameter </td>
+    </tr>
+    <tr>
+      <td><code>ServletRequest.getParameterValues(String)</code> </td>
+      <td>Returns all parameters of that name </td>
+    </tr>
+    <tr>
+      <td><code>ServletRequest.getParameterMap()</code> </td>
+      <td>Returns all parameters as a map of <code>String[]({{ refs..path }})</code> </td>
+    </tr>
+    <tr>
+      <td><code>ServletRequest.getParameterNames()</code> </td>
+      <td>Returns an enumeration of the names of the parameters </td>
+    </tr>
+    <tr>
+      <td><code>ServletRequest.getParts()</code> </td>
+      <td>Returns all parts of the multipart request (since v3.0) </td>
+    </tr>
+    <tr>
+      <td><code>ServletRequest.getPart(String)</code> </td>
+      <td>Returns the request part with that name in case of multipart requests (since v3.0) </td>
+    </tr>
+  </tbody>
+</table>
+<p>The actual encoding of the parameters is all but safe because the encoding of URLs is not very well defined and browsers do not set the character encoding when sending post data. Fortunately, they use the same character encoding for sending back form content as was used by the server to send the form.</p>
+<h2>Sling API</h2>
+<p>To overcome the restrictions and to provide uniform access to request parameters the Sling API in addition to the Servlet API methods to access parameters provides an abstraction of parameters which is applicable to all parameters sent by clients, the <code>RequestParameter</code> interface. Through this interface, each parameter may be analyzed for these topics:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Type </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Raw Content </td>
+      <td>Byte array and <code>InputStream</code> representation of the request parameter values. You will generally use the <code>InputStream</code> to handle uploaded files. </td>
+    </tr>
+    <tr>
+      <td>String Content </td>
+      <td>Access the values as strings is some given encoding (see below) or by requesting the conversion using an explicit encoding. </td>
+    </tr>
+    <tr>
+      <td>File Uploads </td>
+      <td>Find out whether a parameter is a file upload, get the size in bytes of the parameter value and client side file name as sent by the browser. </td>
+    </tr>
+  </tbody>
+</table>
+<p>To accomodate this new interface as well as to provide easy access in the traditional way the <code>SlingHttpServletRequest</code> interface adds following methods to the standard Servlet API parameter access methods:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Method </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>getRequestParameter(String)</code> </td>
+      <td>Returns the (first) named parameter as a <code>RequestParameter</code> instance </td>
+    </tr>
+    <tr>
+      <td><code>getRequestParameters(String)</code> </td>
+      <td>Returns the named parameter as an array of <code>RequestParameter</code> instances </td>
+    </tr>
+    <tr>
+      <td><code>getRequestParameterMap()</code> </td>
+      <td>Returns <code>RequestParameterMap</code> being a map of <code>RequestParameter</code> arrays indexed by parameter names </td>
+    </tr>
+  </tbody>
+</table>
+<p>All parameters are handled the same, that is all methods give access to the same parameters regardless of whether the parameters were transmitted in the request query, as part of form encoded data or as part of a <code>multipart/form-data</code> request.</p>
+<p>As of Sling Engine 2.1.0 the order or request parameters in the <code>getRequestParameterMap()</code>, <code>getParameterMap()</code>, and <code>getParameterNams()</code> is preserved as follows:</p>
+<ul>
+  <li>The first entries are the parameters reported by the servlet container. The order of these parameters amongst each other is not defined. The <code>SlingHttpServletRequest</code> provides them in the same order as provided by the servlet container.</li>
+  <li>After the servlet container provided parameters are parameters extracted from the request in case <code>multipart/form-data</code> POST requests. The order of these parameters is preserved as they are submitted in the request. This conforms to HTML 4.01 spec on forms submitted with multipart/form-data encoding: <em>A "multipart/form-data" message contains a series of parts, each representing a successful control. The parts are sent to the processing agent in the same order the corresponding controls appear in the document stream. Part boundaries should not occur in any of the data; how this is done lies outside the scope of this specification</em> (<a href="http://www.w3.org/TR/html401/interact/forms.html">17.13.4 Form content types</a>)</li>
+</ul>
+<p>Be warned: Only rely on request parameter ordering <code>multipart/form-data</code> POST requests without a query part in the request URL.</p>
+<h3>Effects of Sling on Servlet API parameter methods</h3>
+<p>From within Sling servlets/scripts you can no longer rely on the original semantics of the Servlet API methods for dealing with parameters as</p>
+<ul>
+  <li><code>ServletRequest.getParameter(String)</code></li>
+  <li><code>ServletRequest.getParameterValues(String)</code></li>
+  <li><code>ServletRequest.getParameterMap()</code></li>
+  <li><code>ServletRequest.getParameterNames()</code></li>
+  <li><code>ServletRequest.getParts()</code> and</li>
+  <li><code>ServletRequest.getPart(String)</code></li>
+</ul>
+<p>internally use the Sling parameter support (and therefore have the same implications on e.g. encoding). You should preferably use the Sling methods <code>getRequestParameter*</code> instead.</p>
+<p>Calling <code>ServletRequest.getInputStream()</code> is not supported, nor relying on some 3rd party libraries which are internally using that method like <a href="https://commons.apache.org/proper/commons-fileupload/">Apache Commons Fileupload</a>. This is because the Sling parameter support needs exclusive access to the request's input stream.</p>
+<h2>Character Encoding</h2>
+<p>Traditionally, the encoding of parameters, especially in text area input forms, has been a big issue. To solve this issue Sling introduces the following convention:</p>
+<ul>
+  <li>All forms should contain a hidden field of the name <code>_charset_</code> containing the actual encoding used to send the form from the server to the client</li>
+  <li>All forms should be sent with <em>UTF-8</em> character encoding</li>
+</ul>
+<p>The first rule is essential as it helps decoding the form input correctly. The second rule is not actually a very hard requirement but to enable support for all (or most) character sets used, using <em>UTF-8</em> is one of the best choices anyway.</p>
+<p>When Sling is now receiving a request and is asked for the parameters, the parameters are parsed in two phases: The first phase just parses the raw input data using an identity transformation of bytes to characters. This identity transformation happens to generate strings as the original data was generated with <code>ISO-8859-1</code> encoding. The second phase locates the <code>_charset_</code> parameter and fixes the character encodings of the parameters as follows:</p>
+<ul>
+  <li>All names of the parameters are re-encoded</li>
+  <li>The parameter values are re-encoded, unless the parameter value is an uploaded file. Actually the parameter (not the files of course) are internally as <code>byte[]({{ refs..path }})</code> where the conversion to a string is done on the fly (and yes, the conversion using the <code>_charset_</code> character encoding is of course cached for performance reasons)</li>
+  <li>If the parameter is an uploaded file, the file name is re-encoded on the fly when accessed</li>
+</ul>
+<div class="info">
+Up to and including Sling Engine 2.2.2 request parameters are always decoded with ISO-8859-1 encoding if the <code>_charset_</code> request parameter is missing. As of Sling Engine 2.2.4 the <code>_charset_</code> request parameter is optional. As of this version the Sling Main Servlet supports a configuration setting which allows to change the default character encoding used if the <code>_charset_</code> request parameter is missing.
+To enable this functionality set the <code>sling.default.parameter.encoding</code> parameter of the Sling Main Servlet (PID <code>org.apache.sling.engine.impl.SlingMainServlet</code>) configuration (for Sling Engine < 2.3.0) or the same parameter of the Sling Request Parameter Handling (PID <code>org.apache.sling.engine.parameters</code>) configuration (for Sling Engine >= 2.3.0 ) to the desired encoding, which of course must be supported by the actual Java Platform.
+</div></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[48/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/mime-type-support-commons-mime.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/mime-type-support-commons-mime.html b/documentation/bundles/mime-type-support-commons-mime.html
new file mode 100644
index 0000000..e893e0c
--- /dev/null
+++ b/documentation/bundles/mime-type-support-commons-mime.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>MIME Type Support (commons.mime and commons.contentdetection)</h1></header><p>Support for MIME type mappings is generally a problematic issue. On the one hand applications have to take care to stay up to date with their mappings on the other hands in web applications it is tedious to maintain the mappings. Apache Sling takes a very user and deployment friendly approadch to this problem which is described in detail on this page.</p>
+<p>[TOC]</p>
+<h2>Servlet API Support</h2>
+<p>The Servlet API specification provides a limited support for MIME type mappings :</p>
+<ul>
+  <li>Mappings may be defined in the <code>mime-mapping</code> elements of the the web application descriptor <code>web.xml</code>. Managing these mappings is presumably tedious. So servlet containers may provide reasonable defaults (or not).</li>
+  <li>The <code>ServletContext.getMimeType(String)</code> returns a MIME type for a given file name based on the extension of the filename. The mapping returned is based on the servlet container configuration as well as the web application descriptor's <code>mime-mapping</code> elements.</li>
+</ul>
+<h2>The Sling MimeTypeService</h2>
+<p>Already at the start of the Sling project we realized, that just basing the MIME type mapping decisions on the servlet container will not yield acceptable results. For this reason the Apache Sling projects provides a spezialized and configurable service supporting such mappings: The <a href="/apidocs/sling6/org/apache/sling/commons/mime/MimeTypeService.html"><code>MimeTypeService</code></a> provided by the <code>org.apache.sling.commons.mime</code> bundle.</p>
+<p>This service provides access to registered MIME types and their mappings with two methods:</p>
+<ul>
+  <li><code>getExtension(String)</code> -- given a MIME type this methods returns a primary extension. For example for the type <code>text/plain</code> this method will return <code>txt</code></li>
+  <li><code>getMimeType(String)</code> -- given a file name or just the extension) returns the mapped MIME type. For example for the filename <code>sample.html</code> (or just the extension <code>html</code>) this method will return <code>text/html</code></li>
+</ul>
+<p>Two more methods allow to programmatically add MIME type mappings:</p>
+<ul>
+  <li><code>registerMimeType(InputStream)</code> registers additional mappings from the given input stream which is expected to be formated in traditional <code>mime.types</code> file format (see below).</li>
+  <li><code>registerMimeType(String, String...)</code> registers a single mapping for the give MIME type and the respective extensions.</li>
+</ul>
+<h2>The Sling ContentAwareMimeTypeService</h2>
+<p>For content-based mime type detection (as opposed to filename-based detection), the <code>org.apache.sling.commons.contentdetection</code> bundle provides the <code>ContentAwareMimeTypeService</code>, which takes an <code>InputStream</code> that's analyzed to detect its mime type, using Apache Tika by default:</p>
+<ul>
+  <li><code>getMimeType(String filename, InputStream content)</code> -- given a filename and an <code>InputStream</code> that points to the file contents, this method first tries content-based detection using the stream, and falls back to filename-based detection if needed.</li>
+</ul>
+<h2>And More...</h2>
+<p>Besides the <code>MimeTypeService</code> provided by Apache Sling, there is actually more:</p>
+<ul>
+  <li>The <a href="/apidocs/sling6/org/apache/sling/api/SlingHttpServletRequest.html"><code>SlingHttpServletRequest</code></a> provides the <code>getResponseContentType()</code> method, which returns the preferred <em>Content-Type</em> for the response based on the requests extension. This method is implemented by Apache Sling using the <code>MimeTypeService</code>. So servlets and scripts may just call this method to set the content type of the response to the desired value.</li>
+  <li>Each Servlet (and JSP scripts) is initialized by Apache Sling with a <code>ServletContext</code> instance whose implementation of the <code>getMimeType(String)</code> effectively calls the <code>MimeTypeService.getMimeType(String)</code> method.</li>
+  <li>The Scripting support infrastructure of Sling sets the response content type on behalf of the script to the default value as returned by the <code>SlingHttpServletRequest.getResponseContentType()</code> method. At the same time the response character set is also set to <code>UTF-8</code> for <em>text</em> content types.</li>
+</ul>
+<h2>Configuring MIME Type Mappings</h2>
+<p>The implementation of the <code>MimeTypeService</code> in the Apache Sling MIME type mapping support (<code>org.apache.sling.commons.mime</code>) bundle supports a numnber of ways to configure and extend the set of MIME type mappings:</p>
+<ul>
+  <li>Default configuration. The default configuration is based on the <a href="http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types"><code>mime.types</code></a> file maintained by Roy Fielding for the Apache httpd project and some extensions by Apache Sling.</li>
+  <li>Bundle provided mappings. Bundles registered in the OSGi framework may contain MIME type mappings files <code>META-INF/mime.types</code> which are loaded automatically by the Apache Sling MIME type mapping support bundle.</li>
+  <li>Configuration. Mappings may be supplied by configuration of the <code>MimeTypeService</code> implementation as the multi-value string property <code>mime.types</code>. Each value of the property corresponds to a line in a MIME type configuration file (see below for the format).</li>
+  <li>Registered Mappings. Mappings may be registered with the <code>MimeTypeService.registerMapping</code> methods.</li>
+  <li><a href="/apidocs/sling6/org/apache/sling/commons/mime/MimeTypeProvider.html"><code>MimeTypeProvider</code></a>. Additional mappings may be provided by service implementing the <code>MimeTypeProvider</code> interface. The <code>MimeTypeService</code> implementation will call these services in turn until a service returns a mapping provided there is no static configuration to responde to the mapping request.</li>
+</ul>
+<p>Please note, that existing mappings cannot be overwritten later. Thus mappings have an inherent priority:</p>
+<ol>
+  <li>Mappings provided by the Apache httpd project's <code>mime.types</code> file</li>
+  <li>Extensions by the Apache Sling MIME type mapping support bundle</li>
+  <li>Bundles providing a <code>META-INF/mime.types</code> file in the order of their bundle-id (or startup order if started after the MIME type mapping support bundle)</li>
+  <li>OSGi Configuration. Note that bundles started <em>after</em> the MIME type mapping support bundle may not overwrite mappings provided by the OSGi configuration. This may sounds like a problem, but in reality this should genrally not matter</li>
+  <li>Mappings registered calling the <code>MimeTypeService.registerMimeType</code> method</li>
+  <li>Mappings provided by <code>MimeTypeProvider</code> services</li>
+</ol>
+<h2>MIME Type Mapping File Format</h2>
+<p>The file format for MIME type mapping files is rather simple:</p>
+<ul>
+  <li>The files are assumed to be encoded with the <em>ISO-8859-1</em> (aka Latin 1) character encoding</li>
+  <li>The files consist of lines defining mappings where each line is terminated with either or both of a carriage return (CR, 0x0c) and line feed character (LF, 0x0a). There is no line continuation support *-la shell scripts or Java properties files.
+</li>
+  <li>Empty lines and lines starting with a hash sign (<code>#</code>) are ignored</li>
+  <li>Data lines consist of space (any whitespace matching the <code>s</code> regular expression) separated values. The first value is the MIME type name and the remaining values defining mappings to file name extensions. The first listed file name extension is considered the <em>default mapping</em> and is returned by the <code>MimeTypeService.getExtension(String)</code> method. Entry lines consisting of just a mime type but no extensions are also (currently) ignored.</li>
+</ul>
+<p>THe data line format described here also applies to configuration provided by the values of the <code>mime.types</code> property of the MIME type service configuration. The file format description applies to all <code>META-INF/mime.types</code> files provided by the bundles as well as input streams supplied to the <code>MimeTypeService.registerMimeType(InputStream)</code> method.</p>
+<h2>Web Console Plugin</h2>
+<p>The Apache Sling MIME type mapping support bundle implements a plugin for the Apache Felix Web Console which may be consulted to investigate the current contents of the MIME type mapping tables.</p>
+<p><img src="/documentation/bundles/mimetypes.png" alt="Mime Types Web Console Plugin" /></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/models.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/models.html b/documentation/bundles/models.html
new file mode 100644
index 0000000..9245ecd
--- /dev/null
+++ b/documentation/bundles/models.html
@@ -0,0 +1,411 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Models</h1></header><p>[TOC]</p>
+<p>Many Sling projects want to be able to create model objects - POJOs which are automatically mapped from Sling objects, typically resources, but also request objects. Sometimes these POJOs need OSGi services as well.</p>
+<h1>Design Goals</h1>
+<ul>
+  <li>Entirely annotation driven. "Pure" POJOs.</li>
+  <li>Use standard annotations where possible.</li>
+  <li>Pluggable</li>
+  <li>OOTB, support resource properties (via ValueMap), SlingBindings, OSGi services, request attributes</li>
+  <li>Adapt multiple objects - minimal required Resource and SlingHttpServletRequest</li>
+  <li>Client doesn't know/care that these objects are different than any other adapter factory</li>
+  <li>Support both classes and interfaces.</li>
+  <li>Work with existing Sling infrastructure (i.e. not require changes to other bundles).</li>
+</ul>
+<h1>Basic Usage</h1>
+<p>In the simplest case, the class is annotated with <code>@Model</code> and the adaptable class. Fields which need to be injected are annotated with <code>@Inject</code>:</p>
+<p>::java @Model(adaptables=Resource.class) public class MyModel {</p>
+<p>@Inject private String propertyName; }</p>
+<p>In this case, a property named "propertyName" will be looked up from the Resource (after first adapting it to a <code>ValueMap</code>) and it is injected.</p>
+<p>For an interface, it is similar:</p>
+<p>::java @Model(adaptables=Resource.class) public interface MyModel {</p>
+<p>@Inject String getPropertyName(); }</p>
+<p>Constructor injection is also supported (as of Sling Models 1.1.0):</p>
+<p>::java @Model(adaptables=Resource.class) public class MyModel { @Inject public MyModel(@Named("propertyName") String propertyName) { // constructor code } }</p>
+<p>Because the name of a constructor argument parameter cannot be detected via the Java Reflection API a <code>@Named</code> annotation is mandatory for injectors that require a name for resolving the injection.</p>
+<p>In order for these classes to be picked up, there is a header which must be added to the bundle's manifest:</p>
+<p><Sling-Model-Packages> org.apache.sling.models.it.models </Sling-Model-Packages></p>
+<p>This header must contain all packages which contain model classes or interfaces. However, subpackages need not be listed individually, e.g. the header above will also pick up model classes in <code>org.apache.sling.models.it.models.sub</code>. Multiple packages can be listed in a comma-separated list (any whitespace will be removed):</p>
+<p><Sling-Model-Packages> org.apache.sling.models.it.models, org.apache.sling.other.models </Sling-Model-Packages></p>
+<p>Alternatively it is possible to list all classes individually that are Sling Models classes via the <code>Sling-Model-Classes</code> header.</p>
+<p>If you use the Sling Models bnd plugin all required bundle headers are generated automatically at build time (see chapter 'Registration of Sling Models classes via bnd plugin' below).</p>
+<h1>Client Code</h1>
+<h2>adaptTo()</h2>
+<p>Client code doesn't need to be aware that Sling Models is being used. It just uses the Sling Adapter framework:</p>
+<p>::java MyModel model = resource.adaptTo(MyModel.class)</p>
+<p>Or</p>
+<p>::jsp &lt;sling:adaptTo adaptable="${resource}" adaptTo="org.apache.sling.models.it.models.MyModel" var="model"/&gt;</p>
+<p>Or</p>
+<p>::jsp ${sling:adaptTo(resource, 'org.apache.sling.models.it.models.MyModel')}</p>
+<p>As with other AdapterFactories, if the adaptation can't be made for any reason, <code>adaptTo()</code> returns null.</p>
+<h2>ModelFactory (since 1.2.0)</h2>
+<p><em>See also <a href="https://issues.apache.org/jira/browse/SLING-3709">SLING-3709</a></em></p>
+<p>Since Sling Models 1.2.0 there is another way of instantiating models. The OSGi service <code>ModelFactory</code> provides a method for instantiating a model that throws exceptions. This is not allowed by the Javadoc contract of the adaptTo method. That way <code>null</code> checks are not necessary and it is easier to see why instantiation of the model failed.</p>
+<p>::java try { MyModel model = modelFactory.createModel(object, MyModel.class); } catch (Exception e) { // give out error message that the model could not be instantiated. // The exception contains further information. // See the javadoc of the ModelFactory for which Exception can be expected here }</p>
+<p>In addition <code>ModelFactory</code> provides methods for checking whether a given class is a model at all (having the model annotation) or whether a class can be adapted from a given adaptable.</p>
+<h1>Other Options</h1>
+<h2>Names</h2>
+<p>If the field or method name doesn't exactly match the property name, <code>@Named</code> can be used:</p>
+<p>::java @Model(adaptables=Resource.class) public class MyModel {</p>
+<p>@Inject @Named("secondPropertyName") private String otherName; }</p>
+<h2>Optional and Required</h2>
+<p><code>@Inject</code>ed fields/methods are assumed to be required. To mark them as optional, use <code>@Optional</code>:</p>
+<p>::java @Model(adaptables=Resource.class) public class MyModel {</p>
+<p>@Inject @Optional private String otherName; }</p>
+<p>If a majority of <code>@Inject</code>ed fields/methods are optional, it is possible (since Sling Models API 1.0.2/Impl 1.0.6) to change the default injection strategy by using adding <code>defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL</code> to the <code>@Model</code> annotation:</p>
+<p>::java @Model(adaptables=Resource.class, defaultInjectionStrategy=DefaultInjectionStrategy.OPTIONAL) public class MyModel {</p>
+<p>@Inject private String otherName; }</p>
+<p>To still mark some fields/methods as being mandatory while relying on <code>defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL</code> for all other fields, the annotation <code>@Required</code> can be used.</p>
+<p><code>@Optional</code> annotations are only evaluated when using the <code>defaultInjectionStrategy = DefaultInjectionStrategy.REQUIRED</code> (which is the default), <code>@Required</code> annotations only if using <code>defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL</code>.</p>
+<h2>Defaults</h2>
+<p>A default value can be provided (for Strings &amp; primitives):</p>
+<p>::java @Model(adaptables=Resource.class) public class MyModel {</p>
+<p>@Inject @Default(values="defaultValue") private String name; }</p>
+<p>Defaults can also be arrays:</p>
+<p>::java @Model(adaptables=Resource.class) public class MyModel {</p>
+<p>@Inject @Default(intValues={1,2,3,4}) private int[] integers; }</p>
+<p>OSGi services can be injected:</p>
+<p>::java @Model(adaptables=Resource.class) public class MyModel {</p>
+<p>@Inject private ResourceResolverFactory resourceResolverFactory; }</p>
+<p>In this case, the name is not used -- only the class name.</p>
+<h2>Collections</h2>
+<p>Lists and arrays are supported by some injectors. For the details look at the table given in <a href="#available-injectors">Available Injectors</a>:</p>
+<p>::java @Model(adaptables=Resource.class) public class MyModel {</p>
+<p>@Inject private List<Servlet> servlets; }</p>
+<p>List injection for <em>child resources</em> works by injecting grand child resources (since Sling Models Impl 1.0.6). For example, the class</p>
+<p>::java @Model(adaptables=Resource.class) public class MyModel {</p>
+<p>@Inject private List<Resource> addresses; }</p>
+<p>Is suitable for a resource structure such as:</p>
+<p>+- resource (being adapted) | +- addresses | +- address1 | +- address2</p>
+<p>In this case, the <code>addresses</code> <code>List</code> will contain <code>address1</code> and <code>address2</code>.</p>
+<h2>OSGi Service Filters</h2>
+<p>OSGi injection can be filtered:</p>
+<p>::java @Model(adaptables=SlingHttpServletRequest.class) public class MyModel {</p>
+<p>@Inject private PrintWriter out;</p>
+<p>@Inject @Named("log") private Logger logger;</p>
+<p>@Inject @Filter("(paths=/bin/something)") private List<Servlet> servlets; }</p>
+<h2>PostConstruct Methods</h2>
+<p>The <code>@PostConstruct</code> annotation can be used to add methods which are invoked upon completion of all injections:</p>
+<p>::java @Model(adaptables=SlingHttpServletRequest.class) public class MyModel {</p>
+<p>@Inject private PrintWriter out;</p>
+<p>@Inject @Named("log") private Logger logger;</p>
+<p>@PostConstruct protected void sayHello() { logger.info("hello"); } }</p>
+<p><code>@PostConstruct</code> methods in a super class will be invoked first.</p>
+<h2>Via</h2>
+<p>If the injection should be based on a JavaBean property of the adaptable, you can indicate this using the <code>@Via</code> annotation:</p>
+<p>::java @Model(adaptables=SlingHttpServletRequest.class) public interface MyModel {</p>
+<p>// will return request.getResource().adaptTo(ValueMap.class).get("propertyName", String.class) @Inject @Via("resource") String getPropertyName(); }</p>
+<h2>Source</h2>
+<p>If there is ambiguity where a given injection could be handled by more than one injector, the <code>@Source</code> annotation can be used to define which injector is responsible:</p>
+<p>::java @Model(adaptables=SlingHttpServletRequest.class) public interface MyModel {</p>
+<p>// Ensure that "resource" is retrived from the bindings, not a request attribute @Inject @Source("script-bindings") Resource getResource(); }</p>
+<h2>Adaptations</h2>
+<p>If the injected object does not match the desired type and the object implements the <code>Adaptable</code> interface, Sling Models will try to adapt it. This provides the ability to create rich object graphs. For example:</p>
+<p>::java @Model(adaptables=Resource.class) public interface MyModel {</p>
+<p>@Inject ImageModel getImage(); }</p>
+<p>@Model(adaptables=Resource.class) public interface ImageModel {</p>
+<p>@Inject String getPath(); }</p>
+<p>When a resource is adapted to <code>MyModel</code>, a child resource named <code>image</code> is automatically adapted to an instance of <code>ImageModel</code>.</p>
+<p>Constructor injection is supported for the adaptable itself. For example:</p>
+<p>::java @Model(adaptables=Resource.class) public class MyModel {</p>
+<p>public MyModel(Resource resource) { this.resource = resource; }</p>
+<p>private final Resource resource;</p>
+<p>@Inject private String propertyName; }</p>
+<h2>Sling Validation (since 1.2.0)</h2>
+<a name="validation">*See also [SLING-4161](https://issues.apache.org/jira/browse/SLING-4161)*</a>
+<p>You can use the attribute <code>validation</code> on the Model annotation to call a validation service on the resource being used by the Sling model. That attribute supports three different values:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Value </th>
+      <th>Description </th>
+      <th>Invalid validation model </th>
+      <th>No validation model found </th>
+      <th>Resource invalid according to model</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>DISABLED</code> (default) </td>
+      <td>don't validate the resource bound to the Model </td>
+      <td>Model instantiated </td>
+      <td>Model instantiated </td>
+      <td>Model instantiated</td>
+    </tr>
+    <tr>
+      <td><code>REQUIRED</code> </td>
+      <td>enforce validation of the resource bound to the Model </td>
+      <td>Model not instantiated </td>
+      <td>Model not instantiated </td>
+      <td>Model not instantiated</td>
+    </tr>
+    <tr>
+      <td><code>OPTIONAL</code> </td>
+      <td>validate the resource bound to the Model (if a validation model is found) </td>
+      <td>Model not instantiated </td>
+      <td>Model instantiated </td>
+      <td>Model not instantiated</td>
+    </tr>
+  </tbody>
+</table>
+<p>In case the model is not instantiated an appropriate error message is logged (if <code>adaptTo()</code> is used) or an appropriate exception is thrown (if <code>ModelFactory.createModel()</code> is used).</p>
+<p>The only implementation for this Sling Models validation service is leveraging <a href="/documentation/bundles/validation.html">Sling Validation</a> and is located in the bundle <a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/validation-impl/">org.apache.sling.models.validation-impl</a>. Validation is only working on models which are adapted from either <code>Resource</code> or <code>SlingHttpServletRequest</code> and if the Sling Validation Bundle is deployed.</p>
+<h1>Custom Injectors</h1>
+<p>To create a custom injector, simply implement the <code>org.apache.sling.models.spi.Injector</code> interface and register your implementation with the OSGi service registry. Please refer to the standard injectors in <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/">Subversion</a> for examples.</p>
+<p>Injectors are invoked in order of their service ranking, from lowest to highest. See the table below for the rankings of the standard injectors.</p>
+<h1>Annotation Reference</h1>
+<p><code>@Model</code> : declares a model class or interface</p>
+<p><code>@Inject</code> : marks a field or method as injectable</p>
+<p><code>@Named</code> : declare a name for the injection (otherwise, defaults based on field or method name).</p>
+<p><code>@Optional</code> : marks a field or method injection as optional</p>
+<p><code>@Source</code> : explictly tie an injected field or method to a particular injector (by name). Can also be on other annotations.</p>
+<p><code>@Filter</code> : an OSGi service filter</p>
+<p><code>@PostConstruct</code> : methods to call upon model option creation (only for model classes)</p>
+<p><code>@Via</code> : use a JavaBean property of the adaptable as the source of the injection</p>
+<p><code>@Default</code> : set default values for a field or method</p>
+<p><code>@Path</code> : only used together with the resource-path injector to specify the path of a resource</p>
+<p><code>@Exporters</code>/<code>@Exporter</code>/<code>@ExporterOptions</code>/<code>@ExporterOption</code> : See Exporter Framework section below</p>
+<p>In addition all <a href="#injector-specific-annotations">injector-specific annotations</a>.</p>
+<h1>Available Injectors</h1>
+<table>
+  <thead>
+    <tr>
+      <th>Title </th>
+      <th>Name (for <code>@Source</code>) </th>
+      <th>Service Ranking </th>
+      <th>Available Since (Implementation Version) </th>
+      <th>Description </th>
+      <th>Applicable To (including using <code>@Via</code>) </th>
+      <th>Accepts Null Name? </th>
+      <th>Array Support </th>
+      <th>Parameterized Type Support</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Script Bindings </td>
+      <td><code>script-bindings</code> </td>
+      <td>1000 </td>
+      <td>1.0.0 </td>
+      <td>Lookup objects in the script bindings object by name. </td>
+      <td>A ServletRequest object which has the <code>Sling Bindings</code> attribute defined </td>
+      <td>no </td>
+      <td>no conversion is done </td>
+      <td>If a parameterized type is passed, the bindings value must be of a compatible type of the parameterized type.</td>
+    </tr>
+    <tr>
+      <td>Value Map </td>
+      <td><code>valuemap</code> </td>
+      <td>2000 </td>
+      <td>1.0.0 </td>
+      <td>Gets a property from a <code>ValueMap</code> by name. </td>
+      <td>Any object which is or can be adapted to a <code>ValueMap</code></td>
+      <td>no </td>
+      <td>Primitive arrays wrapped/unwrapped as necessary. Wrapper object arrays are unwrapped/wrapped as necessary. </td>
+      <td>Parameterized <code>List</code> and <code>Collection</code> injection points are injected by getting an array of the component type and creating an unmodifiable <code>List</code> from the array.</td>
+    </tr>
+    <tr>
+      <td>Child Resources </td>
+      <td><code>child-resources</code> </td>
+      <td>3000 </td>
+      <td>1.0.0 </td>
+      <td>Gets a child resource by name. </td>
+      <td><code>Resource</code> objects </td>
+      <td>no </td>
+      <td>none </td>
+      <td>if a parameterized type <code>List</code> or <code>Collection</code> is passed, a <code>List&lt;Resource&gt;</code> is returned (the contents of which may be adapted to the target type) filled with all child resources of the resource looked up by the given name.</td>
+    </tr>
+    <tr>
+      <td>Request Attributes </td>
+      <td><code>request-attributes</code> </td>
+      <td>4000 </td>
+      <td>1.0.0 </td>
+      <td>Get a request attribute by name. </td>
+      <td><code>ServletRequest</code> objects </td>
+      <td>no </td>
+      <td>no conversion is done </td>
+      <td>If a parameterized type is passed, the request attribute must be of a compatible type of the parameterized type.</td>
+    </tr>
+    <tr>
+      <td>OSGi Services </td>
+      <td><code>osgi-services</code> </td>
+      <td>5000 </td>
+      <td>1.0.0 </td>
+      <td>Lookup services based on class name. Since Sling Models Impl 1.2.8 (<a href="https://issues.apache.org/jira/browse/SLING-5664">SLING-5664</a>) the service with the highest service ranking is returned. In case multiple services are returned, they are ordered descending by their service ranking (i.e. the one with the highest ranking first). </td>
+      <td>Any object </td>
+      <td>yes </td>
+      <td>yes </td>
+      <td>Parameterized <code>List</code> and <code>Collection</code> injection points are injected by getting an array of the services and creating an unmodifiable <code>List</code> from the array.</td>
+    </tr>
+    <tr>
+      <td>Resource Path </td>
+      <td><code>resource-path</code> </td>
+      <td>2500 </td>
+      <td>1.1.0 </td>
+      <td>Injects one or multiple resources. The resource paths are either given by <code>@Path</code> annotations, the element <code>path</code> or <code>paths</code> of the annotation <code>@ResourcePath</code> or by paths given through a resource property being referenced by either <code>@Named</code> or element <code>name</code> of the annotation <code>@ResourcePath</code>. </td>
+      <td><code>Resource</code> or <code>SlingHttpServletRequest</code> objects </td>
+      <td>yes </td>
+      <td>yes </td>
+      <td>none</td>
+    </tr>
+    <tr>
+      <td>Self </td>
+      <td><code>self</code> </td>
+      <td><code>Integer.MAX_VALUE</code> </td>
+      <td>1.1.0 </td>
+      <td>Injects the adaptable object itself (if the class of the field matches or is a supertype). If the @Self annotation is present it is tried to adapt the adaptable to the field type. </td>
+      <td>Any object </td>
+      <td>yes </td>
+      <td>none </td>
+      <td>none</td>
+    </tr>
+    <tr>
+      <td>Sling Object </td>
+      <td><code>sling-object</code> </td>
+      <td><code>Integer.MAX_VALUE</code> </td>
+      <td>1.1.0 </td>
+      <td>Injects commonly used sling objects if the field matches with the class: request, response, resource resolver, current resource, SlingScriptHelper. This works only if the adaptable can get the according information, i.e. all objects are available via <code>SlingHttpServletRequest</code> while <code>ResourceResolver</code> can only resolve the <code>ResourceResolver</code> object and nothing else. A discussion around this limitation can be found at <a href="https://issues.apache.org/jira/browse/SLING-4083">SLING-4083</a>. Also <code>Resource</code>s can only be injected if the according injector-specific annotation is used (<code>@SlingObject</code>). </td>
+      <td><code>Resource</code>, <code>ResourceResolver</code> or <code>SlingHttpServletRequest</code> objects (not all objects can be resolved by all adaptables). </td>
+      <td>yes </td>
+      <td>none </td>
+      <td>none</td>
+    </tr>
+  </tbody>
+</table>
+<h1>Injector-specific Annotations</h1>
+<p><em>Introduced with <a href="https://issues.apache.org/jira/browse/SLING-3499">SLING-3499</a> in Sling Models Impl 1.0.6</em></p>
+<p>Sometimes it is desirable to use customized annotations which aggregate the standard annotations described above. This will generally have the following advantages over using the standard annotations:</p>
+<ul>
+  <li>Less code to write (only one annotation is necessary in most of the cases)</li>
+  <li>More robust (in case of name collisions among the different injectors, you make sure that the right injector is used)</li>
+  <li>Better IDE support (because the annotations provide elements for each configuration which is available for that specific injector, i.e. <code>filter</code> only for OSGi services)</li>
+</ul>
+<p>The follow annotations are provided which are tied to specific injectors:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Annotation </th>
+      <th>Supported Optional Elements </th>
+      <th>Injector </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>@ScriptVariable</code> </td>
+      <td><code>injectionStrategy</code> and <code>name</code> </td>
+      <td><code>script-bindings</code> </td>
+      <td>Injects the script variable defined via <a href="https://cwiki.apache.org/confluence/display/SLING/Scripting+variables">Sling Bindings</a>. If <code>name</code> is not set the name is derived from the method/field name.</td>
+    </tr>
+    <tr>
+      <td><code>@ValueMapValue</code> </td>
+      <td><code>injectionStrategy</code>, <code>name</code> and <code>via</code> </td>
+      <td><code>valuemap</code> </td>
+      <td>Injects a <code>ValueMap</code> value. If <code>via</code> is not set, it will automatically take <code>resource</code> if the adaptable is the <code>SlingHttpServletRequest</code>. If <code>name</code> is not set the name is derived from the method/field name.</td>
+    </tr>
+    <tr>
+      <td><code>@ChildResource</code> </td>
+      <td><code>injectionStrategy</code>, <code>name</code> and <code>via</code> </td>
+      <td><code>child-resources</code> </td>
+      <td>Injects a child resource by name. If <code>via</code> is not set, it will automatically take <code>resource</code> if the adaptable is the <code>SlingHttpServletRequest</code>. If <code>name</code> is not set the name is derived from the method/field name.</td>
+    </tr>
+    <tr>
+      <td><code>@RequestAttribute</code> </td>
+      <td><code>injectionStrategy</code>, <code>name</code> and <code>via</code> </td>
+      <td><code>request-attributes</code> </td>
+      <td>Injects a request attribute by name. If <code>name</code> is not set the name is derived from the method/field name.</td>
+    </tr>
+    <tr>
+      <td><code>@ResourcePath</code> </td>
+      <td><code>injectionStrategy</code>, <code>path</code>, and <code>name</code> </td>
+      <td><code>resource-path</code> </td>
+      <td>Injects a resource either by path or by reading a property with the given name.</td>
+    </tr>
+    <tr>
+      <td><code>@OSGiService</code> </td>
+      <td><code>injectionStrategy</code>, <code>filter</code> </td>
+      <td><code>osgi-services</code> </td>
+      <td>Injects an OSGi service by type. The <code>filter</code> can be used give an OSGi service filter.</td>
+    </tr>
+    <tr>
+      <td><code>@Self</code> </td>
+      <td><code>injectionStrategy</code> </td>
+      <td><code>self</code> </td>
+      <td>Injects the adaptable itself. If the field type does not match with the adaptable it is tried to adapt the adaptable to the requested type.</td>
+    </tr>
+    <tr>
+      <td><code>@SlingObject</code> </td>
+      <td><code>injectionStrategy</code> </td>
+      <td><code>sling-object</code> </td>
+      <td>Injects commonly used sling objects if the field matches with the class: request, response, resource resolver, current resource, SlingScriptHelper</td>
+    </tr>
+  </tbody>
+</table>
+<h2>Hints</h2>
+<p>Those annotations replace <code>@Via</code>, <code>@Filter</code>, <code>@Named</code>, <code>@Optional</code>, <code>@Required</code>, <code>@Source</code> and <code>@Inject</code>. Instead of using the deprecated annotation element <code>optional</code> you should rather use <code>injectionStrategy</code> with the values <code>DEFAULT</code>, <code>OPTIONAL</code> or <code>REQUIRED</code> (see also <a href="https://issues.apache.org/jira/browse/SLING-4155">SLING-4155</a>). <code>@Default</code> may still be used in addition to the injector-specific annotation to set default values. All elements given above are optional.</p>
+<h2>Custom Annotations</h2>
+<p>To create a custom annotation, implement the <code>org.apache.sling.models.spi.injectorspecific.StaticInjectAnnotationProcessorFactory</code> interface. This interface may be implemented by the same class as implements an injector, but this is not strictly necessary. Please refer to the injectors in <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/injectors/">Subversion</a> for examples.</p>
+<h1>Specifying an Alternate Adapter Class (since 1.1.0)</h1>
+<p>By default, each model class is registered using its own implementation class as adapter. If the class has additional interfaces this is not relevant.</p>
+<p>The <code>@Model</code> annotations provides an optional <code>adapters</code> attribute which allows specifying under which type(s) the model implementation should be registered in the Models Adapter Factory. Prior to <em>Sling Models Impl 1.3.10</em> only the given class names are used as adapter classes, since 1.3.10 the implementation class is always being registered implicitly as adapter as well (see <a href="https://issues.apache.org/jira/browse/SLING-6658">SLING-6658</a>). With this attribute it is possible to register the model to one (or multiple) interfaces, or a superclass. This allows separating the model interface from the implementation, which makes it easier to provide mock implementations for unit tests as well.</p>
+<p>Example:</p>
+<p>::java @Model(adaptables = Resource.class, adapters = MyService.class) public class MyModel implements MyService { // injects fields and implements the MyService methods }</p>
+<p>In this example a <code>Resource</code> can be adapted to a <code>MyService</code> interface, and the Sling Models implementation instantiates a <code>MyModel</code> class for this.</p>
+<p>It is possible to have multiple models implementing the same interface. By default Sling Models will just take the first one ordered alphabetically by the class name. Applications can provide an OSGi service implementing the <code>ImplementationPicker</code> SPI interface which could use context to determine which implementation can be chosen, e.g. depending an a tenant or content path context. If multiple implementations of the <code>ImplementationPicker</code> interface are present, they are queried one after another in order of their service ranking property, the first one that picks an implementation wins.</p>
+<h1>Associating a Model Class with a Resource Type (since 1.3.0)</h1>
+<p>The <code>@Model</code> annotation provides an optional <code>resourceType</code> attribute which allows for model classes to be associated with one or more resource types. This is used in three different ways.</p>
+<p>In the case of multiple model classes implementing the same interface, the class with the "closest" resource type will be used when adapting to the interface.</p>
+<p>The <code>ModelFactory</code> service interface has methods <code>Object getModelFromResource(Resource)</code> and <code>Object getModelFromRequest(SlingHttpServletRequest)</code> which will dynamically determine the adapter class based on the <code>Resource</code> using its type. In the case of the <code>SlingHttpServletRequest</code> method, it uses the request's <code>Resource</code> object (i.e. by calling <code>request.getResource()</code>)</p>
+<p>The resource type is also used as part of the Exporter framework (see next section).</p>
+<h1>Exporter Framework (since 1.3.0)</h1>
+<p>Sling Models objects can be exported to arbitrary Java objects through the Sling Models Exporter framework. Model objects can be programatically exported by calling the <code>ModelFactory</code> method <code>exportModel()</code>. This method takes as its arguments:</p>
+<ul>
+  <li>the model object</li>
+  <li>an exporter name</li>
+  <li>a target class</li>
+  <li>a map of options</li>
+</ul>
+<p>The exact semantics of the exporting will be determined by an implementation of the <code>ModelExporter</code> service interface. Sling Models currently includes a single exporter, using the Jackson framework, which is capable of serializing models as JSON or transforming them to <code>java.util.Map</code> objects.</p>
+<p>In addition, model objects can have servlets automatically registered for their resource type (if it is set) using the <code>@Exporter</code> annotation. For example, a model class with the annotation</p>
+<p>::java @Model(adaptable = Resource.class, resourceType = "myco/components/foo") @Exporter(name = "jackson", extensions = "json")</p>
+<p>results in the registration of a servlet with the resource type and extension specified and a selector of 'model' (overridable through the <code>@Exporter</code> annotation's <code>selector</code> attribute). When this servlet is invoked, the <code>Resource</code> will be adapted to the model, exported as a <code>java.lang.String</code> (via the named Exporter) and then returned to the client.</p>
+<h1>Registration of Sling Models classes via bnd plugin</h1>
+<p>With the Sling Models bnd plugin it is possible to automatically generated the necessary bundle header to register the Sling Models classes contained in the Maven bundle project - either with maven-bundle-plugin or with bnd-maven-plugin. By default the plugin generates a <code>Sling-Model-Classes</code> header (only compatible with Sling Models Impl since version 1.3.4, see <a href="https://issues.apache.org/jira/browse/SLING-6308">SLING-6308</a>).</p>
+<p>Example configuration:</p>
+<h1>!xml</h1>
+<p><plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> &lt;_plugin&gt;org.apache.sling.bnd.models.ModelsScannerPlugin&lt;/_plugin&gt; </instructions> </configuration> <dependencies> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.bnd.models</artifactId> <version>1.0.0</version> </dependency> </dependencies> </plugin></p>
+<p>If a <code>Sling-Model-Packages</code> or <code>Sling-Model-Classes</code> was already manually defined for the bundle the bnd plugin does nothing. So if you want to migrate an existing project to use this plugin remove the existing header definitions.</p>
+<p>If you want to generate a bundle header compliant with Sling Models &lt; 1.3.4 (i.e. <code>Sling-Model-Packages</code>) you need to specify the attribute <code>generatePackagesHeader=true</code>. An example configuration looks like this</p>
+<h1>!xml</h1>
+<p><configuration> <instructions> &lt;_plugin&gt;org.apache.sling.bnd.models.ModelsScannerPlugin;generatePackagesHeader=true&lt;/_plugin&gt; </instructions> </configuration></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/nosql-resource-providers.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/nosql-resource-providers.html b/documentation/bundles/nosql-resource-providers.html
new file mode 100644
index 0000000..7b151c2
--- /dev/null
+++ b/documentation/bundles/nosql-resource-providers.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>NoSQL Resource Providers (org.apache.sling.nosql)</h1></header><p>[TOC]</p>
+<h2>Introduction</h2>
+<p>Apache Sling provides resource-based access to NoSQL document stores like MongoDB and Couchbase via its Resource API using the NoSQL resource providers. This is possible in combination with a JCR-based repository (e.g. only on a special path in the resource tree), or a only persistence for the whole resource tree depending on the resource provider configuration.</p>
+<p>The general concept of retrieving from and storing resource data in NoSQL document stores is the same independently from the NoSQL product used:</p>
+<ul>
+  <li>For each resource a structured document is stored (usually in JSON format)</li>
+  <li>The path of the resource is the key of the document</li>
+  <li>The properties of the resource are stored in a map-like form in the document</li>
+  <li>Special mapping applies to convert special data types like numbers, dates and binary data to a format that can safely stored in the document event if the format is not natively supported (e.g. converting dates to strings and binary to base64)</li>
+  <li>The Sling CRUD support defines a simple transaction model with buffering all changes in memory until a call to "commit()" persists them to the NoSQL database</li>
+  <li>Iterating over child resources and deleting a resource including all descendants requires some basic query capabilities in the NoSQL store</li>
+</ul>
+<p>All these general features are implemented in an abstraction layer called <a href="https://github.com/apache/sling/tree/trunk/contrib/nosql/generic">"Apache Sling NoSQL Generic Resource Provider"</a>, which is used by the resource provider implementations per NoSQL product. Those implementation than only implement a thin "adapter" which maps the resource data to the NoSQL product-specific storage formats and query capabilities, without having to care about all the complex resource provider handling.</p>
+<p>This generic resource provider also contains a set of integration tests covering the most relevant resource read- and write usecases which can be used to test a NoSQL product-specific resource provider implementation and the underlying NoSQL database.</p>
+<h2>MongoDB NoSQL Resource Provider</h2>
+<p>Resource provider for <a href="https://www.mongodb.org/">MongoDB</a> NoSQL database.</p>
+<p>Tested with MongoDB Server 3.0.6 and MongoDB Java Driver 3.1.1.</p>
+<p>Configuration example:</p>
+<p>org.apache.sling.nosql.mongodb.resourceprovider.MongoDBNoSqlResourceProviderFactory.factory.config-default provider.roots=["/"] connectionString="localhost:27017" database="sling" collection="resources"</p>
+<p>See Apache Felix OSGi console for detailed documentation of the parameters. All resource data is stored in one Collection of one MongoDB database. Each resource is stored as a document with the path stored in an "_id" property.</p>
+<p>Source code: <a href="https://github.com/apache/sling/tree/trunk/contrib/nosql/mongodb-resourceprovider">Apache Sling NoSQL MongoDB Resource Provider</a></p>
+<p>Please note: there is an <a href="https://github.com/apache/sling/tree/trunk/contrib/extensions/mongodb">alternative MongoDB resource provider implementation</a> from 2012 which has less features, a slightly different concept for storing resource data (in multiple collections), and it does not use the "Generic Resource Provider".</p>
+<h2>Couchbase NoSQL Resource Provider</h2>
+<p>Resource provider for <a href="http://www.couchbase.com/">Couchbase</a> NoSQL database.</p>
+<p>Tested with Couchbase Server 4.0.0 and Couchbase Java SDK 2.2.4. Please note: Couchbase 4 or higher is mandatory because N1QL support is required.</p>
+<p>Configuration example:</p>
+<p>org.apache.sling.nosql.couchbase.resourceprovider.CouchbaseNoSqlResourceProviderFactory.factory.config-default provider.roots=["/"]</p>
+<p>org.apache.sling.nosql.couchbase.client.CouchbaseClient.factory.config-default clientId="sling-resourceprovider-couchbase" couchbaseHosts="localhost:8091" bucketName="sling" enabled=B"true"</p>
+<p>See Apache Felix OSGi console for detailed documentation of the parameters. All resource data is stored in one Couchbase bucket. Each resource is stored as a document with the path as key.</p>
+<p>Source code: <a href="https://github.com/apache/sling/tree/trunk/contrib/nosql/couchbase-resourceprovider">Apache Sling NoSQL Couchbase Resource Provider</a></p>
+<p>The resource provider requires and additional bundle <a href="https://github.com/apache/sling/tree/trunk/contrib/nosql/couchbase-client">Apache Sling NoSQL Couchbase Client</a> which wraps the Couchbase Java SDK (which itself is not an OSGi bundle), and ensures that the Couchbase Environment instance is used as a singleton in the VM.</p>
+<h2>Example Launchpad</h2>
+<p>An example launchpad is provided that contains the NoSQL resource providers configured as main resource provider at <code>/</code>.</p>
+<p>Source code: <a href="https://github.com/apache/sling/tree/trunk/contrib/nosql/launchpad">Apache Sling NoSQL Launchpad</a></p>
+<p>See README for details how to start the launchpad.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/org-apache-sling-junit-bundles.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/org-apache-sling-junit-bundles.html b/documentation/bundles/org-apache-sling-junit-bundles.html
new file mode 100644
index 0000000..fd937ad
--- /dev/null
+++ b/documentation/bundles/org-apache-sling-junit-bundles.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>JUnit server-side testing support bundles</h1></header><p>This is an overview of the Sling bundles that provide support for server-side JUnit tests.</p>
+<p>The Maven modules below <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/samples"><code>testing/samples</code></a> provide different examples including HTTP-based and server-side teleported tests in a bundle module, running against a full Sling instance setup in the same Maven module.</p>
+<h2>org.apache.sling.junit.core: server-side JUnit tests support</h2>
+<p>This bundle provides a <code>JUnitServlet</code> that runs JUnit tests found in bundles.</p>
+<div class="warning">
+Note that the JUnitServlet does not require authentication, so it would allow any client to run tests. The servlet can be disabled by configuration if needed, but in general the `/system` path should not be accessible to website visitors anyway.
+</div>
+<div class="note">
+For tighter integration with Sling, the alternate `SlingJUnitServlet` is registered with the `sling/junit/testing` resource type and `.junit` selector, if the bundle is running in a Sling system. Using this servlet instead of the plain JUnitServlet also allows Sling authentication to be used for running the tests, and the standard Sling request processing is used, including servlet filters for example.
+</div>
+<p>To make tests available to that servlet, the bundle that contains them must point to them with a <code>Sling-Test-Regexp</code> bundle header that defines a regular expression that matches the test class names, like for example:</p>
+<p>Sling-Test-Regexp=com.example.*ServerSideTest</p>
+<h3>The TeleporterRule</h3>
+<p>The <code>TeleporterRule</code> supplied by this bundle (since V1.0.12) makes it easy to write such tests, as it takes care of all the mechanics of</p>
+<ol>
+  <li>creating the test bundle including all necessary classes for execution</li>
+  <li>adding the <code>Sling-Test-Regexp</code> header to the bundles manifest</li>
+  <li>deploy the bundle on an Sling server (with the help of the customizer)</li>
+  <li>calling the <code>JUnitServlet</code> from the client-side and report back the results</li>
+  <li>uninstalling the test bundle</li>
+</ol>
+<p>Most of these steps are done on the client-side by the org.apache.sling.junit.teleporter module (see below).</p>
+<p>Using this rule the server-side tests can be mixed with other tests in the source code if that's convenient, it just requires the <code>junit.core</code> and <code>junit.teleporter</code> modules described on this page to create such tests.</p>
+<p>Here's a basic example of a server-side test that accesses OSGi services:</p>
+<p>public class BasicTeleporterTest {</p>
+<p>@Rule public final TeleporterRule teleporter = TeleporterRule.forClass(getClass(), "Launchpad");</p>
+<p>@Test public void testConfigAdmin() throws IOException { final String pid = "TEST_" + getClass().getName() + UUID.randomUUID();</p>
+<p>final ConfigurationAdmin ca = teleporter.getService(ConfigurationAdmin.class); assertNotNull("Teleporter should provide a ConfigurationAdmin", ca);</p>
+<p>final Configuration cfg = ca.getConfiguration(pid); assertNotNull("Expecting to get a Configuration", cfg); assertEquals("Expecting the correct pid", pid, cfg.getPid()); } }</p>
+<p>That's all there is to it, the <code>TeleporterRule</code> takes care of the rest.</p>
+<p>The test bundle being build and deployed through this rule usually happens quickly as the temporary bundle is very small. Both the client-side and server-side parts of the test can be debugged easily with the appropriate IDE settings.</p>
+<p>The <code>Teleporter.getService</code> method takes an optional OSGi LDAP filter for service selection, like for example:</p>
+<p>final StringTransformer t = teleporter.getService(StringTransformer.class, "(mode=uppercase)");</p>
+<p>The method waits for the service to be available or until the timeout elapsed (<a href="https://issues.apache.org/jira/browse/SLING-6031">SLING-6031</a>).</p>
+<p>And starting with version 1.0.4 of the <code>org.apache.sling.junit.teleporter</code> bundle, you can specify resources to embed in the test bundle, as in this example:</p>
+<p>@Rule public final TeleporterRule teleporter = TeleporterRule.forClass(getClass(), "Launchpad") .withResources("/foo/", "/some/other/resource.txt");</p>
+<p>which will embed all resources found under <code>/foo</code> as well as the <code>resource.txt</code> in the test bundle, making them available to the server-side tests.</p>
+<p>This teleporter mechanism is used in our integration tests, search for <code>TeleporterRule</code> in there for examples or look at the <a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/teleporter"><code>integrationtest.teleporter</code></a> package.</p>
+<p>As I write this the teleporter mechanism is quite new, I suspect there might be some weird interactions between things like <code>@AfterClass</code>, custom test runners and this mechanism but it works well to a growing number of tests in our <code>launchpad/integration-tests</code> module. Moving to JUnit <code>Rules</code> as much as possible, and combining them using JUnit's <code>RuleChain</code>, should help work around such limitations if they arise.</p>
+<h3>More details on the JUnitServlet</h3>
+<p>To try the JUnitServlet interactively, you can install a bundle that contains tests and a <code>Sling-Test-Regexp</code> bundle header that points to them, as described above. Or use the <code>TeleporterRule</code> and set a breakpoint in the tests execution, when the test bundle in installed and listed by the test servlet.</p>
+<p>To list the available tests, open <code>/system/sling/junit/</code> in your browser. The servlet shows available tests and allows you to execute them via a POST request.</p>
+<p>Adding a path allows you to select a specific subset of tests, as in <code>/system/sling/junit/org.apache.sling.junit.remote.html</code></p>
+<p>The JUnitServlet provides various output formats, including in particular JSON, see <code>/system/sling/junit/.json</code> for example.</p>
+<h2>org.apache.sling.junit.teleporter: client-side TeleporterRule support</h2>
+<p>This module provides the <code>ClientSideTeleporter</code> which the <code>TeleporterRule</code> uses to package the server-side tests in bundles that's installed temporarily on the test server. Almost all steps described above in <a href="#the-teleporterrule">The TeleporterRule</a> are being performed by this module.</p>
+<p>This module is not a bundle, as it's used on the client only, as a dependency when running the tests.</p>
+<h3>TeleporterRule.Customizer</h3>
+<p>A <code>TeleporterRule.Customizer</code> is used to setup the <code>ClientSideTeleporter</code>. That customizer is instantiated dynamically based on a String passed to the <code>TeleporterRule.forClass</code> method as 2nd parameter. As an example from our <code>launchpad/integration-tests</code> module, this call</p>
+<p>TeleporterRule.forClass(getClass(), "Launchpad:author");</p>
+<p>causes the <code>TeleporterRule</code> to use the <code>org.apache.sling.junit.teleporter.customizers.LaunchpadCustomizer</code> class to setup the <code>ClientSideTeleporter</code>, and passes the "author" string to it as an option. Although our current <code>LaunchpadCustomizer</code> does not use this options string, it is meant to select a specific server (of family of servers) to run the tests on.</p>
+<p>The options string can also use a full class name instead of the <code>Launchpad</code> short form used here, if needed. The part of that string that follows the first colon is passed to the customizer as is.</p>
+<p>Using Strings for customization reduces the coupling with the <code>junit.core</code> bundle, as it does not need to know those classes which are used only on the client side when running tests.</p>
+<p>If <code>TeleporterRule.forClass(getClass())</code> is used (the method without an additional 2nd parameter) the default customizer is used (<a href="https://issues.apache.org/jira/browse/SLING-5677">SLING-5677</a>, since version 1.0.8).</p>
+<p>The following customizers are currently used in Sling</p>
+<h3>Default Customizer</h3>
+<p><em><a href="https://svn.apache.org/repos/asf/sling/trunk/testing/junit/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/DefaultPropertyBasedCustomizer.java">DefaultPropertyBasedCustomizer.java</a></em> is used by default when no other customizer is referenced in <code>TeleporterRule.forClass(getClass())</code>. It relies on the following system properties:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property Name </th>
+      <th>Description </th>
+      <th>Mandatory to set </th>
+      <th>Default value </th>
+      <th>Since version </th>
+      <th>Related JIRA </th>
+    </tr>
+  </thead>
+</table>
+<p>| <code>ClientSideTeleporter.baseUrl</code> | base url of the Sling Server to which to deploy. | yes | - | 1.0.8 | <a href="https://issues.apache.org/jira/browse/SLING-5677">SLING-5677</a> | | <code>ClientSideTeleporter.includeDependencyPrefixes</code> | comma-separated list of package prefixes for classes referenced from the IT. Only the classes having one of the given package prefix are included in the bundle being deployed to the given Sling instance together with the IT class itself. They are only included though in case they are referenced! If this is not set, no referenced classes will be included. | no | - | 1.0.8 | <a href="https://issues.apache.org/jira/browse/SLING-5677">SLING-5677</a> | | <code>ClientSideTeleporter.excludeDependencyPrefixes</code> | comma-separated list of package prefixes for classes referenced from the IT. Classes having one of the given package prefix will not be included in the bundle being deployed to the given Sling instance together with the IT 
 class itself. This takes precedence over the <code>ClientSideTeleporter.includeDependencyPrefixes</code>. | no | - | 1.0.8 | <a href="https://issues.apache.org/jira/browse/SLING-5677">SLING-5677</a> | | <code>ClientSideTeleporter.embedClasses</code> | comma-separated list of fully qualified class names which should be embedded in the test bundle. Use this only for classes which are not detected automatically by the Maven Dependency Analyzer but still should be embedded in the test bundle | no | - | 1.0.8 | <a href="https://issues.apache.org/jira/browse/SLING-5677">SLING-5677</a> | | <code>ClientSideTeleporter.embedClassesDirectories</code> | comma-separated list directories containing class files which should be embedded in the test bundle. Use this only for classes which are not detected automatically by the Maven Dependency Analyzer but still should be embedded in the test bundle | no | - | 1.0.12 | <a href="https://issues.apache.org/jira/browse/SLING-6551">SLING-6551</a> | | <cod
 e>ClientSideTeleporter.additionalBundleHeaders</code> | comma-separated list of entries in the format <code>&lt;name&gt;:&lt;value&gt;</code> which should be added to the test bundle as additional headers | no | - | 1.0.12 | <a href="https://issues.apache.org/jira/browse/SLING-6558">SLING-6558</a> | | <code>ClientSideTeleporter.testReadyTimeoutSeconds</code> | how long to wait for our test to be ready on the server-side in seconds, after installing the test bundle. | no | <code>12</code> | 1.0.8 | <a href="https://issues.apache.org/jira/browse/SLING-5677">SLING-5677</a> | | <code>ClientSideTeleporter.serverUsername</code> | the username with which to send requests to the Sling server. | no | <code>admin</code> | 1.0.8 | <a href="https://issues.apache.org/jira/browse/SLING-5677">SLING-5677</a> | | <code>ClientSideTeleporter.serverPassword</code> | the password with which to send requests to the Sling server. | no | <code>admin</code> | 1.0.8 | <a href="https://issues.apache.org/jira/
 browse/SLING-5677">SLING-5677</a> | | <code>ClientSideTeleporter.enableLogging</code> | set to <code>true</code> to log the tasks being performed by the teleporter. Useful for debugging. | no | <code>false</code> | 1.0.12 | <a href="https://issues.apache.org/jira/browse/SLING-6546">SLING-6546</a> | | <code>ClientSideTeleporter.preventToUninstallBundle</code> | set to <code>true</code> to not automatically uninstall the test bundle after test execution. Useful for debugging. | no | <code>false</code> | 1.0.12 | <a href="https://issues.apache.org/jira/browse/SLING-6546">SLING-6546</a> | | <code>ClientSideTeleporter.testBundleDirectory</code> | if set the test bundles are being persisted (before being installed) within the given directory name. If the directory does not exist, it will be automatically created. Useful for debugging. Recommended value <code>${project.build.directory}/test-bundles</code>. | no | - | 1.0.12 | <a href="https://issues.apache.org/jira/browse/SLING-6546">SLING
 -6546</a> |</p>
+<p>The provisioning of an appropriate instance can be done with the <a href="/documentation/development/slingstart.html">slingstart-maven-plugin</a>. An example for that is given at <a href="https://svn.apache.org/viewvc/sling/trunk/testing/samples/module-with-it"><code>testing/samples/module-with-it</code></a>. Since <code>slingstart-maven-plugin</code> 1.5.0 it is possible to bootstrap a Sling Server from a <code>model.txt</code> below <code>src/test/provisioning</code> independent of the packaging (see <a href="https://issues.apache.org/jira/browse/SLING-6068">SLING-6068</a>).</p>
+<h4>LaunchpadCustomizer</h4>
+<p>The <em><a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/junit/teleporter/customizers/LaunchpadCustomizer.java"><code>LaunchpadCustomizer.java</code></a></em> only verifies that a Sling instance is ready at a given port and configures the <code>ClientSideTeleporter</code> to deploy to <code>http://localhost:8888</code> with the credentials <code>admin</code>:<code>admin</code>. <code>LaunchpadCustomizer</code> uses the <code>HttpTestBase</code> therefore some parameters are customizable through system properties. There is no bootstrapping of an instance done here, so this must be done separately!</p>
+<h4>BWIT_TeleporterCustomizer</h4>
+<p>The <em><a href="http://svn.apache.org/viewvc/sling/trunk/testing/samples/bundle-with-it/src/test/java/org/apache/sling/junit/teleporter/customizers/BWIT_TeleporterCustomizer.java"><code>BWIT_TeleporterCustomizer.java</code></a></em> relies on <code>SlingTestBase</code> to set the server's base url and credentials. Additionally the test bundle is adjusted so that the API is not included in it (but rather referenced from another bundle). The bootstrapping of the Sling instance is tweaked through system properties which are desribed <a href="http://labs.6dglobal.com/blog/2013-06-05/creating-integration-tests-apache-sling/">here</a> and implicitly done by the customizer itself.</p>
+<p>Those should give you an overview on what can be done with a customizer and decide whether you need to write your own one or using the default customizer is just enough.</p>
+<h2>org.apache.sling.junit.healthcheck: run JUnit tests as Sling Health Checks</h2>
+<p>This bundle allows JUnit tests to run as <a href="/documentation/bundles/sling-health-check-tool.html">Sling Health Checks</a>, which can be useful when defining smoke tests for example, allowing them to be used both at build time and run time.</p>
+<p>See the <code>JUnitHealthCheck</code> class for details.</p>
+<h2>org.apache.sling.junit.scriptable: scriptable server-side tests</h2>
+<p>This bundle allows Sling scripts to be executed from the <code>JUnitServlet</code> as JUnit tests, as follows:</p>
+<ul>
+  <li>A node that has the <code>sling:Test</code> mixin is a scriptable test node.</li>
+  <li>For security reasons, scriptable test nodes are only executed as tests if they are found under <code>/libs</code> or <code>/apps</code>, or more precisely under a path that's part of Sling's <code>ResourceResolver</code> search path.</li>
+  <li>To execute a test, the scriptable tests provider makes an HTTP request to the test node's path, with a <code>.test.txt</code> selector and extension, and expects the output to contain only the string <code>TEST_PASSED</code>. Empty lines and comment lines starting with a hash sign (#) are ignored in the output, and other lines are reported as failures.</li>
+</ul>
+<p>Here's a minimal example that sets up and executes a scriptable test:</p>
+<p>$ curl -u admin:admin -Fjcr:primaryNodeType=sling:Folder -Fsling:resourceType=foo -Fjcr:mixinTypes=sling:Test http://localhost:8080/apps/foo ... $ echo TEST_PASSED &gt; /tmp/test.txt.esp ; curl -u admin:admin -T/tmp/test.txt.esp http://localhost:8080/apps/foo/test.txt.esp</p>
+<p>At this point, foo.test.txt is what the scriptable test framework will request, and that outputs just TEST_PASSED:</p>
+<p>$ curl -u admin:admin http://localhost:8080/apps/foo.test.txt TEST_PASSED</p>
+<p>And a POST to the JUnit servlet returns information on the test's execution:</p>
+<p>curl -u admin:admin -XPOST http://localhost:8080/system/sling/junit/org.apache.sling.junit.scriptable.ScriptableTestsProvider.json [{ "INFO_TYPE": "test", "description": "verifyContent<a href="org.apache.sling.junit.scriptable.TestAllPaths">0</a>", "test_metadata": { "test_execution_time_msec": 2 } } ]</p>
+<p>Test failures would be included in this JSON representation - you can test that by modifying the script to fail and making the same request again.</p>
+<h2>org.apache.sling.junit.remote: obsolete</h2>
+<p>The <code>org.apache.sling.junit.remote</code> bundle provides utilities to run server-side JUnit tests, but using the newer <code>TeleporterRule</code> described above is much simpler. As a result, this bundle should only be needed for existing tests that were written using its mechanisms.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[16/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/getting-started/discover-sling-in-15-minutes.md
----------------------------------------------------------------------
diff --git a/content/documentation/getting-started/discover-sling-in-15-minutes.md b/content/documentation/getting-started/discover-sling-in-15-minutes.md
deleted file mode 100644
index e2adb7f..0000000
--- a/content/documentation/getting-started/discover-sling-in-15-minutes.md
+++ /dev/null
@@ -1,213 +0,0 @@
-title=Discover Sling in 15 minutes		
-type=page
-status=published
-~~~~~~
-
-The Sling Launchpad is a ready-to-run Sling configuration, providing an embedded JCR content repository and web server, a selection of Sling components, documentation and examples. The Launchpad makes it easy to get started with Sling and to develop script-based applications.
-
-This page will help you get started with the Launchpad. Fifteen minutes should be enough to get an overview of what Sling does.
-
-While simple to run and understand, the Launchpad is a full-featured instance of Sling, an example configuration that we have created with the most common modules and configurations. The full functionality of Sling is available by loading additional Sling (or custom) OSGi bundles as needed, using the Launchpad's web-based OSGi management console.
-
-[TOC]
-
-## See Also
-
-
-More Sling samples can be found under
-[http://svn.apache.org/repos/asf/sling/trunk/samples/](http://svn.apache.org/repos/asf/sling/trunk/samples/)
-
-Once you grok the basic examples of this page, we recommend studying the
-*slingbucks* and *espblog* samples. Both have README files with more info.
-
-## Prerequisites
-
-We'll start with the self-runnable jar from the Sling distribution, you only need a Java 7 JDK. Download the latest release from the Sling [Downloads](/downloads.cgi) page or by clicking this link: [org.apache.sling.launchpad-8.jar](http://www.apache.org/dyn/closer.lua/sling/org.apache.sling.launchpad-8.jar). Alternatively you can deploy the [Sling Web application](http://www.apache.org/dyn/closer.lua/sling/org.apache.sling.launchpad-8-webapp.war) into any decent Servlet Container such as Jetty or Tomcat or you can [build the current source yourself](/documentation/development/getting-and-building-sling.html).
-
-To show the simplicity of the REST-style approach taken by Sling the examples below will be using [cURL](http://curl.haxx.se/). Any HTTP client would do, but cURL is the easiest to document in a reproducible way.
-
-A WebDAV client makes editing server-side scripts much more convenient, but to make our examples easy to reproduce, we're using cURL below to create and update files in the JCR repository, via the Sling WebDAV server.
-
-
-## Start the Launchpad
-
-After downloading the Sling Launchpad self-runnable jar just start it as follows:
-
-
-$ java -jar org.apache.sling.launchpad-8.jar
-
-
-This starts the Sling embedded Web Server on port 8080 and writes application files into the `sling` folder found in the current working directory.
-
-Once started, look at [http://localhost:8080/system/console/bundles](http://localhost:8080/system/console/bundles) with your browser. Use *admin* with password *admin* if Sling asks you for a login. Sling then displays the *Felix Web Management Console* page.
-
-
-On the bundles page, all bundles should be marked *Active*. They're all [OSGi](http://www.osgi.org/) bundles powered by [Apache Felix](http://felix.apache.org), but that doesn't really matter to us right now.
-
-*Log files: If things go wrong, have a look at the `sling/logs/error.log` log file - that's where Sling writes any error messages.*
-
-## Create some content
-
-Until we have ready-to-test forms, you can create content with cURL, or you can create an HTML form that posts to the specified URL.
-
-To create a content node (nodes are a [JCR](http://jackrabbit.apache.org/) concept, a unit of storage) with cURL, use:
-
-
-curl -u admin:admin -F"sling:resourceType=foo/bar" -F"title=some title" http://localhost:8080/content/mynode
-
-
-The resulting node can be seen at [http://localhost:8080/content/mynode.html](http://localhost:8080/content/mynode.html.path), or as json format under [http://localhost:8080/content/mynode.json](http://localhost:8080/content/mynode.json). Lets try with cURL:
-
-$ curl http://localhost:8080/content/mynode.json
-
-This returns the properties of the `/content/mynode` in JSON format as we have created it above.
-
-{"title":"some title","sling:resourceType":"foo/bar","jcr:primaryType":"nt:unstructured"}
-
-The additional property `jcr:primaryType` is a special JCR property added by the content repository, indicating the JCR primary node type.
-
-*Monitoring requests: Sling provides a simple tool (an OSGi console plugin) to monitor HTTP requests, which helps understand how things work internally. See the [Monitoring Requests](/documentation/development/monitoring-requests.html) page for details.*
-
-## Render your content using server-side javascript (ESP)
-
-Sling uses scripts or servlets to render and process content.
-
-Several scripting languages are available as additional Sling modules (packaged as OSGi *bundles* that can be installed via the Sling management console), but the launchpad currently includes the ESP (server-side ECMAscript), JSP (Java Server Pages), and Groovy language modules by default.
-
-To select a script, Sling uses the node's *sling:resourceType* property, if it is set.
-
-That is the case in our example, so the following script will be used by Sling to render the node in HTML, if the script is found at */apps/foo/bar/html.esp* in the repository.
-
-<html>
-<body>
-<h1><%= currentNode.title %></h1>
-</body>
-</html>
-
-
-To select the script, Sling:
-
-* looks under */apps*
-* and appends the *sling:resourceType* value of our node ( which is *foo/bar* )
-* and appends *html.esp*, as the extension of our URL is *html* and the language of our script is *esp*.
-
-Store this script under */apps/foo/bar/html.esp*, either using a WebDAV client (connected to [http://admin:admin@localhost:8080/](http://admin:admin@localhost:8080/)), or using cURL as shown here, after creating the *html.esp* script in the current directory on your system:
-
-
-curl -X MKCOL -u admin:admin http://localhost:8080/apps/foo
-curl -X MKCOL -u admin:admin http://localhost:8080/apps/foo/bar
-
-
-create a local file *html.esp* and copy above content.
-
-
-curl -u admin:admin -T html.esp http://localhost:8080/apps/foo/bar/html.esp
-
-
-The HTML rendering of your node, at [http://localhost:8080/content/mynode.html](http://localhost:8080/content/mynode.html), is now created by this ESP script. You should see the node's title alone as an &lt;h1&gt; element in that page.
-
-A script named *POST.esp* instead of *html.esp* would be called for a POST request, *DELETE.esp* for DELETE, *xml.esp* for a GET request with a *.xml* extension, etc. See [URL to Script Resolution](/documentation/the-sling-engine/url-to-script-resolution.html) on the Sling wiki for more info.
-
-Servlets can also be easily "wired" to handle specific resource types, extensions, etc., in the simplest case by using SCR annotations in the servlet source code. Servlets and scripts are interchangeable when it comes to processing Sling requests.
-
-
-## What next?
-
-These simple examples show how Sling uses scripts to work with JCR data, based
-on *sling:resourceType* or node types.
-
-There's much more to Sling of course - you'll find some additional simple examples below, as
-well as above in the *see also* section.
-
-## Additional examples
-
-### Let Sling generate the path of a newly created node.
-
-To create a node with a unique path at a given location, end the URL of the POST request with */*.
-
-In this case, the Sling response redirects to the URL of the created node.
-
-Start by creating a new */blog* folder:
-
-
-curl -X POST -u admin:admin "http://localhost:8080/content/blog"
-
-
-And create a node with a Sling-generated name under it:
-
-
-curl -D - -u admin:admin -F"title=Adventures with Sling" "http://localhost:8080/content/blog/"
-
-
-Using cURL's *-D* option shows the full HTTP response, which includes a *Location* header to indicate where the new node was created:
-
-
-Location: /blog/adventures_with_slin
-
-
-The actual node name might not be *adventures_with_slin* - depending on existing content in your repository, Sling will find a unique name for this new node, based on several well-know property values like title, description, etc. which are used for this if provided.
-
-So, in our case, our new node can be displayed in HTML via the [http://localhost:8080/blog/adventures_with_slin.html](http://localhost:8080/blog/adventures*with*slin.html) URL.
-
-Note that we didn't set a *sling:resourceType* property on our node, so if you want to render that node with a script, you'll have to store the script under */apps/nt/unstructured/html.esp*.
-
-
-### Add a page header with sling.include
-
-The *sling.include* function can be called from scripts to include the rendered result of another node.
-
-In this example, we create a node at */content/header*, rendered with a logo using an *html.esp* script, then use that header at the top of the *html.esp* script that we created previously for the *foo/bar* resource type.
-
-Start by checking that [http://localhost:8080/content/mynode.html](http://localhost:8080/content/mynode.html) is rendered using the *html.esp* script created above.
-
-Create this script and name it *header.esp*:
-
-<div>
-<p style="color:blue;">
-<img src="/images/sling.jpg" align="right"/>
-<%= currentNode.headline %>
-</p>
-</div>
-
-
-Upload it so that it is used to render resources having *sling:resourceType=foo/header*:
-
-
-curl -X MKCOL -u admin:admin http://localhost:8080/apps/foo/header/
-curl -u admin:admin -T header.esp http://localhost:8080/apps/foo/header/html.esp
-
-
-Create the header node:
-
-
-curl -u admin:admin -F"sling:resourceType=foo/header" -F"headline=Hello, Sling world" http://localhost:8080/content/header
-
-
-Upload the logo that the script uses (using sling.jpg or another logo in the current directory):
-
-
-curl -X MKCOL -u admin:admin http://localhost:8080/images/
-curl -u admin:admin -T sling.jpg http://localhost:8080/images/sling.jpg
-
-
-And check that the header is rendered with the logo at [http://localhost:8080/content/header.html](http://localhost:8080/content/header.html).
-
-Now, update the html.esp script that we created for our first example above, to include the header:
-
-<html>
-<body>
-<div id="header">
-<% sling.include("/content/header"); %>
-</div>
-<h1><%= currentNode.title %></h1>
-</body>
-</html>
-
-
-And upload it again to replace the previous version:
-
-
-curl -u admin:admin -T html.esp http://localhost:8080/apps/foo/bar/html.esp
-
-
-The [http://localhost:8080/content/mynode.html](http://localhost:8080/content/mynode.html), once refreshed, now shows the blue headline and logo, and this layout also applies to any node created with *sling:resourceType=foo/bar*.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/legacy/logging.md
----------------------------------------------------------------------
diff --git a/content/documentation/legacy/logging.md b/content/documentation/legacy/logging.md
deleted file mode 100644
index 021fcde..0000000
--- a/content/documentation/legacy/logging.md
+++ /dev/null
@@ -1,112 +0,0 @@
-title=Logging		
-type=page
-status=published
-~~~~~~
-
-<div class="note">
-This document is for 3.x release of Sling Commons Log components. Refer to
-<a href="http://sling.apache.org/documentation/development/logging.html">Logging</a> for documentation related
-to newer version.
-</div>
-
-## Introduction
-
-Logging in Sling is supported by the `org.apache.sling.commons.log` bundle, which is one of the first bundles installed and started by the Sling Launcher. The `org.apache.sling.commons.log` bundle has the following tasks:
-
-* Implements the OSGi Log Service Specification and registers the `LogService` and `LogReader` services
-* Exports three commonly used logging APIs:
-* [Simple Logging Facade for Java (SLF4J)](http://www.slf4j.org)
-* [Apache Commons Logging](http://jakarta.apache.org/commons/logging)
-* [log4j](http://logging.apache.org/log4j/index.html)
-* [java.util.logging](http://download.oracle.com/javase/6/docs/api/java/util/logging/package-summary.html) (as of r1169918)
-* Configures logging through our own implementation of the SLF4J backend API
-
-
-## Initial Configuration
-
-The `org.apache.sling.commons.log` bundle gets the initial configuration from the following `BundleContext` properties:
-
-
-| Property | Default | Description |
-|--|--|--|
-| `org.apache.sling.commons.log.level` | `INFO` | Sets the initial logging level of the root logger. This may be any of the defined logging levels `DEBUG`, `INFO`, `WARN`, `ERROR` and `FATAL`. |
-| `org.apache.sling.commons.log.file` | undefined | Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to `System.out`. |
-| `org.apache.sling.commons.log.file.number` | 5 | The number of rotated files to keep. |
-| `org.apache.sling.commons.log.file.size` | '.'yyyy-MM-dd | Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section *Log File Rotation* below for full details on log file rotation. |
-| `org.apache.sling.commons.log.pattern` | {0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}]({{ refs.-2.path }}) {3} {5} | The `MessageFormat` pattern to use for formatting log messages with the root logger. |
-| `org.apache.sling.commons.log.julenabled` | n/a | Enables the `java.util.logging` support. |
-
-
-## User Configuration
-
-User Configuration after initial configuration is provided by the Configuration Admin Service. To this avail two `org.osgi.services.cm.ManagedServiceFactory` services are registered under the PIDs `org.apache.sling.commons.log.LogManager.factory.writer` and `org.apache.sling.commons.log.LogManager.factory.config` which may receive configuration.
-
-
-### Logger Configuration
-
-Loggers (or Categories) can be configured to log to specific files at specific levels using configurable patterns. To this avail factory configuration instances with factory PID `org.apache.sling.commons.log.LogManager.factory.config` may be created and configured with the Configuration Admin Service.
-
-The following properties may be set:
-
-| Property | Type | Default | Description |
-|--|--|--|--|
-| `org.apache.sling.commons.log.level` | `String` | `INFO` | Sets the logging level of the loggers. This may be any of the defined logging levels `DEBUG`, `INFO`, `WARN`, `ERROR` and `FATAL`. |
-| `org.apache.sling.commons.log.file` | `String` | undefined | Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to `System.out`. This property should refer to the file name of a configured Log Writer (see below). If no Log Writer is configured with the same file name an implicit Log Writer configuration with default configuration is created. |
-| `org.apache.sling.commons.log.pattern` | `String` | {0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}]({{ refs.-2.path }}) {3} {5} | The `java.util.MessageFormat` pattern to use for formatting log messages with the root logger. This is a `java.util.MessageFormat` pattern supporting up to six arguments: {0} The timestamp of type `java.util.Date`, {1} the log marker, {2} the name of the current thread, {3} the name of the logger, {4} the debug level and {5} the actual debug message. If the log call includes a Throwable, the stacktrace is just appended to the message regardless of the pattern. |
-| `org.apache.sling.commons.log.names` | `String[]` | -- | A list of logger names to which this configuration applies. |
-
-
-Note that multiple Logger Configurations may refer to the same Log Writer Configuration. If no Log Writer Configuration exists whose file name matches the file name set on the Logger Configuration an implicit Log Writer Configuration with default setup (daily log rotation) is internally created.
-
-
-### Log Writer Configuration
-
-Log Writer Configuration is used to setup file output and log file rotation characteristics for log writers used by the Loggers.
-
-The following properties may be set:
-
-| Property | Default | Description |
-|--|--|--|
-| `org.apache.sling.commons.log.file` | undefined | Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to `System.out`. |
-| `org.apache.sling.commons.log.file.number` | 5 | The number of rotated files to keep. |
-| `org.apache.sling.commons.log.file.size` | '.'yyyy-MM-dd | Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section *Log File Rotation* below for full details on log file rotation. |
-
-See the section *Log File Rotation* below for full details on the `org.apache.sling.commons.log.file.size` and `org.apache.sling.commons.log.file.number` properties.
-
-
-
-## Log File Rotation
-
-Log files can grow rather quickly and fill up available disk space. To cope with this growth log files may be rotated in two ways: At specific times or when the log file reaches a configurable size. The first method is called *Scheduled Rotation* and is used by specifying a `SimpleDateFormat` pattern as the log file "size". The second method is called *Size Rotation* and is used by setting a maximum file size as the log file size.
-
-As of version 2.0.6 of the Sling Commons Log bundle, the default value for log file scheduling is `'.'yyyy-MM-dd` causing daily log rotation. Previously log rotation defaulted to a 10MB file size limit.
-
-
-
-### Scheduled Rotation
-
-The rolling schedule is specified by setting the `org.apache.sling.commons.log.file.size` property to a `java.text.SimpleDateFormat` pattern. Literal text (such as a leading dot) to be included must be *enclosed* within a pair of single quotes. A formatted version of the date pattern is used as the suffix for the rolled file name.
-
-For example, if the log file is configured as `/foo/bar.log` and the pattern set to `'.'yyyy-MM-dd`, on 2001-02-16 at midnight, the logging file `/foo/bar.log` will be renamed to `/foo/bar.log.2001-02-16` and logging for 2001-02-17 will continue in a new `/foo/bar.log` file until it rolls over the next day.
-
-It is possible to specify monthly, weekly, half-daily, daily, hourly, or minutely rollover schedules.
-
-| DatePattern | Rollover schedule | Example |
-|--|--|--|
-| `'.'yyyy-MM` | Rollover at the beginning of each month | At midnight of May 31st, 2002 `/foo/bar.log` will be copied to `/foo/bar.log.2002-05`. Logging for the month of June will be output to `/foo/bar.log` until it is also rolled over the next month. |
-| `'.'yyyy-ww` | Rollover at the first day of each week. The first day of the week depends on the locale. | Assuming the first day of the week is Sunday, on Saturday midnight, June 9th 2002, the file `/foo/bar.log` will be copied to `/foo/bar.log.2002-23`. Logging for the 24th week of 2002 will be output to `/foo/bar.log` until it is rolled over the next week. |
-| `'.'yyyy-MM-dd` | Rollover at midnight each day.| At midnight, on March 8th, 2002, `/foo/bar.log` will be copied to `/foo/bar.log.2002-03-08`. Logging for the 9th day of March will be output to `/foo/bar.log` until it is rolled over the next day.|
-| `'.'yyyy-MM-dd-a` | Rollover at midnight and midday of each day.| at noon, on March 9th, 2002, `/foo/bar.log` will be copied to  `/foo/bar.log.2002-03-09-AM`. Logging for the afternoon of the 9th will be output to `/foo/bar.log` until it is rolled over at midnight.|
-| `'.'yyyy-MM-dd-HH` | Rollover at the top of every hour.| At approximately 11:00.000 o'clock on March 9th, 2002, `/foo/bar.log` will be copied to `/foo/bar.log.2002-03-09-10`. Logging for the 11th hour of the 9th of March will be output to `/foo/bar.log` until it is rolled over at the beginning of the next hour.|
-| `'.'yyyy-MM-dd-HH-mm` | Rollover at the beginning of every minute.| At approximately 11:23,000, on March 9th, 2001, `/foo/bar.log` will be copied to `/foo/bar.log.2001-03-09-10-22`. Logging for the minute of 11:23 (9th of March) will be output to `/foo/bar.log` until it is rolled over the next minute.|
-
-Do not use the colon ":" character in anywhere in the pattern option. The text before the colon is interpeted as the protocol specificaion of a URL which is probably not what you want.
-
-Note that Scheduled Rotation ignores the `org.apache.sling.commons.log.file.number` property since the old log files are not numbered but "dated".
-
-
-### Size Rotation
-
-Log file rotation by size is specified by setting the `org.apache.sling.commons.log.file.size` property to a plain number or a number plus a size multiplier. The size multiplier may be any of `K`, `KB`, `M`, `MB`, `G`, or `GB` where the case is ignored and the meaning is probably obvious.
-
-When using Size Rotation, the `org.apache.sling.commons.log.file.number` defines the number of old log file generations to keep. For example to keep 5 old log files indexed by 0 through 4, set the `org.apache.sling.commons.log.file.number` to `5` (which happens to be the default).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/pax-exam-utils.md
----------------------------------------------------------------------
diff --git a/content/documentation/pax-exam-utils.md b/content/documentation/pax-exam-utils.md
deleted file mode 100644
index 49dbad7..0000000
--- a/content/documentation/pax-exam-utils.md
+++ /dev/null
@@ -1,14 +0,0 @@
-title=Sling Pax Exam Utilities		
-type=page
-status=published
-~~~~~~
-
-Utilities to help testing Sling components with Pax Exam are available at
-[https://svn.apache.org/repos/asf/sling/trunk/testing/sling-pax-util](https://svn.apache.org/repos/asf/sling/trunk/testing/sling-pax-util)
-
-The focus is on making it easier to test Sling components against a full Sling launchpad,
-with minimal boilerplate code.
-
-See the
-[SlingRepositoryTest](https://svn.apache.org/repos/asf/sling/trunk/testing/sling-pax-util/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java) class
-for an example test.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine.md b/content/documentation/the-sling-engine.md
deleted file mode 100644
index 933937e..0000000
--- a/content/documentation/the-sling-engine.md
+++ /dev/null
@@ -1,33 +0,0 @@
-title=The Sling Engine		
-type=page
-status=published
-~~~~~~
-
-## General
-
-* [Architecture](/documentation/the-sling-engine/architecture.html)
-* [Authentication](/documentation/the-sling-engine/authentication.html)
-* [{{ refs.service-authentication.headers.title }}](/documentation/the-sling-engine/service-authentication.html)
-
-## Request Handling
-
-* [Dispatching Requests](/documentation/the-sling-engine/dispatching-requests.html)
-* [URL decomposition](/documentation/the-sling-engine/url-decomposition.html)
-* [URL to Script Resolution](/documentation/the-sling-engine/url-to-script-resolution.html)
-* [Request Listeners](/documentation/the-sling-engine/request-listeners.html)
-* [Filters](/documentation/the-sling-engine/filters.html)
-* [Servlets and Scripts](/documentation/the-sling-engine/servlets.html)
-* [Errorhandling](/documentation/the-sling-engine/errorhandling.html)
-* [Request Parameters](/documentation/the-sling-engine/request-parameters.html)
-
-## Resources
-
-* [Resources](/documentation/the-sling-engine/resources.html)
-* [Sling API CRUD Support](/documentation/the-sling-engine/sling-api-crud-support.html)
-* [Wrap or Decorate Resources](/documentation/the-sling-engine/wrap-or-decorate-resources.html)
-* [Mappings for Resource Resolution](/documentation/the-sling-engine/mappings-for-resource-resolution.html)
-
-## Misc
-
-* [Adapters](/documentation/the-sling-engine/adapters.html)
-* [{{ refs.featureflags.headers.title }}](/documentation/the-sling-engine/featureflags.html)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/adapters.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/adapters.md b/content/documentation/the-sling-engine/adapters.md
deleted file mode 100644
index c56ba98..0000000
--- a/content/documentation/the-sling-engine/adapters.md
+++ /dev/null
@@ -1,157 +0,0 @@
-title=Adapters		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-The `Resource` and `ResourceResolver` interfaces are defined with a method `adaptTo`, which adapts the object to other classes. Using this mechanism the JCR session of the resource resolver calling the `adaptTo` method with the `javax.jcr.Session` class object. Likewise the JCR node on which a resource is based can be retrieved by calling the `Resource.adaptTo` method with the `javax.jcr.Node` class object.
-
-To use resources as scripts, the `Resource.adaptTo` method must support being called with the `org.apache.sling.api.script.SlingScript` class object. But of course, we do not want to integrate the script manager with the resource resolver. To enable adapting objects to classes which are not foreseen by the original implementation, a factory mechanism is used. This way, the script manager can provide an adapter factory to adapt `Resource` to `SlingScript` objects.
-
-
-# Adaptable
-
-The `Adaptable` interface defines the API to be implemented by a class providing adaptability to another class. The single method defined by this interface is
-
-
-/**
-* Adapts the adaptable to another type.
-* <p>
-* Please not that it is explicitly left as an implementation detail whether
-* each call to this method with the same <code>type</code> yields the same
-* object or a new object on each call.
-* <p>
-* Implementations of this method should document their adapted types as
-* well as their behaviour with respect to returning newly created or not
-* instance on each call.
-*
-* @param <AdapterType> The generic type to which this resource is adapted
-*            to
-* @param type The Class object of the target type, such as
-*            <code>javax.jcr.Node.class</code> or
-*            <code>java.io.File.class</code>
-* @return The adapter target or <code>null</code> if the resource cannot
-*         adapt to the requested type
-*/
-<AdapterType> AdapterType adaptTo(Class<AdapterType> type);
-
-
-This method is called to get a view of the same object in terms of another class. Examples of implementations of this method are the Sling `ResourceResolver` implementation providing adapting to a JCR session and the Sling JCR based `Resource` implementation providing adapting to a JCR node.
-
-# Listing Adaptation Possibilities
-
-The Web Console Plugin at `/system/console/adapters` and at `/system/console/status-adapters` can be used to list all existing adaptables in the system with their according adapter classes.
-
-The web console plugin evaluates metadata being provided by any `AdapterFactory` services as well as metadata being provided through the file `SLING-INF/adapters.json`
-
-# Implementing Adaptable
-
-Each adaptable should derive from `SlingAdaptable` to automatically profit from all according `AdapterFactories` registered in the system.
-In case the `adaptTo(...)` method is being overwritten an according `SLING-INF/adapters.json` should be included in the providing bundle
-listing all adaptation possibilities. While this file is not strictly necessary for the actual adaptation to work, it provides useful information to the Web Console plugin.
-Otherwise developers will not know which adaptations are supported. The format of this JSON file looks like this ([SLING-2295](https://issues.apache.org/jira/browse/SLING-2295)):
-
-{
-<fully qualified class name of adaptable> : {
-<condition> :  <fully qualified class name of adapter, may be a JSON array>
-}
-}
-
-For example
-
-{
-"org.apache.sling.api.resource.Resource" : {
-"If the adaptable is a AuthorizableResource." : [
-"java.util.Map",
-"org.apache.sling.api.resource.ValueMap",
-"org.apache.jackrabbit.api.security.user.Authorizable"
-],
-"If the resource is an AuthorizableResource and represents a JCR User" : "org.apache.jackrabbit.api.security.user.User",
-"If the resource is an AuthorizableResource and represents a JCR Group" : "org.apache.jackrabbit.api.security.user.Group"
-}
-}
-
-Instead of manually creating that JSON file, the annotations from the module [adapter-annotations](https://svn.apache.org/viewvc/sling/trunk/tooling/maven/adapter-annotations/)  can be used together with the goal `generate-adapter-metadata` from the [Maven Sling Plugin](http://sling.apache.org/components/maven-sling-plugin/generate-adapter-metadata-mojo.html) to generate it automatically ([SLING-2313](https://issues.apache.org/jira/browse/SLING-2313)).
-
-
-# Extending Adapters
-
-Sometimes an `Adaptable` implementation cannot foresee future uses and requirements. To cope with such extensibility requirements two interfaces and an abstract base class are defined:
-
-* `AdapterManager`
-* `AdapterFactory`
-* `SlingAdaptable`
-
-
-## AdapterFactory
-
-The `AdapterFactory` interface defines the service interface and API for factories supporting extensible adapters for `SlingAdaptable` objects. The interface has a single method:
-
-
-/**
-* Adapt the given object to the adaptable type. The adaptable object is
-* guaranteed to be an instance of one of the classes listed in the
-* {@link #ADAPTABLE_CLASSES} services registration property. The type
-* parameter is one of the classes listed in the {@link #ADAPTER_CLASSES}
-* service registration properties.
-* <p>
-* This method may return <code>null</code> if the adaptable object cannot
-* be adapted to the adapter (target) type for any reason. In this case, the
-* implementation should log a message to the log facility noting the cause
-* for not being able to adapt.
-* <p>
-* Note that the <code>adaptable</code> object is not required to implement
-* the <code>Adaptable</code> interface, though most of the time this method
-* is called by means of calling the {@link Adaptable#adaptTo(Class)}
-* method.
-*
-* @param <AdapterType> The generic type of the adapter (target) type.
-* @param adaptable The object to adapt to the adapter type.
-* @param type The type to which the object is to be adapted.
-* @return The adapted object or <code>null</code> if this factory instance
-*         cannot adapt the object.
-*/
-<AdapterType> AdapterType getAdapter(Object adaptable,
-Class<AdapterType> type);
-
-
-Implementations of this interface are registered as OSGi services providing two lists: The list of classes which may be adapted (property named `adaptables`) and the list of classes to which the adapted class may be adapted (property named `adapters`). A good example of an Class implementing `AdapterFactory` is the `SlingScriptAdapterFactory`. In addition a property named `adapter.condition` can be provided which is supposed to contain a string value explaining under which circumstances the adaption will work (if there are any restrictions). This is evaluated by the Web Console Plugin.
-
-`AdapterFactory` services are gathered by a `AdapterManager` implementation for use by consumers. Consumers should not care for `AdapterFactory` services.
-
-
-## AdapterManager
-
-The `AdapterManager` is defines the service interface for the generalized and extensible use of `AdapterFactory` services. Thus the adapter manager may be retrieved from the service registry to try to adapt whatever object that needs to be adapted - provided appropriate adapters exist.
-
-The `AdapterManager` interface is defined as follows:
-
-
-/**
-* Returns an adapter object of the requested <code>AdapterType</code> for
-* the given <code>adaptable</code> object.
-* <p>
-* The <code>adaptable</code> object may be any non-<code>null</code> object
-* and is not required to implement the <code>Adaptable</code> interface.
-*
-* @param <AdapterType> The generic type of the adapter (target) type.
-* @param adaptable The object to adapt to the adapter type.
-* @param type The type to which the object is to be adapted.
-* @return The adapted object or <code>null</code> if no factory exists to
-*         adapt the <code>adaptable</code> to the <code>AdapterType</code>
-*         or if the <code>adaptable</code> cannot be adapted for any other
-*         reason.
-*/
-<AdapterType> AdapterType getAdapter(Object adaptable,
-Class<AdapterType> type);
-
-
-Any object can theoretically be adapted to any class even if it does not implement the `Adaptable` interface, if an `AdapterFactory` service delivers a `getAdapter()` method which adapts an object to another one. To check if there's any existing `AdapterFactory` which can adapt a given object to another one the `AdapterManager` service with its `getAdapter()` method does the job. So the `Adaptable` interface merely is an indicator that the object provides built-in support for being adapted.
-
-
-## SlingAdaptable
-
-The `SlingAdaptable` class is an implementation of the `Adaptable` interface which provides built-in support to call the `AdapterManager` to provide an adapter from the `Adaptable` object to the requested class.
-
-An example of extending the `SlingAdaptable` class will be the Sling JCR based `Resource` implementation. This way, such a resource may be adapted to a `SlingScript` by means of an appropriately programmed `AdapterFactory` (see below).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/architecture.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/architecture.md b/content/documentation/the-sling-engine/architecture.md
deleted file mode 100644
index d0cb977..0000000
--- a/content/documentation/the-sling-engine/architecture.md
+++ /dev/null
@@ -1,98 +0,0 @@
-title=Architecture		
-type=page
-status=published
-~~~~~~
-
-The following is a short list of high-lights of Sling:
-
-* **[OSGi](#osgi)** &mdash; The Sling application is built as a series of OSGi bundles and makes heavy use of a number of OSGi core and compendium services.
-* **[Sling API](#sling-api)** &mdash; To implement content based Web applications with Sling, an API has been defined, this extends the Servlet API and provides more functionality to work on the content.
-* **[Request Processing](#request-processing)** &mdash; Sling takes a unique approach to handling requests in that a request URL is first resolved to a resource, then based on the resource (and only the resource) it selects the actual servlet or script to handle the request.
-* **[Resources](#resources)** &mdash; The central mantra of Sling is the *Resource*, which represents the resource addressed by any request URL. It is the resource that is first resolved when handling a request. Based on the resource, a first servlet or script is then accessed to actually handle the request.
-* **[Servlets and Scripts](#servlets-and-scripts)** &mdash; Servlets and Scripts are handled uniformly in that they are represented as resources themselves and are accessible by a resource path.
-* **[Launchpad](#launchpad)** &mdash; Sling uses a very thin launcher to integrate with an existing servlet container, launching Sling as a Web application or providing a main class to represent a standalone Java application.
-
-The following sections elaborate on each of these highlights.
-
-## OSGi
-
-[OSGi](http://www.osgi.org) is a consortium that has developed a specification to build modular and extensible applications. This offers [various benefits](http://www.osgi.org/About/WhyOSGi). We deal mainly with two parts of the specifications: The Core Specification, which defines the OSGi Framework and Core Services, and the Compendium Services Specification, which defines a host of services that extend the functionality of the OSGi Framework.
-
-### OSGi Framework
-
-The OSGi Framework is made up of three layers &ndash; Module, Lifecycle, and Services &ndash; that define how extensible applications are built and deployed. The responsibilities of the layers are:
-
-* **Module** &mdash; Defines how a module, or a *Bundle* in OSGi-speak, is defined. Basically, a bundle is just a plain old JAR file, whose manifest file has some defined entries. These entries identify the bundle with a symbolic name, a version and more. In addition there are headers which define what a bundle provides `Export-Package` and what a bundle requires to be operative `Import-Package` and `Require-Bundle`.
-* **Lifecycle** &mdash; The lifecycle layer defines the states a bundle may be in and describes the state changes. By providing a class, which implements the `BundleActivator` interface and which is named in the `Bundle-Activator` manifest header, a bundle may hook into the lifecycle process when the bundle is started and stopped.
-* **Services** &mdash; For the application to be able to interact, the OSGi Core Specification defines the service layer. This describes a registry for services, which may be shared.
-
-
-### Compendium Services
-
-Based on the OSGi Framework specification, the Compendium Services specification defines a (growing) number of extension services, which may be used by applications for various tasks. Of these Compendium Services, Sling is using just a small number:
-
-* **Log Service** &mdash; Sling comes with its own implementation of the OSGi Log Service specification. The respective bundle not only provides this implementation, it also exports the SLF4J, Log4J and Commons Logging APIs needed for the Sling application to perform logging.
-* **Http Service** &mdash; Sling leverages the OSGi Http Service to hook into a servlet container to provide the Web Application Framework mechanism.
-* **Configuration Admin Service** &mdash; To simplify configuration of services in Sling, the OSGi Configuration Admin service is used. This provides a uniform API to configure services and to build configuration management agents.
-* **Metatype Service** &mdash; The OSGi Metatype Service defines a way to describe the data types. Sling uses this service to describe the configurations that may be created using the Configuration Admin Service. These meta type descriptions are used by configuration management agents to present to user interface to manage the configurations.
-* **Event Admin Service** &mdash; Sling uses the OSGi EventAdmin service to dispatch events when scheduling tasks.
-* **Declarative Services** &mdash; One of the most important (beside the Log Service) services used by Sling is the Declarative Services Specification. This specification defines how to declaratively create components and services to have the Declarative Services runtime actually manage the lifecycle, configuration and references of components.
-
-
-## Sling API
-
-The Sling API is an extension to the Servlet API which provides more functionality to interact with the Sling framework and also to extend Sling itself and to implement Sling applications.
-
-See the [Sling API]({{ refs.sling-api.path }}) page for more information.
-
-
-## Request Processing
-
-Traditional Web Application framework emply more or less elaborate methods to select a Servlet or Controller based on the request URL, which in turn tries to load some data (usually from a database) to act upon and finally to render the result somehow.
-
-Sling turns this processing around in that it places the data to act upon at the center and consequently uses the request URL to first resolve the data to process. This data is internally represented as an instance of the `Resource` interface. Based on this resource as well as the request method and more properties of the request URL a script or servlet is then selected to handle the request.
-
-See the [Servlets](/documentation/the-sling-engine/servlets.html) page for more information.
-
-
-## Resources
-
-
-The Resource is one of the central parts of Sling. Extending from JCR's *Everything is Content*, Sling assumes *Everthing is a Resource*. Thus Sling is maintaining a virtual tree of resources, which is a merger of the actual contents in the JCR Repository and resources provided by so called resource providers.
-
-Each resource has a path by which it is addressed in the resource tree, a resource type and some resource metadata (such as file size, last modification time). It is important to understand, that a `Resource` instance actually is only a handle to the actual data. By virtue of the `adaptTo(Class<Type>)` method, a resource may be coerced into another data type, which may then be used while processing the request. Examples of data types are `javax.jcr.Node` and `java.io.InputStream`.
-
-See the [Resources](/documentation/the-sling-engine/resources.html) page for more information.
-
-
-## Servlets and Scripts
-
-Scripts are usually provided as content in a JCR repository. But since Sling is using a resource tree, a script actually is represented as a Resource and may be provided from within a Bundle (by virtue of the bundle resource provider) or even from the platform file system (by virtue of the file system resource provider).
-
-Accessing scripts in the resource tree, allows for a very easy to understand mapping from resource type to some script path.
-
-Having found the script resource, we still need access to the appropriate script language implementation to evaluate the script. To this avail, Sling is making use of the `Resource.adaptTo(Class<Type>)` method: If a script language implementation is available for the extension of the script name an adaptor for the script resource can be found, which handles the evaluation of the script.
-
-Besides scripting languages, such as ECMAScript, Groovy, JSP, Sling also supports regular servlets. To be able to use servlets for request processing, such servlets must be registered as OSGi services for the `javax.servlet.Servlet` interface and provide a number of service registration properties, which are used to use the servlets. In fact servlets thus registered as OSGi services are mapped into the resource tree by means of a servlet resource provider. This resource provider mapps the servlets into the resource tree using the service registration properties to build one or more resource paths for the servlet.
-
-As a result of mapping servlets into the resource tree and the possibility to adapt resource to an adaptor data type, scripts and servlets may be handled completely transparently: The servlet resolver just looks for a resource matching the resource type and adapts the resource found to `javax.jcr.Servlet`. If the resource happens to be provided by a servlet resource provider, the adapter is of course the servlet itself. If the resource happens to be a script, the adapter is a servlet facade which internally calls the script language implementation to evaluate the script.
-
-See the [Servlet Resolution]({{ refs.servlet-resolution.path }}) page for more information.
-
-
-
-## Launchpad
-
-Sling may be launched as a standalone application using the Sling Application or as a Web Application running inside any Servlet API 2.4 or newer Servlet Container.
-
-The Sling Application is a standalone Java Application which is really small: Just the main class and some glue classes. The OSGi framework as well as the OSGi API libraries are packaged as a JAR file, which is loaded through a custom classloader. This enables to update the framework and/or OSGi API libraries from within Sling by updating the system bundle.
-
-The Sling Servlet is equally small as the Sling Application. It uses the Felix `HttpService` bridge as the glue between the servlet container and the OSGi framework.
-
-As we have seen, Sling may be launched as a standalone Java Application or as a Web Application inside any compliant Servlet Container. To hide the differences of the launching mechanism, Sling internally registers a Servlet with an OSGi `HttpService`. Regardless of how Sling is launched, the Felix implementation of the OSGi `HttpService` specification is used. When Sling is launched as a standalone Java Application, Felix HttpService uses an embedded version of the Jetty servlet container. When Sling is launched as a Web Application, the Felix HttpService Bridge is used.
-
-Optionally, PAX Web's implementation of HttpService can be used when Sling is launched as a standalone Java Application. See the [Maven Launchpad Plugin](/documentation/development/maven-launchpad-plugin.html) page for information on how to do this.
-
-See [The Sling Launchpad](/documentation/the-sling-engine/the-sling-launchpad.html) for more information.
-
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/authentication.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/authentication.md b/content/documentation/the-sling-engine/authentication.md
deleted file mode 100644
index f09b223..0000000
--- a/content/documentation/the-sling-engine/authentication.md
+++ /dev/null
@@ -1,29 +0,0 @@
-title=Authentication		
-type=page
-status=published
-~~~~~~
-Excerpt:  How requests are authenticated.
-
-
-This section describes the framework provided by Sling to authenticate HTTP requests.
-
-Let's look at generic request processing of Sling: Sling is linked into the outside world by registering the Sling Main Servlet &ndash; implemented by the `SlingMainServlet` class in the Sling Engine bundle &ndash; with an OSGi `HttpService`. This registration is accompanyied with an implementation instance of the OSGi `HttpContext` interface, which defines a method to authenticate requests: `handleSecurity`.
-
-This method is called by the OSGi HTTP Service implementation after the servlet has been selected to handle the request but before actually calling the servlet's `service` method.
-
-<a href="authentication.png" style="float:left;padding-right:5%">
-<img src="authentication.png" title="Authentication Flow" alt="Authentication Flow" />
-</a>
-
-1. First the OSGi HTTP Service implementation is analyzing the request URL to find a match for a servlet or resource registered with the HTTP Service.
-1. Now the HTTP Service implementation has to call the `handleSecurity` method of the `HttpContext` object with which the servlet or resource has been registered. This method returns `true` if the request should be serviced. If this method returns `false` the HTTP Service implementation terminates the request sending back any response which has been prepared by the `handleSecurity` method. Note, that the `handleSecurity` method must prepare the failure response sent to the client, the HTTP Service adds nothing here. If the `handleSecurity` method is successful, it must add two (or three) request attributes described below.
-1. When the `handleSecurity` method returns `true` the HTTP Service either calls the `Servlet.service` method or sends back the requested resource depending on whether a servlet or a resource has been selected in the first step.
-
-The important thing to note here is, that at the time the `handleSecurity` method is called, the `SlingMainServlet` is not yet in control of the request. So any functionality added by the `SlingMainServlet`, notably the `SlingHttpServletRequest` and `SlingHttpServletResponse` objects are not available to the implementation of the `handleSecurity` method.
-
-The following pages describe the full details of request authentication in Sling in full detail:
-
-* [Tasks](/documentation/the-sling-engine/authentication/authentication-tasks.html): {{ refs.authentication-tasks.headers.excerpt }}
-* [Actors](/documentation/the-sling-engine/authentication/authentication-actors.html): {{ refs.authentication-actors.headers.excerpt }}
-* [Framework](/documentation/the-sling-engine/authentication/authentication-framework.html): {{ refs.authentication-framework.headers.excerpt }}
-* [AuthenticationHandler](/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html): {{ refs.authentication-authenticationhandler.headers.excerpt }}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/authentication.png
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/authentication.png b/content/documentation/the-sling-engine/authentication.png
deleted file mode 100644
index d0995fe..0000000
Binary files a/content/documentation/the-sling-engine/authentication.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/authentication/authentication-actors.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/authentication/authentication-actors.md b/content/documentation/the-sling-engine/authentication/authentication-actors.md
deleted file mode 100644
index 63a44f9..0000000
--- a/content/documentation/the-sling-engine/authentication/authentication-actors.md
+++ /dev/null
@@ -1,63 +0,0 @@
-title=Authentication - Actors		
-type=page
-status=published
-~~~~~~
-Excerpt: The authentication process involves a number of actors contributing to the concepts, the API and the particular implementations.
-
-The authentication process involves a number of actors contributing to the concepts, the API and the particular implementations.
-
-
-## OSGi Http Service Specification
-
-The main support for authentication is defined by the OSGi Http Service specification. This specification defines how an OSGi application can register servlets and resources to build web applications. As part of the servlet and/or resource registration a `HttpContext` may be provided, which allows for additional support.
-
-The main method of interest to the authentication process is the `handleSecurity` method. This is called by the OSGi Http Service implementation before the registered servlet is called. Its intent is to authenticate the request and to provide authentication information for the request object: the authentication type and the remote user name.
-
-The Sling Auth Core bundle provides the `AuthenticationSupport` service which may be used to the implement the `HttpContext.handleSecurity` method.
-
-
-## Sling Engine
-
-The Sling Engine implements the main entry point into the Sling system by means of the `SlingMainServlet`. This servlet is registered with the OSGi Http Service and provides a custom `HttpContext` whose `handleSecurity` method is implemented by the `AuthenticationSupport` service.
-
-When the request hits the `service` method of the Sling Main Servlet, the resource resolver provided by the `AuthenticationSupport` service is retrieved from the request attributes and used as the resource resolver for the request.
-
-That's all there is for the Sling Engine to do with respect to authentication.
-
-
-## Sling Auth Core
-
-The support for authenticating client requests is implemented in the Sling Auth Core bundle. As such this bundle provides three areas of support
-
-* `AuthenticationHandler` service interface. This is implemented by services providing functionality to extract credentials from HTTP requests.
-* `Authenticator` service interface. This is implemented by the `SlingAuthenticator` class in the Sling Auth Core bundle and provides applications with entry points to login and logout.
-* `AuthenticationSupport` service interface. This is implemented by the `SlingAuthenticator` class in the Sling Auth Core bundle and allows applications registering with the OSGi HTTP Service to make use of the Sling authentication infrastructure.
-
-
-## JCR Repository
-
-The actual process of logging into the repository and provided a `Session` is implementation dependent. In the case of Jackrabbit extensibility is provided by configuration of the Jackrabbit repository by means of an interface and two helper classes:
-
-* `LoginModule` -- The interface to be implemented to provide login processing plugins
-* `AbstractLoginModule` -- A an abstract base class implementation of the `LoginModule` interface.
-* `DefaultLoginModule` -- The default implementation of the `AbstractLoginModule` provided by Jackabbit. This login module takes `SimpleCredentials` and uses the repository to lookup the users, validate the credentials and providing the `Principal` representing the user towards the repository.
-
-The Sling Jackrabbit Embedded Repository bundle provides additional plugin interfaces to extend the login process dynamically using OSGi services. To this avail the bundle configures a `LoginModule` with the provided default Jackrabbit configuration supporting these plugins:
-
-* `LoginModulePlugin` -- The main service interface. Plugins must implement this interface to be able to extend the login process. See for example the [Sling OpenID authentication handler](http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/openid/), which implements this interface to support OpenID authentication.
-* `AuthenticationPlugin` -- Helper interface for the `LoginModulePlugin`.
-
-
-## Sling Applications
-
-Sling Applications requiring authenticated requests should not care about how authentication is implemented. To support such functionality the `Authenticator` service is provided with two methods:
-
-* `login` -- allows the application to ensure requests are authenticated. This involves selecting an `AuthenticationHandler` to request credentials for authentication.
-
-* `logout` -- allows the application to forget about any authentication. This involves selecting an `AuthenticationHandler` to forget about credentials in the request.
-
-Sling Applications should never directly use any knowledge of any authentication handler or directly call into an authentication handler. This will certainly break the application and cause unexpected behaviour.
-
-<div class="info">
-If you want to know whether a request is authenticated or not, you can inspect the result of the <code>HttpServletRequest.getAuthType</code> method: If this method returns <code>null</code> the request is not authenticated.
-</div>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler.md b/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler.md
deleted file mode 100644
index 52fecf9..0000000
--- a/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler.md
+++ /dev/null
@@ -1,56 +0,0 @@
-title=Authentication - AuthenticationHandler		
-type=page
-status=published
-~~~~~~
-Excerpt: The `AuthenticationHandler` interface defines the service API which may be implemented by authentication handlers registered as OSGi services.
-
-The `AuthenticationHandler` interface defines the service API which may be implemented by authentication handlers registered as OSGi services.
-
-`AuthenticationHandler` services have a single required service registration property which is used to identify requests to which the `AuthenticationHandler` service is applicable:
-
-| Property | Description |
-|-|-|
-| `path` | One or more (array or vector) string values indicating the request URLs to which the `AuthenticationHandler` is applicable. |
-| `authtype` | The authentication type implemented by this handler. This is a string value property and should be the same as will be used as the authentication type of the `AuthenticationInfo` object provided by the `extractCredentials` method. If this property is set, the `requestCredentials` method of the authentication handler is only called if the `sling:authRequestLogin` request parameter is either not set or is set to the same value as the `authtype` of the handler. This property is optional. If not set, the `requestCredentials` method is always called regardless of the value of the `sling:authRequestLogin` request parameter. |
-
-Each path may be an absolute URL, an URL with just the host/port and path or just a plain absolute path:
-
-| URL part | Scheme | Host/Port | Path |
-|-|-|-|-|
-| Absolute URL | must match | must match | request URL path is prefixed with the path |
-| Host/Port with Path | ignored | must match | request URL path is prefixed with the path |
-| Path | ignored | ignored | request URL path is prefixed with the path |
-
-When looking for an `AuthenticationHandler` the authentication handler is selected whose path is the longest match on the request URL. If the service is registered with Scheme and Host/Port, these must exactly match for the service to be eligible. If multiple `AuthenticationHandler` services are registered with the same length matching path, the handler with the higher service ranking is selected[^ranking].
-
-[^ranking]: Service ranking is defined by the OSGi Core Specification as follows: *If multiple qualifying service interfaces exist, a service with the highest `service.ranking` number, or when equal to the lowest `service.id`, determines which service object is returned by the Framework*.
-
-The value of `path` service registration property value triggering the call to any of the `AuthenticationHandler` methods is available as the `path` request attribute (for the time of the method call only). If the service is registered with multiple path values, the value of the `path` request attribute may be used to implement specific handling.
-
-
-### Implementations provided by Sling
-
-* [Form Based AuthenticationHandler](/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.html)
-* [OpenID AuthenticationHandler](/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.html)
-
-### Sample implementations
-
-
-#### HTTP Basic Authentication Handler
-
-* `extractCredentials` -- Get user name and password from the `Authorization` HTTP header
-* `requestCredentials` -- Send a 401/UNAUTHORIZED status with `WWW-Authenticate` response header setting the Realm
-* `dropCredentials` -- Send a 401/UNAUTHORIZED status with `WWW-Authenticate` response header setting the Realm
-
-Interestingly the `dropCredentials` method is implemented in the same way as the `requestCredentials` method. The reason for this is, that HTTP Basic authentication does not have a notion of login and logout. Rather the request is accompanied with an `Authorization` header or not. The contents of this header is usually cached by the client browser. So logout is actually simulated by sending a 401/UNAUTHORIZED status thus causing the client browser to clear the cache and ask for user name and password.
-
-
-#### Form Based Authentication Handler
-
-
-* `extractCredentials` -- Get user name and password with the help of a special cookie (note, that of course the cookie should not contain this data, but refer to it in an internal store of the authentication handler). If the cookie is not set, check for specific login parameters to setup the cookie.
-* `requestCredentials` -- Send the login form for the user to provide the login parameters.
-* `dropCredentials` -- Clear the authentication cookie and internal store.
-
-
-///Footnotes Go Here///

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.md b/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.md
deleted file mode 100644
index 8f1ee41..0000000
--- a/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.md
+++ /dev/null
@@ -1,121 +0,0 @@
-title=Form Based AuthenticationHandler		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-The Form Based AuthenticationHandler has two authentication phases: The first phase is presenting a login form to the user and passing the entered user name and password to the server. The second phase is storing successful authentication in a Cookie or an HTTP Session.
-
-The implementation of the Form Based Authentication Handler follows the guidelines of the Servlet API 2.4 specification for *Form Based Authentication* in section SRV.12.5.3. Specifically the following requirements are implemented:
-
-* For the initial form submission, the request URL must end with `/j_security_check` and the user name and password names must be `j_username` and `j_password`, resp.
-* The authentication type as returned by `HttpServletRequest.getAuthType()` is set to `HttpServletRequest.FORM_AUTH`.
-
-The Form Based Authentication Handler is maintained in the [Sling SVN](http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/form)
-
-
-### AuthenticationHandler implementation
-
-
-* `extractCredentials` -- Prepares credentials for the form entered data or from the Cookie or HTTP Session attribute. Returns `null` if neither data is provided in the request
-* `requestCredentials` -- Redirects the client (browser) to the login form
-* `dropCredentials` -- Remove the Cookie or remove the HTTP Session attribute
-
-
-### AuthenticationFeedbackHandler implementation
-
-* `authenticationFailed` -- Remove the Cookie or remove the HTTP Session attribute
-* `authenticationSucceeded` -- Set (or update) the Cookie or HTTP Session attribute
-
-
-### Phase 1: Form Submission
-
-
-The login form submitted in phase 1 to validate the user name and password must be provided in an HTTP `POST` request to an URL whose last segment is `j_security_check`. The request is ignored as a form submission if either the method is not `POST` or the last segment is no `j_security_check`.
-
-The form is rendered by redirecting the client to the URL indicated by the `form.login.form` configuration parameter. This redirection request may accompanyied by the following parameters:
-
-* `resource` -- The resource to which the user should be redirected after successful login. This request parameter should be submitted back to the server as the `resource` parameter.
-* `j_reason` -- This parameter indicates the reason for rendering the login form. If this parameter is set, it is set to `INVALID_CREDENTIALS` indicating a previous form submission presented invalid username and password or `TIMEOUT` indicating a login session has timed out. The login form servlet/script can present the user with an appropriate message.
-
-The Form Based Authentication Handlers supports the following request parameters submitted by the HTML form:
-
-* `j_username` -- Name of the user to authenticate
-* `j_password` -- Password to authenticate the user
-* `j_validate` -- Flag indicating whether to just validate the credentials
-* `resource` -- The location to go to on successful login
-* `sling.auth.redirect` -- The location to redirect to on successful login
-
-The `j_username` and `j_password` parameters are used to create a JCR `SimpleCredentials` object to log into the JCR Repository.
-
-The `j_validate` parameter may be used to implement login form submission using AJAX. If this parameter is set to `true` (case-insensitive) the credentials are used to login and after success or failure to return a status code:
-
-| Status | Description |
-|--|--|
-| `200 OK` | Authentication succeeded; credentials are valid for login; the Cookie or HTTP Session attribute is now set |
-| `403 FORBIDDEN` | Authentication failed; credentials are invalid for login; the Cookie or HTTP Session attribute is not set (if it was set, it is now cleared) |
-
-If the `j_validate` parameter is not set or is set to any value other than `true`, the request processing depends on authentication success or failure:
-
-| Authentication | Description |
-|--|--|
-| Success | Client is redirected to the authenticated resource; the Cookie or HTTP Session attribute is now set. |
-| Failure | The request is redirected to the login form again; the Cookie or HTTP Session attribute is not set (if it was set, it is now cleared) |
-
-The `resource` and `sling.auth.redirect` parameters provide similar functionality but with differing historical backgrounds. The `resource` parameter is based on the `resource` request attribute which is set by the login servlet to indicate the original target resource the client desired when it was forced to authenticate. The `sling.auth.redirect` parameter can be used by clients (applications like cURL or plain HTML forms) to request being redirected after successful login. If both parameters are set, the `sling.auth.redirect` parameter takes precedence.
-
-The Form Based Authentication Handler contains a [default form servlet](http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/AuthenticationFormServlet.java) and [HTML form template](http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/form/src/main/resources/org/apache/sling/auth/form/impl/login.html).
-
-
-### Phase 2: Authenticated Requests
-
-
-After the successful authentication of the user in phase 1, the authentication state is stored in a Cookie or an HTTP Session. The stored value is a security token with the following contents:
-
-
-HmacSHA1(securetoken, <securetokennumber><expirytime>@<userID>)@<securetokennumber><expirytime>@<userID>
-
-
-The `securetoken` and `securetokennumber` are related in that an table of secure tokens is maintained where the `securetoken` is an entry in the table and the `securetokennumber` is the index in of the token in the table.
-
-The secure tokens are refreshed periodically causing the authentication state stored in the Cookie or the HTTP Session to be updated peridocally. This periodic update has two advantages:
-
-* Login sessions time out after some period of inactivity: If a request is handled for an authentication state whose expiry time has passed, the request is considered unauthenticated.
-* If a Cookie would be stolen or an HTTP Session be hijacked, the authentication state expires within a reasonable amount of time to try to prevent stealing the authentication.
-
-The authentication state may be transmitted with a Cookie which is configured as follows:
-
-* *Cookie Path* -- Set to the servlet context path
-* *Domain* -- See below
-* *Age* -- Set to -1 to indicate a session Cookie
-* *Secure* -- Set to the value returned by the `ServletRequest.isSecure()` method
-
-If the authentication state is kept in an HTTP Session the setup of the session ID cookie is maintained by the servlet container and is outside of the control of the Form Based AuthenticationHandler.
-
-
-### Configuration
-
-The Form Based Authentication Handler is configured with configuration provided by the OSGi Configuration Admin Service using the `org.apache.sling.formauth.FormAuthenticationHandler` service PID.
-
-| Parameter | Default | Description |
-|--|--|--|
-| `form.login.form` | `/system/sling/form/login` | The URL (without any context path prefix) to redirect the client to to present the login form. |
-| `form.auth.storage` | `cookie` | The type of storage used to provide the authentication state. Valid values are `cookie` and `session`. The default value also applies if any setting other than the supported values is configured. |
-| `form.auth.name` | `sling.formauth` | The name of the Cookie or HTTP Session attribute providing the authentication state. |
-| `form.auth.timeout` | `30` |The number of minutes after which a login session times out. This value is used as the expiry time set in the authentication data. |
-| `form.credentials.name` | `sling.formauth` | The name of the `SimpleCredentials` attribute used to provide the authentication data to the `LoginModulePlugin`. |
-| `form.token.file` | `cookie-tokens.bin` | The name of the file used to persist the security tokens. |
-| `form.default.cookie.domain` | | The domain on which cookies will be set, unless overridden in the `AuthenticationInfo` object. |
-
-*Note:* The `form.token.file` parameter currently refers to a file stored in the file system. If the path is a relative path, the file is either stored in the Authentication Handler bundle private data area or -- if not possible -- below the location indicated by the `sling.home` framework property or -- if `sling.home` is not set -- the current working directory. In the future this file may be store in the JCR Repository to support clustering scenarios.
-
-
-### Security Considerations
-
-Form Based Authentication has some limitations in terms of security:
-
-1. User name and password are transmitted in plain text in the initial form submission.
-1. The Cookie used to provide the authentication state or the HTTP Session ID may be stolen.
-
-To prevent eavesdroppers from sniffing the credentials or stealing the Cookie a secure transport layer should be used such as TLS/SSL, VPN or IPSec.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.md b/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.md
deleted file mode 100644
index 09f6dab..0000000
--- a/content/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.md
+++ /dev/null
@@ -1,134 +0,0 @@
-title=OpenID AuthenticationHandler		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-The OpenID Authentication Handler supports authentication of request users using the [OpenID](http://www.openid.net) authentication protocol. If the user has successfully authenticated with his OpenID provider a signed OpenID identity is further used to identify the user.
-
-Since generally an OpenID identity is an URL and URLs may not be used as JCR user names, an association mechanism is used by the OpenID authentication handler to associate an OpenID identity with an existing JCR user: The OpenID identity URL is set as the value of a JCR user property. When a user authenticates with his OpenID identity the matching user searched for by looking for a match in this property.
-
-*NOTE:* This association currently only works with Jackrabbit (or Jackrabbit based repositories) because user management is not part of the JCR 2 specification and the OpenID authentication handler uses the Jackrabbit `UserManager` to find users by a user property value.
-
-The OpenID Authentication Handler is maintained in the [Sling SVN](http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/openid/)
-
-
-### Credentials Extraction
-
-Theoretically each request with the `openid_identifier` request parameter set may initiate an OpenID authentication process which involves resolving the OpenID provider for the identifier and subsequently authentication with the provider authorizing the Sling instance to use the OpenID identity.
-
-This initiation, though, is not possible if the request already contains a valid and validated OpenID identifier either set as a request attribute or set in the HTTP Session or the OpenID cookie. In these situations, the current association of a client with an OpenID identity must first be removed by logging out, e.g. by requesting `/system/sling/logout.html` which causes the current OpenID user data to be removed by either removing it from the HTTP Session or by clearing the OpenID cookie.
-
-
-### Phase 1: Form Submission
-
-Requesting an OpenID identifier is initiated by the Sling Authenticator deciding, that authentication is actually required to process a request and the OpenID Authentication Handler being selected to request credentials with.
-
-In this case the OpenID authenticator causes a form to be rendered by redirecting the client to the URL indicated by the `form.login.form` configuration parameter. This redirection request may accompanied by the following parameters:
-
-| Request Parameter | Description |
-|--|--|
-| `resource` | The location to which the user initially requested access and that caused the `requestCredentials` method to be called. This may not be set (or be set to an empty string). |
-| `j_reason` | The reason why an earlier attempt at authentication with the OpenID authentication handler failed. This request parameter is only set if the same named request attribute has been set by the `extractCredentials` or the `authenticationFailed` method. The value of the parameter is the name of one of the `OpenIDFailure` constants. |
-| `j_openid_identity` | The OpenID identity which could not successfully be associated with an existing JCR user. This request parameter is only set if the `authenticationFailed` method has been called due to inability to associate an existing and validated OpenID identity with an existing JCR user. |
-
-The OpenID Authentication handlers supports the following request parameters submitted by the HTML form:
-
-* `openid_identifier` -- OpenID Claimed Identifier. This may be any actual OpenID identity URL or the URL of OpenID Provider such as https://www.google.com/accounts/o8/id, https://me.yahoo.com, or https://www.myopenid.com.
-* `sling:authRequestLogin` -- This request parameter is recommended to be set with a hidden field to the value *OpenID* to ensure the request is handled by the OpenID Authentication Handler.
-* `resource` -- The `resource` request parameter should be sent back to ensure the user is finally redirected to requested target resource after successful authentication. If this request parameter is not set, or is set to an empty string, it is assumed to be the request context root path.
-
-The OpenID Authentication Handler provides a default login form registered at `/system/sling/openid/login`.
-
-
-### Configuration
-
-The OpenID AuthenticationHandler is configured with configuration provided by the OSGi Configuration Admin Service using the `org.apache.sling.openidauth.OpenIdAuthenticationHandler` service PID.
-
-| Parameter | Default | Description |
-|--|--|--|
-| `path` | -- | Repository path for which this authentication handler should be used by Sling. If this is empty, the authentication handler will be disabled. |
-| `openid.login.form` | `/system/sling/openid/login` | This should provide a way to capture the user's OpenID identifier.  This is not the OpenID Provider's login page, however, it does not have to be a local URL. If it is a local Sling URL, it must be accessible by the anonymous user. The user is HTTP Redirect'ed to this URL.  This page should POST back the user's OpenID identifier (as named by the "OpenID identifier form field" property) to the originally requested URL set in the "resource" request parameter. |
-| `openid.login.identifier` | `openid_identifier` | The name of the form parameter that provides the user's OpenID identifier. By convention this is `openid_identifier`. Only change this if you have a very good reason to do so. |
-| `openid.external.url.prefix` | -- | The prefix of URLs generated for the `ReturnTo` and `TrustRoot` properties of the OpenID request to the OpenID provider. Thus this URL prefix should bring back the authenticated user to this Sling instance. Configuring this property is usually necessary when running Sling behind a proxy (like Apache) since proxy mapping is not performed on the OpenID ReturnTo and TrustRoot URLs as they are sent to the OpenID Provider as form parameters.  If this property is empty, the URLs are generated using the hostname found in the original request.|
-| `openid.use.cookie` | `true` |  Whether to use a regular Cookie or an HTTP Session to cache the OpenID authentication details. By default a regular cookie is used to prevent use of HTTP Sessions. |
-| `openid.cookie.domain` | -- | Domain of cookie used to persist authentication. This defaults to the host name of the Sling server but may be set to a different value to share the cookie amongst a server farm or if the server is running behind a proxy. Only used if 'Use Cookie' is checked. |
-| `openid.cookie.name` | `sling.openid` | Name of cookie used to persist authentication. Only used if 'Use Cookie' is checked. |
-| `openid.cookie.secret.key` | `secret` | Secret key used to create a signature of the cookie value to prevent tampering. Only used if 'Use Cookie' is true. |
-| `openid.user.attr` | `openid.user` | Name of the JCR SimpleCredentials attribute to to set with the OpenID User data. This attribute is used by the OpenID LoginModule to validate the OpenID user authentication data. |
-| `openid.property.identity` | `openid.identity` |  The name of the JCR User attribute listing one or more OpenID Identity URLs with which a user is associated. The property may be a multi- or single-valued. To resolve a JCR user ID from an OpenID identity a user is searched who lists the identity in this property. |
-
-
-
-### AuthenticationHandler implementation
-
-
-#### extractCredentials
-
-To extract authentication information from the request, the Sling OpenID Authentication handler considers the following information in order:
-
-1. The OpenID credentials cookie or OpenID User data in the HTTP Session (depending on the `openid.use.cookie` configuration)
-1. Otherwise the `openid_identifier` request parameter (or a different request parameter depending on the `openid.login.identifier` configuration)
-
-If the OpenID credentials already exist in the request, they are validated and returned if valid
-
-If the existing credentials fail to validate, authentication failure is assumed and the credentials are removed from the request, either by clearing the OpenID cookie or by removing the OpenID User data from the HTTP Session.
-
-If no OpenID credentials are found in the request, the request parameter is considered and if set is used to resolve the actual OpenID identity of the user. This involves redirecting the client to the OpenID provider resolved from the OpenID identifier supplied.
-
-If the supplied OpenID identifier fails to resolve to an OpenID provider or if the identifier fails to be resolved to a validated OpenID identity, authentication fails.
-
-
-#### requestCredentials
-
-If the `sling:authRequestLogin` parameter is set to a value other than `OpenID` this method immediately returns `false`.
-
-If the parameter is not set or is set to `OpenID` this method continues with first invalidating any cached OpenID credentials (same as `dropCredentials` does) and then redirecting the client to the login form configured with the `openid.login.form` configuration property. The redirect is provided with up to three request parameters:
-
-| Request Parameter | Description |
-|--|--|
-| `resource` | The location to which the user initially requested access and that caused the `requestCredentials` method to be called. |
-| `j_reason` | The reason why an earlier attempt at authentication with the OpenID authentication handler failed. This request parameter is only set if the same named request attribute has been set by the `extractCredentials` or the `authenticationFailed` method. The value of the parameter is the name of one of the `OpenIDFailure` constants. |
-| `j_openid_identity` | The OpenID identity which could not successfully be associated with an existing JCR user. This request parameter is only set if the `authenticationFailed` method has been called due to inability to associate an existing and validated OpenID identity with an existing JCR user. |
-
-
-
-#### dropCredentials
-
-Invalidates the OpenID identity currently stored with the request. This means to either remove the OpenID cookie or to remove the OpenID information from the HTTP Session. This method does not write to the response (except setting the `Set-Cookie` header to remove the OpenID cookie if required) and does not commit the response.
-
-
-### AuthenticationFeedbackHandler implementation
-
-#### authenticationFailed
-
-This method is called, if the Credentials provided by the Authentication Handler could not be validated by the Jackrabbit authentication infrastructure. One cause may be that the integration with Jackrabbit has not been completed (see *Integration with Jackrabbit* below). Another, more probably cause, is that the validated OpenID identifier cannot be associated with an existing JCR user.
-
-The OpenID Authentication Handler implementation of the `authenticationFailed` method sets the `j_reason` request attribute to `OpenIDFailure.REPOSITORY` and sets the `j_openid_identity` request attribute to the OpenID identity of the authenticated user.
-
-A login form provider may wish to act upon this situation and provide a login form to the user to allow to his OpenID identity with an existing JCR user.
-
-In addition, the current OpenID identity is invalidated thus the cached OpenID information is removed from the HTTP Session or the OpenID cookie is cleaned. This will allow the user to present a different OpenID identifier to retry or it will require the OpenID identity to be revalidated with the OpenID provider if the identity is associated with a JCR user.
-
-#### authenticationSucceeded
-
-The OpenID Authentication Handler implementation of the `authenticationSucceeded` method just calls the `DefaultAuthenticationFeedbackHandler.handleRedirect` method to redirect the user to the initially requested location.
-
-
-### Integration with Jackrabbit
-
-The OpenID authentication handler can be integrated in two ways into the Jackrabbit authentication mechanism which is based on JAAS `LoginModule`. One integration is by means of a `LoginModulePlugin` which plugs into the extensible `LoginModule` architecture supported by the Sling Jackrabbit Embedded Repository bundle.
-
-The other integration option is the `trusted_credentials_attribute` mechanism supported by the Jackrabbit `DefaultLoginModule`. By setting the `trusted_credentials_attribute` parameter of the Jackrabbit `DefaultLoginModule` and the `openid.user.attr` configuration property of the OpenID Authentication Handler to the same value, the existence of an attribute of that name in the `SimpleCredentials` instance provided to the `Repository.login` method signals pre-authenticated credentials, which need not be further checked by the `DefaultLoginModule`.
-
-
-### Security Considerations
-
-OpenIDAuthentication has some limitations in terms of security:
-
-1. User name and password are transmitted in plain text in the initial form submission.
-1. The Cookie used to provide the authentication state or the HTTP Session ID may be stolen.
-1. When using the `trusted_credentials_attribute` mechanism, any intruder knowing the attribute name may log into the repository as any existing JCR user. The better option is to be based on the `LoginModulePlugin` mechanism.
-
-To prevent eavesdroppers from sniffing the credentials or stealing the Cookie a secure transport layer should be used such as TLS/SSL, VPN or IPSec.


[38/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/authentication/authentication-actors.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/authentication/authentication-actors.html b/documentation/the-sling-engine/authentication/authentication-actors.html
new file mode 100644
index 0000000..cec16a4
--- /dev/null
+++ b/documentation/the-sling-engine/authentication/authentication-actors.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Authentication - Actors</h1></header><p>Excerpt: The authentication process involves a number of actors contributing to the concepts, the API and the particular implementations.</p>
+<p>The authentication process involves a number of actors contributing to the concepts, the API and the particular implementations.</p>
+<h2>OSGi Http Service Specification</h2>
+<p>The main support for authentication is defined by the OSGi Http Service specification. This specification defines how an OSGi application can register servlets and resources to build web applications. As part of the servlet and/or resource registration a <code>HttpContext</code> may be provided, which allows for additional support.</p>
+<p>The main method of interest to the authentication process is the <code>handleSecurity</code> method. This is called by the OSGi Http Service implementation before the registered servlet is called. Its intent is to authenticate the request and to provide authentication information for the request object: the authentication type and the remote user name.</p>
+<p>The Sling Auth Core bundle provides the <code>AuthenticationSupport</code> service which may be used to the implement the <code>HttpContext.handleSecurity</code> method.</p>
+<h2>Sling Engine</h2>
+<p>The Sling Engine implements the main entry point into the Sling system by means of the <code>SlingMainServlet</code>. This servlet is registered with the OSGi Http Service and provides a custom <code>HttpContext</code> whose <code>handleSecurity</code> method is implemented by the <code>AuthenticationSupport</code> service.</p>
+<p>When the request hits the <code>service</code> method of the Sling Main Servlet, the resource resolver provided by the <code>AuthenticationSupport</code> service is retrieved from the request attributes and used as the resource resolver for the request.</p>
+<p>That's all there is for the Sling Engine to do with respect to authentication.</p>
+<h2>Sling Auth Core</h2>
+<p>The support for authenticating client requests is implemented in the Sling Auth Core bundle. As such this bundle provides three areas of support</p>
+<ul>
+  <li><code>AuthenticationHandler</code> service interface. This is implemented by services providing functionality to extract credentials from HTTP requests.</li>
+  <li><code>Authenticator</code> service interface. This is implemented by the <code>SlingAuthenticator</code> class in the Sling Auth Core bundle and provides applications with entry points to login and logout.</li>
+  <li><code>AuthenticationSupport</code> service interface. This is implemented by the <code>SlingAuthenticator</code> class in the Sling Auth Core bundle and allows applications registering with the OSGi HTTP Service to make use of the Sling authentication infrastructure.</li>
+</ul>
+<h2>JCR Repository</h2>
+<p>The actual process of logging into the repository and provided a <code>Session</code> is implementation dependent. In the case of Jackrabbit extensibility is provided by configuration of the Jackrabbit repository by means of an interface and two helper classes:</p>
+<ul>
+  <li><code>LoginModule</code> -- The interface to be implemented to provide login processing plugins</li>
+  <li><code>AbstractLoginModule</code> -- A an abstract base class implementation of the <code>LoginModule</code> interface.</li>
+  <li><code>DefaultLoginModule</code> -- The default implementation of the <code>AbstractLoginModule</code> provided by Jackabbit. This login module takes <code>SimpleCredentials</code> and uses the repository to lookup the users, validate the credentials and providing the <code>Principal</code> representing the user towards the repository.</li>
+</ul>
+<p>The Sling Jackrabbit Embedded Repository bundle provides additional plugin interfaces to extend the login process dynamically using OSGi services. To this avail the bundle configures a <code>LoginModule</code> with the provided default Jackrabbit configuration supporting these plugins:</p>
+<ul>
+  <li><code>LoginModulePlugin</code> -- The main service interface. Plugins must implement this interface to be able to extend the login process. See for example the <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/openid/">Sling OpenID authentication handler</a>, which implements this interface to support OpenID authentication.</li>
+  <li><code>AuthenticationPlugin</code> -- Helper interface for the <code>LoginModulePlugin</code>.</li>
+</ul>
+<h2>Sling Applications</h2>
+<p>Sling Applications requiring authenticated requests should not care about how authentication is implemented. To support such functionality the <code>Authenticator</code> service is provided with two methods:</p>
+<ul>
+  <li>
+  <p><code>login</code> -- allows the application to ensure requests are authenticated. This involves selecting an <code>AuthenticationHandler</code> to request credentials for authentication.</p></li>
+  <li>
+  <p><code>logout</code> -- allows the application to forget about any authentication. This involves selecting an <code>AuthenticationHandler</code> to forget about credentials in the request.</p></li>
+</ul>
+<p>Sling Applications should never directly use any knowledge of any authentication handler or directly call into an authentication handler. This will certainly break the application and cause unexpected behaviour.</p>
+<div class="info">
+If you want to know whether a request is authenticated or not, you can inspect the result of the <code>HttpServletRequest.getAuthType</code> method: If this method returns <code>null</code> the request is not authenticated.
+</div></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html b/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html
new file mode 100644
index 0000000..8ab1b7d
--- /dev/null
+++ b/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Authentication - AuthenticationHandler</h1></header><p>Excerpt: The <code>AuthenticationHandler</code> interface defines the service API which may be implemented by authentication handlers registered as OSGi services.</p>
+<p>The <code>AuthenticationHandler</code> interface defines the service API which may be implemented by authentication handlers registered as OSGi services.</p>
+<p><code>AuthenticationHandler</code> services have a single required service registration property which is used to identify requests to which the <code>AuthenticationHandler</code> service is applicable:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>path</code> </td>
+      <td>One or more (array or vector) string values indicating the request URLs to which the <code>AuthenticationHandler</code> is applicable. </td>
+    </tr>
+    <tr>
+      <td><code>authtype</code> </td>
+      <td>The authentication type implemented by this handler. This is a string value property and should be the same as will be used as the authentication type of the <code>AuthenticationInfo</code> object provided by the <code>extractCredentials</code> method. If this property is set, the <code>requestCredentials</code> method of the authentication handler is only called if the <code>sling:authRequestLogin</code> request parameter is either not set or is set to the same value as the <code>authtype</code> of the handler. This property is optional. If not set, the <code>requestCredentials</code> method is always called regardless of the value of the <code>sling:authRequestLogin</code> request parameter. </td>
+    </tr>
+  </tbody>
+</table>
+<p>Each path may be an absolute URL, an URL with just the host/port and path or just a plain absolute path:</p>
+<table>
+  <thead>
+    <tr>
+      <th>URL part </th>
+      <th>Scheme </th>
+      <th>Host/Port </th>
+      <th>Path </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Absolute URL </td>
+      <td>must match </td>
+      <td>must match </td>
+      <td>request URL path is prefixed with the path </td>
+    </tr>
+    <tr>
+      <td>Host/Port with Path </td>
+      <td>ignored </td>
+      <td>must match </td>
+      <td>request URL path is prefixed with the path </td>
+    </tr>
+    <tr>
+      <td>Path </td>
+      <td>ignored </td>
+      <td>ignored </td>
+      <td>request URL path is prefixed with the path </td>
+    </tr>
+  </tbody>
+</table>
+<p>When looking for an <code>AuthenticationHandler</code> the authentication handler is selected whose path is the longest match on the request URL. If the service is registered with Scheme and Host/Port, these must exactly match for the service to be eligible. If multiple <code>AuthenticationHandler</code> services are registered with the same length matching path, the handler with the higher service ranking is selected[^ranking].</p>
+<p>[^ranking]: Service ranking is defined by the OSGi Core Specification as follows: <em>If multiple qualifying service interfaces exist, a service with the highest <code>service.ranking</code> number, or when equal to the lowest <code>service.id</code>, determines which service object is returned by the Framework</em>.</p>
+<p>The value of <code>path</code> service registration property value triggering the call to any of the <code>AuthenticationHandler</code> methods is available as the <code>path</code> request attribute (for the time of the method call only). If the service is registered with multiple path values, the value of the <code>path</code> request attribute may be used to implement specific handling.</p>
+<h3>Implementations provided by Sling</h3>
+<ul>
+  <li><a href="/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.html">Form Based AuthenticationHandler</a></li>
+  <li><a href="/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.html">OpenID AuthenticationHandler</a></li>
+</ul>
+<h3>Sample implementations</h3>
+<h4>HTTP Basic Authentication Handler</h4>
+<ul>
+  <li><code>extractCredentials</code> -- Get user name and password from the <code>Authorization</code> HTTP header</li>
+  <li><code>requestCredentials</code> -- Send a 401/UNAUTHORIZED status with <code>WWW-Authenticate</code> response header setting the Realm</li>
+  <li><code>dropCredentials</code> -- Send a 401/UNAUTHORIZED status with <code>WWW-Authenticate</code> response header setting the Realm</li>
+</ul>
+<p>Interestingly the <code>dropCredentials</code> method is implemented in the same way as the <code>requestCredentials</code> method. The reason for this is, that HTTP Basic authentication does not have a notion of login and logout. Rather the request is accompanied with an <code>Authorization</code> header or not. The contents of this header is usually cached by the client browser. So logout is actually simulated by sending a 401/UNAUTHORIZED status thus causing the client browser to clear the cache and ask for user name and password.</p>
+<h4>Form Based Authentication Handler</h4>
+<ul>
+  <li><code>extractCredentials</code> -- Get user name and password with the help of a special cookie (note, that of course the cookie should not contain this data, but refer to it in an internal store of the authentication handler). If the cookie is not set, check for specific login parameters to setup the cookie.</li>
+  <li><code>requestCredentials</code> -- Send the login form for the user to provide the login parameters.</li>
+  <li><code>dropCredentials</code> -- Clear the authentication cookie and internal store.</li>
+</ul>
+<p>///Footnotes Go Here///</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.html b/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.html
new file mode 100644
index 0000000..64092aa
--- /dev/null
+++ b/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Form Based AuthenticationHandler</h1></header><p>[TOC]</p>
+<p>The Form Based AuthenticationHandler has two authentication phases: The first phase is presenting a login form to the user and passing the entered user name and password to the server. The second phase is storing successful authentication in a Cookie or an HTTP Session.</p>
+<p>The implementation of the Form Based Authentication Handler follows the guidelines of the Servlet API 2.4 specification for <em>Form Based Authentication</em> in section SRV.12.5.3. Specifically the following requirements are implemented:</p>
+<ul>
+  <li>For the initial form submission, the request URL must end with <code>/j_security_check</code> and the user name and password names must be <code>j_username</code> and <code>j_password</code>, resp.</li>
+  <li>The authentication type as returned by <code>HttpServletRequest.getAuthType()</code> is set to <code>HttpServletRequest.FORM_AUTH</code>.</li>
+</ul>
+<p>The Form Based Authentication Handler is maintained in the <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/form">Sling SVN</a></p>
+<h3>AuthenticationHandler implementation</h3>
+<ul>
+  <li><code>extractCredentials</code> -- Prepares credentials for the form entered data or from the Cookie or HTTP Session attribute. Returns <code>null</code> if neither data is provided in the request</li>
+  <li><code>requestCredentials</code> -- Redirects the client (browser) to the login form</li>
+  <li><code>dropCredentials</code> -- Remove the Cookie or remove the HTTP Session attribute</li>
+</ul>
+<h3>AuthenticationFeedbackHandler implementation</h3>
+<ul>
+  <li><code>authenticationFailed</code> -- Remove the Cookie or remove the HTTP Session attribute</li>
+  <li><code>authenticationSucceeded</code> -- Set (or update) the Cookie or HTTP Session attribute</li>
+</ul>
+<h3>Phase 1: Form Submission</h3>
+<p>The login form submitted in phase 1 to validate the user name and password must be provided in an HTTP <code>POST</code> request to an URL whose last segment is <code>j_security_check</code>. The request is ignored as a form submission if either the method is not <code>POST</code> or the last segment is no <code>j_security_check</code>.</p>
+<p>The form is rendered by redirecting the client to the URL indicated by the <code>form.login.form</code> configuration parameter. This redirection request may accompanyied by the following parameters:</p>
+<ul>
+  <li><code>resource</code> -- The resource to which the user should be redirected after successful login. This request parameter should be submitted back to the server as the <code>resource</code> parameter.</li>
+  <li><code>j_reason</code> -- This parameter indicates the reason for rendering the login form. If this parameter is set, it is set to <code>INVALID_CREDENTIALS</code> indicating a previous form submission presented invalid username and password or <code>TIMEOUT</code> indicating a login session has timed out. The login form servlet/script can present the user with an appropriate message.</li>
+</ul>
+<p>The Form Based Authentication Handlers supports the following request parameters submitted by the HTML form:</p>
+<ul>
+  <li><code>j_username</code> -- Name of the user to authenticate</li>
+  <li><code>j_password</code> -- Password to authenticate the user</li>
+  <li><code>j_validate</code> -- Flag indicating whether to just validate the credentials</li>
+  <li><code>resource</code> -- The location to go to on successful login</li>
+  <li><code>sling.auth.redirect</code> -- The location to redirect to on successful login</li>
+</ul>
+<p>The <code>j_username</code> and <code>j_password</code> parameters are used to create a JCR <code>SimpleCredentials</code> object to log into the JCR Repository.</p>
+<p>The <code>j_validate</code> parameter may be used to implement login form submission using AJAX. If this parameter is set to <code>true</code> (case-insensitive) the credentials are used to login and after success or failure to return a status code:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>200 OK</code> </td>
+      <td>Authentication succeeded; credentials are valid for login; the Cookie or HTTP Session attribute is now set </td>
+    </tr>
+    <tr>
+      <td><code>403 FORBIDDEN</code> </td>
+      <td>Authentication failed; credentials are invalid for login; the Cookie or HTTP Session attribute is not set (if it was set, it is now cleared) </td>
+    </tr>
+  </tbody>
+</table>
+<p>If the <code>j_validate</code> parameter is not set or is set to any value other than <code>true</code>, the request processing depends on authentication success or failure:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Authentication </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Success </td>
+      <td>Client is redirected to the authenticated resource; the Cookie or HTTP Session attribute is now set. </td>
+    </tr>
+    <tr>
+      <td>Failure </td>
+      <td>The request is redirected to the login form again; the Cookie or HTTP Session attribute is not set (if it was set, it is now cleared) </td>
+    </tr>
+  </tbody>
+</table>
+<p>The <code>resource</code> and <code>sling.auth.redirect</code> parameters provide similar functionality but with differing historical backgrounds. The <code>resource</code> parameter is based on the <code>resource</code> request attribute which is set by the login servlet to indicate the original target resource the client desired when it was forced to authenticate. The <code>sling.auth.redirect</code> parameter can be used by clients (applications like cURL or plain HTML forms) to request being redirected after successful login. If both parameters are set, the <code>sling.auth.redirect</code> parameter takes precedence.</p>
+<p>The Form Based Authentication Handler contains a <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/AuthenticationFormServlet.java">default form servlet</a> and <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/form/src/main/resources/org/apache/sling/auth/form/impl/login.html">HTML form template</a>.</p>
+<h3>Phase 2: Authenticated Requests</h3>
+<p>After the successful authentication of the user in phase 1, the authentication state is stored in a Cookie or an HTTP Session. The stored value is a security token with the following contents:</p>
+<p>HmacSHA1(securetoken, <securetokennumber><expirytime>@<userID>)@<securetokennumber><expirytime>@<userID></p>
+<p>The <code>securetoken</code> and <code>securetokennumber</code> are related in that an table of secure tokens is maintained where the <code>securetoken</code> is an entry in the table and the <code>securetokennumber</code> is the index in of the token in the table.</p>
+<p>The secure tokens are refreshed periodically causing the authentication state stored in the Cookie or the HTTP Session to be updated peridocally. This periodic update has two advantages:</p>
+<ul>
+  <li>Login sessions time out after some period of inactivity: If a request is handled for an authentication state whose expiry time has passed, the request is considered unauthenticated.</li>
+  <li>If a Cookie would be stolen or an HTTP Session be hijacked, the authentication state expires within a reasonable amount of time to try to prevent stealing the authentication.</li>
+</ul>
+<p>The authentication state may be transmitted with a Cookie which is configured as follows:</p>
+<ul>
+  <li><em>Cookie Path</em> -- Set to the servlet context path</li>
+  <li><em>Domain</em> -- See below</li>
+  <li><em>Age</em> -- Set to -1 to indicate a session Cookie</li>
+  <li><em>Secure</em> -- Set to the value returned by the <code>ServletRequest.isSecure()</code> method</li>
+</ul>
+<p>If the authentication state is kept in an HTTP Session the setup of the session ID cookie is maintained by the servlet container and is outside of the control of the Form Based AuthenticationHandler.</p>
+<h3>Configuration</h3>
+<p>The Form Based Authentication Handler is configured with configuration provided by the OSGi Configuration Admin Service using the <code>org.apache.sling.formauth.FormAuthenticationHandler</code> service PID.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>form.login.form</code> </td>
+      <td><code>/system/sling/form/login</code> </td>
+      <td>The URL (without any context path prefix) to redirect the client to to present the login form. </td>
+    </tr>
+    <tr>
+      <td><code>form.auth.storage</code> </td>
+      <td><code>cookie</code> </td>
+      <td>The type of storage used to provide the authentication state. Valid values are <code>cookie</code> and <code>session</code>. The default value also applies if any setting other than the supported values is configured. </td>
+    </tr>
+    <tr>
+      <td><code>form.auth.name</code> </td>
+      <td><code>sling.formauth</code> </td>
+      <td>The name of the Cookie or HTTP Session attribute providing the authentication state. </td>
+    </tr>
+    <tr>
+      <td><code>form.auth.timeout</code> </td>
+      <td><code>30</code> </td>
+      <td>The number of minutes after which a login session times out. This value is used as the expiry time set in the authentication data. </td>
+    </tr>
+    <tr>
+      <td><code>form.credentials.name</code> </td>
+      <td><code>sling.formauth</code> </td>
+      <td>The name of the <code>SimpleCredentials</code> attribute used to provide the authentication data to the <code>LoginModulePlugin</code>. </td>
+    </tr>
+    <tr>
+      <td><code>form.token.file</code> </td>
+      <td><code>cookie-tokens.bin</code> </td>
+      <td>The name of the file used to persist the security tokens. </td>
+    </tr>
+    <tr>
+      <td><code>form.default.cookie.domain</code> </td>
+      <td> </td>
+      <td>The domain on which cookies will be set, unless overridden in the <code>AuthenticationInfo</code> object. </td>
+    </tr>
+  </tbody>
+</table>
+<p><em>Note:</em> The <code>form.token.file</code> parameter currently refers to a file stored in the file system. If the path is a relative path, the file is either stored in the Authentication Handler bundle private data area or -- if not possible -- below the location indicated by the <code>sling.home</code> framework property or -- if <code>sling.home</code> is not set -- the current working directory. In the future this file may be store in the JCR Repository to support clustering scenarios.</p>
+<h3>Security Considerations</h3>
+<p>Form Based Authentication has some limitations in terms of security:</p>
+<ol>
+  <li>User name and password are transmitted in plain text in the initial form submission.</li>
+  <li>The Cookie used to provide the authentication state or the HTTP Session ID may be stolen.</li>
+</ol>
+<p>To prevent eavesdroppers from sniffing the credentials or stealing the Cookie a secure transport layer should be used such as TLS/SSL, VPN or IPSec.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.html b/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.html
new file mode 100644
index 0000000..936b49d
--- /dev/null
+++ b/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>OpenID AuthenticationHandler</h1></header><p>[TOC]</p>
+<p>The OpenID Authentication Handler supports authentication of request users using the <a href="http://www.openid.net">OpenID</a> authentication protocol. If the user has successfully authenticated with his OpenID provider a signed OpenID identity is further used to identify the user.</p>
+<p>Since generally an OpenID identity is an URL and URLs may not be used as JCR user names, an association mechanism is used by the OpenID authentication handler to associate an OpenID identity with an existing JCR user: The OpenID identity URL is set as the value of a JCR user property. When a user authenticates with his OpenID identity the matching user searched for by looking for a match in this property.</p>
+<p><em>NOTE:</em> This association currently only works with Jackrabbit (or Jackrabbit based repositories) because user management is not part of the JCR 2 specification and the OpenID authentication handler uses the Jackrabbit <code>UserManager</code> to find users by a user property value.</p>
+<p>The OpenID Authentication Handler is maintained in the <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/auth/openid/">Sling SVN</a></p>
+<h3>Credentials Extraction</h3>
+<p>Theoretically each request with the <code>openid_identifier</code> request parameter set may initiate an OpenID authentication process which involves resolving the OpenID provider for the identifier and subsequently authentication with the provider authorizing the Sling instance to use the OpenID identity.</p>
+<p>This initiation, though, is not possible if the request already contains a valid and validated OpenID identifier either set as a request attribute or set in the HTTP Session or the OpenID cookie. In these situations, the current association of a client with an OpenID identity must first be removed by logging out, e.g. by requesting <code>/system/sling/logout.html</code> which causes the current OpenID user data to be removed by either removing it from the HTTP Session or by clearing the OpenID cookie.</p>
+<h3>Phase 1: Form Submission</h3>
+<p>Requesting an OpenID identifier is initiated by the Sling Authenticator deciding, that authentication is actually required to process a request and the OpenID Authentication Handler being selected to request credentials with.</p>
+<p>In this case the OpenID authenticator causes a form to be rendered by redirecting the client to the URL indicated by the <code>form.login.form</code> configuration parameter. This redirection request may accompanied by the following parameters:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Request Parameter </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>resource</code> </td>
+      <td>The location to which the user initially requested access and that caused the <code>requestCredentials</code> method to be called. This may not be set (or be set to an empty string). </td>
+    </tr>
+    <tr>
+      <td><code>j_reason</code> </td>
+      <td>The reason why an earlier attempt at authentication with the OpenID authentication handler failed. This request parameter is only set if the same named request attribute has been set by the <code>extractCredentials</code> or the <code>authenticationFailed</code> method. The value of the parameter is the name of one of the <code>OpenIDFailure</code> constants. </td>
+    </tr>
+    <tr>
+      <td><code>j_openid_identity</code> </td>
+      <td>The OpenID identity which could not successfully be associated with an existing JCR user. This request parameter is only set if the <code>authenticationFailed</code> method has been called due to inability to associate an existing and validated OpenID identity with an existing JCR user. </td>
+    </tr>
+  </tbody>
+</table>
+<p>The OpenID Authentication handlers supports the following request parameters submitted by the HTML form:</p>
+<ul>
+  <li><code>openid_identifier</code> -- OpenID Claimed Identifier. This may be any actual OpenID identity URL or the URL of OpenID Provider such as https://www.google.com/accounts/o8/id, https://me.yahoo.com, or https://www.myopenid.com.</li>
+  <li><code>sling:authRequestLogin</code> -- This request parameter is recommended to be set with a hidden field to the value <em>OpenID</em> to ensure the request is handled by the OpenID Authentication Handler.</li>
+  <li><code>resource</code> -- The <code>resource</code> request parameter should be sent back to ensure the user is finally redirected to requested target resource after successful authentication. If this request parameter is not set, or is set to an empty string, it is assumed to be the request context root path.</li>
+</ul>
+<p>The OpenID Authentication Handler provides a default login form registered at <code>/system/sling/openid/login</code>.</p>
+<h3>Configuration</h3>
+<p>The OpenID AuthenticationHandler is configured with configuration provided by the OSGi Configuration Admin Service using the <code>org.apache.sling.openidauth.OpenIdAuthenticationHandler</code> service PID.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+</table>
+<p>| <code>path</code> | -- | Repository path for which this authentication handler should be used by Sling. If this is empty, the authentication handler will be disabled. | | <code>openid.login.form</code> | <code>/system/sling/openid/login</code> | This should provide a way to capture the user's OpenID identifier. This is not the OpenID Provider's login page, however, it does not have to be a local URL. If it is a local Sling URL, it must be accessible by the anonymous user. The user is HTTP Redirect'ed to this URL. This page should POST back the user's OpenID identifier (as named by the "OpenID identifier form field" property) to the originally requested URL set in the "resource" request parameter. | | <code>openid.login.identifier</code> | <code>openid_identifier</code> | The name of the form parameter that provides the user's OpenID identifier. By convention this is <code>openid_identifier</code>. Only change this if you have a very good reason to do so. | | <code>openid.extern
 al.url.prefix</code> | -- | The prefix of URLs generated for the <code>ReturnTo</code> and <code>TrustRoot</code> properties of the OpenID request to the OpenID provider. Thus this URL prefix should bring back the authenticated user to this Sling instance. Configuring this property is usually necessary when running Sling behind a proxy (like Apache) since proxy mapping is not performed on the OpenID ReturnTo and TrustRoot URLs as they are sent to the OpenID Provider as form parameters. If this property is empty, the URLs are generated using the hostname found in the original request.| | <code>openid.use.cookie</code> | <code>true</code> | Whether to use a regular Cookie or an HTTP Session to cache the OpenID authentication details. By default a regular cookie is used to prevent use of HTTP Sessions. | | <code>openid.cookie.domain</code> | -- | Domain of cookie used to persist authentication. This defaults to the host name of the Sling server but may be set to a different value to sh
 are the cookie amongst a server farm or if the server is running behind a proxy. Only used if 'Use Cookie' is checked. | | <code>openid.cookie.name</code> | <code>sling.openid</code> | Name of cookie used to persist authentication. Only used if 'Use Cookie' is checked. | | <code>openid.cookie.secret.key</code> | <code>secret</code> | Secret key used to create a signature of the cookie value to prevent tampering. Only used if 'Use Cookie' is true. | | <code>openid.user.attr</code> | <code>openid.user</code> | Name of the JCR SimpleCredentials attribute to to set with the OpenID User data. This attribute is used by the OpenID LoginModule to validate the OpenID user authentication data. | | <code>openid.property.identity</code> | <code>openid.identity</code> | The name of the JCR User attribute listing one or more OpenID Identity URLs with which a user is associated. The property may be a multi- or single-valued. To resolve a JCR user ID from an OpenID identity a user is searched who l
 ists the identity in this property. |</p>
+<h3>AuthenticationHandler implementation</h3>
+<h4>extractCredentials</h4>
+<p>To extract authentication information from the request, the Sling OpenID Authentication handler considers the following information in order:</p>
+<ol>
+  <li>The OpenID credentials cookie or OpenID User data in the HTTP Session (depending on the <code>openid.use.cookie</code> configuration)</li>
+  <li>Otherwise the <code>openid_identifier</code> request parameter (or a different request parameter depending on the <code>openid.login.identifier</code> configuration)</li>
+</ol>
+<p>If the OpenID credentials already exist in the request, they are validated and returned if valid</p>
+<p>If the existing credentials fail to validate, authentication failure is assumed and the credentials are removed from the request, either by clearing the OpenID cookie or by removing the OpenID User data from the HTTP Session.</p>
+<p>If no OpenID credentials are found in the request, the request parameter is considered and if set is used to resolve the actual OpenID identity of the user. This involves redirecting the client to the OpenID provider resolved from the OpenID identifier supplied.</p>
+<p>If the supplied OpenID identifier fails to resolve to an OpenID provider or if the identifier fails to be resolved to a validated OpenID identity, authentication fails.</p>
+<h4>requestCredentials</h4>
+<p>If the <code>sling:authRequestLogin</code> parameter is set to a value other than <code>OpenID</code> this method immediately returns <code>false</code>.</p>
+<p>If the parameter is not set or is set to <code>OpenID</code> this method continues with first invalidating any cached OpenID credentials (same as <code>dropCredentials</code> does) and then redirecting the client to the login form configured with the <code>openid.login.form</code> configuration property. The redirect is provided with up to three request parameters:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Request Parameter </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>resource</code> </td>
+      <td>The location to which the user initially requested access and that caused the <code>requestCredentials</code> method to be called. </td>
+    </tr>
+    <tr>
+      <td><code>j_reason</code> </td>
+      <td>The reason why an earlier attempt at authentication with the OpenID authentication handler failed. This request parameter is only set if the same named request attribute has been set by the <code>extractCredentials</code> or the <code>authenticationFailed</code> method. The value of the parameter is the name of one of the <code>OpenIDFailure</code> constants. </td>
+    </tr>
+    <tr>
+      <td><code>j_openid_identity</code> </td>
+      <td>The OpenID identity which could not successfully be associated with an existing JCR user. This request parameter is only set if the <code>authenticationFailed</code> method has been called due to inability to associate an existing and validated OpenID identity with an existing JCR user. </td>
+    </tr>
+  </tbody>
+</table>
+<h4>dropCredentials</h4>
+<p>Invalidates the OpenID identity currently stored with the request. This means to either remove the OpenID cookie or to remove the OpenID information from the HTTP Session. This method does not write to the response (except setting the <code>Set-Cookie</code> header to remove the OpenID cookie if required) and does not commit the response.</p>
+<h3>AuthenticationFeedbackHandler implementation</h3>
+<h4>authenticationFailed</h4>
+<p>This method is called, if the Credentials provided by the Authentication Handler could not be validated by the Jackrabbit authentication infrastructure. One cause may be that the integration with Jackrabbit has not been completed (see <em>Integration with Jackrabbit</em> below). Another, more probably cause, is that the validated OpenID identifier cannot be associated with an existing JCR user.</p>
+<p>The OpenID Authentication Handler implementation of the <code>authenticationFailed</code> method sets the <code>j_reason</code> request attribute to <code>OpenIDFailure.REPOSITORY</code> and sets the <code>j_openid_identity</code> request attribute to the OpenID identity of the authenticated user.</p>
+<p>A login form provider may wish to act upon this situation and provide a login form to the user to allow to his OpenID identity with an existing JCR user.</p>
+<p>In addition, the current OpenID identity is invalidated thus the cached OpenID information is removed from the HTTP Session or the OpenID cookie is cleaned. This will allow the user to present a different OpenID identifier to retry or it will require the OpenID identity to be revalidated with the OpenID provider if the identity is associated with a JCR user.</p>
+<h4>authenticationSucceeded</h4>
+<p>The OpenID Authentication Handler implementation of the <code>authenticationSucceeded</code> method just calls the <code>DefaultAuthenticationFeedbackHandler.handleRedirect</code> method to redirect the user to the initially requested location.</p>
+<h3>Integration with Jackrabbit</h3>
+<p>The OpenID authentication handler can be integrated in two ways into the Jackrabbit authentication mechanism which is based on JAAS <code>LoginModule</code>. One integration is by means of a <code>LoginModulePlugin</code> which plugs into the extensible <code>LoginModule</code> architecture supported by the Sling Jackrabbit Embedded Repository bundle.</p>
+<p>The other integration option is the <code>trusted_credentials_attribute</code> mechanism supported by the Jackrabbit <code>DefaultLoginModule</code>. By setting the <code>trusted_credentials_attribute</code> parameter of the Jackrabbit <code>DefaultLoginModule</code> and the <code>openid.user.attr</code> configuration property of the OpenID Authentication Handler to the same value, the existence of an attribute of that name in the <code>SimpleCredentials</code> instance provided to the <code>Repository.login</code> method signals pre-authenticated credentials, which need not be further checked by the <code>DefaultLoginModule</code>.</p>
+<h3>Security Considerations</h3>
+<p>OpenIDAuthentication has some limitations in terms of security:</p>
+<ol>
+  <li>User name and password are transmitted in plain text in the initial form submission.</li>
+  <li>The Cookie used to provide the authentication state or the HTTP Session ID may be stolen.</li>
+  <li>When using the <code>trusted_credentials_attribute</code> mechanism, any intruder knowing the attribute name may log into the repository as any existing JCR user. The better option is to be based on the <code>LoginModulePlugin</code> mechanism.</li>
+</ol>
+<p>To prevent eavesdroppers from sniffing the credentials or stealing the Cookie a secure transport layer should be used such as TLS/SSL, VPN or IPSec.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/authentication/authentication-framework.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/authentication/authentication-framework.html b/documentation/the-sling-engine/authentication/authentication-framework.html
new file mode 100644
index 0000000..e5d3ea1
--- /dev/null
+++ b/documentation/the-sling-engine/authentication/authentication-framework.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Authentication - Framework</h1></header><p>Excerpt: The core piece of functionality with respect to authentication in Sling is contained in the Sling Auth Core bundle. This bundle provides the API for Sling and Sling applications to make use of authentication.</p>
+<p>The core piece of functionality with respect to authentication in Sling is contained in the Sling Auth Core bundle. This bundle provides the API for Sling and Sling applications to make use of authentication.</p>
+<p>This support encompasses three parts:</p>
+<ul>
+  <li>The <code>AuthenticationSupport</code> service provided by the <code>SlingAuthenticator</code> class. This service can be used by implementations of the OSGi <code>HttpContext</code> interface to delegate authentication.</li>
+  <li>The <code>Authenticator</code> service also provided by the <code>SlingAuthenticator</code> class. This service may be used by Sling applications to help clients login and logout.</li>
+  <li>The <code>AuthenticationHandler</code> service interface. These services may be implemented by extensions to support various ways for transporting credentials from clients to the Sling server.</li>
+</ul>
+<p>This page describes how the <code>SlingAuthenticator</code> class provides the <code>AuthenticationSupport</code> and <code>Authenticator</code> services. For a description of the <code>AuthenticationHandler</code> service interface and the interaction between the <code>SlingAuthenticator</code> and the <code>AuthenticationHandler</code> services refer to the <a href="/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html">AuthenticationHandler</a> page.</p>
+<p>The <code>SlingAuthenticator</code> class is an internal class of the <code>org.apache.sling.auth.core</code> bundle and implements the <code>Authenticator</code> and <code>AuthenticationSupport</code> services.</p>
+<h2>AuthenticationSupport</h2>
+<p>The <code>AuthenticationSupport</code> service interface defines a single method: <code>handleSecurity</code>. This method is intended to be called by the <code>handleSecurity</code> method of any <code>HttpContext</code> implementation wishing to make use of the Sling Authentication Framework.</p>
+<p>The Sling Authenticator implementation selects an <code>AuthenticationHandler</code> service appropriate for the request and calls the <code>AuthenticationHandler.extractCredentials</code> method to extract the credentials from the request. If no credentials could be extracted, the Sling Authenticator either admits the request as an anonymous request or requests authentication from the client by calling its own <code>login</code> method.</p>
+<p>The implementation follows this algorithm:</p>
+<ol>
+  <li>Select one or more <code>AuthenticationHandler</code> for the request according to the request URL's scheme and authorization part.</li>
+  <li>Call the <code>extractCredentials</code> method of each authentication handler, where the order of handler call is defined by the length of the registered path: handlers registered with longer paths are called before handlers with shorter paths. The goal is to call the handlers in order from longest request path match to shortest match. Handlers not matching the request path at all are not called.</li>
+  <li>The first handler returning a non-<code>null</code> <code>AuthenticationInfo</code> result "wins" and the result is used for authentication.</li>
+  <li>If any <code>AuthenticationInfoPostProcessor</code> services are registered, the <code>AuthenticationInfo</code> object is passed to their <code>postProcess()</code> method.</li>
+  <li>If no handler returns a non-<code>null</code> result, the request may be handled anonymously. In these cases, an empty <code>AuthenticationInfo</code> object is passed to any <code>AuthenticationInfoPostProcessor</code> services.</li>
+  <li>(Try to) log into the repository either with the provided credentials or anonymously.</li>
+  <li>If there were credentials provided and the login was successful, a login event is posted <em>if</em> the <code>AuthenticationInfo</code> object contains a non-null object with the key <code>$$auth.info.login$$</code> (<code>AuthConstants.AUTH_INFO_LOGIN</code>). This event is posted with the topic <code>org/apache/sling/auth/core/Authenticator/LOGIN</code>. (added in Sling Auth Core 1.1.0)</li>
+  <li>Set request attributes listed below.</li>
+</ol>
+<p>Extracting the credentials and trying to login to the repository may yield the following results:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Credentials </th>
+      <th>Login </th>
+      <th>Consequence </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>present </td>
+      <td>successful </td>
+      <td>Continue with an authenticated request </td>
+    </tr>
+    <tr>
+      <td>present </td>
+      <td>failed </td>
+      <td>Select <code>AuthenticationHandler</code> and call <code>requestCredentials</code> method </td>
+    </tr>
+    <tr>
+      <td>missing </td>
+      <td>anonymous allowed </td>
+      <td>Continue with a non authenticated request using anonymous access to the repository </td>
+    </tr>
+    <tr>
+      <td>missing </td>
+      <td>anonymous forbidden </td>
+      <td>Select <code>AuthenticationHandler</code> and call <code>requestCredentials</code> method </td>
+    </tr>
+  </tbody>
+</table>
+<div class="note">
+Only one <code>AuthenticationHandler</code> is able to provide credentials for a given request. If the credentials provided by the handler cannot be used to login to the repository, authentication fails and no further <code>AuthenticationHandler</code> is consulted.
+</div>
+<h4>Request Attributes on Successful Login</h4>
+<p>The <code>handleSecurity</code> method gets credentials from the <code>AuthenticationHandler</code> and logs into the JCR repository using those credentials. If the login is successful, the <code>SlingAuthenticator</code> sets the following request attributes:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Attribute </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>org.osgi.service.http.authentication.remote.user</code> </td>
+      <td>The user ID of the JCR Session. This attribute is used by the HTTP Service implementation to implement the <code>HttpServletRequest.getRemoteUser</code> method. </td>
+    </tr>
+    <tr>
+      <td><code>org.osgi.service.http.authentication.type</code> </td>
+      <td>The authentication type defined by the <code>AuthenticationHandler</code>. This attribute is used by the HTTP Service implementation to implement the <code>HttpServletRequest.getAuthType</code> method. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.auth.core.ResourceResolver</code> </td>
+      <td>The <code>ResourceResolver</code> created from the credentials and the logged in JCR Session. This attribute may be used by servlets to access the repository. Namely the <code>SlingMainServlet</code> uses this request attribute to provide the <code>ResourceResolver</code> to handle the request. </td>
+    </tr>
+    <tr>
+      <td><code>javax.jcr.Session</code> </td>
+      <td>The JCR Session. This attribute is for backwards compatibility only. <em>Its use is deprecated and the attribute will be removed in future versions</em>. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.auth.core.spi.AuthenticationInfo</code> </td>
+      <td>The <code>AuthenticationInfo</code> object produced from the <code>AuthenticationHandler</code>. </td>
+    </tr>
+  </tbody>
+</table>
+<p><strong>NOTE</strong>: Do <em>NOT</em> use the <code>javax.jcr.Session</code> request attribute in your Sling applications. This attribute must be considered implementation specific to convey the JCR Session to the <code>SlingMainServlet</code>. In future versions of the Sling Auth Core bundle, this request attribute will not be present anymore. To get the JCR Session for the current request adapt the request's resource resolver to a JCR Session:</p>
+<p>Session session = request.getResourceResolver().adaptTo(Session.class);</p>
+<h4>Anonymous Login</h4>
+<p>The <code>SlingAuthenticator</code> provides high level of control with respect to allowing anonymous requests or requiring authentication up front:</p>
+<ul>
+  <li>Global setting of whether anonymous requests are allowed or not. This is the boolean value of the <em>Allow Anonymous Access</em> (<code>auth.annonymous</code>) property of the <code>SlingAuthenticator</code> configuration. This property is supported for backwards compatibility and defaults to <code>true</code> (allowing anonymous access). Setting it to <code>true</code> is a shortcut for setting <code>sling.auth.requirements</code> to <code>-/</code>.</li>
+  <li>Specific configuration per URL. The <em>Authentication Requirements</em> (<code>sling.auth.requirements</code>) property of the <code>SlingAuthenticator</code> configuration may provide a list of URLs for which authentication may be required or not: Any entry prefixed with a dash <code>-</code> defines a request path prefix for which authentication is not required. Any entry not prefixed with a dash or prefixed with a plus <code>+</code> defines a subtree for which authentication is required up front and thus anonymous access is not allowed. This list is empty by default.</li>
+  <li>Any OSGi service may provide a <code>sling.auth.requirements</code> registration property which is used to dynamically extend the authentication requirements from the <em>Authentication Requirements</em> configuration. This may for example be set by <code>AuthenticationHandler</code> implementations providing a login form to ensure access to the login form does not require authentication. The value of this property is a single string, an array of strings or a Collection of strings and is formatted in the same way as the <em>Authentication Requirements</em> configuration property.</li>
+</ul>
+<p>The values set on the <em>Authentication Requirements</em> configuration property or the <code>sling.auth.requirements</code> service registration property can be absolute paths or URLs like the <code>path</code> service registration property of <code>AuthenticationHandler</code> services. This allows the limitation of this setup to certain requests by scheme and/or virtual host address. The requests path (<code>HttpServletRequest.getServletPath()</code> + <code>HttpServletRequest.getPathInfo()</code>) is afterwards matched against the given paths. It matches if it starts with one of the given paths.</p>
+<p><strong>Examples</strong></p>
+<ul>
+  <li>The <code>LoginServlet</code> contained in the Sling Auth Core bundle registers itself with the service registration property <code>sling.auth.requirements = &quot;-/system/sling/login&quot;</code> to ensure the servlet can be accessed without requiring authentication (checks for <code>slash</code> or <code>dot</code> or <code>end of string</code>). The following request urls would work then without authentication:</li>
+  <li>/system/sling/login</li>
+  <li>/system/sling/login.html</li>
+  <li>/system/sling/login/somesuffix</li>
+</ul>
+<p>While the following request will still require authentication</p>
+<ul>
+  <li>
+  <p>/system/sling/login-test</p></li>
+  <li>
+  <p>An authentication handler may register itself with the service registration property <code>sling.auth.requirements = &quot;-/apps/sample/loginform&quot;</code> to ensure the login form can be rendered without requiring authentication.</p></li>
+</ul>
+<h2>Authenticator implementation</h2>
+<p>The implementation of the <code>Authenticator</code> interface is similar for both methods:</p>
+<p><strong><code>login</code></strong></p>
+<ol>
+  <li>Select one or more <code>AuthenticationHandler</code> for the request according to the request URL's scheme and authorization part.</li>
+  <li>Call the <code>requestCredentials</code> method of each authentication handler, where the order of handler call is defined by the length of the registered path: handlers registered with longer paths are called before handlers with shorter paths. The goal is to call the handlers in order from longest request path match to shortest match. Handlers not matching the request path at all are not called.</li>
+  <li>As soon as the first handlers returns <code>true</code>, the process ends and it is assumed credentials have been requested from the client.</li>
+</ol>
+<p>The <code>login</code> method has three possible exit states:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Exit State </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Normal </td>
+      <td>An <code>AuthenticationHandler</code> could be selected to which the login request could be forwarded. </td>
+    </tr>
+    <tr>
+      <td><code>NoAuthenticationHandlerException</code> </td>
+      <td>No <code>AuthenticationHandler</code> could be selected to forward the login request to. In this case, the caller can proceed as appropriate. For example a servlet, which should just login a user may send back a 403/FORBIDDEN status because login is not possible. Or a 404/NOT FOUND handler, which tried to login as a fallback, may continue and send back the regular 404/NOT FOUND response. </td>
+    </tr>
+    <tr>
+      <td><code>IllegalStateException</code> </td>
+      <td>The response has already been committed and the login request cannot be processed. Normally to request login, the current response must be reset and a new response has to be prepared. This is only possible if the request has not yet been committed. </td>
+    </tr>
+  </tbody>
+</table>
+<p><strong><code>logout</code></strong></p>
+<ol>
+  <li>Select one or more <code>AuthenticationHandler</code> for the request according to the request URL's scheme and authorization part.</li>
+  <li>Call the <code>dropCredentials</code> method of each authentication handler, where the order of handler call is defined by the length of the registered path: handlers registered with longer paths are called before handlers with shorter paths. The goal is to call the handlers in order from longest request path match to shortest match. Handlers not matching the request path at all are not called.</li>
+</ol>
+<p>Unlike for the <code>login</code> method in the <code>logout</code> method case all <code>AuthenticationHandler</code> services selected in the first step are called. If none can be selected or none can actually handle the <code>dropCredentials</code> request, the <code>logout</code> silently returns.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/authentication/authentication-tasks.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/authentication/authentication-tasks.html b/documentation/the-sling-engine/authentication/authentication-tasks.html
new file mode 100644
index 0000000..4475315
--- /dev/null
+++ b/documentation/the-sling-engine/authentication/authentication-tasks.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Authentication - Tasks</h1></header><p>Excerpt: Authentication of HTTP Requests is generally a two-step process: First the credentials must be extracted from the request and second the credentials must be validated. In the case of Sling this means acquiring a JCR Session.</p>
+<p>Authentication of HTTP Requests is generally a two-step process: First the credentials must be extracted from the request and second the credentials must be validated. In the case of Sling this means acquiring a JCR Session.</p>
+<h2>Extract Credentials from the Request</h2>
+<ul>
+  <li>Implemented and controlled by the Sling Auth Core bundle</li>
+  <li>Takes <code>HttpServletRequest</code></li>
+  <li>Provides credentials for futher processing (basically JCR <code>Credentials</code> and Workspace name)</li>
+  <li>Extensible with the help of <code>AuthenticationHandler</code> services</li>
+</ul>
+<h2>Login to the JCR Repository</h2>
+<ul>
+  <li>Implemented and controlled by the JCR Repository</li>
+  <li>Takes JCR <code>Credentials</code> and Workspace name</li>
+  <li>Provides a JCR <code>Session</code></li>
+  <li>Implementation dependent process. Jackrabbit provides extensibility based on <code>LoginModules</code>; Sling's Embedded Jackrabbit Repository bundle provides extensibility with <code>LoginModulePlugin</code> services.</li>
+</ul>
+<p>Currently the credentials are always verified by trying to login to the JCR repository. Once an <a href="http://cwiki.apache.org/SLING/add-resourceresolverfactory-service-interface.html">ResourceResolverFactory</a> API has been added, the process of validating the credentials and logging in is actualy replaced by a process of requesting a <code>ResourceResolver</code> from the <code>ResourceResolverFactory</code>. Of course, the JCR Repository will still be the main underlying repository and as such be used to validate the credentials and get a JCR Session.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/default-mapping-and-rendering.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/default-mapping-and-rendering.html b/documentation/the-sling-engine/default-mapping-and-rendering.html
new file mode 100644
index 0000000..529eb13
--- /dev/null
+++ b/documentation/the-sling-engine/default-mapping-and-rendering.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Default Mapping and Rendering</h1></header><p>translation_pending: true</p>
+<p>This page contained obsolete content, moved it to http://cwiki.apache.org/confluence/display/SLING/Default+Mapping+and+Rendering+%28OBSOLETE%29 in case it is useful to someone.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[08/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/AI/Sling Logo - All Styles.ai
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/AI/Sling Logo - All Styles.ai b/sling-archives/logo/sling-logo-since-2017-SLING-2696/AI/Sling Logo - All Styles.ai
deleted file mode 100644
index 24decac..0000000
--- a/sling-archives/logo/sling-logo-since-2017-SLING-2696/AI/Sling Logo - All Styles.ai	
+++ /dev/null
@@ -1,802 +0,0 @@
-%PDF-1.5
%����
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R]/Order 6 0 R/RBGroups[]>>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 13145/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
-<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c137 79.159768, 2016/08/11-13:24:42        ">
-   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-      <rdf:Description rdf:about=""
-            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
-            xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
-            xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
-            xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
-            xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
-            xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"
-            xmlns:dc="http://purl.org/dc/elements/1.1/"
-            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
-            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
-            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
-            xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/"
-            xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
-         <xmp:CreatorTool>Adobe Illustrator CC 2017 (Macintosh)</xmp:CreatorTool>
-         <xmp:CreateDate>2017-03-31T15:26:30-06:00</xmp:CreateDate>
-         <xmp:ModifyDate>2017-03-31T15:26:30-06:00</xmp:ModifyDate>
-         <xmp:MetadataDate>2017-03-31T15:26:30-06:00</xmp:MetadataDate>
-         <xmp:Thumbnails>
-            <rdf:Alt>
-               <rdf:li rdf:parseType="Resource">
-                  <xmpGImg:width>256</xmpGImg:width>
-                  <xmpGImg:height>56</xmpGImg:height>
-                  <xmpGImg:format>JPEG</xmpGImg:format>
-                  <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAOAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FX
 Yq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwvzx561LSNW0&#xA;3y9oOnLqWv6oGkhjlf04Y4krV3O1fst3HT6DkYcIkDKRqIcPU6mUJCEBc5JXeeYfzjsbaS6vdN0O&#xA;1tYgDLPNdPHGoJoOTM4A3OTGPCTQMmqWXURFkQA97cfmD85ZBCY9M0NxcLztyty5EiUB5JR/iFCD&#xA;UY8GHvkoy6nuh81b9Kfnh/1ZdH/5Hyf814OHD3yZcep/mx+bv0p+eH/Vl0f/AJHyf8148OHvkvHq&#xA;f5sfmv8AK/m3z3qWpa7pOoWFjBqeim15xRNIUcXUMkoHMuaH4UFabVORzY4xAMTsbZ6bPOUpRmAD&#xA;GuXmzm0a5a0ha6RY7oxqZ0Q8kWQgcgpPUA9Mx3MVcVdirsVdirsVdirF/wAwPO3+FdNtpILRr/U9&#xA;RuFtNPsw3APK/wDM3YD8TT5i7Bh4zzoBxdVqPCiKFyJoJG2s/nakRll0bRokVeTl7hwFAFTyPOm2&#xA;W8GHvk0+Jqf5sfmoWvmn83Lu1hu7Wx0Ce0uG4QXEV2XjkbkV4o6yFWPJSKDvhOPEDRMvkxjn1BFg&#xA;Qr3or9Kfnh/1ZdH/AOR8n/NeR4cPfJnx6n+bH5u/Sn54f9WXR/8AkfJ/zXjw4e+S8ep/mx+bWjeb&#xA;vzCfzWPLut2Gn2lxNZPe27wNJIKJKsfxVf545MUODiiTzXFny+JwTAG17M20mTVZLJG1SGKC8qec&#xA;cLF02OxDGh3zFc9GYq7FXYq7FXYqwTzP588wJ5rHlTyppcWoarFALq9muZPThijNKDYgk/EO/cbH&#xA;tlY8MeHikaDg5tVPxPDxi5czaAv/ADP+b2nQrPqFhoNnCzCNZbi7aJS7dFDPIBU06ZKOPEeRl8mu&#xA;WbURFkQHxVv01+dXq
 +j+iNF9bjz9P6xJy41pypzrSuDgw98mXianlww+a/8ASn54f9WXR/8AkfJ/&#xA;zXg4cPfJPHqf5sfm79Kfnh/1ZdH/AOR8n/NePDh75Lx6n+bH5q3lLzX5113TNQkaysY9R0zUbjTr&#xA;iANIIy0Ai3D8mPV37b0GQz44xIrkRbbpM0sgPEKIkR8md5Q5TDfPvkW+1260/WdE1D9F+YdJ5/U7&#xA;ll5RusgoUk2O3XsepqDmRhzCIIkLiXD1WmMyJRPDOLBPMnnbXdR8l+bvLHma0jtvMGlQQyPJAaxT&#xA;RNNFRx1ofiU+9egpTMnHhiJxlE+kuDm1MpY5wmKnEfpCeWGp30Pm38vbCW1tJbO50pzaXRE31uJ1&#xA;sg0wFHWLi/BBup79MrlEcEzvz/S3xmRkxChRj8eSTxfmh+Zs3ly881paaUdG0y5Nvc2wE6zyAOqk&#xA;rV3UU9Re/vTLDpsfEIb2Wka3OYHJUeGJ82San50836x5mXy75RjtbWSGyiv769vwzBRMFZI0VK70&#xA;cb0+6m9McUIx4p99bORPUZJz4MdDaySh/wAop9VvPMnnS91pohrRurW1vYbdSIR9UjeJHRmJJDj9&#xA;XvsdUAIxEeSNAZGeQy+qwD8HpuYbsnYq7FXYq7FXYq7FWNefvJcfmzR4rRbprG9tJ0u7G8QcjHNG&#xA;CBUVBp8XY9aHtl2DNwG+YcbVafxY1dEbgsQtPN/nDT9QuvJvnGKGe8utPuZdN1W12WcRQuzeouwB&#xA;ojdAtPDeuXnFAjjh38nEjqMkSceTmQaIY1ouq3Vh+XP5dUtLS7tJdXcP9ZExkinF7J6MsPpvGtVU&#xA;yV51HTbLpxByT3PL9DjY5mOHFsCOL7bZLf8Ann8ybzW/NFnoMGli18ssHkNws/rSoUZlReLlSx9N&#xA;v5e2Uxw4xGJlfqcmWpzGUxDhqHvVJvzP8w6vZ+V7Hy
 5a28Ou+Y4ZJ5HuyxggSDkHI47mpjant2qc&#xA;Rp4xMjL6YpOsnMQEAOKff0UfKMnmWf8AN67g8zzW7anpmk8LZrNGWKaCSZGMhLGoYFwKU/VucvCM&#xA;Xp5EowGZ1BE64ox6PVswXaOxV2KuxV2KuxVgfnPyLr9x5gj82eU9RSw16KAW00EyhoLiINy4saNQ&#xA;9B07DpSuZWLNER4Ji4uDqNNMz8TGalXzYH51873nmXyK9rqloLHXNH1q2tdSt0NY+dJQGTdtiUYU&#xA;qenXMnDhEJ2DcTFwdRqTkxVIVKMwCy+98w6nZfmT5gSW0sjJZeXpbywu0ExmaKKRWSKariOnqM5P&#xA;FQenxZQMYOMbneTlyyyGaWw2hY5/aktt+Z/5h2+kaN5p1W10xvLuqXKWrwWwmW4QMzL6nxs6jeNu&#xA;5/jlh0+MkxF8QaBrcwjHJIR4JGvNO7nzX+YGv+ZNZ03yktha2eguIJ5r8OzzzkGqqEqFWqkfjXsK&#xA;xixxiDO/V3N5z5ck5Rx0BHv6qn5HTzXflnU9RuWH13UdXu7q9jVeKxzScOSLu1RtX6adq4NYKkAO&#xA;QAT2aSYEnmZEl6JmI7BgXnS68xXPnHTNG8v68dJ1A2ktz9Xkt1mt5kL8SWYlviXhsCnyOZWERECZ&#xA;CxbgaiUzkEYS4TXdsxjVfJen6Zp2vDzPr7XnmfzDbokt8IG9OOON1KAIg6FoQO2w2Hjj6jtfFhnG&#xA;J2A3pyNN2FmzwmQeKUtr5IN/O3kq01vynfXOrSPJ5XtpLSVEtJALj1bf0RIpLHiBSpB3wR18JRkB&#xA;/EXax9l9UTCW3oHf5UreUIfKWs+TNW8iaZ5hjm1HU5Xu45Ht5IqKzxtxVXI5kenuA1fbY5mHMTIZ&#xA;K2DrM3YuXBhljn1PNd520fzDp3m+xv8Ay1HqEU8OmLaXuqaZbx33rSRkIIpYHkRUoqg
 1Y+FB8Ncs&#xA;wziYESrnyOzrNTinHIDDi+mrAu/gyD8m5dMgXWtMMV7H5iiuFudck1BUWWSScEq44M4ApvSvf3yr&#xA;Vgmjtw9Kb+zzEcUd+O97ekZhuxdirsVdirsVdirsVYd+Yt5qynRdP0jVm0fUr+8KW8/oieOQpGx9&#xA;OSp+FTWv2W3HbMjABuSLADh6uUvSIy4SSxx/KMum6wfMnnrzAdQ1J7eay05beDhHCkiMjsFQb0WV&#xA;uw698q1XaWLDED6QT77bNH2TmzzMieKQHuq2ITan5Q0/yx5c0C51t2fQNQGoCeOzl4yr6rSGIVbZ&#xA;qydT92CHamOcpSj/ABCnYY/ZPVHHCPp9MrZF5P8AMnka48x+Zjb66v1jzdx+rQTQSQ+i0aSLxZ2P&#xA;Ak+rtuK02y/xDOMaH0tWXsTPglOUh9aH81+StV0TSfKNrpH1q61XRHmSbVtMhWaaGKUl1H1VpFLB&#xA;y1KluI3qd6ZkYswkZE1R6H9bo8+mlCMBGyY3uP1I78r7mO385X8evJqR83apbiYXWoQxwK9rGQOK&#xA;RRu/p7r06fD26ZHUi4DhrgHcz0RrIePi8SQ69z1vMB2zsVdirsVdirsVeca5L5v1XzzqOm+WfMn6&#xA;NlsbWH6zY3FqskQEgLLLG59SrfHvVR9IzLhwRgDKN267IckspjCdUOVMZ17yX5e0ry/e6Pfa87eY&#xA;by+h1LUdTe3d1Mq8mC8E7cZWb7W5PboMXJ21ix5eE9BVe9zMPs7my4vTuZSu9uizVvPXkW481ajq&#xA;8uqyxtf6NLorw/VJD6bu4b1iQxqv+SPvw49bAxAH863aT9l9UZme28OHmjtF0ry35v8AIVh5N0bX&#xA;45bvRZ47ieVoHRnUPI3wxuVJH7ynIEj7xmX4xEzkraTqNT2Rkx4o45bUUD5m07zXZ+etbvPK8eqW&#xA;NnqSw859Mt4
 r2G5kKn1JGdpY1hZWY06t1O1ctxygYASo137Otz48kcsjDiAPcLv7dmb/AJPT6B/h&#xA;M2GkQ3Fu2nXElvqEV4FE31oUMhbiSvegp4UzG1Qlx2ermaAw8Oo3sd772c5jOcxfzP8Al3o/mLVY&#xA;NVubq9tL22hNvHLZT+geBYsQSFJ6t45fjzmAoVTi5tJHJISJII7ltn+XWkwxLBc3t7qVutaR30iT&#xA;MATWgm4LMBU9A9MxdTix5jc4RvvcvSTyaf6Jyrz3/Ql95+S/ki6nMzJdRt2CXMlB8uRY+2Qhp4x5&#xA;O3j27qAK9P8ApQjdM/KryPp1ylzDYNLPGBxe4mlm3BJrxdivfwpmTHIQKDhZtdlyfUVXzD+Xmka5&#xA;NC8t3e2MUKBFtbCYW8Joa8mRV3boK+AyePOY9Afe6vPphkNky+BRnlbyX5d8r28sOj23pNcMGuZ3&#xA;ZpJZGFac3Yk7V6dMjkzSnzZYNPDEKiE8ytvdirsVdirsVdirsVYx568ueX9Zt7RtXvZrI2UjzWkl&#xA;tMIJS/DcISCSeI6LluLKYXXVoz6eOSrvbuSnT/K/lGCFlfzHc3dsGHq29/dwXAVmXlT96jPGWVa/&#xA;CQSMr1AhmFThE/BnpYzwG4TmPis1j8tPy0ubopczG1nRgphW9ZCGccgOLsxBYCoGY0NLCPIO7x9u&#xA;aiIqwfgFGL8vvynsBFcSSrOY2ADy3zvu7iIEgSAUVz9GZUJGPJx83aWbJzI+QTnzD5d8p6xYhDqZ&#xA;0u0s5GWc6dcRWq8224zMo7b0U+JycMxib5+91WfCMvMke4rfKPlDyLoGoSy6VKlxq84aOS4muBcX&#xA;JCEh13O1GQ8qDtv0w5M8pijyYYdJDGbHPvZflLkuxV2KuxV2KuxVh+t/lhomra5ca219qNlfXSJH&#xA;MbK59BSsahVGy17eOZENRKMeGhTiZNHGcjK5
 AnuKJh/LzRfREN9PdamiqFU3cimWgFBWaNI5m22+&#xA;JzmFn0+LLLilCPF3jZ2Gk1GXAKhOVedH9CUy/kn5HlnMxW8Vj1C3MlP67/PGOGMeTs/5d1FV6f8A&#xA;ShNdI/LPyXpM5uLXTw8xFOU8kk+3HidpWYb9cyPElVOBm1eTJ9RUNe/LHRNb1B7u6vdQiRwF+pW9&#xA;x6NsoApRY1XavU79cshqDEUAHV5dHHJKyZfNPPLnlnRPLmmrp2j2y21qCXYAlmdz1Z2YlmJp3yvJ&#xA;klM2W7FhjjjURQTPINrsVdirsVdirsVdirsVdirsVdirsVdirsVQepaRp+pLGl7GZVhbnGA7oA1C&#xA;tTwK12PfFUBd+UdKmthbw+paLyLM0TtyIZDGy1Yt1Vv8xXFV8/lLRJrx7t4pPWloJz6037wBOAV/&#xA;j3XiaEdD3riq638q6Fb8vRgZA9PUAmmIbi3NeQL0ajbivTFW08raGiSrHA0YmcyScJplPImpIKuC&#xA;vU9PE+JxVuDy9Y2+ox3kBeJYgeNsppFyblVivjRz8vltiqaYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FX//Z</xmpGImg:image>
-               </rdf:li>
-            </rdf:Alt>
-         </xmp:Thumbnails>
-         <xmpTPg:NPages>1</xmpTPg:NPages>
-         <xmpTPg:HasVisibleTransparency>True</xmpTPg:HasVisibleTransparency>
-         <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
-         <xmpTPg:MaxPageSize rdf:parseType="Resource">
-            <stDim:w>1072.000000</stDim:w>
-            <stDim:h>918.343750</stDim:h>
-            <stDim:unit>Points</stDim:unit>
-         </xmpTPg:MaxPageSize>
-         <xmpTPg:PlateNames>
-            <rdf:Seq>
-               <rdf:li>Cyan</rdf:li>
-               <rdf:li>Magenta</rdf:li>
-               <rdf:li>Yellow</rdf:li>
-               <rdf:li>Black</rdf:li>
-            </rdf:Seq>
-         </xmpTPg:PlateNames>
-         <xmpTPg:SwatchGroups>
-            <rdf:Seq>
-               <rdf:li rdf:parseType="Resource">
-                  <xmpG:groupName>Default Swatch Group</xmpG:groupName>
-                  <xmpG:groupType>0</xmpG:groupType>
-               </rdf:li>
-            </rdf:Seq>
-         </xmpTPg:SwatchGroups>
-         <illustrator:Type>Document</illustrator:Type>
-         <dc:format>application/pdf</dc:format>
-         <dc:title>
-            <rdf:Alt>
-               <rdf:li xml:lang="x-default">Sling Logo - All Styles</rdf:li>
-            </rdf:Alt>
-         </dc:title>
-         <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
-         <xmpMM:DocumentID>xmp.did:4b7cf1a2-6f01-4ecc-bf59-301b0a63efca</xmpMM:DocumentID>
-         <xmpMM:InstanceID>uuid:ac0c400f-473b-6d44-a6ea-b1aee6648336</xmpMM:InstanceID>
-         <xmpMM:OriginalDocumentID>uuid:1b4ea81e-652a-5a46-86f5-fe91fe61a8ed</xmpMM:OriginalDocumentID>
-         <xmpMM:DerivedFrom rdf:parseType="Resource">
-            <stRef:instanceID>uuid:447124ca-ea6c-dc4a-ace6-eee2f2fdffed</stRef:instanceID>
-            <stRef:documentID>uuid:1b4ea81e-652a-5a46-86f5-fe91fe61a8ed</stRef:documentID>
-            <stRef:originalDocumentID>uuid:1b4ea81e-652a-5a46-86f5-fe91fe61a8ed</stRef:originalDocumentID>
-            <stRef:renditionClass>proof:pdf</stRef:renditionClass>
-         </xmpMM:DerivedFrom>
-         <xmpMM:History>
-            <rdf:Seq>
-               <rdf:li rdf:parseType="Resource">
-                  <stEvt:action>saved</stEvt:action>
-                  <stEvt:instanceID>xmp.iid:4b7cf1a2-6f01-4ecc-bf59-301b0a63efca</stEvt:instanceID>
-                  <stEvt:when>2017-03-31T15:26:27-06:00</stEvt:when>
-                  <stEvt:softwareAgent>Adobe Illustrator CC 2017 (Macintosh)</stEvt:softwareAgent>
-                  <stEvt:changed>/</stEvt:changed>
-               </rdf:li>
-            </rdf:Seq>
-         </xmpMM:History>
-         <pdfx:CreatorVersion>21.0.2</pdfx:CreatorVersion>
-         <pdf:Producer>Adobe PDF library 15.00</pdf:Producer>
-      </rdf:Description>
-   </rdf:RDF>
-</x:xmpmeta>
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                           
-<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 3/Kids[7 0 R 8 0 R 9 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[0.0 0.0 1072.0 776.0]/BleedBox[0.0 0.0 1072.0 776.0]/Contents 10 0 R/Group 11 0 R/LastModified(D:20170331152630-06'00')/MediaBox[0.0 0.0 1072.0 776.0]/Parent 3 0 R/PieceInfo<</Illustrator 12 0 R>>/Resources<</ExtGState<</GS0 13 0 R/GS1 14 0 R>>/Properties<</MC0 5 0 R>>/Shading<</Sh0 15 0 R/Sh1 16 0 R/Sh2 17 0 R>>/XObject<</Fm0 18 0 R/Fm1 19 0 R/Fm2 20 0 R/Fm3 21 0 R/Fm4 22 0 R>>>>/TrimBox[0.0 0.0 1072.0 776.0]/Type/Page>>
endobj
8 0 obj
<</ArtBox[0.0 0.0 1072.0 918.344]/BleedBox[0.0 0.0 1072.0 918.344]/Contents 23 0 R/Group 24 0 R/LastModified(D:20170331152630-06'00')/MediaBox[0.0 0.0 1072.0 918.344]/Parent 3 0 R/PieceInfo<</Illustrator 12 0 R>>/Resources<</ExtGState<</GS0 13 0 R/GS1 14 0 R>>/Properties<</MC0 5 0 R>>/Shading<</Sh0 15 0 R/Sh1 16 0 R/Sh2 17 0 R>>/XObject<</Fm0 25 0 R/Fm1 26 0 R/Fm2 27 0 R/Fm3 28 0 R/Fm4 29 0 R>>>>/TrimBox[0.0 0.0 1072.0 918.344]/Type/P
 age>>
endobj
9 0 obj
<</ArtBox[0.0 0.0 768.0 392.0]/BleedBox[0.0 0.0 768.0 392.0]/Contents 30 0 R/Group 31 0 R/LastModified(D:20170331152630-06'00')/MediaBox[0.0 0.0 768.0 392.0]/Parent 3 0 R/PieceInfo<</Illustrator 12 0 R>>/Resources<</ExtGState<</GS0 13 0 R/GS1 14 0 R>>/Properties<</MC0 5 0 R>>/Shading<</Sh0 15 0 R/Sh1 16 0 R/Sh2 17 0 R>>/XObject<</Fm0 32 0 R/Fm1 33 0 R/Fm2 34 0 R/Fm3 35 0 R/Fm4 36 0 R>>>>/TrimBox[0.0 0.0 768.0 392.0]/Type/Page>>
endobj
30 0 obj
<</Filter/FlateDecode/Length 6593>>stream
-H���ͮ�
����Ӫb�����l��{!����~�|�5W�ݒ�l�mr��X���w}������}��������2m�mlw=����?��M�'�o������ݟ~H�Ͽ�>oy�G��^y˵�9ײ}��u���n���=n����8�n����#^��;�m���v���d�����?��>g�b�=+v�ݽn��a�����/[���n��=�}�g�p�����Z�g���s�mʕ����=����oxl��u��z�x�t�n�#3bl���^���i���������{�mO�@ow��R���o�����ZP�^�7+�;Q{�[��i�87���w��]�J8z�X�j5o_}���%�k�����"yɼG	wO�j��'�LU��މ��ũL)�{$��Z�0�9���ȵ�N���̿�r0�>�����f��$�h�;�+�Q�U��,r4��`���'៬��e�������NF%�D|�w�y�h���wKDSٕ��
 ���N�y���戣��LҾ_;�h��pPK����*y�N�(�֓���ӻ� ������� Gu!r�rl'�"��T�0.��5J�g���!*c��-�FS�`FLEy��a�*��Wc]��Zՙ��?p�+��ߌM(]��׳��_<�����<e康]ԠB�1��E'�!��ͧ���P�"_lS9چ���b#��#/�z��gK-|7:�w�a�J9I�e�d�m
p�U�N�
- z�G��	�t27���.萮/�'`g���8�A|�&�F��y��)����B�������c�y<2\3|?��N�G8R	��<�߀
��)ә��b@��p����w:d���mO3I��I�]ѧL��H�����Ob!�ԬE�}����hUu|��m�ٱ��`�{ �R���t%G��G�就�)na��0k[�=�up<������BM|�"�i�s.��g_Ltx>�™�˜��Z����~����1m�~������;Rf�4f������)�B���P^bf�C�+x
P��Ja��#	
-�ɚ,��sy�C���4�D^U_��9�h���B��	4�ص*l��N=9��,YgI���������c(��C(Ƭ8�4�Ν�>.��<�0@�o7=0F���i4�VdVk�WR��8�x�cYLw�1���˅����a@T��q��N�EKX�� �S�@SmP)� C�ˬ@��Om5��P��4@J��m�0�.�
-���9������C-����<{0$�<��%��j]Ch4�{Vg��`�5�2�ԗ�²�J\���dz"���0"K!P�509�P�g���8�ʁ&e�ː(���Zz�5�T��ΜY#٤/xA�OU��%¬���&6������<?QX��낱!��4L!aRR!�N��H��?��K=�\D�ta҅�Xg���x�C�I�����
�+Әw2k�ֳC(@-� ���d&���
-M�C�����֭�“�,�'=%�q?<ߨ���Y$	�qm5����d>�sҚbD�:ȓd�P��$f
]R�^$.R��P��0������`�Cg:=����;송�_��shՋ��^9�]2�a�j
3*yq<�1���)���X��s��ە�\�G��h8:��׌������2{���G�(�� A�=:YW��>#yg��#ؠ_��P�KB��&e-�	�S��C�3WH>�SwX��W�w�H�!_�;9��U+, ��l���2��qh�ڿK����{
� �k���ٱ�W�{�Sص�7E���'�*�v?٨��d�M�K_CbhULN�^�s�~v�|���ڧ�-8�<��8�MkBj�	0�&��z��xx�f��RѰ�I3�q7vj�2k|B`�
?E�y9�M���)�ϥ�1dZ��ce�F������F|��Dȱ�d��;��2vRb�H���1�b���!m�T)ѢK������Q�(�{�O�g��*G�Ea*��,xI�1�R�*�P�$	y9� �w��!zy��t��1u
 �Y-`���4������1R�7.�M �b��[m���5��ʌ��ώG8l�3�
����t����ښ����XS�sLq�z�1MM��%]$�UM��8�Z;`Z�+.�ceĭ.@5�\a�?�uf�Gl��9�	��@b��+�<+�Y�p�P=��x�ɛY%`��	�bL-՝@	���6Y�LE���=���@s��<�Z�d]L�,	S
�`�_��`��ļ#�ȤvSQ�F1{�Yt�Y�j�A^�j��i��Lŕ�Lx4W�"znD#�kb45s’2j��~ُ`�J6&<1��'݂gh|�ˆ������ P����j�w�2�D<r���(�M�4{���A};�Q%A�$�,�b��wuP�v���_�R+ҺI��'2�Pf	���ט�AZ����&/�9JZJC�>Iйt���B�^K��������l����;�=�����H	���I�U�(�$�&qQ��8���`F��%�d�r𜣎�t�ٱJ?R~s�Xf^f_�`/�'t�-G_D�2}�ŗY�ֿ�E�u���ӡ~�/�e�[Ir�=O�/�K�1�
 Zi�Y��_�y���UA����;3&��$�4?0'�cV������
�zq�t�fM��D;KW��db��1_�(0��lg�06�6�J+���dn����8����jZ��E���{�l)9���w��bb�Qe����5�`�i��P1����D)p�l��aN��[��w�hl2���ݘ<H�ֺ4��.�aw��Cz���̛�*j��a�ܒ'���7�4�N4n�B�t�i�/"��$���`�(&*z�od~�|�"�]�M��ˋ���B�#]�$��3_;D?,��ۧ�拯�������~@K���@T�Fd:�������&�t�>Ez���/(�������w;3phz��Mt�P�	6�Z�p�.^����˽@|H�y��b�e]�o��rt;�&�f	S�ɬ����l
-i�$"l� Y*y��
мp���砈��8�(�>�CC�Ȭ�)о>,�&D�C���RoRb�K�HVSA!%:c���X�����ML��S��9���Z��A+'s[‰aV�x��x����<�Y�;N;
-S
-�!*���A
�Y[���q�!2��%�OH��*����_��&(�Q����,Ad']�ك�~y-�F�ck��1ݷ���r(W �PP�3��Ӈ��fk5��^mE�v��X�c�š�Jb�Nr��t?	CH����C��*Es�U�L�Q���o��}R�H���B'еdh�=�4ħ�t4�Z��7��9h�c��R�9�ڔ�'�Z��V9M$�Q�-"���	٥L��o�X�m7��q/�^����������Dh��rIB5����!�zq .S��9N;���H�:y��F+���n��j�ƕQ*��m	刍�8�n
-��Z��h[߂-B.���*�ܛC�[=!��ɢ[���.�"��q��v��[1D�(+��ZގOp��R�+��!	G��o֓�?�43��_{�,���1��9{���ҥj��8C����Rc�ZfU;=���7�6�ZnwH��t�@ʂ��&�f�&�G\B}��n�ӎ�
-\�l"¹J�q�f�\��!"L�.GW�t�A针O��X)�0��K�+��XX�P�6��*(�͡��D��bu)�1D�x�6LN�})�� g$s���sA�*�3D���W\��z8�C��T���މ�&/��&�!�KX���w�Er5k%�XOM��B"�XN����7[e^�VUb3E8}iV�*�A����P��ü�D�6�.�7#o�Ł�6��i�*��X�@I�З��TsBӄ�>m�E�����i})wph$�zo^�9�p�4����s�V)W�q},�r\RL�V֔X�+��dP�4�mw�=�؅f
-
-ETD���;9���������d\Ҿ����M�r�l��v��}���r��7����|Ǥ��y[F�vH
��\H������'6O��;wiQ�*�����߀���nk5t����е��S:���$�(�ƙ�������S�-dj&U�ZLq��Ԛ�Y�;N;&�ƑE��R��LO�l˦:���қ4]�i�To��jF�+��$�%K�P7��E�. �B���Hf����%��;�/��& "��ܷ5�%O�@�O�y���'���8��
7P0T�N)'R���9�b���97�3�M�&b:%3ŮTOņ�.Յ��7[�dJ�g(�����9t�V�U-���Tn�R���������RY���e��6����e|.��#��t��0�]�vMX�Iz�4�?o�D� 餧~��-��	"�����}^柏�H��V�O��pP��_�����S����D����C�(�����}���������:>=���?��{y����xB�m��n<^s��]�н��
 �����4�r\���e��_�����|�~޿h]c�Ժ�
د���gKėy�ř�Y��#[D<��FQ�i[~ӆ�6�����ok�M���L]W�n��r3��n$3C�G6��(���i��|�a��ݎ�e�r��������L�t� m"
-�����J�}�%*%�L��2"��|����R_�R��a�/�a�����������e�.�u�y\�����������MB�i��q%��r�
-���y��&�x�'�u�ST�ģ��/6.rl�������Q����b2���Y0��R���q�5�	9��(��
|�^��k�����	�b@�	���(���uA>[�#Q��٩��7R{qY�1]�c�cJ0@�]��D�is
&�J���pE�����8���� 9�����dy.�l��ڤ��l���ó �����>DZ�I>�Bf��G����&@�~����̓�Z����]A�*":�\�z
-�f���}��'���U4x�7���%�2�����,�0�?Q��ʰ��O�!���AO�l=G-~���"�_�7d,�5�vJq3?��е�(����̬��/�R���.f.�������)U�͂Eu�>!:Y�I��������dANF��yP�4eO���,fEY�N�T7�̦4n�>��d��'
-Á'��-m�Y�"�"�O^�+!(��C�xKs4bѺ�\W�;D��r秝�]��g��
>��`�|��J]ٽ�*�x|�J��K捩
-#���ET��j�
�Ux�*̇��h^�CK��s�t�'�C����Z��Y�NN��P�6�Ko�6�C�T
�[��.Q�J|��~/���#�ʒ���j6�
��[�z\)������J`��r7bU��-pIZ�A[�+v!�DZ�tTq[=T�M�ђD%��P�NҢ>��ד��W���=%i�B9�QP\�Ծz����'��s���v�#ǑQ��)�T�*��sN!g�ߞ�~v�Yl�(,���LYoS{�R�d��kIq��*�}WžlI�R,<��HAp�J�@�r\s氵�n�+<��{.�9�7��P�9w�,�W@��������{O8���2Ap�Y�<g���
-x2�Z�t`���V�:�s†����R��j-d�D�����$'�–��\xฒ�I��ǂw�T��]��@���8M�h���;]��KY������A�F�M�c��m�<@�K�i9��\I��	o숤�n�X�����mIŠΉL�����	����$����P��B����/O���J�X��͍x�Z.o�Q`C�C	�S��w�VQ�Ό�pm!K$���
-bD���hb���;��j��؉�.\�{�+XE2ᐻ��k�&\r�g?�]�:��h��N����->��Wj���̮=�AF����<x�����VkN�Օ���l����;&l�ei��JF�!��[�R�,���_2˃dtg��
�pH�[�Ў�U:�QLZ���7���P��K8[hU�厖�%a��m���GƧ��(�����Sg� ���Ge��(�Q'ί��0TL���f���qA��'�8x��V(&-R�ꇌ[�y�7��|��w�����%�cOr����sAd�����߳��X�a����k�u�5s”~D����Bq�f�֙)}�C��#��L�M��xF���Ѷ!W�g�m�2i��eL'��t�.*h���^
I*m�L��n�T�A�����Z��%��R)�l��rQ�?>�aBQ�X-��4��J��$����T�����%��=.Kq�O^�������tۿI�l���ٻ!������8&�ӈ�C!��X�a1����,&3
 ���7��;>���}��P��*��~]�6I�������>'��=��b�_Rͽ=T���6a��s��=6;ח�ں�e��ϡCQ�m�������Ͽ���_��`M�
endstream
endobj
31 0 obj
<</CS/DeviceRGB/I false/K false/S/Transparency>>
endobj
32 0 obj
<</BBox[300.005 74.9456 302.443 71.3723]/Group 37 0 R/Length 218/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 13 0 R>>>>/Subtype/Form>>stream
-0.745 0.125 0.18 rg
-/GS0 gs
-q 1 0 0 1 300.0058 74.9454 cm
-0 0 m
-0.783 -1.147 1.6 -2.337 2.415 -3.555 c
-2.42 -3.566 2.432 -3.562 2.438 -3.573 c
-2.045 -2.95 1.64 -2.333 1.234 -1.744 c
-0.829 -1.155 0.411 -0.571 0 0 c
-f
-Q
-
endstream
endobj
33 0 obj
<</BBox[280.446 73.7369 282.365 70.9116]/Group 38 0 R/Length 214/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 13 0 R>>>>/Subtype/Form>>stream
-0.745 0.125 0.18 rg
-/GS0 gs
-q 1 0 0 1 282.3427 70.9297 cm
-0 0 m
-0 0 l
-0.017 -0.007 0.022 -0.019 y
--0.096 0.182 -0.221 0.363 -0.35 0.558 c
--0.84 1.333 -1.364 2.093 -1.896 2.808 c
--1.274 1.895 -0.643 0.959 0 0 c
-f
-Q
-
endstream
endobj
34 0 obj
<</BBox[301.229 73.196 302.431 71.367]/Group 39 0 R/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 13 0 R>>>>/Subtype/Form>>stream
-0.745 0.125 0.18 rg
-/GS0 gs
-q 1 0 0 1 301.2284 73.1964 cm
-0 0 m
-0.411 -0.601 0.811 -1.207 1.203 -1.829 c
-0.811 -1.207 0.411 -0.601 0 0 c
-f
-Q
-
endstream
endobj
35 0 obj
<</BBox[281.993 71.4876 282.365 70.9116]/Group 40 0 R/Length 137/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 13 0 R>>>>/Subtype/Form>>stream
-0.745 0.125 0.18 rg
-/GS0 gs
-q 1 0 0 1 282.3651 70.9112 cm
-0 0 m
--0.118 0.2 -0.243 0.382 -0.372 0.576 c
--0.243 0.382 -0.118 0.2 0 0 c
-f
-Q
-
endstream
endobj
36 0 obj
<</BBox[282.342 70.9296 282.348 70.918]/Group 41 0 R/Length 116/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 13 0 R>>>>/Subtype/Form>>stream
-0.745 0.125 0.18 rg
-/GS0 gs
-q 1 0 0 1 282.3476 70.918 cm
-0 0 m
--0.005 0.012 -0.005 0.012 0 0 c
--0.005 0.012 l
-h
-f
-Q
-
endstream
endobj
41 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
13 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
40 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
39 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
38 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
37 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
15 0 obj
<</AntiAlias false/ColorSpace/DeviceRGB/Coords[0.0 0.0 1.0 0.0]/Domain[0.0 1.0]/Extend[true true]/Function 42 0 R/ShadingType 2>>
endobj
16 0 obj
<</AntiAlias false/ColorSpace/DeviceRGB/Coords[0.0 0.0 1.0 0.0]/Domain[0.0 1.0]/Extend[true true]/Function 43 0 R/ShadingType 2>>
endobj
17 0 obj
<</AntiAlias false/ColorSpace/DeviceRGB/Coords[0.0 0.0 1.0 0.0]/Domain[0.0 1.0]/Extend[true true]/Function 44 0 R/ShadingType 2>>
endobj
44 0 obj
<</Bounds[0.0954839 0.7882 0.9487]/Domain[0.0 1.0]/Encode[0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0]/FunctionType 3/Fun
 ctions[45 0 R 46 0 R 47 0 R 48 0 R]>>
endobj
45 0 obj
<</C0[0.156863 0.14902 0.384314]/C1[0.4 0.180392 0.552941]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
46 0 obj
<</C0[0.4 0.180392 0.552941]/C1[0.623529 0.12549 0.392157]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
47 0 obj
<</C0[0.623529 0.12549 0.392157]/C1[0.803922 0.12549 0.196078]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
48 0 obj
<</C0[0.803922 0.12549 0.196078]/C1[0.803922 0.12549 0.196078]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
43 0 obj
<</Bounds[0.3233 0.6302 0.7514]/Domain[0.0 1.0]/Encode[0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0]/FunctionType 3/Functions[49 0 R 50 0 R 51 0 R 52 0 R]>>
endobj
49 0 obj
<</C0[0.619608 0.12549 0.392157]/C1[0.619608 0.12549 0.392157]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
50 0 obj
<</C0[0.619608 0.12549 0.392157]/C1[0.788235 0.12549 0.215686]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
51 0 obj
<</C0[0.788235 0.12549 0.215686]/C1[0.803922 0.137255 0.207843]/Domain[0.0 1.0]/Fun
 ctionType 2/N 1.0>>
endobj
52 0 obj
<</C0[0.803922 0.137255 0.207843]/C1[0.913725 0.470588 0.14902]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
42 0 obj
<</Bounds[0.3123 0.8383]/Domain[0.0 1.0]/Encode[0.0 1.0 0.0 1.0 0.0 1.0]/FunctionType 3/Functions[53 0 R 54 0 R 55 0 R]>>
endobj
53 0 obj
<</C0[0.964706 0.6 0.137255]/C1[0.968627 0.603922 0.137255]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
54 0 obj
<</C0[0.968627 0.603922 0.137255]/C1[0.913725 0.470588 0.14902]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
55 0 obj
<</C0[0.913725 0.470588 0.14902]/C1[0.913725 0.470588 0.14902]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
5 0 obj
<</Intent 56 0 R/Name(Layer 1)/Type/OCG/Usage 57 0 R>>
endobj
56 0 obj
[/View/Design]
endobj
57 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 21.0)/Subtype/Artwork>>>>
endobj
14 0 obj
<</AIS false/BM/Normal/CA 0.350006/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.350006/op false>>
endobj
12 0 obj
<</LastModified(D:20170331152630-06'00')/Pr
 ivate 58 0 R>>
endobj
58 0 obj
<</AIMetaData 59 0 R/AIPrivateData1 60 0 R/AIPrivateData2 61 0 R/AIPrivateData3 62 0 R/ContainerVersion 11/CreatorVersion 21/NumBlock 3/RoundtripStreamType 1/RoundtripVersion 17>>
endobj
59 0 obj
<</Length 1411>>stream
-%!PS-Adobe-3.0 
%%Creator: Adobe Illustrator(R) 17.0
%%AI8_CreatorVersion: 21.0.2
%%For: (Chris Millar) ()
%%Title: (Sling Logo.ai)
%%CreationDate: 3/31/17 3:26 PM
%%Canvassize: 16383
%%BoundingBox: -2026 -451 2287 468
%%HiResBoundingBox: -2025.17966406719 -450.61375427245 2286.86142014011 467.72999572755
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 13.0
%AI12_BuildNumber: 242
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: -253.159121963538 -450.61375427245 818.840878036463 467.72999572755
%AI3_TemplateBox: 300.5 76.2299957275391 300.5 76.2299957275391
%AI3_TileBox: -95.1591219635375 -279.44187927245 638.840878036463 296.55812072755
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI17_Begin_Content_if_version_gt:17 1
%AI9_OpenToView: -4403 3715.72999572754 0.125 1495 997 26 0 0 110 212 
 0 0 0 1 1 0 1 1 0 1
%AI17_Alternate_Content
%AI9_OpenToView: -4403 3715.72999572754 0.125 1495 997 26 0 0 110 212 0 0 0 1 1 0 1 1 0 1
%AI17_End_Versioned_Content
%AI5_OpenViewLayers: 7
%%PageOrigin:-5 -320.270004272461
%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments

endstream
endobj
60 0 obj
<</Length 3766>>stream
-%%BoundingBox: -2026 -451 2287 468
%%HiResBoundingBox: -2025.17966406719 -450.61375427245 2286.86142014011 467.72999572755
%AI7_Thumbnail: 128 28 8
%%BeginData: 3580 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999
 CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FDFCFFFDFCFFFD8EFFAF845A845A847E845A847E845A847E845A84
%7E84A8A8A8FD1EFFAF7E845A847E845A847E845A847E845A847E8484FFA8
%FD19FFA8847E845A847E845A847E845A847E845A847EA9A8A8FD06FF350D
%5A3559355A355A2F5A35592F5A35592F350DAF7DA8F
 D1DFFA90CFD04355A
%355A355A35592F5A35592F5A0D5AA8A8FD18FF840D2F5A355A355A355A2F
%5A35592F5A3559352F5AFF7DFD05FF840CFD04FF84A8FFA8FD09FFA82FA8
%FD1FFF2F59FFFFFFAF59FFA8AFFD09FF8435FD1AFF2F59FFFFFFA884FFFF
%A8FD09FF595AFD07FFA80DA8FFFFFF0D84FF84FD0AFF2FFD20FF5A2FFFFF
%FF840DFFA984FD09FF845AFD1AFF355AFFFFFF840DFF84A9FD09FF845AFD
%08FF350D35FFFF2F7EA959FF7E843584FFFF59353535AFFD1FFFA80D0C84
%FFA80CFF59A8A884595AA8FFA859353559FD1AFFA90C2F7EFF7E2FA85AA8
%AF595A59FFFFA92F590D84FD09FF842F0DFF2F84840DFF352F600DAF5935
%843535FD22FF840C84A82FAF3559AF06602F59A93559840CA9FD1CFF590D
%7EA92FFF0D84840D593559FF0C845A0DA8FD0BFF0D59357EFF0CFF0D84FF
%35842F7EFF842FA8FD22FF840C840CFF355A840DFFA82F840CFFFF3559FD
%1DFF592F5935FF5A59A80DFF7E35592FFFFF0D84FD08FFAFFFAF0C842FA8
%AF35FF3584FF2FA9355AFF5A2FFD21FFAFFF5A358435FF5A59AF0DFFA835
%A83584AF0DA9FD1AFFA8FFFF5A2F842FFF35848435FF852FA90DAFA80D84
%FD07FFAF0C350C59FF365AFF0DFF2F84FF35A8A90C352FFD21FF590D0D0D
%84AF0DFF5960A82FFFA92FFF352F0D5AFD1BFF5A0C2F0CA9
 8435FF5A5AA9
%2FFF7E35FF590C355AFD08FFA88484AFFFFFA8CACAA8A2A9A8FFA9FF7E35
%595A84FD20FF8484A9AFFFCAA8CACAA1CAA8FD04FF35355A59AFFD1AFF84
%A884FFFFCFA8CAA8CAA8A9FFFFA9FF2F5A3560A9FD07FF842FFFFFC998BB
%93938D936F7077FFA8A97E84590DA8FD1FFF2FA8FFFFC1BB99998D936994
%4CA8CBFF84847E352FFD19FFA835A8FFFFC298BB93938D947071A8FFA8A8
%5A840C59FD07FF840D596083C89FBC9394939A7077A2FFA85A593535FD20
%FF5A2F5A5AA7A0C299949394707777FFA984595A2F84FD1AFF2F355984A7
%C299BC9394939B71A2A8FF7E5A353584FD08FF7E845984A8FFCACAA2CAA8
%FFCBFFFFAF5A8484FD21FF84845A8484AFCAFFA8CAA2FFA8FFFFFF84847E
%FD1CFFA87E845AA9A9FFA8CAA2CAA8FD04FF845A84A8FDBDFFA8A87DA8A8
%A8FFFD0EA8FD6BFFA87DA8A8A87DFF7DA884A87DA8A8A87DFFA8A87EA8FD
%6BFFA8FFFFFFA8A8FFFFA8FFFFFFA8FD06FFA8A8FDFCFFFDFCFFFDFCFFFD
%3CFFFF
%%EndData

endstream
endobj
61 0 obj
<</Length 65536>>stream
-%AI12_CompressedDatax�ܽ�B�H�z_�wEٲ��H�Y���2���>���ldC�3s�/��(i��k���h�ZK
-�aKI�)"�Fc�9�sa�i��ߟM�c�Q�z7Lr)	'ن��VOz�A.L�)"E�K};V�{��y��o�wñ]xQ�M�
-���{��pe�1L5{�s�ЉԜ�{:M�i��9�
W������d��xK�t�����lЁ~��_�p�"�m�ɐa��ra��B�r�Z�,�ˤH�gY�`9�G�!R,Is��(&��Ϧ�,�P�$	}q)��y>�Q\&�J���[L��a[�L
-��p<Ʌ7����i��~�gX�7�_!�W�!��
-��9
�4¢pBR
q��w.f�-�F1��n�.o&�t�~Gs��o���L�0�(q]�À�{�V>z�p�ח]���p��M&2t���$E�,�����Ȓ�T�!�\��Y��1���+ߣ>�
�&�T&̱)JoF�����-*m��y@\���)�!���Hoų�L&KR�iDy�?zʟ���p��4�Ӛ�EC�O������o�)��W�p>�(}h�_�71��C?����C��
��)�����[A��{#��4�����7�P���1́��8.Gʠ>��SIˆ�0͑%�0�"�L�τy��,�q�H%���4~j�Se<���C,:
Me(3���`α�{W��/�=@S.	AS�b8� 0���*�q�cHG���L��#I�"x��	��q,	��PA>Qq�1�9͉L5
-�&�%R�5�`�0�FL:A��Hq�����o�병�"�a��������o��j�J��lt2x�b���Uڠ���;���'��k�p}�lC����h׳;��X	�/������-)������(���ԭ�ο�j�9h���s��J�x������>@��x#@�7�������P�7X��O���t�&��j�|z�})�v�ޯ��J=W��.3eЙ��XF�W?�����>��Q����٤��}�o��:�;�
-}�d��s���J�}��Q�_\T�,B��!��R�����	������wk��M�
қ>����}���d��q�����R�lS��	�_�<�M�7���f��bH��{�\�p��)x�5����&��L��80Y�Ҹ�����f0h~�E��>
-��n��S0�LX섞B!�+��3R�O?~
-�?���D���gI�̒Ʌ�����'�����ez���B�O?�����@H�#�\�G��� �rV�d���ȴL��	hR,J�BQ,
-E��-r��L�)�E
-fFH�T�$� �!����2#�0]� ���������+d
-L�.P0uY,��(��ȋY�3"#�"%�,HBAC� dN`X�#��#��PV��0y���g�}�=��G&��џ��Opcxx�7���&���R<`��=,<����Yx�C���C�?���C}B���%i���PFe^���?������� b~�D�=K�?�t�щ�
-?4~�dt�����6����!&�P,��Y��J�
-0�"%�H��i��`��9��yZ�E��/�2�|b�f&ð�d�B���� 3�f�L&�f�L6�g���)�����$Ţ0/ò,�fY�X�-2��;H.��!��2�q\����(�C��dӃ����LO���#�^���S���0�6�1BtMQ��9�EU*)�~V�8^�'Kp*7�d_�6��$t@�X�$E�!fE�1�ɀs
-�,&Q8 �"A�@��rr��_Ɖ��
����0p�D�A�Q@�,P�t�h��r"W�Kg�,jJ�I��ȩ*�2��D�(��X�U�X,��84�
-�JS�Heg-��x8�J�4���U���U�)�p	�L/~I-00.�cV�AM��/%Pw2�&��4�R4*+r�[yб�X9,�2��ޠL�1*9[@„#f�'HtT���P�E�����%L#��:��R4�j�@��bYL�P���&����x�4��$
"�g$��,CS$�!A
-i�@��Y�X����ǣO �!(����Ls�O��d��gH}B��Hsa
-�p6�!€u4���L��i�b��x��s$��|-�A�~&K�0:�`aԆ�x4>����$N"�<E"Χ8����-�CIj>�9e���@k�M��<6P����9�F�`s3����
-�˂��@�hpX�$Y>���$��4�D
E*�g	�
-K�����0���H5�"��&@R)<�
��\�倫IL�,�
����šX�¤]���0c(4��1���03���fDI�A��v�hK��S��b�I��\��ӭhZ3���񠫋�T�d�$Ok�񂿵��!G��N�Muphb�|^v/��2�vY>d��?��G�zO���"��kuΊ��++��"��Am!r�T�" ����0��H�I�Ȉd�H��R�|��]E ����p�Hc$N�4��K��5<����Q0'<#ջS����e�U���y��hz�{�@�܁��;��ׁ�����l	�(@�f0�s��@d��S؁Fko����!p�)�C�=0��كo��q5�X���
-=F$���5x��G��:��W5��I"���$L`��3ړQ�+l0� �[
-!%��2`P�,�`!+��l1�V4
��*ǣ%X�ޣꉛ#{�`�lсh�F�9L�����yfcÅ1��#�q��A�Ó�����C��@O�������6X�	b_���%"���cC	s���Q�В��6��Π8>Ǒ���;$��(�����d� �!z8=�Ai	��p��ũ
-T
!���d@���⿐�;C��	4����A6�&V�MH;�8�P�~�(��&����T�?%�Q�b(,����q����	`5Վ�����D6͚��0�eq�Ѹ��Y3�'S�b�͠qw���Bb�B�Aˤ8gML)��WK�4�Hj� �L�@�\�8ۓ�=��l�܇�
-�G�=ZzEU=h@�܅��TE4WEX��HUH�J�+%U-��I
-i�	i'4rUC�:J�Rs=���!�&��A���#%�Y+��k�)
-#��A�"�.,�~��
׏gR_e3Y���F�z�`��/#���5���2�r�r8��Ҕ�$�K�@�)�@u	��˦�$��X�
��M�a4/-���Bh��@9���4��<,��h�g���؜`�N�o�
>ɘa��B�2R<h�,	z�@�c8��$�"�T�j`TO�'<�fq�HS<�/� ���9ҼCN�1������3����1�Q��6z�����1d��~'���C�vAy��9��4mIkz����p���}S�7IK��G�$ԅ�,^��j��(Q�ޅ�	�L^�`r�5�3F�.e�%{U���B`�J�JE��BK"^��g�a�<��,�H�KK����q\��~#����Lj���Ҁ�0�O��a��0UHjYpZY��
0,�}$��B���y�cx"bT��k)VkJ�?��ҩ�s��88lг (B��)f@ۀz?
��!
-s�0|0O�0x�W����=�7�hd�Hu� �a(
-)����0c������U��&h$^��9��%��
-�q���
o+Pw��w0�[*Λ��2_�;�x��]�s�P~��]����pJ�Cg����N�m�R(�64xE���E�#Եӳ�q����u�w_���g���G8Sa�*`��`�ÉP�����y"|	�
�r�8 GH���`3�s��1��eX�R`����+���I���5,�����#2|��������S��>�P>?��||��wBiu��~(���w��m�O�is֟�x�ڴsU�5��A�H(�7 �
-&�:Ła<O�n�m�T&J{�	��
-:�%����F��
S� �/�T�}e:U���5�ɾ�c��B�Ы�PU�;�2�\����\�n��!	���[u��hCG�]:��:߀.5�M������d�^a�9�[����r1�(�/�ñ���x�lN��^k6U&����T���;]��S�v���چ
-�O3�[�c�7�h��ƶ����dĶ�>�M�h�g���K;��ʹ�L,��hr%b�����	��y�Ŀ;�V����QS�x��3�^�W�鉉@��5[}%��R������,����hz��d:��w5�?LJ�IyS�恈e�\.`,�����AJ'�����,�~��]/ɦ��f߃ԁ��o���V�Y�dV�۳��l�fP���t�J�D�-�݉14I��$�Ep�����u�� �����5#��i
��+T���Z�df����X!ֆ�q[�����c���·2mv�OZu�����h�� �ej�p��K���"Hb���~obc��h8���nN�4��&����'�\�:�^J�pf�a��9�*��Y��ӹ��;�F>J��zm��|��	I���.�k���8\+e6BE2C�g(���se�����	��
��|�r6ͦ>�!�i:
��|�P�vu8B�}x�hY��1Ѳv[j��zq�����u�I�Xi
-�^y�ŲQ7�e3�,�_x%z9��S��O�hu�C�p�`VC�I�ɨ����9�hC瀄/��Id���U�Z3�<:�BwR�l8IY���yP�J�>�V�XNzh��-����N��!ic퓉0����qGK\^�]A�9���G]�������ue9�/	��T-�r�1$��y��-��),T,I��^��p�?�(a${ˡ}�L�$I����Mp,E.�w2�(i�p��N3,O��9���j�+���Օ�N+�M�mt
-K�
-�t����Jrn��=Фͩ
�=�l�5�����?�*iԔ�d��Hh���;�n:n&�&����Ц�	OtSD��p��y:�wtzKӔ��9k6�}��M���vf`�w�&��dc:�C	ו���8����{S��� '�㹭S�z���d����6Б/
���@i�c9��r8_�D��ް�Bʦ�̸5.(�~�Z��{�����'ofK"�����}t�d:~�~�=5`��kJ�ܜ�`���D���ʥee�n��\�ۚ�Q�
-A��z��ɵ�N�Y�?��v��]�k�^s0��lN�.�n
.�C�8̏802Ӏq%�5���l+��o�`����؞T%��efm/V�}���
K��Nz���3�o���>-ss-*��pQ�d�/�i�w�^��0���%(2�dD��_S=� �f�ì��b�Ҫn
-�I�Q�7���(K��<1&�J8䝃<��0m������p�a��X<�У9�w�Ӧn���93P�Z
D���x44q��L��6�b2Yέ_�}V1�ҭ��e����z��-B��Bf�c	��Ik|gJ-f��~x�.�5��Hs
-�D7J �ࣩn{M 2*���v�Z�"vZ��0��6�I���L~�ɠ��%�Ɠ�
-���'(⌖i�!�QP���p�Gx��u�#�b�_�T�ma�AqUS��A�4��-��ÑS�c��2˳���j�:���$��Ŭ�f- y8�N��Z�%�t�FsWs��2�=9���6�Υ�D[b�e�v����'k̃�O�|�^�����m��~o5Z@���2�9#%3s,y�RA��
-�
Kɮ>=Ge������YT����pjy�1I��-ٕVO�.��Ã�A�po�Q��L��E�
-ȏ��z�أX���vkf_������0fPj����b�nM,��cF�	4�ℂ�	�fNp�jZҙ���x>^YP����kI����{�!�hT����%|,":�
}	���/Y!�XX��-Xs�\줫n�-x�tW}q�ޠ���2v�n�v̜1Dh�&)bx#�%����y�Y���HcP��T?�G�毞~������q�(�4�5-*��y��DZDM\m��k,;zm����ҕn�}wd�b��n4�:j���x�;��SꎞѨ3�N�9G�{6��:ALS��7��\sǎ>��R�����{jl�H��gT��}��V�� i�IM{}s�lA�T�����D�>S�7
Ϙ�s�	�n���,Œ�7-�Y�F=tnj:yL	��d֙�g��}��������{�)Nٵ��I`��l��v�Zp641m��:H$��]�mOl�����߇��qbP$�v{0�w�|����{�k�Z���<,�������К}%�u@Ei�����������P�q�>�cdo��k��(1Rv4��r<vY�Q\�J�
 ��<H��t������qg�MY �z�s�RUN�y�e� n�u�I�cдyFN��p@��?��䊟Fu|T�2@	�VH�'��j��mv��ɱwle�=B������O�q��g��fy��I{�o��h�ʸ�M@+�,L��Gk�o+L�U���Z8:On6�7x�4��~�Er� Gé��Α}�G����3m$.�fE��՛~�^'B4i��tpN�p�p��4�A�}���=��&�5lpoK�g�#�Oy(��sWoK�}�
hTDM�j��J�������Jp�o�R�s1��0t�(���(�d�)P��c�O����1b�t>�(Ұ-�?��;5ϕ
�]e��r���
�>M,
-݉/�q'�v������p�>%�!汛T-�SZ����N�9V���>���|b>4K�Uu5�D���/��CCvIK'ʩ���&sc㣂�w���|#���Yhe�@��n�Q���O[�G�6a�*l����xjh���ҝ0o(Vt7���`Y��#�F������c���tˎ2���ؠ�g*�ca�B���hh��鰅��7Q�p�o��_�V���|���V�cF^h��}=�ˉ
-�w���9���x�
��ρZT���s�>���n�<��
-i+�(�S�{s�+�d�ex�i��0j����a�3�:���.�2��\ûs�~}��|b���+Q�	x񈞡�o�Ω�%��2p
-(y�����^����D���"<�nQ
-��U�I�D���|�MQ;ܜ����1$Y��
-�Lp�������YxŠ�����G�7@�&@�0ӿ:����C�E[	��
-F3�o��6����ݾt8�d �H��F�6;��{��l��2Hys���u{��x&B]{''
VQ�,��#�7�V>�H/?�2��<���{9i�N
{���[�ǽo�h�Rwf$ض�x�4n�m(���|���T��(^�Ԝ��ݥg�4�@����$}u!U{ݴ�1�ܑ%�]�ξ[�f�o�=�aڦd �et^��<yC�%#�[�i\1��dG���ư'����4q%�A��M��Q�!kgh�mZ��	@�5�-�,�28���:�@�-�a��;Sz�q�Z�C��evBk����S�(����cy��&Uh�/�T��d�9�笊�T�v)��CN:`�{ケ��6ZVl]͚��(W�avNc9��t
-���՜��a�?���M(�\��^�������\��N�t�/�"����+ƒռ.G
�'��b�,��
-\\��)�
-�Xl,d�-�R5\A���U�ͣU�V89�f$�z�_n?��w����Sz�2)�ǥ�n�c9�#��N��LM�؛r����oJG��q��s��ڜ\�γQ�a6	b"}J	b+�����$F���J����Jd<ot:?�W����
-�ã��J�|,��t'���X�J�/"�L���D8�M��#vs&K�֝��߹E�w����ǿs�WO�B���ujn�{�|�/��$��љ+u�CQ�,�
�Qz���~��{��B�{$-�xۖ�d�'p�s��C�^?^�����t�9�����PKn�1�7;�P������v�*V�2��!Jo�ŋ�[<_ع��l���t���n7��o�x��U!�D�ɍ{[o���iG�G�w����L�Զ��w���]:e�o_� ��?<�Os�χ=�KO�ia�>!�_9R�-�Nnm܎���D'�+��@_��0�L(b��~�3x�D󅓃ͻb��L�.'O��W��n;O9�����=DaBG��&"�{�^
��į]6���m�B�/��R�y�-G�c�E/^q/�I(J�6N�{�H>�~;�+�������@����b���?�~��;��������K1�A�F�>�cd��5R�Y&"J
�j������lu�3.���~���Ζȶn��j��F�,�U�������>BQ�y�7Td
 >���b��ߊ̽p)K�w�B�M�G?���	<z���Ѐ���|�	���3Y�휩��#Z�}��t����6�	��f~�>������l�5�aN��qd�U
$�0
E�����vp,�s��,p�v K�{��8�_���b�L�9!T�9�NfK03�N+%�qJb�9�������YJ �����:+:��5�ȱ��n��^㕔lp*��i�Z��84B��
S��-|t�n�}s-p�ԝ��r����F��L�x'��_�Y!��8h�#^+_N��-M�J�;M�"�s��9Ӫ�[���R摊�ޒ��1/�U�].JNd���X���m��o�=�s����ۡP��oAgq��Q11����$�$\�ww�k/�"�tUm�+��Y���j���}y����K�����H��I-�{'�D�k�m����~��X���ā���3���뽦'`KLʚ$Z�b���ΰ4���ɱ)��Sj�o����;h��fF$g�'��vZ����[��\HA��[��m�|�5�ڬ�oqc�c��w~��
 ��m��2�g�����0��?bd��F��#[E���T���oG�i�<$�V�L�
-��gG�7BQ�%��)"UX�_���
-u���ߞ(��D�3� )s��tM5GE��7FJ��><5�0�Q� x�.����o��&h4U<$}�H(���N
������}ܙwaG�|�v��O���E�6��>z��ql�7��S�8�ؿ�QP��ԡ�HԷʁ�� ���;YF�xOVt�Y��t�%�1��r�Ou��7�G��O�-@�1�+[��}V�8"�N^D֡:W,9stsF�/��j�T��*�l��8�Y�8����CVy�76�8٠���G��������#���CeR�B�}������r�Eܳ�cN
-OM���P%�.C���c�f���%�ME?�<��hu������@��(u���)����ʏ��v���#{)�bh^ٹ�On��"}��6o>
-��e��H"�3��j���l�Ogq�v7�tfZ��8>f��Q:��4�8��Q��X���b�����NL�:��K(�m�
-��X��L>}#�c�M��6��m>��r-��6���f��A\�SÆ#?�f��և��+x��^�rc7�Ugp�T��'��Ά\l��o�hs�N�-q(���E�S�'��P��8�#ns(js��Դ`�,?K�A����/�HBXcy� ����T',���GB�j�x2���Š�A�9�GV)��*h\��⸛�y�W�Z�W}���OA�5Mm<y���ŻOZ��n�_�W8�0�I�H��rE�����-�����PT���x�П%ȳVG.t�0�k�i�r)ɂ���}�Q���0i�*�T.����>��d�	F��;��1[�����I��ޓO�<7OʨIZ�0��@<;��+q��,So�{U��u��ҫ�Xqy�U���=l�F݈N���/��j��'�����DxU@[��،R�r}�]}�3{����	�Ѣ���7L�����O£`b1�/�hy��0�H,��L$���Dv_R�7�^~�,���3?���E��=�8-o��S��V���CQ'���,iϯP�_���s$�]�a�;
 u&~��!⫾3V��_�a�x���Q�����Hz��P��Dlu�b��gS�����^ܑ��P𥫘��+lk���T��r���Y@=�8ɧ��"�伥&���Jo9�- `�_~��<|"�恀��
-��X�~�O��qַ���fAK��B��rΞ�-vk��^��&G?�8������9wfB�5�PC}�:��ǃ�dT|��'��S�@��s��Vj��� T=^>|fT�d�U���;B�pY�Rםd>w��3,��wj*u�|}/p/��bbx>�t��a����/u�!�7��m򩴖�ei�7��l�_x�p'�K������h������H<������4�?{�h��c�Wlշ��6(O���VMnln_ˍ�0Ei���?�_@?~����_1#���8vnЍȽQ�{ˏ��L�ړ��dNـ��l�B�}�N�{";��J���#u�������ؾ�:?`,�v����6�B1���" �����H�:�7��H��O����ܻpv����I�SM�����Y�>�>�����$R��O9?9�|�v��Y�Boc���0W�1����7���t7�~#""��ޡ�U����2����>���W�����&'X#"�N'U���M����0(�4��(�+d�1ӥ:y��,�A��
 ��sẞ�1{�����V��y������;�V��0\`9*��#fv�GaP��� �'&f9:di�[�|�`�?�-\r|�� ���A�ȳí{�*:dC�� Q��)���_���хp�>;(�v2�[�[0�d
]!T�7���?�
Y��SNP&��0Y/���w�b�:S}=��˓�E��Yu
B�N>���iu�����;d�B\O��=���Ï�!��o��S����U����i�H	���7k�Zu�5t\Bm�ԓ޷��lf��Wb���jׁ_Xd�NBQP9{�rA����v~�0.6ߞbf���3�c����X��fw����ư��
ՖN�o�A�����O%,>�Tb�$�iKu����0��|��7�������>H����1.��N�u/L���rľ���=�/2�S ��\�b]����,~�n���,���/���I���\*���NP��/��W��]>k�1b�x�Iepdv�,�!�o#���;�%�8�t���)
-����;+���CR�l��ō�w��y#���R�gaHg)�bU2�7�b��NN�����r�!T�A^�+��F���9���B	m�Q��F��'E�:TD�LM)���#{����x���6����蝉��V�/n>QԹ7C�"�J��"7��d��l_0`��7�vy��#.8�������%�/�b+)�{�Ѩs�:���ӧ��7�����u�=�Ց�(a0(E%%e����9l��G�,�>���'W��"�D��
-�ȓ�S�w{6Rp�B�B
-!�3i��Xv(�Sž��Y�K'���t��H�O����,�i�������{�������@dlP�ֵ
�;�����Хі�oҬzOgSͫ���-չ�:�v=w�ښ�o��78��t��Y#Q��	E	1�ӣMvz6=��T�EeNi���^�5��ً�Р>�����y��,-dK���c����@�W���5��<�Y�PF���,n���W`��
}��P�G��ha���pV�Z��eH^EqK��g�Tj�_�^/�Ν��'��m=p��']5�:�ٲ�����6�(HAz%��b�x�3�2)a��n��b��&�I����4o��M.w^�I��I�m������Θ��2�"��9�A�3X��M�K��,>�[�=U(\G��
-K�������)�ڍ���+��}�Z��5��Q�To��)K��{�ף�p���yN#��I�^z��o��a�
�P4Y�]?7��ęh���M��I󀽩v� |7	k���J�D��c���9�F���m���s��3%ښg/K���a%9{���7{���-Vd&��꣎�۲�@x�`�؞m�;!Ng�$94S��y���.���І�����O論�q�#����ь~^ϊ��‰m�.Z����)0Z��n��+�2��P��˥��I13��9Knh5�LIC3Z!���Ѵ��ƹL�ʩ�}�WȎ\�^����Ab&��X=��z�,���������P?��]��qG���"n�]��8߲�i3"�o��s���~��V=�����/7����cd�xo$����?���2fx/^�0��$L�m�����	~��"��<���'H�h��9޽���.
-�r�/q9�$,�S���xj9��A��y�1�n}7�Ve��؆3
-]�-v��{�6���d���\m�2����r�co�l������ި��
->�y@j!���8f�0����R��]i��B�������U�4&����>��4n��x����QsڵԅgB��㎚��}�3Au��uv��֛ �~I��HT�7��(͟8e޸��m+M�����qwJ��(��*G�/����}��>�w��n�a���H���Fv��a$�޹E#񣯃���#It{���=��r�H��^�$�s�H>�0�L��{�L��9N�b�/ߎh1Kg�K�~<H��Co�rC)�����aKH�.N�g��([>�K��G�8~~$�G��.
-�mrO�zk����ɍ�L$q�zIf��H����Ye�g�H���Dv{_���T졩횧�$��o"�Y��8��[�Ƅ��ES�D^v$j�hC�5J�'�u�Y~�?K}��� ͧQ�������s?{F����TO���=����Jg�Ę�4�6~)��St%;��"�!0Pfx]�}�4�5��\��÷��ވp��>V݀�7���3Ѓ��d���
-P�zu�s�+<�:�﷙������E�A�`��GB�KG��gvk@�W���{��
-t�b�X*��<t�Ri��<S��*�[���p��;�9
hug�P4����t�l�T}�H�Utw���f��I:��^��@�b�
h{��%^�6�ٹ45�N6G���|L
�Gg���C|�s�tCnfBQX3UϮD��f4���}h�^7���:����vE��8-]eo]g����4�!T���n(:��'&���\ˍ﹤r#;���ŋ�!�͔ˤR�P�1�\E��}�9=٘e+�#�˾Rv���~F	�2Oq�V��9=�_+�|qZ?�@�.V��s���T"n�W�h%�Y�4�������}=����6�4Fn@ω������g�4���1Qu��Q��.@�Y��w
-<�qq���E/�~}�o�*DZ7���[�"a����zCn�O�N�����M
h�޵	M��+�*��ƴdE��A$7���M,�<������pl�4��CB���ـFߟ6�1�P�����&�O%4��
-/�sKS���[,~�T�DZb�
-:9=�tw:qM+�[�™U*�����^�F7�ez��P�eEt�]�ls��T��7��Ք�?�Clވ�[�`~KM�#Tnв��-25ێН��]�����v�p�sy�����eQ}�`��J����E�xLT����Q霱�m(��@�G�n�.��k��
�V����>�S���nF\���"�����q�I9�=� /���_�Te��&r���
-z{J�~$���V��-^�cl��q�n߮��܋��O���q�����3G�|�'\����7����<�`������;˸�o�H��:wy��$��W��m�<��8u�X{H^|Q=�owvɇϳm緙�A}�`��1jR���b�*�L�l��I��G�[�棦��s�����}F��Ǖ���������m!�w�E|�юF�N=.'��::EM�Y�Y5miΰ���h>=�)��c���c� �rAL�1}���F��ޢ}4Z�g��I�`o��[
wnF�'Co�ϳ��!�g8���~�Ǭ���ak$p��N�jQ��
j簚�;�����΁f�{у��(�p�tC�m@���`	�.^����w�t�����-v����iOr���͖��ne�Է�w#f�ԶBQ�x�F�\�bns
-�$D��@��'%��Z�M�ű�+P9t�0X�h����(�G\��"���6׫�n�x����9�vH�h-���<W��ۭ�퐶�>��f�,�+� N�y*h�߼���*�9f
�ϓ�2��x���Z�hd����uqmJ�U��hxȗ��͊	�?�D��"�5�\��P�(�Fsx��Z��tS�?��ڏ�d8��4~���ˤ��a�	��|T�j?�C;��?W�����.���N��K'ރқ�)QL�?4|��Ġ��H�@:������F��a[�0C�ǵ9r����~�k�P��
^��l�O��t"��~(ק�p?�$�ܙa?a�Jϐx��3��Fޜe����E��0�wd��~lXr�	'�kt�G�U�����!1��g݇��P���Q2u�٢zv�1W�I�Cb�:m ���
w8�ꀻ��M*͊�Y*���aj��Y%��BQ��,SKnzOM��TS�G�݃�3�K��P����Vg���EB�|�yO(�H-�`���v���ٶ�W7�JJ�1
w+�*Ӧ7i�wtNV��
 ���Z��\�2Yd�ܑ��kQ?��$u��#�ԉ-�����Nr\���M�z��x��V3�.E?���I�Eހ�Yu�����C‘�idqב�ԓ�$/���0��*Ƭ$a~H�{�8o�c�b0����ar���AݒM�b���������N9��dx���*B�C�a+�=$�à(�?u��͹�t�!mz�J�x���k�ӱ������q閠�c���z:#�O�֩+L��;��q���Bg�;?�kØ�_��$�s�ǵa̦іŘ�ٚ�a�G?����_]���;6|cU[ZG�Q�z/���@���L�S��lG_&�&�,�5��e�]J~�CQzk���v�þ�?v��i�����%��p�Z�����O����7��q�*�x ��bl��q6Qӣ���s��%�$7f }{��Ά�|��h��$5,>��dYF}�	����F|���i�TXw�,���z���'���������\�F���`�Yf�k~+�Ǥ)�'~�k�ߤK�e�\�KLO��ǕB���)�N�
 ��½�|�"��q���Ҭ�EĿO�"���f����F��g.���#�[Lɚ�(.2�&
-��)Yd�s�Ίi��S���~�:�P������7T�?(�Õ'd����w��B�әU�����BLf��K��Ԗ�q��M�L�Օ>�U�6W�>��Flȟ�Q�t�i0:[*g�k+Sߐ�I@�'�fϰ�l�Wr3�'<:����������*|�9ytf7��f>�]E�v�4�Pԛӭ���R�x�l���BZl�
I�9�b�\|Y����C�ܛu0u;ysǴ��ط��MR�U���r}�<�R�۴���y�Pgz��S^�[�3o����А����vc�^������[j4�k⸟�Zfe�aV�'`4��w�Z�����m�vwC����+����lqׯ�
�e�'��+*;�T�u�����h�dvm
>�p�6�ʈ�'q��FCt�r)�K�AWM���
-t��Fs��P^�^Y��B��dq��+���D�x���'�Q��I��(��\���r X�kIH[:D?҆�b�]�n.*(�ٳo�ς"Ȟ��:q]{���Jvn+����+�PP5{t�����e��0��Ҙj�MM�ƷW�޵����Yu�ڋP{����t�Q�р�;�]�ڰ��L��R�n
��1�OT�#���u����to<�5��<�{'[蒃E��ҿ7Ӕ�ȬÊ57��bŠ�խ��8_y�{�μο��z�B
Cn$����0C{���0[2�p�X��<M����)c������Q�ʐ�@���A��KOw1Ϗ;[Z�]Dže�3��k�c�)
-�VE��
�e:���"�{�Ե�v:�!�8’��/� ���6�d�9$���=x�%��5t?���5�����=��pY�0Olt��*�A��VoPg>L<CB��˸�=�&N~�y����{k��րb�	ߍ�xH�ia�pit���b�E���
Gv�h���.���m�!mvfE��ʿ���jWЅ�멡�{VЙ*�V��3o�Z��3��J
�w�Q-�Z
�	�C�i��J5t�t�j�Uj�+�<�����3W�RC�]Ag��}
�w�j�V���C���:�
-:u.���Y7${���y��ꛟ_�^��`H2�0(����Co�\�E �3����$Y�_j�Loug����k|O�5��<����U6�;�,!�W��~<�5>����a���^3�r.��왫���.U����/s�1���O^�hn	]�ZD�O+fa�S� jd`3Hq��9���'�r�
-���i����b�e��8����m��ℤT�(ɯ�-�VWm	�q��0qr�
-� [��Z���B�T�O�c0�բf~��E�͍Ɔ?!KL���J�J��$�鵤I\g��!�t�4I	��h�ݱBi��e3U���N�܉%��^gKU�x��Y</�:�=s�ʽ4Mq-����>{�K^{�/��̲��:>�=����w��kޗ��e0���p�̧�&�p�|�f��$}O	X�3�Ջ_`̧�f9�ѫtfM���KZ6:��'��@�lٞ�]�2�=X����p���/���M�j珲S��6@�7=���0|g�k���x{�.,M��Q�ѫNi7��ʹP����VF<�0�Z;Gq�ʾ/:��r�~Ur���sAblZ�;j
����Ǥ��*�e�1uB�����G�p2�Υ��&�ϧ@�G�WD�w���<q�xC�C�$�X\��!<�y�\zǣr̺�G��y��S󯌳I?�qPKed<��vD����22��]��\F�%Y�S{F�$���1x��t����m9�qf
0l8]>#��������11�����fd��S�eh�fdPm�H�EF�4@F&�>�=#�8g�� �,U��K"ms��5V>u���
 �3�
��$�|��,칢�o����
;3v�
4�ݠ���c�zp�_�ں�Zз��_Ɇ����\\��v�AĄ������׶Ut�}>sg��.�Ň_��Yc�yEܺ��V=,X=����N=I�^�|?��p�w��Rg�Mq뮇�=t-�p�������79�����=����u�ùTq���;s[�)��PY���^��{"�+2�o`O$tF�A�ߵ+V�n�i'��:�	������Wxq?���w4Ny���5��MM�ҴH�Ԏg�3��������ў]��o������J�����;~��ߚ��c�=�5y�'p9��7^p�ڰ4�ݮ�4`܏��2�W�ϒb�h�n�"������4-�mַG����<�淰�}�t@�R��ܸv=�8(��Y�z�ΊԻ�T�>���"��H��"�YKE*�g��T��:*RQ���1ж}}��[  ���dd�1Ģ6�+�T
c*�[yG�S)�ي��c�dа��,�u��R���#�p��+�*�s?�h��p���
 ȕK����޶$`|֚�*&����A��'�	������k?Z�����q\Z:���5u��~��<��_\p�FGEl�p�N�E�<�M�[ݫq�mH����a���p�E|��<���-.��~�Х�P] ވ�퓑�t}�.���둽���ߪ�e!�<kd�������y����8��WZ�ݪiŒeK��dgkh�<�Z�km]�U�1��^�n�IW��Rm��&.�r��{�*v�d܁�K�u���}|�ug��KԮ��&�����UӮv��^�no�V��U��A؀Z��{)�W�E�ҷ-7�M�%"�y���+���&{�ބW�݆|�m�*�$��W��:��]n*�=�n-7.#z�_惸ќ
GTϏ�E�����W����[���o��gTUڣ�c5rM<9gM���;���ʽ�������/�\�j7�Y�4��_�MrN�����l�R
idz�$�G,��<�2�_!矅[�9������w�H��9����� ��E��M��x�0ρ�d�y�_@�G|k��s
-/�����s��p+U�9�����l5�SN0]w5�S-���V�9qNh��t�Y�V�9m$Y愐`�t~{�SM�N���J5���j-����o���^�]M�^3��j���\�XMg�x���9���TM�d�B�$�:�霆dZ�^S5�S-�Í9+V�9�O?rm�tN]i+�k��s��s�Y���[���ck��s��[c��j�\j�V��s�<�իW�9)�	먦sZ-�q�Z��l�E����s����ȯ����/�xؗ_V�9Ǖ���e5�	�+�^���j:�	�� rsJѠV��~n�P��|]���>Oph9��O����]��:�bM��9�V��]Ó�Ͷ&&�E�{�|�ჱ:s��&ڽ`��[ǝ�^���]A�8���hPA�9А�f@
�'6��q���-�+m��N����#{��,�Ew��Y3��n�a������|��]�]t��n
�g�t͝�������eJ.��-�Q��5w�E�EwK�*-^s�p��Ew���v�t�oϹ:[c���l=�u#��V��9�ދ��
 ��-�s�{��^kD��9s��kߩ�{A��&��Ui�n:��m�6�!�p�8���-��nl1PF�xCg�ŖZ�A����]��a��wF|��P��_�n(\��2���l�
-P����܋�au�~�~�1y�;�P?����^ ���pi:���l�7��k?��Ba�⻖���S	t寃���:���L����F�r��z--������V=����� ����Α�U�ܬ�Û��`xc+d��������+㫸F/��:��g�S�~~w[�%~A�xlZn�*�C!�
-+��{-�!|�P���/n�s���]YM]���j��y��pg�|t��n����~uS���D.7�*���<��P솻�{g���_�p�T����ʅ]�fr��D����c�h>{0xa-���-鮕�J�����yu�*�\�~e���\�~V+�Ž`[�za��pyd+��o_�\�<�c/cZ�\��n�
�c^���71\����4�Z1�2&�"��{�N;�/h��ul����R	�}��EL�8v_O\�{�����&�b)������-���,cZ�1l��6(��:�nC�i�����q-������v�GE�*GS-`lm�=�&��gmu���X̀7��7��궖�o�[�u�0$��;׸�{�98��(P����t+Պ�N�T�WG?�x;u���
-��/EW�-�t�6�i�YJ��2:6�"N��öA�x�z���m�z���-�^�P���sq�6����*�G�ʿO���j��/j�@���F�
hǵ4-�d/Ěi��Ҵ�fWq��˖�~�������vMEx�]i&R�@	�'.\���[��ԫ�P�գ�pC�0�@K��[W�;J���+{^�he��xrsq�����d�BU���ǿi��-<v���{�}�ƥ%���Z����1���N3��D�Y�9�Ǝ���BVE���M�n�l�T#q���'i-�H(֒�+V~[�<.����N��TЍ��]f�t����	��J�t���,�3IO��%(�NHo<-��ʧ*m�5�Z�*�m����@���.-׽=h~�{҃V݁��)/���|v������7K�˾ǭ��h��ZCk��0��_�%������>$��$�,+>�zo�	�n]\�*�Crs��Xq�6������\k|�^����u��9�3X
`�z1����K+P~̺i�\\�iQ?�s�a���b������&e���f�
 îYG��4je}���Wvd�Vƞ`t�G�Sh|���ssQ��
-Ɍ��N��s[��,;�ُUj�Z>��2�-ݫ���9��=���粥�&�ٖ����r��y�@?��=_ٱo�N`f�+-xg�����b�t�4�{`̷�g������u��7�(H[(�����
-0�wh�+m�*@�T��:���D�u�5������Z�i~�ȭ��n�sX[�
-�E�-�zޑ�[�oZ\�*,U�υ@�+Wt,}��s��
-0h
�k�|y�<�_]���ٖ��ϵ"u����d�t)_(��X�R>���.�S����/�|�,�?{)�14��R����ͥ|�Y4(��RM�;���;�|����u�
�|��ҕ\.����l�_���:�5�
e���>����yWݭ�l(|���gC��/P}�����qJe8p���;��/
���q��o�J����g��~��*����{j��W.q����~+�����=�К���ۡ��{��/�
-E��s�q����νq{�Ѳ��y:�?��{�,[�n�[�*˽~�[�Bk��Ͽ�c��y���}|���-w�o����b����֥��s�N�BYϽ~�*�[�^?���o|]Ub����^{���:
�����{õkE����U��VV�{��|�G(x݃�u�_p�_�^?��o���}|K���z��u�[�V��q
�mKāv����{c�^��������>�ø�g�{��+��hs�P���{����:����o=���m�z߯�1��5��7��9�^���{�|��s�0���ϫ���G�+W��ϑ��[�V�J���+W�����1U֯t���m�*���Ƿ|��}|�f�l���v_�*\�=W����^�I\�^?�.�ꇡ��^�y1��~�[�^?�N؃]ý~�a�����<9��<oiŘ�^�_ǕK����[�ִ{��}����_���}�_(�54��~Y�h�q����~>�X�X�[�Lŕ�����{�\)�pW����d�����y
 ���e���g��A�;>�Į���7��=��y(x��ֲE\�a⧑-�ĩ�����f�2���1(h����;�Ja<>����ӃS���ը��
	7A�T�x��G����JEv^��H��S�������x��5$���4Q�L���J�/{�t�'���E��|��}�K��i����n��I���%�}���pF�%oc�c�f�xim\����D㚞o���v�����x�<����m(:�5�����\��)���I�:������}y���mG�[�����J��ݯ�����m����߾l}�K{�B��,1b.�0Ip�Y(�z=Jl)��:t�!]p}�d��I+���������̉6daT�JW9�1�!�^w��dܘ��L������'d�L$���)Q����l��-T�����ً'"-7"jM�Q����?"}�$lΖU|,W��ž�|�ij����Zi��=�`"���-���"[R6I�����H�j���^�Ǒ�@w"���
 ��rd�gf���j<�^�Iő��"�
-�~(Z�5�$�W#�_��1q�"u���j#2��q���ఞHm���-�{J�T���bL��Sكo�wUx�;?q,/��A.�D&�?+��h�i������	!|+�������׆y��/��/��Us�p8UH/(���x��$m���C���$��@�h�H���g}j�]*$��fȥ��;���9�l�R/����&���M������EDԯ�	�h�lE����,h�J�%��z�F��6���
�vO%N��D��k_4|���<�Do� �M�*I���Pހ��cRJ7�s�����|�T��PK�W��u��mo���̷,��:z�kU<�����-���.�t#Z\	�'��[��R":�c�j��������o�٫u�D(JR��y��ؾuO����.�K�T��t�:�O�!�֤�u܅Fگk�c�o��>�}�뉘��jp[�g�H�ʯmz��rc��z;��js��f�^��,��W^w�]V���ͬ)Us$����RO7UW��|��ާt�m�Y��Y"�
 ��1��I��PF;0��0��'c
̥����{�G��mr�\~;��ت�ۍ	G�����/�ޗ��{b��|k>E%g�?f�M዇�^�2#���"(Ż����cLӛ��g�������"���3ҥ����5��ც�@h�9-4��5i� -�03Y��٘�Y������ m״%��Ԣ-�)������`�#�1���$ݻ���lV/��cg�X��)�K�^�-P��(�xA�b�:�Ykl�G�����G�m���%t,Z�B���M��0]ɒ��q>.��Ş>�]��\e>Х�g�3U�b�	�٧���d9)��������5�sW{���@���pd��hSס!S��d�u+̂��#���\��%_����!;A�u�,�6z[C���d��#ID��d�om�AV��v�o�Y��=�}��>��oů��'���ݹ~���1��=j��F��XN������nt���Y��z-���1��������(o
-��.1[��������ˎDt�i<>|�Ĝ|>����5j	
-�Jz�m��Ԃ��N�ռ��	��c��{�s7hG=�A;��|�,iR!���%��4/��Y�d��VG5���/�aS��^~��ېR�o�����GZG$W��C<vt��+.d��
-C�R��N��C6�FkK�Z����u>WTz�W,vU,W{d�GH��wo"K}R�d��zF����������:��8w��F�h��%��x(����_���r%F�'~��m{��3�0N��jtog� ��U�� �|/�c�<kjij�'&"�l��k��s�M��Ǫ�6������CQ_a_E��*�۳C�brcZ����n`a�����ʺ�8��c����
-4��4��cb�+>�w�"[���vK²����K[PYC�eE���'/mŗ��Ⱦ�N˒V�N�
Ѧ�"0�����hxM�P���*Dv��ي9J֊<�zk����P��p��H�.T��/�A�ć!1"�B��B���S!1��H���E(�o���h�8~i]f���-i֬^�����vA�d~3s$�[ם���fy�q�S������Q"����G����ħp�f�NlN���cW��ލ�~���t���u��l���.�;���At�R@E��e�A!om�'��(�/�>�P�Ý�\h���%�Rw��_ ���~]�a0P��{�vۮ�8��x�%��^�r�ޓ�m�,���;(��fŖ�Lftm�od���?xC�kIK�	���(�\�Я�(:ױ�2��n�/�h�J�#����r��ӹ�^ۑ���6�c^�;�����T�y0l~�`(6/���X�RO��OO�τr�&��rn{(��K�#�eI`xs���pզnؗU!�
-#����3	`Z
���k_Y6�!�p�邆m9%c��O�OƠ��A2�r�e��mI�R�t�z��1&���.����}]�őT�)
����_
-�®�$뷨�V�1��:�x�r���,#^�.gs����<X�����5�Rz��c,��9�htNџ;h��Eݿ���Gɽ����{V[�kth|�8Z�$�֔��zu�躳�N΍��Zg��� �+�y~��;�����c��׭*������н���hT�5��Ѡ%"���?ߵ�oT͵�>�^�V���N�Ȧ��5�F��w����'}�lˇ��Ɖ!�X��Gz��b���?fO?N|��%��[��Ӊǽׇ�?c����I�1��o=^|��w�����$o��ׇ�*'y*�9������O}va�Kf\o�{�f�����.}r��c����7�]������m�ؿ������ǟ}���d�
-���������G��bO/���/�ҿ��!�	�>�����W���[�x�ֵ�q����g���������{�@�n��s�m�e����X��o�m��=�3o�m;�ğu�m�Gt�g�����=���X�ϼ��L�ϵ����3�x3�!�|v8�"�ͯ|�֡����;����a�׾�7�,Cz�q��]�_���__�a��&}��oo�p�ï�v�3:����Y�g�>��W��{��ݧ�O;_`?{ꥫ�o�ӏu����dl���G��l���#�cػ�{��߇�_����7���!�g�{xq���
��<��|����7�����M����||��h�$������?�u�s�wϝ�G�߿�����3��[��D�>�@��<�ݗO�����~����o����?�מNoj>��VZ�YV��S[��S���~��������fW��
-w�����w���Dz���"0��4Z)�%x��6K������]�e.�'�ṇ/��4������\{��CK��j��MƖ���%�/���O?Nٿt�ϛ%x������Irp$�"�|����ws�}��_������~���u���(=�;��<b���/���q�_��0�e�1;�>�F.���"�X�1�!t��'���@��d�����O�=�R��G�ߕˇ�����&�ˊ=�#v���4��]��}ľ�q~+�t�{�#v?��#�R���|���n���_|��#v��q�������#>b+�Y�C'�����ʥ{��ڴ�}x܅��7>����������=�.��vd��# c����]{��4߸_�=bG��3�2f���G���؃�pT�.�����k��u>"����\<I��w%.no�G��΍|q_���9�J�!�8|#?d7.n�r�uDm�������r���
�Ϸ�;\�-I�OɆ|J'֯�o=�ܻ�3��:��K=�
 �[�Y���c.�W�|�Ɲ��k����Qp�����Q��[��F�`0��1�#|~)���i���Qwv���$��,��O?7>h���z=�9��[�o�������R[���ԅ^?���/^��S���/����+��R\g������_����l+�v�Bw^����/���W��)��y�o��W~aݏ��+K��:���Y���G�
-�v�߻���wN�キ����鬿we=pJ��}"O�������'���G�n�����Y�x�m��gw�Y���>����3��-9�^}��}K�c�O����\>z�˯~�?�����?��᫷?��>��Ő�_rs9�Ժ��?v���+��ԅ��ǯ�_����?����kO�m��j�?�8��ҧ�-�Xa�̊έ��<j@G���֨�]k��l�v����v�?w*��&-5y��o�*���o=��5�PE���}q+���{�=�ך��ǿ�������3�{�D�Y�t��׏̦|��[�^��3?~�ʋ/�F���߳t�_�O
w��Yy� _��?�(�P.�~$��(Ƽ��l��]����\Ak������Y��g�c����?^�A����?H�8����^��_9���>����vw���Sc��>;�ib����/^�|���?����E���Ž�}��#���g7�����V���b��Fe�s_�����m�3��0N
 �_�ߪ�i~�ݛ�o���Y���7���w�Ž���W��O/�q��F�N��V�M.���;���j�~�B��z﹆������ߺq�ݻ7��y{�ܹ?�{�շ�����;oܽq���s�;_�����{�VϿ����n��_߹~ce���?�F��^��d�������^�g�~��K�^����ǣ`�񭗬�s48q�+=���oA%�)����מ:p	V|�ю���|���x�N�8���FbT��^}�w��ʟ��lo�����;����~��O�k��q��7^z����8έr�?�sw���-G��\{�����5�����	u��S�0�=s��p�f��#��Y�
�t[��͆�N��p�f�b~�p8k�a4�7�#�
?���l �v�p8k����q��͆-�Į�p�f��k8���`�c��	f�_OJZmRV�\W{�7z���$�ܿx�d�
���_>�;�����_nσ��m��[��N��Gė?~����q���ԖPGH[>wX[>
 ^;��@`���6�F֥�]^C����09��ϟLL��v�v��B�� W�G��}�t���l���+ϒF���d���Ş8�U��6��o��v9�\���a�y��}�iӭU#�z厩Q4���$h�IK��L��}��!���nx�2�]�r���b��F����v�&o�O���#�I���%y���	͗?���۟?�>��o'Bo)�9!~�������}}�������y���߽���vOV����H��Ƚ� |o=˿�7?{~�3��s�"s������u��{;�I7�R�f��,<��&S����F��A�Bڣdʎ�ɶѨ�
q^�Y���Ư�%���\��?���-�n�gwҿ7����"X\j.§�K���.�5��`J��"\{��"��n���1}���NXp�G��ar���&�`�Դ��mE��GO�u���#�P���ڇ>��{���=`�y������x詄�}��]m����탅��v��q멟fx�o[���0`�����
 ;��f��#>��i���<��6ɭ}w㽯�<��|z���������ݸ�۝G�|��w=��{'	6	Խ?���y�6����<u�J<�l�w���W��>�����_^���od���l�����/��O�ؑI]���?M�\�qT@62���^��t96�#+�݉"��q��IK����wW�ld����ډ��7�9�F?~�}�S��۷r}�����0���i+q��}��Y�0��W����$����er������>Z�����b$���}'
-y����b�O��|�w��*�t�6B��C�t5���pמ!s�L<��]���1�"�=�]{�̵�I�#ܵg�\kM(O�=C�Z��N�=C��s�=C�ڑ�8����k-|2w�2�n�P�sמ!s����=C�Z+c8���1�k�?WL��t��ˈ�^X��ݙ���w�.9�/~������n��~\��z@3�1�i�f�+��,D�����b�
-���͍D	�6h�������#orr�ķ��b�4L]�L��<������&�xq��.?�Ü�_1Up~��׆v�����["��|{fFFE�$�}���}�<�	��b.�б���H���%��1��^[}grnDۯ\\h�~�<���m�|����4�g��O>�q���_^�����W�����s~5����Y�ʇ�
-9���^���y��VWn�s�W_?�̗Ͽz��k7��w���kw��z�}�+�������/�X�הܗ���@�KM�K��~���ˍs��}��g�C���p�/������m����{�������?�w�Qw��oz�Ψ���y����ǘ�z������?����o��x���o�ϯ�;�u�;V�t�&���������v��򛿹'���ݾ��������?tv'?|w�n޻u��s����������oo�����=����<wXο��x�K�F���_�,���;wn��]�{�ڽ�/�����s�ލ�;g���_X}��r$��5���ܺ�{n�����\��w��Z�A?	��ރ%��~�Ji%�=�g|�\�ò�"Ԕ�=�;�Z[�>��'��
U���>����'�˿��^y���곿��u����|q}]kH���G�b_��C����SX} �ú�]v���WW��:y������ڵԽ&�{}���v1��
 ���/!�z� �N��c�UW��;}n,9��:дsɥG��j��ͻ��K-�0�k����������'��..�ܢ�Nc�Z[U4锺��iL�e��,��VK_���1{�oc��경����B���U_�#��4p���Z�uk-5�/�]��!��������<���^��Ƈ[E�=����w�եK�~�;��;���Q�װ^��|׎/�Vj�%ڥ���\��i�4*��c�sP�Eg �TC��1H��/�U�]�s�vu�m-ǐ9.WN��^����k\�r�%�E�O��]^K\�����SZk	$J���5BbW��7�H!������u	k�Cұ�&�9�S�@J�%�+�uw���j-���_g���S�m�_��}������ؐ�86U:-b���*��NZ��joJy�����D%4%�cӤ�:�D{Sԁ����$�tjt5�"ՒKm=��B�Wi�4�f���1(5��I��`�B�q���Z�����l�ڛ4"��96}MZޤ��e|��%��"�N��lб�9:�>��7*H5���
 �=z{9q�c�7���ON��H�/�^�t�Cö�R��H��&���� �t޽��a��� 
���[�=U�n�]���-9�Ƨj7ס��l�s�x	�n4��Rw[�c��4�vB��o��LiH�����(�չ�7� �c�]�n
-mS��>_WBӱf�%�b-��H�Vn�פ������59�>d}�09/�
-�H:���tI{�u��5A��q2$hں��~,
�k�XB����X����&H)J
�}'ԯE-��9�.�]k˕ ��Vɵ$�f�=[���&���Bzw�����UQ���)��'b��|�~�WUI��F�?v��y��浱��<�Ș�|�ɕ.Љ�3$��eZ����_������07�J齷U��h��k.I��e����O�H_5�^��Y��#��s��&��t.�u��*m/`��ʞ�Z�)>��Ke��(�15����<�B_��QC:s�1���h{uE����ή;w�6QZF�'�HH@�N5M+�D�N��8R�Վ��Fz�c@yۋ�Ɔ��6�x�OS
-_����ɪ�
���'K��3��C��G�V���\$:�Mk�=r �O�nc���!f�l|)A��Q���U:c�ft8�@��r:m�|~FU)��u�djڪj�"�n�q�[���������M;(�U:�7Y��B�	�V���Ec���U��HZ�M�Q7�~ɕʅ�:��U���]�9�X��U�f�Ο6Q'NJG>���\ۧ�P���	��A����hdNj�COַ�B������Q��Z�UZ���<F� QtZ#Mo�ķ�{D�KfB������M���8zQJ�@_+���	�>�.}#���O�]�2ڂ�_t��1:3f��3�1%#�-֨4�ttV�D�{�k��BIU���
(��QYG)G<''�QR$:F�M]�<\ָ6]vy�b��K��Tg�m�,I
�[�]]ץ
�e!_D����4�H�$�:\.h�.Ew���lϩ�^�y�(�4�w2�� ��8q4K��o�w�nF�y�@��k�t�����8����,�^�c����}��K�to�&�,^�ۣ��� �Bw5V��搊Hv|:��[��f�[g
 nu�6s\�x��e����������N�hXu�UY�w�v��k��U� %��}�̇�KH?W�5vj�і<�]E_0��J>ǽ_�L
-�/^��i�u����$�j}���l�T�]�%;&��*�ȥ�<I+��{�O«������]�'2�˾缳�7�:��NZ$-��\ɘ�=;ES'Y{V�z���i�u�������:�C]bzy��6+�"q�4v��2ܑy-!3�Zi�>0 5�ʃD�C����Uz�f�Yˎ��ECK�H�k]�t��^~2Y9���/��(垥ظ@L5!��.	"��,�Ev��l�l�'2��L��#Ir��-{n�dF���o�.}�#u����箯��{��MJl|��r,�T?���Y��nv�F��1MZ�4����\��2�5wֈ�~�~��ˑK���=�C6r&�C���A���}:���W~u�s:w:r2�?2��J�%ѯh���Z�5�+R�{�u!+]b��U�ӆy��#u:�.&lt	��)��p�ÔA���L�A�_���Y�i���Ǖ�S�շqA��Hؤ굶Qf*ZVX�x�,y�AZo�cuF�u�)�$J�9
-yť�� yk�Oqϗ������WV^c0��`�j�tV��4x֬��M�sKM�DM�E��.�K�������w��{���w�^�A���EE���o\���k������˯���<�������_m"�^��Ս/_}����n��r�1c�Cmk�PG&�y���'���,5�6;��A��*�`����%Ȯ�����Ě�x�d�PtlF�Q��t��>F��#6�9B��C��~��,_��<�d�[�R��w�n]Ve���=Yՙ��ٮ]mW�+g���~N�d@��t�.��`ƙ��a6e���!�Y%�|�#T�.�b���*-yޙ��f�GA�ۨ��IEvc~�n��M��X��[�;���X�ڗ��~��Q���d`�,�5�*�1�t���ڱ�&o�#��Lbm�9��t�Lg{��f�J$�.�1ڸ��/n��(J�U��&��<Iָ��Y�'9����AFMڌ�R!�%�<��1�j�o�%VX&����-�H��tdu���X���A�Ej;�!EB5�{.!e/
 �c����Hm7>z|Ls�,[�Z�V����;p]�q$�[7�̂f$��B&���"^�mt!yf��xg�1#.Ӑ	M�3��C�P��|e94�m2���Җ^b�_GJ.���LHɐ�#W>��6���dvɛ�ɨ��R��5��!��VG��X{[�����u�ҵ��HP��#N.D"y&��K*�^F��/�$ǡ-X�64�����Aη$��M`;�=r%-8_�r�eDV���֑m#��'%e�-�q�nf�f*�x̺'�pI^��8�&/\�Ma+��(B~I������i+�@�"SG��D���D85H��f�1Z	9Q�p��3!�Һ5K��9�*�HWP�ä1&mrx	f����,هe�G�.y's���K��(���q��Q�\��sF���NGwe���Z���6)=��$�2v���6g���ޒom�L����%C"r���������:�zӢʅ���)"Zkm��i���h�jªc�Z�C�8^&��=:����o�87����������$b�l%8��#'b����|4���� -3��;��A��*�
 v�i����ɏ\��H9���3.�J��P���1����$i��2`���A%�c�}��p�26�Ĉ����Gh@	�FMl���uU6�Q��%�-j”��K�J7'�1��`鷖�S:���GXc��u)�>�q$��k<S9���E}}#�"Mm/+�JH�K��6&��IY,�MY�Ŝ��<���uuks]�GVR�	=;���6�Ԋ#>2��-'C��OC��uA4<��ܬ�%J���
�L�4_[2�8�^h촆����Y6�C 1����q�,\?R�2��@ii�2�H'��:0�	9d�)9�_��ڸ��8d�W�e
�I�;���N�)G��4˘$,�Ƭu����������u@��~|~&:�:��X
ů���0c��d]j������P�J�S��;�G�.i%(m�5�5j����Y�g�}��cD �J�S�gCt��Ӽ�PI��с�2]X>��Wt}V��Q�FW��k$�H��D�S�Bk�Yr���"�����ί�x�y&���C�4�y�K��G�(�GJ.q��E�ݚ��G�[�HC�
 ��<,i|b=i<F�Օ�|Ț[kɜ�fl�n)i�%e�L�o���D��є囓�3�FM��ϫҴ>kRj���y+��,,��U�Q�%���g�P����n��&%K4,��s��0�l�����E�:C#��"��ln�e�NTi����fuwcH���3�0W��v���ѼM�P�w�r{��~�ɂ�N/c>�ؗ��!I�"��b�ˌ����<���F]YFm���Q	�R懼ȶz�1Q��rjc�VF&�.�8o��$Rd.6O���X׫}�}�g_����JRj2��AtV3�s��r���H�0������-��8����B8��'����n )���u��z�|<b�(��M�[IzG^�a
�kFv�+'�֛:X�D����[�dԬ��=ٶ�j�Ѹ��έ�AX�r��)0J~^�*�?�� T��x*���O�ȑތ�)*�I�����\Jw��'�N��>,�����M>-_F(Y~r(��2�+�Vu��Z+�{3��p�I�s�ϗ~%�v�s;��0��F��#�l?����<м��9u��
 ��h������$U�w�PO��X=fuW;�����kԕ3�#�(�'x�di��F���YJ�ב������L��B)�n=��+]lN#����e�am�=��}R��-=W����,Y�&ü����+҄��{�k{��;eԯ����9��!���'�ٕ��M�4T�
DaH:�TP3�ɩX4	o�|	���q���<D�0Y���B�H²�r7�i7���em�l����r}	#�h��ĭ�,��<Oϰ�{G�4F���e�<-��}V	�H�,�(wNw_�s��q��)�(�E���p�l�$!i�̨=q�HzdO#��(��Ι�����DJ
kH��`A*$~	L�jT���-a��S�F'@�`&�l���:]~�c�5��'8���%]������[.Jۻ��T��d�5�ڙJYGq��Sm�u��rF�Vp�-�V��i�3UC"���^��{��HZ�:	+��.���#�Z�0}��=����֋>K&�xY�+�>̠u/k(�)���b{�8�$̙v[[»p�-6����5�*Q4�阛��L�
 �x��&]&Ð"&y9�ֆyb�`H����U	�����vFJ�D����!����M�غ�;�\�mFFB�O� k�W8xra�d"���3x�~0%.y�s��(���Fu@�r���*��@*���#�
-9^-7���xfT C��,SG�R"�++�-OrR�d,�cc�n%������!�&��@=���:��0ns������@b<nj%K!��Ш̀+Ӝ�H�,o�:�Y3��=r�y����@DO��:�搄�N �m���B�U-s�����h����U5����:�:�N������e�?%X�V������
-ړ�5�EV����b(��k�/	r��N�ġ�������>���!�B���r@���CV�r���ȣ�R&
 ��������W���n�.'��`�'��J�l���s��B(��h}ң�E��}��.��%��ŵ�n�Ԟ��X�`KbJ��yA�WԈ��~]Y:*�B�I��l�xAc.��Ρ����.��$M��߁���'�_=��Vz8^��v\�v�]U�x��KV�I�ˀ3P�"�ֽ�L4�Ut)���d0�4<X�̽�1����"?��pu-C"B�rT���$t��23�"'O!�O�t��h'�2�1�R�<e��+p`KS_�h1d�Y4u�o�9��2� RC>M�
KM�v�=>H�'�'��|ܨ�M+���M���-pmI�Ȝ��ՙ��6&��ćZ�����pf4;i����h��ЁR�����H�����Y�C�\���Q$�$�I�9ChY�P��)Bŕ@=���n�(�$BI'b�a��j��@eM�okVu����$�	x�=vG��#v��H539(����PD
�
 �7˕H��m�T��81(�3���*s���Mn)d�Q&��*.��	�D4솥�d�u��,W+��*�,���L�`���Ū>Ћ`��I�0�H~q2�e����ػ�c|e�6h�J�<q��LV�����cU^h��$�J�<4Ƒ�"��H��d"<G�/��$zmFT�X�@��2,sG�v���f��h6���)�9�1������+�p9��%C��2��U�1*�����x���sD��:�VV�	5�.,�"5`(m�/ӮuI{��k>�ޖ\��hμ)������P�v
i�h��>�w�i�EQ>HD��x�D�%���,G�\�6!��v�i��LP���kƀ�pI�R�8��Tj�DJ!K��b�|����eVTL	N�V�O�!�ؘ��u�XO
'�XB�@�@U��3R̈́�,ۨ͂P5@"�{q)�,��Y�3S���K-�޿�Y����t�Y�b�K�tMI��,R�����$���GU���Ӯ�����e{:$�=:��d;�<%@����C��pʠ?�T��;��z7��
-�s$,&�U-$�-�����SJh�h���1�0��L�Z�yA�W��S�ۓ�6����&���Te�&2y�=K=ְ���f:%��F…�0َ�`�ٷ]�(UwZ_���>t�Hʈ�@,QӾo��K(���
-��1әz�B% �][W6�
-�'wr��%�ӱ��}"!B��2�8m|���	����zs��D�OO��_�J�t����9�ĭ�	��6ʋ��I�O]��x �
D)X��?��_�)�
�I�Ύ�
�m��W`^8��J�������N�b�O�5��{���0/ťU��kf�Փgg�(!�
X���jqh3KA#ib�`�W��ⷫ���0��\a�_�P��OWG���ؖ��rMx:�%X7�d�e��9�g@��ɺ6pD�@���K��BI�.��w1���{��ɾ�	�K��J��K�%(p�qL[�"��'�ѯ1J������+ʚµ��`�ҟ24�1`��)>�87�("��6ƀ�
-�(
�h&�J<�����\�D�bɫ�+i����'�%ޜ�����HsB��;�*�gSg��[�FOH)5��($���J<
-��6�V@q�,\-�TI���J>�c(gB���,�n��lV�H�ybA��9e�b�D9���UD����!���F�T�����“��SJ?�1��vr_E"�[g�t��`sN��y�hZ&;��g��OX��&h?u=�)�����I�SY�;�,�R�1FK��ew3�����F14l�-�G}�[V/�\k��0��-@��L�R�ܒ���۪���
����MB�/cTEG�f���x]�Br�"�
-��e�@;��0���>�Z5v$9�P&�����`z-�_@:Ԝ�Vf-8���U�&�i��+u����[9U�~�%��L���"=�-!Ci�k���!2��j�`�A�N�7�
�$�	�s��]�`]��V瘵'���2S�H|b5�Zj	������)���'���J�A�H9L��U	���F[� 2_�N$R��;�5�)o Y(����feB�
-��VIfC����b3������*�0��TP���O�P'��Vv%fD�b�ZM^9�A�i�z���`|�n���c����23��f�����S�gHB/eÍ�6A�d\'�������9˗s�9\@���F��9oh�P�_؉��Z����R��0�W��ܯ~$��b��R�����x��'|@X����Qv�&��G�Q��-S�ק~�e����!'ۊXL���a`!�R�f��fg�Y5R�Kv�Q�c�5g�~:��I��b�w��4
�� �t��W�u֜H�d
-Q鐇ǧ�HgHa��+�P����-*��6�Fi��o�yI9UJ!�^O�z79E�l�Mv&S.\���,sdQ�`�.�s�p̈́����T�I��&9���td����u���,˥O �@-���HNۤf(�%�����2�����,nW�`g�^�Z��_�ɾ
&����S-\G���(@q��df~��̞*�t���VW�!�	�1��Б���a�#\{j��Y�`�nN[R�L���&Hv��Ox���VW)�C" c���q¥Z�4��Pղ],ni(7P�d����a��j�
�S�,�m���B���B�i�1�=4��q�ՈN&Jl 
\��0�e���6c��
-��IB�g���p��0���U�Y��(��,-�c���C��Π��A�f4��Bp����͢n\L��4�A�@�d��o<~��ĒX�}dB�d��֡Q4|��O�|�*oe܁�"�u�|d)��S��\�J��pV�dCj��|��F��.�H������f�W�5.��.GY�I��L���%’Q�@.�0!@2���28�"�O5��!��H��]I��}�Y'�ݔu�f�,�#�_"��V#3�٧o1�<�ݡJ�i_jXQ&�i ��r<�+�ӊ�1C��J�W�!��̏�X�X`�p��#�h0 ۷�[;XX'O���h��8A�h��Z&���>�P�g-��A���U��&�,���U@���C�;�o7����&Ҥ��&Ǘ9�y~���̾�zY�r�;�;�1�1�H^BNF�e��,-�A�A���e� CHԳ��]	�g6.H$��Y�%��X2U
-�G
-b�(1�4H�6��H�R#�ҏ9k����Et����&5�U]�ĭ�|R�x+pdG�;@Q��ҍ1u�K��YƌȼC4�[�4����&�e�#�XghMj����iX򰫂���<%T��d��3+E��_{��#
�s�i>ʌ�L",58�~��?�JhC麱���A�6��Ң��!�Us�Q=Zlc�+׉���>v8)~����-#z@�Q�@)Cq��!��v�2�KT����ӝk��"�d�e!����7ys#àocd��/b�@��H�^�s�>4�DY$(=�f�4.s.R�|����@à�
f�J�	�=e�V7&UI2�v��`�rZ��!�i��i��	вg��$P(��6�Q>N��P
+������}�`)ՒPi��� 9/(�<�(Ӑ�J�%S�O�w�@�Y}�%�:�p�
-xc2:x7+��.��
-�2�ޠb����m'O�ϝ����Ӊ!+����뒕�B�+�����D;����0���>�*
-��c=�?~��ӞJ�4�cRTdp�abJ�ĀȨ���.�b�.��-�
dX�I-t9I3�wr�0`��u1�'�F�v�o�7��%U�7��B���'1o��C!/4�>�M^�@�` ���"T���7�"�d�}����)�FY3Jta�TǓӉIc�0�^3V����3���k�p�H��J�zr���3���Q�ͼE���	�
`QD��y��ıX�d���g6m/^�i��9��m�K� x�v�n<D�N�I�|g�yR�$r:q�7n)����z�̌s�����
kw����6&�����d@�e�d��(��42�.�G€�'��VI�͐.�
=FR���'��@�f�,�Ft��P!�>lG����<.0�K�N�MM/—D��R~`�&�9��a^��������,j���ΐs�� ?�\Pd�|h.(��_H�p�z�2m�v�"���a�J��Sh�����������A5���b�Af@�;�d
B���b�
Z��V���.�X�A�`�μp+pi:�w���2��0�
 �H�f(Q�2����d�.?�JX���L�Ó���{��Yf�ݠ�@C��ŏ1X�ae�nQhD�qFd�
-w��Ǖ�q{Z���S��RL<ᕋ���X��Zۘ�
-�tl^[��!6�P
-�\8�
�G���
�K7��}6��i�H2*�b@ר�3wD�ZҰ�I�J�J}#0��g��iΙ���<ç�,�d��	`Ȱ�Sl�(�6���g�8�#���B�u"`AV
����Qj��њ�q���L���$64YhpwX�!�DȬ�@�73mT�d..+<�\�Β��h�s�����<��գIY���l�t�.�*�0���zp�ԫo���"(�i�*kT���"�(/�m-H��&޵YuY�:���[�gVu��#K�65䐡8��4�Ѣ{��Y�N�����b|����!٣1���O�3�`��Pr��wS�O�����7�v������`5�}T�k2��%mdЭ�C�ڍ���U�p�����?tԕG�
��7���А��~��s��>�'Iu'w��<�U�Acid a�^�N��- E�v@�1��t/M�	Ytj6����ϲ 
-Q�հ�����79"R�T�i3F-�8
�2+��*�b|r�k�v�t�������4��LG�y�H������!�3R�7�(q-X$�U���ՅAK?��	yC"�j�B��+U��"ZD'�K}����ȳ��.v�4�5�Z�Y����C8
�Y�Y\kl�<������ P�Y�bbl�J_��)^�cH���1V~���n}�����Q(����V����(��&��*F�*���Q�0�����1��l�'*�đm�l��K�D�5cT%2�Fd)U�E�����*������_Z��V3Id,���	Y��������K�$G�.8#�h'�q�q���h�yҤ֩��6�ɳCǩq#�����l��Pw(�O[�;�q��銔�to%�n��?��H:ڵF/(]셥L��OF�j�r�H��Ii�u�r%�W�)V@v`�F��Gt��Tl�&��3��A5ݰ�F�M�Ĵ�4�E*dh�����]J4��
-���cdu�X���e�ӥ�N�n�Q��
-m).�F�/k@O�|ӌr�xPB�ƞ��+��@H&�x[E�v
-�ː#�^�FË�����曵��@��6D%5Rn��t�������E�ܙ�����+�Հ}I�B�-R��dd�Bv�ߐh~�B(i~�/�5�����
�O�Ź�djh@�$NVʫ'+�`;��)n�G�m܀c�>8�`��I��੅wgL#S�Ίs���p��"

-��⅓)�0�KE�		��$9�<с�������H`*-���0|1a̿���c�e�K�h�V�RǑ��%uV�-���,��� �w���?1C�Gϳ��"�ƴGNu�Fi?)�4�����Ψ�����'W:d�br�<R����X1�dGrdd���5�.�p�vk�n��#�u˃U&ç���DS��@��*�4Y
Ԉ�A<�g8-��̻E�i��
- �F)b��ي��g-�`���E���ك�HVgsVX{!�L�V���ڹlh����L'PC���`:.�����zG�CH.W#t�m��ӫ�m��G����l�6���@�(#0�ǜ~�T����:�4�(����"�
-	CP6cM��
-�-���a��F،B���nj$ ���nn
-m��m��F�Z�k`�g����Ֆt��zZr2�N|Z��$��������y�O0�4������@H^�'�%߈���Pb��Su��d��Ro�}�I����M�M��hBh�fJk�8\d����E'H�Lݛ�b=�F�T��-��he� s{�
R�#��B�#�@c䄈ɦ�Dk�~�E����`
-V�b�4)��A�.B�`!�61`�Ni����E�y�c�OB�$X	�x!�yE>��
B�h5��/k�
-3	h���"^/w����>�o�0�@���%�Fzʷ6z�=�����t�i���$�$�)Z8Ut��0)�n^���:I�%7�F$n��(M���m4-N���H��C�=.dE�y�tzE�'�ƏA�$�o��5u�|2ep�+�O���C�ϣ�A�֡ʇ�l�,@ڌ!�{٨NY*�lΤqLa�X����l�"�ɵ�jV%��xx�8�:9���$
-E#�ҁ�N#]uED���=��P�j�N�<ݮ5R���29�b_7|�B�܂��n�EVĸ1uk�L$�F�D(�Bt�ڔ�P�m�kaɃjH��66C5rr]etQ��Xs��VS3��aʪQT}l�:�a�&�/�4�3+�j0�qR�3h����`�<��4e�ug��A�ʞGK.9�5Y��{[���`¢��
g>��X����H{8|�խ6"��ƆDZp�<���(ɠ�hRN(�SB"��*�qp��Z���"u�:E�o4OKj{��/����J	v��I��Ѣ�/k�hk9������"
�,�C��)�K%��n�+S�ք��a�lJ���)��`��z�hs�3l@Ow�T�@�5q3 T$�2��p�A�6�������|�
�Pء� �Da= D3�d[�o�}|�Y;8#
�3�/)g�+G�	��W������f�[{��kO����(4��G�f��<M�>ܦ��̩˦rM�����	3m�k[�Z�#尼�wD�\���,dc���8���4ɩ��9PN�����
-E����-�NP%˦��:�+}��^��e'тA� ��'����Y���3�_R��S�K��F-9���fe-G�ʶ��,�Թ�hB1�5X[Z{��c���G
˽w��*������+�Y	����B���q���,�ӏ�y�fQ;`�O��_ȸ�K)��D�_��~f3��R��=$��/����SɍFk4@�l0mm���d�@^g��Y�/=P�lߜ;Hm�&QG�9���k�6�ʹ}߷״�����L�ݟlѯ�EGZ8<ْӶ�a&��ZC��-�=��q:����XK�@RK�0}2 [3�f��)t�V�>%��HĴڀ(a�S��F[f�b��S]M������y���s��ɺ2W&��(+�<�3�h4��s���iC<�9�?y�����PX��E@��P>S��5��SH��b�AoFsIJ�B(��:����!8����=G��a��
-s��i߷�~Xgz����F9x׬e��۽tf�6}0"DPy�A/�+KZA���'��/d����N1�~uSn�^R�L�������}ftڷ]�k�w��x�I��&�y�dSNٔ�t���K�[-�	|�F�8>+���:��(K_:yҟ�J؀N�hFcJ��?dn��
0��9#�(�t���WM
۴�8�g� v�4��PwO;䴗i\0H�U|t(��h�C�3�H�����.�=��,�
-�l6hi(�;�aע��F��6��q�יEg�f�*���)�e�.9Ȱ ��Ӣ3vg\�����<|�l��X��:�Nޓ3ٵi�Uc��VE��
-mܤF7�'��/d�����/�s1���:p��3�{`�t�߯�գ�y��.���}�2�ݨ}��_�+�'��f3O��d��f�fG�H^�@RK�/r��%�5l�d���^�K��Ф�i4<	#�����{�1J��l��Q2A"�G�d���ɭe���H���&"ټ���nƃԁ�����H@�A"U�g�?y�%	��b�#*�B��}G3�H�W0R�=�._O�LQ'j_<ֺ�'��bd�5,���wPO9k�$E�u�z_�$�Z#8븡�Q����(�22	�P+s�J����(kW���r�i�F�h�&2����tv�w0*�:,��e�ZFx��`�$*��Y�VF�?:�7)�1f�#���;q&��F�H�]
-�A!�!���A��Pc�Q[9�j�փj�+H��B��h�h�C�G��ͯ�����`E	�Av�������w�Q
-A����F��U��O��<gst�œs�m^�A�f���@`e��aL����‚������;&8�A`'�`"Q�)=m����1O۫��UW�K:wz�ii������z�Ks
	�uHE+*=�W�Ȣ%���>�ȵ�=��-s<�5kسyU���jSV�P��M�S�K[O�Γ���fpy籀�:@J�vu`��V`j۩5&����!^�w�N�O��P�H�x��A��DRӇtJ �dV�;$0�����	�&DkVB\�@J�iO:��^������)���P�n�]k:�t���`%![	<�\]>w���B�t���:D����m���낢�NUL͖F� �6Ct�3��ۮ�5�+�����?7���W��|�]�����֍^�,w��ա|r��‡��'�w܃ݹ{�����E����q*�o�׵[7�K/t���w��X���~��������G��������o��s���:y�[7n~��1,���Ȑ�o߼w�ڭ�޿v�������',�{�������z�Hg
 ���O~���\�����9aj��|������O���Is�k-0������o^���O��ۘI�r�n�����]�{���=��7���[�n_�u��;2~N~����D>џO����D>���W�"GK�`ǫ��]ad��Y�d������r¨�}��
-^^�G_�נ���Ԩ�0]��/��TS�64��J}�j�`O?ZO���z��%}Zh���W�n��s��?H���y��IA�[I�6�Q=~ϝ��_xui,KK��E����(���(�:J�lu7S	3���W-��ہ���^S*��F ���>�Z�u�F���>�}K3�a�m�xTs	Dq�1P�x��qT�Ql�6B<�f|(9�sj�(�u�m���_�E�u�)���A�Sw�6Bes$u`mi�A�m���J�	
-��-�r@��qX��3%s~����
-q8�g�*�PS�Y�h~���o�0^�)04����0Ab�!�O���m耞\�B�ۖok��4,k��uD��M��y�ϲ9�@�C���e#�t������׆~�,ww4<�Nu�j�Q��Jٹ��o3b6Z����Q�����@�<I�B��%c$���X��،�m�4�$u��5���r�6����[Fw	M�l����`��$Q%,9rm��&����^��J��_ �<��]*K6C��p�n��~�݄�|@�3�V(��]���iM;����񓲪9-�l�|rV�jh� �����d%�ZQX!3������ @�s2����gf�]$��P}���dh6�
8k�e���VvZ��� ����3m�2e�#�����7�<�b�9�o����\�b�g�"�U��z*I�����ʥX����`S�rW
�M���R[�����<��+dh4�<��<����Ք��(!�$�%�Ϧ/�equ_��9�m؄���'_�ve�u(�py�S��#�h_9aЉrͅ�#
 �X���A��
t�̦���C����R"ZX�0}�3*)�<%ކ4O[��(D����V3nۯ&��HK;1���i2�@wj�	�V	�3-�1�����:K��r�4��~5k�^�I:��h�>�6���B�%uSid���[�Rq�D�E�	*�R`:Zfc_������^=~�m�EC��l�Sc�Y"gk-0�h���L��H}�)5���D�S
-apN:�S�lCc[[��ET]%��
-����[M��d	� �����@ziMx��y�<��Ԗ��՛���ή7(�qr�A�ҎE?�Sv*L�$�v���M3!�r���3��n�LДs�(@�]ρ�Š�mHҊB=��2_%�$�/�m�P1T�^v�~��4�&`�7����96cJ6�\�c��)�[;ΚI���0ln	{�q�����go��cO3k��k��'Y��>d���i���}��h%;Y\��Bf�*1-�AX���.l][s�:���6�= !Ls���3`�S�F��|Sqo͕�A"
�E�Ka����>���.�&,��@ʆ�YQFF�	�A��[ۯ&�v��$���::
-����ͷ�V����aii��U��j��9��k�l�Rqt$�K�0�ы6�����q�_�`'�\�4nf4���~{��G5p����r�1>$�����ϹA,� |
-e���{nLn�+�"�qyI=и�-J�8��v�Y��Η�#;UO�e�&3
-n�^)���[=�hq��M<���wS���+��+�j������e��2��6�@�*�-b�_��}I�ޭ�a�,r\66Вǖs��Ҏ��Nl�z�-TJ��3;�1��
�l�y���P	��vHU��3l,O�7�kv�
-ٱ�����Hۤ��(���wn~�$��X�ƾ�qUF�r{&��V���\����"@�9m><���'
��O��:��^U����u��/r���)C�fz�
���l�����g8�	�`�u�S%:�'��A'�ؠ+'���n\�u#�n�w�!�.u�)��xQW���$咋�i~�n�f5Ӡ+�so�Ķ��:�m�<C:�,�!�z3��>�S�������4�o�fN��ß��� �n4IF��wLx8氁n�0,v�A��2�_N�BS��*HF�n��5�j°Cd��.sn.�yw��f��!�ٙ2]�in�h�H����"�� ��N�ȸ�JCc�W�ļ���^t-P�4�h��N괵��悛C�>�`.��u-��1g@E~�,P3Vٍ�I^N�``@���]nH[�=��s��R\�(5�/���^����m=��WI��YaB�
-�o�Fl;�¡��+��AC!A[<��*�.y�U h��k�+�,i�0m���!�;h���v㕔iC��ٰ�1�a���	�^ԥ-�gx��֍֫�m����2���"	e���z6k��RX�C�WA���<���!4�
-��Tu��A�h���<�q�+l
-ŧ�ed��h�7��̽i���ć�{�n��d�L�"La�m4pc��+O'u:)-�4d*���:0BM�ae��1&A���q�h�BW�:�o��h���?0ԕN��.�5�w�~-�� �%�w�}19
-��@�W7�3vކ�`0&�C�c��6���tǃ'e�L��%�3\��j��5����ʩ�j�2:Z�d`^���KۦM���G'��5bՑ�������fХ�ͨl�#�񜷡���oۥY@~/v1WJG���4�v�]����2�c��[g�[��͞�!N�dW�V@��YIo�+l�s�5�j�6t�M��y7�èw�f���,�� �@�������EML{J	l6Kz��B&x����(tA{b8�����꯴B���"qc�[���0�"č&��
�v�:��}G�I�FJlw鼂rCKK����qm�I��N<�~�*�͍�52�[G���u�t���P7��_���,#p�I����;��T��d:�@��͎gZ����}�J�v�&�m�v��c�;ҷ�������=Fp��9?������������%FM��f��۹-�liyR���tR�FD8���mp��
-aݦ�^m��~��i%�O�����?6� ڔ��<D��(�]��gQ,�3�@�:���6qpj�g`�_;���rC{�����Q��bz���}p����Oå��n�%��~�������{ ��B^�����|\�����Q��<w�$����思� W����V�`]:�*�"a����Wӥ���`Hح��2›Z��O�ȏl�we4+�iO�+�2���ē�5��s����}�I���4H%G���
"�KR���:D������/:�{
:���kg�
h{�X��G���ny�z����8�=�Gɺʘ�D&��{��
-7Z�����vl�I� NXz�2�f�@mQWۉ���Z\���A8]�	t�0�	���� Hn���������(�GEe�AǷ�$tT��T�e��W��\���4+\�V�s�v��]:�LZ#���A�mo �#��/�����׌���8&Yl�n�2cÉ��r���XDh����T7�TxF0�i����օ�FChMA��JG��*D����'?'��u2�(=�c��e1jH��[�E��Օ!AHt4V��	�!�G*�Ðd���1��
-��m|��������c��b:���
-"g�>ņp���=�i&�fd�n��ԭ�k9>���1�7��Wx�u�s�|��`CK��Kj�A�r	
-�������s|�X�rv�kI��H6���(�Nk�.�Z^�.4.pt����"�!;����
-�.�,�1Y��ʞ�9ԇ~o=1ɛ���w�p
����ɬ5q���mcc���b�@�[p��Z!P�-��fO'��K&"�t���H.��We�0UҏC���s<}�d�0��Fp{���hE�u����E���1����ag@�NCr�lL0�,�Bό(D�٩���)�e��ocD�GFrI'N�}�
UE��E96���{�	�ӂE*u=��O�b2�:�/��v'��i��K(�.��N�n�,g�X%�D�PI��'��J]�y�^oM�
=GK�,u�Ǫ��ivMZ��{]�^X��Y״��7���B5���	����d�(s�1��'�Ҍ�I���X��"�$CC^:�SY��$d9/�2#��/�@�������"������^����F��|E�Pٜ���ӭ9b�we1a�{�.��4I0�� 6@
��;���l��P�c�:�H	��^CT�iu~x��zV����nMO�tno�cHϷ�Ώt�ʈ�Y�;8�$5m�i��TY)&��һq=O�|���HGX���F��i-_A��]� ֥�
 ��v2d9+ГY�q�MzZq�7�F�c��&h@��X��r��V�aE�n]���&D��Lc�<2�2`	�cLh�9H�,�ap҉u���D|8e���t�&D�W�^A2O8�������~$�CN�BC�^���a��ll���fv/�T��[�ŏ`mN\4��c� �B�+}ts@�@[��
�ۂ�c�o4�����=��#�0k��=LS�Nh5�1I{ӯ�Zt�����@.t�4}�/֌�4^s֒3��� "�,&h��A���ȵ@�V֮��|" B��V�� �>f�!�\Z�YW����N=uh)Y֛�QO���^tt��o{
-�Љ�::�{V��(GKw9G�=
-�N�ՏF�R��D/�2�i5
0PF/8�8�f鴂d��;�@�R�`Wi����x��st���*�6�o��cP��_NT����NtY3Bm��-'�.�^'�7[b��-�o��F���,�=��Lm��$� ��A�4����Ȣ��!S���[�<��t�˫=�m�G>�_Z��W�0���h��u̅|ܼ�tQ��ig��4������	*b@=F��V�4�Ri^�
`�0�.3�X�B��q&�l��"Z"�4{�y���^N�ڵ�z�ci��]�'��͚[�@o�$�
��'iS���b
l��h/�N's��d2�{��-�a�2aR���=른1��@�N��߫����9��=&V3��!cğ�Fk �ȖŶ�t����d��iNM:�6�/�B���^I�X�4"tY��u��B�8k*Uqd ɨ�c�"0;k��gs�d=���m��bu��ȳ���P{�
٥�$���>�TP������$��r�Y���c�Z�Z�9$�YZ�K��=��4W<=���A��2��xGU�
 �>kK�V{���=�b-]��6FX��O6nL!\�P�ƷÚ\TޯA���H;(E:i�f�����f,o��u�[�Mo�q�3^\�!�D^��I[6#qkFc�Z��w�7nD���[�i�����P�[�A)j)_�4Z������N�g'�X�R%zt�g�eВ�s�*�dݪ+k�<���{.#�V�FV8��G�`Rz��Y�kp���2b�45>R��J� ����헠@{\eqZ׫J4zά���r��V�ߛ0�ZY"ԅ�x\����kUz0/��j��eK��! me�&�xcH�ƫ�ڔ[�rË5�}��T	?Iђ�
e]��;/���:bX�9Ӕq������I�	Pi�@hhF������b%���J�t�QM�G{p��i�l;؊:�E�Ҁ�����N[.�8V���00���g?|�/?�����W�4�ŝf���� ���-���NZ��Sw���I[F��9�Ry��;o�Ө��͊�h�N<�a�KL�~�DbHb��]ʠ	�m��16L���	0G̛Eu���*K(BOf�V�K�ٌ�n���� �:ˢ$iϠB�Y
 l:iH\���8?��@
;}N�I2C����sXzֽ@y��-��k�5w�֒Ղ�ِ[Zҥ��l����7˱����i�F�v8���.��`�t�:�F7�Y��ǯ�Y���K}�N�����4C���xG�-Z`@�rf��Z�uޔ�O)� �4Y�X�������`K���
ɀ��`- �P
-`\�PPR���c�%#���1��;D5Ҷ8��USK���4�ϱ����͐`�3��0'L�[�!gH]=�U3�Z���@w��v��ǹg����BgK"���8��j�L/3D>9�dr'GHN� ��rOj��+�4g�hC�b5�HC�j�H(��@�4�>̕iD��PJ�FV�����B�6�L���i:�T�\ ��k%���&�"�?ַ�0p�Hy ��UJ��C�	�ʷD�Y�^���>%���T��5�p�_��`F�Rt
�7�o���H�x1P�$'3.
-��ک1<o�����j�`ٚ�$C����!�m��A6s2v�.��a<��&�`����m����`��x�<2�ݖ��3^E�"i7z�5#VN�:��{YRv(N�6�×7D4x��9��ź-d���r�r;k�cF8�g@�?Cڊ��Z���TR�?ә�P��?�A����y��-KL�|4yII's�U�z|W"�m�F��{WB�	�Q��A)ǻ��jY��rRl��:3�:@D&�� �c*����4�4k/.Z�hޔ�:I��=�X�NJ����-�H�8蹭M�O��3,�U�:�=��k�D�/z馒yL���c0)�i���呢��	G�d6_�6��������<'�ãG�ըCՅKw;k�˄���Q�l��$�`%X���
�
�� �trN!�[�u�i��RQJX_H2���^UGCqν���PO�f�d�#֬���0��Zd��T�	�ꊶ�C$u�Q�uJ1A.� ��d*�E�����s���9|ܾ��t��lH�w�~-/��
-Akk��<�u��!�V#W#�!�5��.���n�
�2I�N:��a5�6��y!C���;�j��uY��-8}��	mH�~�BLڥ'Cڢ?2�q'}o��Y:_���7C�&�]�ϐ@M5V�[p�u�0��e(���q�?L�SE�-�c$嬈	S�N��#Xh�]+c���vמ���a4��Sy7��R����|�CJ3Ds�(7t�++cuH��4a�\�t�.�E��"��646��Y��0��4�0S��]�,�y���&���AW�AD��8�g"2(�y_���&X��#�0.o_���I�n���@��_�1�?���ٯک�0�le��m�U]��a���+`�	yeS��Xﱎ�M�%�Ħq�����\1�R�.�w
SX�o��Nh�9�
-JIMcmP咵��
�蟫������#�c�w�em�����|F���$�Q�[���}7*0�������O�&�	��p�z�@����:#�TU��p���g�;��wԱ�XT&C�&b�mA����f��إ���Yǜ'r�D��Y����}]9�`��8X+�:ܥQ7��֭�Ӷ��6{,��J�;���֦���Md��V�_1��%e��9@�9'LrK��Q���J!�K��(�^{uʠ_Y�=��'r�+�塒(ڸ������V�Lto�@��B����t���U��iK
-v�R�3��@�W�\��zC�᪖�+x&#)���T���0-)�BՀ'�+)!�ge��N5���x���MTIc�;��j-��E\UM��2�D���`+Btͮ�<#�Dq��Ğ�(#�]�ӟ�n�
�gɓ�	7���q��S�E�Ɂ&(VF��?
-ga��6�<?� ��u����u�p��5�
-�I��Fg�D҂D�j�2�vp1�B�R����j�!σ�ˆTc�hd��
ips�`�vt����0�mA\z�[�	�L��5�\5[���D��)�ɀ�@��ʀS�"��1y��E�S�	54�0���q�z��b���zV�6�a=�Dd5��"�D�eـ��(夂���"�yp� ~�΃4 M�ux/�A٭����RO��4��#��*��j��@�Y�����v�'hJKG=-E����mgP��p9C(���p�6�����:8-RȘ���FJwy(�,�K�d7�:pqp3JQ,�bC ��x�r2��)��"�1+RGh�p�+@��G|u���'/1B�H�7$lD=t��g��X��P�Mmj."x-�
-�8��Pn��~5"�8����,c�	1�/�^kh�lj}Fk+��W��X��>�H$)��C�]���TZ����GSM�n,cA7��yBr�J"���%!r�{�����z�>5�TMv���p�Q.���n�����{N��f���
-,,�0��>֐�%�j�>�$�T�{���	�|z�g��.�˅�6��Ic��6��Ip�=_fY)zSv��]��Lu��f�Ld2�C�� Za�S��{���:��6�(�$nV;�B~=�N��s���G8Z���J�r"��&oL�Ra���(J�6����͑�m��s�S	��(��A���Z�6�yë ��s�.�,���|�X#c�N���l�P�r%���i�ġ��+KG*nc�3�!���<�=Y�V3r������1���g6����ţV#��p�P��j�9KR���]��ې��K`B�kC���,o9XPB�s���=� ̸��V�k��BRx�
-e��(Z#!���7MҾ�ji:�.�lśbȕj#
-k����7i1@%U��U���|?_��@�$TC7�o��,I[��!4���g#Ȭ�i2e��H�v�� �1�cd4a�S�
-iT;Y��D�W�S���#
?�+��PlP����99�n�d2y�h��~C�f�8�-H�rc��u�m��I3lLdl�����
-���Fظ5���'��҅X���p�QTR�\B(ZX����x�`<�.L��``ɬ�4�2�K��1&Cئ���#��b��!��h��)�!��fJ�H]�G�h>'S����o��x[m&�C4b6-ܠz־E�079L�\
-?G���s{sx�7�S��e<�c�
-Z4��^GM�D"�t��,�%\�����.w���P�١N�4�qbõ$��13Vl��y�s�k������2D�`[�z���7����lǮ�:�O�wؗ��ڙ}�;���"������D����?�Zղ��Ta9�T��Ҭ��ٌ�oDŭ$Ā/�X{�Uk�8�w�J��,d�	�sp`
-0��^&T�<|�#I u�eo�[����W�ى�U��>�`_3�Z�#{+9�,Bk�\:]>q���#�ı,2s�S�7��o,��#�F���ʮ]����N�'4r�cW<!7_,~�ڐW3M\;`�J΍���bY��X������� #^���g�=��r?x��~;���/15�7vt�-� �F���-0�}=�J�TI���dϦ��6�*����^P=��F%���ˑ�E�2
-T�6��d�'�X4:��v#n�RDᐷ"���-I���]��(�ʈ:d@x�x�e�]�'�ph����A��*#CJ���$/Q�׈��`O�v�Q��G�I���!	�,�j(v9!N��$ �
-@��?�di�#�;�C����Av�@[&h+f��2\b�!��^P���\h&;�ӆfB �!������T�'z4r�I�ű!f�����|���fhq��(tW�v�Y(�0>�z�4��$ч��b!��T���1�Q�W��c��*���۵�~�MY�e@k��jajFU�ֶ n(�d��euK�/:}�)f��i6���B�*��� ���*L�u6P�E�
-�B�%��"p��;�l�E�6
����1�D0�� G�C/�P�L%mHCf,�h;�D�r��F���{�kZ�Ё.Uq"����v��i����'A#/)b�8���8Lπ�t� ��UZ&8H�
-䓼e;�� k��Ji��}�:y���d 藀��I*�30�"j��B2|PR�I�ĉTXh�Qa�G�2Y����İi`��.���,�R�池�!������ |�\r�7������c+��b���p�z�/qMJ� ɊSs-����tF����I��*LG�N�b���L�\�+ ���`ݖRq��:|�����E���� <�lc��#����6%�5
-�e֖>d߶��Rj;Nk��:ՅA����Ʋ�຃��|�
-8�������I�&��Mu��&�:	����!e���,/g1��R���!����6Ch[�t�U�^����-GzZ��ԣ{ٔ.�6�
��$p,�Rh���!�ok�qp �.�L_4�(.m^Z����As)Ht�}J��
��F6�.�+����aHV��e��֜0 �H��u1�����M�3R��K-�I\���'��ɠ�m��*�.��7��ϵ�#�i��V��o�w����b�]��s�k]�c:"����Ր���V�,��yj�-�@��Io:9�_U��2�ۥ�eEu�#KH�L����!y�&0!f��a��p�<��`ۯ#O�[�v���#f�s��t��ؘ�F-��p����OZOb���$�pP�&+Lk�)��=����|��FvW[�Ďr��^n_*`@����0L���,�U�*��6���-�qy@"ז')[F���l!�\������+��WCؔ@jS^G,�g��n�6�`�
-V��8��cWS�7Ҏh��ru]����6	���f��I8�BTDq�rl�hT�:(�C����x�OB7����>	�3=�cãL��a���EtĞS(�(��i�A0�Ք5QH�^��p_2���'9�]���9�W�$���H��)���U�ڶ�Y�����\?�N6�O��$	�Lm@*���#��	�!��#�>�[0-v�� آ;��t�Nb��*��Lt�8�3Y���طLQ,�[֐�V2��D�o�8iCd���\5�^	�u�Tm�LB���
��3��@.�Cr7o��$gLnW]�"RI�,Ih�2?[[��J�cQ`�L�-b%!'s{A$��q�V���i:}��>���aac��$ݸZ]���~���;!Q�
1#�,Y���oxh��";bgyK E����nf�0U�
-�2$IF����T9�m�ʢh��$�=��	��A�{k�`����.N���V��Rkx�Pj���K�hiC�ŏ�}x4��{"*
�v�*���!0����P�-�50�)4�UHɇ۸�9夅�BWHEjt��9L�o��C����3�]TG�!����ہ����pj��J��=Nnlݏl�I����gs��:�bW�A���\�E��A��7:��!/��M/���V��kC��EV7Q$��B)�Q�Au%�>��M��ݕ}`���3�Z�mC�XC��a��R�t0���8S�w<%
-r��ɉ7�$�������E�H3��-T����RlOd��"�E�f�#쨶��f!@�[7��������,(��_��+���m�RV'�{�;Ȏ'���m��׶g!ʀt���!�;�K/v:0�T�&��o��#����$��ص������bµ���yyq���ӑnО�i��]L_H�U�x���,7-�Ͷ���e{+lgP�c�`��A;���j��.�����!�g(lOt��x��@��Fq�m����1�X���]"��\~�HBcB[[�!I��W��n��ک�ϓ��� K_>0m��&B�cBb���fb��a�ݞn�(kR(�~��\(cI�&��T$�����&��P�>�b��XĚ̤�Fҵ`[a,GW��`�LU�^�d At��V�R���0�5�Sy"����
h��5٬�*�$���N�5�#aK���\�၂H;z5T�R��[q�1�v���W'�����A�5�������wY�eӒW�@\M$7)��i����p�Q3A�bZ����t�K"�
 Z?w�y�&�2Z
-[KpaJ@O{�6`�d!@YR	��\�W�W�ā�E�� � ����iO���IH�u�
-��B��:�0��/I���,�M�q��Fp\�b����7Y�9��)��!e��wy
����i���瞻D����\K}�=�!�R����C���r(�~�Z8�#�2��#�*���|��"Ko�%��
-f^�,���
-��T�3!��H�Z��\�6�	qR�%���.�y��<�.�:$҇����J�{j�=���ͺ}�V�LP��ӥW��sZ�%��Tq�X2�ހУ�"���i�W��94��,���������*��q�"Z2RH@5hIf��`2�6yd��Z����@.4\*e!�j�,��-��݄Mr�]��I�e��D��s�u�(�ga����}ؒ7���aX�aXD{�W0�iW]�^)�\�X)!:�pq�y��1L���ß���Q�+�`��% <pZC��T%��@rQg��,E���8&�6�)���A�����d��''b��X~�]���\B���b��#�KCFC�f�v	��SW�D��Gϖ#yQ�]3!0��!roi[&�M�����
��E�H���E�6Db@Xs�m2��Dh K��!�%�@~�7x�n��gSB����b�	�������
-���ꤐ7e�GDf郊 �*��7�[�r��l���1eq�7��	�x��B�Vÿ��% �>-8�p�5�U��E�]�SEػDp������3j�SM���T	jc뜡���'łL�ǚ�$UV�nb��Ȁ��ɼ*�]8��,T��%�T�JrZ}�L�L>������7};���<�Z2��	�~*�c؉��g-�mG��R���Q�Lx�I�/�3A]�}m�XDS��F{��+�9R���!*6O�5aw*�@C]�Dž.��m[G"#��I��U��Md����γL�w
-A�X��ɘ���}��p�x�z�E�,��q�cJfC|x��qZ��W0�����N���h��Ūf�p�"Z��hr�J3��A�6���5bL�٧� TX,���U_�Ǭ^8�g��x��rBZEjH4{U}�ڞ=|�k7mR�8�WҤ�K5������e�����EBi�:��!)��-�j����z�@�� -�E��J����V=������e��E_>���[=b�,�[|{ۢ+�{r�d)�"��E'f�b�eCw>죃�~� K�써�%�,b�6� ϝo�j�n��<B֔�o:��W��#囈&�·���<�(Ju����x
-q�0�s`	�Ŀ���a��)>��N�E�v�}�lh���5�N�=��x���$�����J�p]��"�N��ZcJ��t��Y��_Mٕ�1��BwY��KB���D����C�&�(�K�?@q4ͱ����(X�H��l{����x�c��BL�Ӫ��vg��J�������!@,���K�y������A�*j��T�9�@�s� RXIS�B��,M;�dXƲ�4������u%���N� !��Sqۦ�m/�9�UM��H�4�z�m7VE����E̋�� �MX���٦���ȃO{2����@�Q}%@�A���-���U�E�3Y��,�c�Or
-0Ĭ�%�kwL!H��6�	b"�G��)!�Bf�	��[�;��B��y=SK����{t������<�U�+1�Cl�f
̄���K�+Ϡ�-_�5��)�)�#�Lb�: ��
-���4ik���e1D���W1�^k@����ts��Ԧ�=p�H30��pUګ�~��Oų���J�2��@S�{4e?=$�(�����X�L_N�7Z�Ds�$6rWBl�#��T��Qq�s�,?>���A��LZpu�K4��uH'���V�p��tUwt?�׶6lg
%žh �Y�d.޸��@�R��]Z��]7�҄j~�b[��ė�w�6�_A!!	J#�����KYh��3������h�K��
"v�Q�R�t���׸���ܵ�X�"~٢)+�q�w\Z��L�)*}�����B1��+�������˹��u�T�����.��t��	�#��ն�`���gb��ڹ����^Jr�'�����{4�b?_ץ�B��,<�D,1�
-��/zؐ���4��%�AvK���d�����N*�t���e���w�T�
���K�*�	�mq
�3�
���ӌ�W�l-D䆰�

F�
-;ӠuH�<��� ;z��L�*&4��񽝚9@���BXa�I=��d��i�Q�T��е�/ �2�}Ӑ��9��[�*�kyWK[Pq�ȥԗ��Hz��`UJA
&&R�7�U�}�m��g���R;p1����)m��6��j�ľ�"LR���*ri����u�k`{����9�y��0���<��劜��o9ab��
�o�����U�v�
��d�ݖ�E:�bu��!��?nYD,���Re�C�r۱���Y���F)��9]��n�m�E��	ȍ7ɍ/)�&����+�� ȩ��/�(�����C,.��p]�?�4W��`�&@�\9�_����k=�ՒU�MtL���q�z[%�1����:J�q���E�x��5eJ�a�D~*U�4�pm�!��V-�Y�n���e �}P�����(�6/�W0{�
-�r<b��m�  �R�'�<))^ڣ�����NW/e��hP���Z��E���$\e�;v�Ј@;��h���ct�,���|1���J����D4=�.�Á�
E.��qUo��,�G�Ū� ��C��WQ�-y� %�&�PѸ���6})`�3Q�!{e��M�d��6�A�䎦��/o��X������RxL4�F)P[�vp����:�b5��(�4�_��
-u�X�A
˼Pj�S�R�Ũ�����7z65p���S�/+oQ���1��o��Le������
-V�������|���|��G���M���P�����F
b�E�Z�ձ�< �w\�l�P5yS ׵��������5�Iŏ����p�s�J�����̀�"̥�*5F�]<��;���%'\�B��N�H3^~����E��oNj@.!bsI��v��6?-˃[,D��0@�����r�(��}.��֕�Qچ4=l%���{�j�N�jOd/�u}_y��x/bLj��
-�]�6p�w(TE��|2c�n�'���@��۝�1������x;�?�pU�<-���q?h�n�x�<!�ʉ����ໞ�pѓ|6`qg)��lޫ��E:�6*��h�Z�xh?�d���V6W׍��9��&8OJ���ս���{g�XԎ�����$�����[-�V�F�N���[�s	��s��=>��c;tˏ?��ss~BEݗ�������x�c<�E�b-���1�9��T�|�87ˌ-XX�4DQ�P[���@g��,LQ*p�������t>�����VQ�f/�>�{N,�Â��]Ճ��M
�A-��]1@%���[ž�����
�v��y�bK5��nY��M~0���F�6�ev�2��-�fC����>���v
-��6W��S3���Bi*��-tk
-_�Gܗ/F�/�P܉�H��Y&<�B�.�$MLʉ.3�:t�FP�
-��Gy	ܾV�vl3��=w�v�o�+�߿u�g�̥�zs���&l^�ͳ}�{V)/��3�ⱐ�I�"wD��wɉn�@`U�~��-E6{�[tQ�p{��G��$%_`�@x-RY1:8	�
-@���!E��
NV���)2C��a�;�ӋR�W��D���t��J���_IH��l�o��{�b�!���wXj�5!��*���I��ޣ��'�c2]��
*����q��!t�[�u��1b���6t� ��SԆ&����@z?j���<�W�
��!�W�]��
��%h�ZA۱��A��
�2L֎,gZZ`��G:>�+=���S
�|��[��^>��������~�{,F�	xn�sjJ�P�By����@cf �h��z���|ۓ��q�/�VA�=.K��w؆Y����l�D\�r='�[J��vB(`�$&�Y�ǮF~p.4b��q��B��TЦS�g���"jz:r��0 �,�q�=\G)ɽ�������S�lV*�W�����l�BC�F2�G/+9b�.�oq)\8J��.��&�dx���dz�	Q�#vS_\됖?__���z�!�o��9��
r&ׂ�ܵ��/���
-?�=���ܻ�>FGk	��S:�A�L���a�"�:\�J��@���6i��ew���V�J�y?�bSNZ�e�M=e��12�	��{�Ng�wT�ae��d�n�Ǚzg�͠����Mή;�3DxM@�����B��&� H������f3o�~B:�F#>ˈ��ڲ�T*��J��m������eJRX~w�U��ͷWq��.�fga�n$[Q���w>#��񕃼.��R�o��Wl�o�u,F1��n�߂9�7R�,����=O@�	�U�k�K�
q��R�%�m=��M�����s	ڄ�vP�y��J�}�i����M��Z_�۰#���5�D�������%����J�F\eM-h��5a�G�Ҧ��~AlU��A��vi�y�ɂ�_��+�������Bz��p>��m�Y���c������'}����Վ�y�b�q�����	���Ž�w��߽����m�?���o?�~����?�ѷ������y�o���&|n��?|��ÿڮ��_
 ^��k#��������7��������aێ����~�ӧo�_���_����޾r���\�3^�������݇����O��ug��?}���o��w����ӏ_r/����%���B������Cl*������o������/~�W�%ϰ>��Y�y���͏�E��0�ao?����ׯ��������[?��n����}���?��7������^��'���V�[�����qGe��-�E�Z�6gle���I�<����s�?3�!й�*[E�ҍ�V�T��\���Wxs���D�	O;���� t0j4�È�nr6��/��&�f#�ki��2"��.#M@��)C'��XD�y�*�G�?(�7�D�0r�+��-ܺJEnW
��5�Α��V���F:'�_㛻θ+��D/��q���~
��u)�,P��љ^�Ȑ��
��y��B`�������6n�ss�@w�O�+���)�1�S!,gc���Tij��O�σ��,��
 ��ꆃڲ��y��q]�����?��BP"wu���CI����D��S�U�;����,n_A#�����fֽ{!
-L��`�f�80���ۮT��"�B'�����C1����ϛ*�$4	i���癤oc�	�[f�})b����]��H��m.�6! �l_�>�ud�E���W�*DJ�
�!X?2�%�8��_Oi m��e-+B���r��Qq<
-Hؠ�$u`������E�pݑ�ѯ�ر�I"$�qt�4NI��nҍT�d�����ږ�8�x~�5.�a�S��Ͼ=4��#�nU��p4�y���B�{!y�ܯ��r��i�u�N2-�&?����,tt�0�qr3���|���=ԕqeohib"��('�j��G�5�����}�>�Ә@��g���f

<TRUNCATED>

[43/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/dependency-management.html
----------------------------------------------------------------------
diff --git a/documentation/development/dependency-management.html b/documentation/development/dependency-management.html
new file mode 100644
index 0000000..99cab4e
--- /dev/null
+++ b/documentation/development/dependency-management.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Dependency Management</h1></header><p>Excerpt: This page is about how we do and don't do dependency management in the Sling project.</p>
+<p>This page is about how we do and don't do dependency management in the Sling project.</p>
+<p>[TOC]</p>
+<h2>Introduction</h2>
+<p>Maven provides projects with a nice feature called dependency management. In Sling we currently use this feature to declare the non-Sling dependencies of modules in the parent POM.</p>
+<p>After working with this some time and trying to upgrade various dependencies we came to the conclusion, that using Maven dependency management is not going to work out in the Sling scenario.</p>
+<p>Why ? Maven's dependency management is aimed at traditional applicaitons, which are glued together statically during the build process. For this environment, dependency management is a great thing, since it guarantees a consistent application setup.</p>
+<p>In a dynamic application setup as provided by an OSGi framework the static dependency management of Maven does not help. Actually it even causes problematic results with respect to backwards compatibility when using the Maven Bundle Plugin.</p>
+<p>Why's that ? The Maven Bundle Plugin constructs the bundle manifest and will generally automatically create the Import-Package header. If the providing library (from Maven's dependency list) has <code>Export-Package</code> headers with version numbers, the Maven Bundle Plugin will insert the respective version numbers for the <code>Import-Package</code> header. This makes perfect sense, because it is expected, that the artifact required at least the given package version.</p>
+<p>When using Maven dependency management, upgrading any dependencies in the parent POM may automatically increase the version numbers in the <code>Import-Package</code> headers and hence may cause any such bundle to fail resolution if deployed - even though the bundle did not change and does not really require a new version of the dependency.</p>
+<p>So, in the case of OSGi deployment, Maven's dependency management actually interferes with the OSGi framework dependency management.</p>
+<p>As a consequence, I suggest we drop dependency management in the parent POM (almost) completely and state the following.</p>
+<h2>Dependency Management</h2>
+<p>The parent POM only does dependency management for build time dependencies and a very limited number of API dependencies used Sling wide. These dependencies are:</p>
+<ul>
+  <li>All plugin dependencies. That is <code>pluginManagement</code> is still used. Maven plugins are actually build time dependencies and therefore have no influence on the actual deployment.</li>
+  <li>Dependencies on commonly used testing environment helpers. Test helper classes are also build time dependencies used to run the unit and integration tests. As such, they may well be managed.</li>
+  <li>Sling makes a small number of assumptions about the environment, which we codify in the dependency management: The minimum version number of the OSGi specificaiton used, the Servlet API version and the JCR API version.</li>
+</ul>
+<p>The <code>&lt;dependencyManagement&gt;</code> element currently contains the following managed dependencies:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Group ID </th>
+      <th>Artifact ID </th>
+      <th>Version </th>
+      <th>Scope </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>org.osgi </td>
+      <td>org.osgi.core </td>
+      <td>4.1.0 </td>
+      <td>provided </td>
+    </tr>
+    <tr>
+      <td>org.osgi </td>
+      <td>org.osgi.compendium </td>
+      <td>4.1.0 </td>
+      <td>provided </td>
+    </tr>
+    <tr>
+      <td>javax.servlet </td>
+      <td>servlet-api </td>
+      <td>2.4 </td>
+      <td>provided </td>
+    </tr>
+    <tr>
+      <td>javax.jcr </td>
+      <td>jcr </td>
+      <td>1.0 </td>
+      <td>provided </td>
+    </tr>
+    <tr>
+      <td>org.slf4j </td>
+      <td>slf4j-api </td>
+      <td>1.5.2 </td>
+      <td>provided </td>
+    </tr>
+    <tr>
+      <td>org.apache.felix </td>
+      <td>org.apache.felix.scr.annotations </td>
+      <td>1.9.8 </td>
+      <td>provided </td>
+    </tr>
+    <tr>
+      <td>biz.aQute </td>
+      <td>bndlib </td>
+      <td>1.50.0 </td>
+      <td>provided </td>
+    </tr>
+    <tr>
+      <td>junit </td>
+      <td>junit </td>
+      <td>4.11 </td>
+      <td>test </td>
+    </tr>
+    <tr>
+      <td>org.jmock </td>
+      <td>jmock-junit4 </td>
+      <td>2.5.1 </td>
+      <td>test </td>
+    </tr>
+    <tr>
+      <td>org.slf4j </td>
+      <td>slf4j-simple </td>
+      <td>1.5.2 </td>
+      <td>test </td>
+    </tr>
+  </tbody>
+</table>
+<p>All dependencies per module are fully described in terms of version, scope, and classifier by the respective project.</p>
+<p>The version of the module dependency should be selected according to the following rule: The lowest version providing the functionality required by the module (or bundle). By required functionality we bascially mean provided API.</p>
+<p>Generally there is a constant flow of releases of dependent libraries. In general this should not cause the dependency version number of a using module to be increased. There is one exception though: If the fixed library version contains a bug fix, which has an influence on the operation of the module, an increase in the version number is indicated and should also be applied.</p>
+<h2>References</h2>
+<ul>
+  <li><a href="http://markmail.org/message/5qpmsukdk4mdacdy">Dependency Management</a> -- Discussion thread about reducing Maven Dependency Management</li>
+  <li><a href="https://issues.apache.org/jira/browse/SLING-811">SLING-811</a> -- The actual issue governing the changes to the project descriptors</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/embedding-sling.html
----------------------------------------------------------------------
diff --git a/documentation/development/embedding-sling.html b/documentation/development/embedding-sling.html
new file mode 100644
index 0000000..beefd32
--- /dev/null
+++ b/documentation/development/embedding-sling.html
@@ -0,0 +1,266 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Embedding Sling</h1></header><p>translation_pending: true</p>
+<p>The Sling Launchpad Launcher can be used to embed the OSGi Framework startup in your own Java application. This functionality is implemented in the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/base">Sling Launchpad Base project</a>. This project has the following features:</p>
+<ul>
+  <li>Builds three artifacts:</li>
+  <li>A standalone Java Application with the artifact qualifier <em>app</em>; e.g. <code>org.apache.sling.launchpad.base-2.3.1-SNAPSHOT-app.jar</code></li>
+  <li>A Web Application with the artifact qualifier <em>webapp</em>; e.g <code>org.apache.sling.launchpad.base-2.3.1-SNAPSHOT-wepabb.war</code></li>
+  <li>The primary artifact without an artifact qualifier; e.g. <code>org.apache.sling.launchpad.base-2.3.1-SNAPSHOT.jar</code></li>
+  <li>Embeds the OSGi Framework (Apache Felix) in the primary artifact</li>
+  <li>Encapsulates the OSGi Framework in its own <code>URLClassLoader</code></li>
+  <li>Supports Framework restart</li>
+  <li>Allows propagation of core setup functionality depending on the environment</li>
+</ul>
+<p>This page is about the internal details of the Sling Launchpad Base module. To get an outside overview of the Sling Launchpad you might want to refer to <a href="/documentation/the-sling-engine/the-sling-launchpad.html">The Sling Launchpad</a> page.</p>
+<h1>Structure</h1>
+<p>The Launcher is based on three parts:</p>
+<ol>
+  <li>The external part which is for example the standalone Java application's main class or the servlet deployed into the servlet container</li>
+  <li>The internal part which is the OSGi framework plus helper classes to control the framework and run initial installations</li>
+  <li>The bridging part, which contains API common to the external and internal part.</li>
+</ol>
+<p>The external part uses the bridging part to create the class loader into which the internal part is loaded. The bidirectional communication between the external and internal part is implement based on two interfaces:</p>
+<ul>
+  <li>The <code>Launcher</code> interface is implemented by a class in the internal part which is loaded through the bridge class loader. This interface allows setting, starting and stopping of the framework.</li>
+  <li>The <code>Notifiable</code> interface is implemented by a class in the external part which instance is handed to the <code>Launcher</code> instance. This interface allows the internal part to communicate back to the external part, most notably to indicate that the framework has been stopped from within or that the framework has been updated and must be restarted.</li>
+</ul>
+<h1>The Bridging Part</h1>
+<p>The bridging part is provided in the <code>org.apache.sling.launchpad.base.shared</code> package:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Class </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Launcher </td>
+      <td>The interface implemented by the internal class matching the external class being called to start/stop the framework. </td>
+    </tr>
+    <tr>
+      <td>LauncherClassLoader </td>
+      <td><code>URLClassLoader</code> implementing the class loader to load the internal part (along with the OSGi framework). This class loader only delegates to the parent class loader any packages not contained in the launchpad library (primary artifact of the Launchpad Base project). </td>
+    </tr>
+    <tr>
+      <td>Loader </td>
+      <td>Helper class to find the launchpad library and to create the <code>LauncherClassLoader</code> with that library. This class is also used to actually load the <code>Launcher</code> implementation to be called from the external launcher class. </td>
+    </tr>
+    <tr>
+      <td>Notifiable </td>
+      <td>The interface implemented in the external part and handed over to the internal part. </td>
+    </tr>
+    <tr>
+      <td>SharedConstants </td>
+      <td>Constants naming various properties and classes. </td>
+    </tr>
+  </tbody>
+</table>
+<h1>The Internal Part</h1>
+<p>The main class from the internal class directly used is <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java"><code>Sling</code></a> which instantiated to start the OSGi Framework. This class is responsible for setting up the environment to finally start the OSGi Framework:</p>
+<ul>
+  <li>Read the <code>sling.properties</code> file</li>
+  <li>Ensure the presence of the JMX MBeanServer service</li>
+  <li>Execute the bootstrap installations, updates and uninstallations</li>
+</ul>
+<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/SlingFelix.java"><code>SlingFelix</code></a> class extends the Apache Felix <code>Felix</code> class which is the actual OSGi framework implementation. We extend the class to be able to notify the <code>Notifiable</code> implementation and update the OSGi framework from within the OSGi framework by updating the system bundle.</p>
+<h2>The External Part</h2>
+<p>The external part is comprised of a main class started from the environment -- main class of the Java applicaction or the servlet deployed in the servlet container -- and a corresponding delegate class located inside of the launchpad base library. This delegate class is instantiated by the <code>Loader</code> loading from the <code>LauncherClassLoader</code>.</p>
+<h3>Standalone Java Application</h3>
+<p>The standalone Java Application makes use of three classes:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Class </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Main </td>
+      <td>This is the main class whose <code>main</code> method is called by the Java VM. This class is itself the <code>Notifiable</code> and finds the <code>sling.home</code> location from the environment (command line parameter, system property, or environment variable). </td>
+    </tr>
+    <tr>
+      <td>MainDelegate </td>
+      <td>This class is loaded by the <code>Loader</code> from the <code>LauncherClassLoader</code> to actually complete the initial setup before creating the <code>Sling</code> class to start the framework. </td>
+    </tr>
+    <tr>
+      <td>ControlListener </td>
+      <td>This class is used by the <code>Main</code> class to open a server socket to be able to start and stop Sling as a server. This class allows for starting (opening the server socket), status check (connecting to the socket asking for status), and shutdown (connecting to the socket asking for shutdown). </td>
+    </tr>
+  </tbody>
+</table>
+<p>At the moment these classes are not directly suitable to be embedded in an existing application (or custom application launcher framework) unless that embedding prepares command line arguments in a <code>String[]({{ refs..path }})</code> and calls the <code>Main.main</code> method. To allow for custom embeddings or extensions, the work distributions between the three classes should be refactored.</p>
+<h3>Embedding the Standalone Java Application</h3>
+<div class="info">
+This work is being done as part of [SLING-2225](https://issues.apache.org/jira/browse/SLING-2225) and will be officially available with the Sling Launchpad Base release 2.4.0. If you want to use the embedding before the release, you have to checkout the source from [SVN|http://svn.apache.org/repos/asf/sling/trunk/launchpad/base] and build yourself.
+</div>
+<p>To embedd the Sling Launcher in an application, the <code>Main</code> class is extended from. To manage the launcher, the following API is available:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Method </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>Main(Map&lt;String, String&gt; properties)</code> </td>
+      <td>Instantiates the Main class with the given configuration properties. These are properties which are used directly as overwrites to the configurations in the <code>sling.properties</code> file. There is no more conversion applied. </td>
+    </tr>
+    <tr>
+      <td><code>doControlCommand()</code> </td>
+      <td>Before starting the application for the first time, this method can be called to handle any control command action. </td>
+    </tr>
+    <tr>
+      <td><code>doStart()</code> </td>
+      <td>Starts the Sling Application using the provided configuration properties as overwrites. Also these properties (or the <code>sling.home</code> system property or the <code>SLING_HOME</code> environment variable are analyzed to get the value for the <code>sling.home</code> setting. </td>
+    </tr>
+    <tr>
+      <td><code>doStop()</code> </td>
+      <td>Stops the application started by the <code>doStart()</code> method. </td>
+    </tr>
+  </tbody>
+</table>
+<h4>External Control of the Sling Application</h4>
+<p>By using control actions, the Sling Launcher may open or connect to a control port to communicate. The <code>doControlAction()</code> method together with the <code>sling.control.action</code> and <code>sling.control.socket</code> properties is able to setup this communication.</p>
+<p>The <code>sling.control.socket</code> is either a normal port number, in which case the connection is opened on the <code>localhost</code> interface (usually 127.0.0.1). Otheriwse, it may also be a value of the form <em>host:port</em> where <em>host</em> is the name or IP address of the interface to connect to and port is the port number. For security reasons it is suggested to not use an interface which is available remotely. So the default of <code>localhost</code> is usually the best choice.</p>
+<p>The <code>sling.control.action</code> takes either of three values:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Value </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>start</code> </td>
+      <td>Starts a server socket as specified by the <code>sling.control.socket</code> property. If the socket cannot be bound to (because the port is in use) an error message is printed. Using the <code>start</code> action only makes sense when starting the application. </td>
+    </tr>
+    <tr>
+      <td><code>stop</code> </td>
+      <td>The <code>stop</code> action is used to stop a running application. For that a connection is opened to the server running on the socket specified by the <code>sling.control.socket</code> property. On this connection the server is instructed to shut down. After executing the <code>stop</code> action, the Java application should be terminated. </td>
+    </tr>
+    <tr>
+      <td><code>status</code> </td>
+      <td>The <code>status</code> action is used to check the status of a running application. For that a connection is opened to the server running on the socket specified by the <code>sling.control.socket</code> property. On this connection the server is queried on its status. After executing the <code>stop</code> action, the Java application should be terminated. </td>
+    </tr>
+  </tbody>
+</table>
+<h4>Conversion of Commandline Arguments to Properties</h4>
+<p>When calling the Main class through the JVM startup the <code>Main.main(String[]({{ refs..path }}) args)</code> methods is called which reads the command line arguments and converts them into a <code>Map&lt;String, String&gt;</code> suitable for the constructore as follows:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Command Line Argument </th>
+      <th>Properties Entry </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>start </td>
+      <td>sling.control.action = "start" </td>
+    </tr>
+    <tr>
+      <td>status </td>
+      <td>sling.control.action = "status" </td>
+    </tr>
+    <tr>
+      <td>stop </td>
+      <td>sling.control.action = "stop" </td>
+    </tr>
+    <tr>
+      <td>-c slinghome </td>
+      <td>sling.home = slinghome </td>
+    </tr>
+    <tr>
+      <td>-l loglevel </td>
+      <td>org.apache.sling.commons.log.level = loglevel </td>
+    </tr>
+    <tr>
+      <td>-f logfile </td>
+      <td>org.apache.sling.commons.log.file = logfile </td>
+    </tr>
+    <tr>
+      <td>-a address </td>
+      <td>This command line argument is not supported yet and thus ignored </td>
+    </tr>
+    <tr>
+      <td>-p port </td>
+      <td>org.osgi.service.http.port = port </td>
+    </tr>
+    <tr>
+      <td>-j [ host ":" ] port </td>
+      <td>sling.control.socket = [ host ":" ] port </td>
+    </tr>
+    <tr>
+      <td>-h </td>
+      <td>This command line option is handled directly and not converted into the map </td>
+    </tr>
+  </tbody>
+</table>
+<h3>Web Application</h3>
+<p>The web application makes use of 5 classes:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Class </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>SlingServlet </td>
+      <td>This is the servlet registered in the <code>web.xml</code> descriptor and loaded by the servlet container into which Sling is deplyoed. This class locates the <code>sling.home</code> folder and loads the <code>SlingServletDelagate</code> to actually launch the framework. </td>
+    </tr>
+    <tr>
+      <td>SlingSessionListener </td>
+      <td>This -- somewhat inappropriately named -- class is registered as a listener by the Sling <code>web.xml</code> descriptor. It is called by the servlet container and forwards events to the <code>SlingHttpSessionListenerDelegate</code> which in turn forwards the events to the respective Servlet API listener services registered in the OSGi Framework. </td>
+    </tr>
+    <tr>
+      <td>SlingBridge </td>
+      <td>Simple extension of the <code>Sling</code> class which registers the system bundle's <code>BundleContext</code> as a servlet context attribute of the Sling web application. This allows Servlet Container bridging to properly work. </td>
+    </tr>
+    <tr>
+      <td>SlingHttpSessionListenerDelegate </td>
+      <td>This class is loaded by the <code>LauncherClassLoader</code> called from the <code>SlingSessionListener</code>. It is called by the <code>SlingSessionListener</code> to forward servlet container events to registered Servlet API listener services. </td>
+    </tr>
+    <tr>
+      <td>SlingServletDelegate </td>
+      <td>This class is loaded by the <code>Loader</code> from the <code>LauncherClassLoader</code> to actually complete the initial setup before creating the <code>SlingBridge</code> class to start the framework. </td>
+    </tr>
+  </tbody>
+</table>
+<p>At the moment these classes, particularly the <code>SlingServlet</code> class, are not particularly well suited to be extended by a servlet slightly modifying the launcher.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/getting-and-building-sling.html
----------------------------------------------------------------------
diff --git a/documentation/development/getting-and-building-sling.html b/documentation/development/getting-and-building-sling.html
new file mode 100644
index 0000000..43d0e23
--- /dev/null
+++ b/documentation/development/getting-and-building-sling.html
@@ -0,0 +1,201 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Getting and Building Sling</h1></header><p>Excerpt: A quick guide for getting the Sling source, then building and running the resulting Sling instance; either without or with Eclipse.</p>
+<p>A quick guide for getting the Sling source, then building and running the resulting Sling instance; either without or with Eclipse.</p>
+<p>Note that you don't <em>have</em> to build Sling yourself, if you don't need the bleeding-edge stuff you can get prebuilt binaries from the <a href="/downloads.cgi">Downloads</a> page. But those, especially the launchpad runnable jar, are not released often and can be outdated. In case of doubt, build it yourself as shown below or ask on the Sling users mailing list.</p>
+<p>Rather than performing a full build of Sling, which can take 5-10 minutes on a recent computer once your local Maven repository is up to date, it's recommended to build only the launchpad and the modules you're interested in.</p>
+<h2>tl:dr - Short form build + run instructions</h2>
+<p>If you already have the required svn (or Git, see below) client, JDK and Maven installed, here's the short form recipe:</p>
+<p>$ svn co http://svn.apache.org/repos/asf/sling/trunk sling $ cd sling # you are now in the Sling SVN checkout $ cd launchpad/builder $ mvn --update-snapshots clean install $ export DBG="-Xmx384M -agentlib:jdwp..." # (see below) $ java $DBG -jar target/org.apache.sling.launchpad... # (see below)</p>
+<p>With this, Sling should be running at http://localhost:8080 with remote debugging active as per the $DBG variable.</p>
+<h2>Prerequisites</h2>
+<p>Before you begin, you need to have the following tools installed on your system:</p>
+<ul>
+  <li>Java 7 or higher</li>
+  <li><a href="http://maven.apache.org">Maven</a> 3.0.4 or later; enforced by the Sling parent pom</li>
+</ul>
+<p>If you want to set up Eclipse (not required to build Sling) you'll also need the following installed:</p>
+<ul>
+  <li>Eclipse (tested with 3.4.2 and 3.5.x on Win XP, SP3, 3.6.x on Win7, 3.7 on MacOS X 10.6); just a plain installation of the platform runtime binary and the JDT will be adequate (you can install the IDE for Java Developers for convenience)</li>
+  <li>M2Eclipse plugin for Eclipse (sonatype) -&gt; <a href="http://m2eclipse.sonatype.org/installing-m2eclipse.html">instructions</a></li>
+  <li><a href="http://www.polarion.com/products/svn/subversive.php">Subversive plugin</a> or <a href="http://subclipse.tigris.org">Subclipse-plugin</a> for Eclipse</li>
+</ul>
+<h2>Environment Setup</h2>
+<p>The full build process requires quite a lot of resources, so you may run into limits. The following hints should show you what to setup before building Sling.</p>
+<h3>Environment Variable Space</h3>
+<ul>
+  <li><em>Problem</em> - Build aborts when trying to launch the integration tests with the message</li>
+</ul>
+<p>[INFO] Error while executing forked tests.; nested exception is org.apache.maven.surefire.booter.shade.org.codehaus.plexus.util.cli.CommandLineException: Error setting up environmental variables</p>
+<p>error=12, Not enough space</p>
+<p>This problem is caused by insufficient swap space. When running the integration tests in the <code>launchpad/testing</code> modules, a process is launched by calling the <code>exec</code> system call. This copies the process (copy-on-write, though) and thus allocates as much virtual memory as is owned by the parent process. This may fail if swap space is exhausted.</p>
+<ul>
+  <li><em>Platform</em> - OpenSolaris</li>
+  <li><em>Fix</em> - If this issue persists you will need to check your system requirements and configuration with regard to swap, before taking action - if necessary.</li>
+</ul>
+<h2>Configuring Maven</h2>
+<p>See <a href="/documentation/development/maventipsandtricks.html">MavenTipsAndTricks</a>.</p>
+<h2>Getting the Sling Source</h2>
+<h3>From the Apache Sling Subversion repository</h3>
+<ol>
+  <li>
+  <p>Install an svn client if needed.</p></li>
+  <li>
+  <p>Checkout Sling from the Subversion repository</p></li>
+</ol>
+<p>$ svn checkout http://svn.apache.org/repos/asf/sling/trunk sling</p>
+<h3>From the Sling GitHub mirror</h3>
+<ol>
+  <li>
+  <p>Install a Git client if needed</p></li>
+  <li>
+  <p>Checkout Sling from the GitHub mirror</p></li>
+</ol>
+<p>$ git clone https://github.com/apache/sling.git</p>
+<h3>With Eclipse Subversive or Subclipse</h3>
+<p>First note how simple the above SVN instructions are...but if you <em>really</em> want to do this, read on.</p>
+<p>If you use the Subversive plugin make sure you have installed the "Subversive Integration for M2Eclipse Project" which can be found under the following Eclipse update site: <a href="http://community.polarion.com/projects/subversive/download/integrations/update-site/">http://community.polarion.com/projects/subversive/download/integrations/update-site/</a>.</p>
+<p>Also, make sure that you have installed either the "Maven SCM handler for Subclipse" or the "Maven SCM handler for Subversive".</p>
+<h4>Create a new workspace</h4>
+<p>It's best to create a new workspace for the sling project:</p>
+<ol>
+  <li>List item</li>
+  <li>Menu: File-&gt;Switch Workspace-&gt;Other...</li>
+  <li>Enter a path for the new workspace and click OK</li>
+  <li>When Eclipse has restarted it's time to adjust some configs</li>
+  <li>Turn off automatic build (Menu: Project-&gt;Build Automatically)</li>
+  <li>Go to menu: Eclipse-&gt;Preferences, in the preferences dialog select Java -&gt; Compiler -&gt; Errors/Warnings</li>
+  <li>Expand the "Deprecated and restricted API" and change "Forbidden references (access rules)" from "Error" to "Warning"</li>
+  <li>Click OK</li>
+</ol>
+<h4>Checkout the Sling source</h4>
+<ol>
+  <li>Menu: File-&gt;Import</li>
+  <li>In the Import wizard select Maven-&gt;"Check out Maven Projects from SCM"</li>
+  <li>Click next</li>
+  <li>In the "SCM URL" field pick "SVN" and enter the url "http://svn.apache.org/repos/asf/sling/trunk"</li>
+  <li>Click Finish</li>
+</ol>
+<p>Eclipse will now start to download the source and import the Maven projects. You might encounter some "Problem Occured" dialogs about "An internal error...", but just click OK on those and let Eclipse continue with the import. Be warned: This could take some time (it was 30 minutes on my laptop)!</p>
+<p>Possibly something in sling-builder might get a bit messed up (I didn't experience that problem, but Pontus reported it) then you can simply fix it with revert:</p>
+<ol>
+  <li>In the Project Explorer right-click on the "sling-builder" project and select the Team-&gt;Revert... menu</li>
+  <li>A couple of changes will be displayed</li>
+  <li>Click OK</li>
+</ol>
+<h2>Building Sling</h2>
+<p>Note that while it's possible to build the full Sling reactor, using the pom.xml file in the root of the SVN checkout, this should rarely be needed and it's almost always too slow to consider. Instead, it's recommended to build the Sling launchpad and the module you're working on at the moment.</p>
+<h3>With the Maven command line tool</h3>
+<ol>
+  <li>Enter the directory, then do a build and local install of the launchpad (below are unix/linux commands, slightly different under windows)</li>
+</ol>
+<p>$ cd sling $ cd launchpad/builder # you are now in the Sling SVN checkout $ mvn --update-snapshots clean install $ java -jar target/org.apache.sling.launchpad-*.jar -c test -f -</p>
+<div class="note">
+When starting Sling inside the `launchpad/builder` folder you should not use the default Sling Home folder name `sling` because this folder is removed when running `mvn clean`.
+</div>
+<p>Messages should now be printed to the console which is being used as the "log file";</p>
+<ul>
+  <li>the <code>-f</code> command line option is set to <code>-</code>, indicating the use of standard output as the log file.</li>
+  <li>the <code>-c sling</code> command line option instructs Sling to use the <code>sling</code> directory in the current directory for its data store, which is the Apache Felix bundle archive, the Jackrabbit repository data and configuration. You may also specify another directory here, either a relative or absolute path name (See also <a href="/documentation/configuration.html">Configuration</a> for more information).</li>
+  <li>Use the <code>-h</code> option to see the list of flags and options.</li>
+</ul>
+<p>After all messages have been printed you should be able to open the Sling Management Console by pointing your web browser at <a href="http://localhost:8080/system/console">http://localhost:8080/system/console</a>. You will be prompted for a user name and password. Enter <code>admin</code> for both the user name and the password (this may be set on the <em>Configuration</em> page later). From this console, you can manage the installed bundles, modify configuration objects, dump a configuration status and see some system information.</p>
+<p>To stop Sling, just hit <code>Ctrl-C</code> in the console or click the <em>Stop</em> button on the <em>System Information</em> page of the Sling Management Console.</p>
+<ol>
+  <li>Enter the directory of the bundle you're working on, then do a build and deploy the bundle to the running launchpad instance</li>
+</ol>
+<p>$ cd sling $ cd bundles/servlets/get $ mvn clean install sling:install</p>
+<p>The Maven build command ensure that:</p>
+<ul>
+  <li>the bundle is installed in the local repository so future builds of the launchpad module will pick it up ( <code>install</code> goal )</li>
+  <li>the bundle is deployed in the running launchpad instance ( <code>sling:install</code> goal )</li>
+</ul>
+<h3>With M2Eclipse</h3>
+<ol>
+  <li>Make sure you're in the Java perspective (Menu: Window-&gt;Open Perspective)</li>
+  <li>Menu: Run-&gt;Run Configurations...</li>
+  <li>In the Run Configurationa dialog right-click on "Maven Build" and select "New"</li>
+  <li>Change Name to "Build Sling"</li>
+  <li>Click "Browse Workspace..." and select "sling-builder"</li>
+  <li>Enter "clean install" in Goals</li>
+  <li>Click on the JRE tab</li>
+  <li>Enter "-Xmx256m -XX:MaxPermSize=128m" in "VM arguments"</li>
+  <li>Click Apply</li>
+  <li>Click Run</li>
+</ol>
+<h3>Alternative setup in Eclipse without M2Eclipse plugin</h3>
+<p>In the case that you do not want to use the M2Eclipse plugin there's another setup that lets you have the automatic build turned on:</p>
+<ol>
+  <li>Checkout the whole sling trunk (with subversive or the subclipse plugin) from SVN to a single project</li>
+  <li>Then manually add all <code>src/main/java</code> and <code>src/test/java</code> of the bundles to the project as source folders</li>
+  <li>Add all required libraries to the build path</li>
+  <li>Now you can build either in Eclipse or even better use "mvn clean install" on the command line</li>
+</ol>
+<p>If you use "mvn clean install" to build Sling be sure you have set MAVEN_OPTS to "-Xmx384m -XX:PermSize=256m" otherwise you will probably get OutOfmemory errors.</p>
+<p>Congratulations ! You should now have a running Sling instance, that you can start playing around with.</p>
+<h2>Further Tips and Tricks</h2>
+<h3>Debug Sling in Eclipse</h3>
+<p>You can use remote debugging to debug Sling in Eclipse, here's a little How-To</p>
+<ol>
+  <li>start Sling from the command line with</li>
+</ol>
+<p>java -Xmx384M -agentlib:jdwp=transport=dt_socket,address=30303,server=y,suspend=n -jar org.apache.sling.launchpad.app-6-SNAPSHOT.jar</p>
+<ol>
+  <li>Open Menu Run-&gt; Debug configurations</li>
+  <li>Right-click on "Remote Java Applications"</li>
+  <li>Choose "New"</li>
+  <li>In the "Connect" tab choose the Eclipse Sling Project for the field "Project" with the browse button</li>
+  <li>Let the Connection type be "Standard (Socket Attach)"</li>
+  <li>The host should be localhost</li>
+  <li>Set the Port to 30303</li>
+  <li>On the source tab click the "Add" button</li>
+  <li>Select "Java Project"</li>
+  <li>Select all Sling projects and click OK</li>
+  <li>Click "Debug"</li>
+</ol>
+<p>Now you should be able to set breakpoints, evaluate properties, and so on as usual.</p>
+<h3>Debug Maven Tests in Eclipse</h3>
+<p>In the same way as you can debug the sling app, you are also able to debug a maven test. Just run the maven tests like this</p>
+<p>mvn -Dmaven.surefire.debug test</p>
+<p>The tests will automatically pause and await a remote debugger on port 5005. You can then attach to the running tests using Eclipse. You can setup a "Remote Java Application" launch configuration via the menu command "Run" &gt; "Open Debug Dialog..." (see above). For more information on this see the <a href="http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html">Maven Surefire Docu</a>.</p>
+<h3>Simple way to develop new bundle in Eclipse for Sling</h3>
+<p>The easiest way that I found is to create a new folder in the existing Eclipse workspace. After that you can follow these steps:</p>
+<ul>
+  <li>Start by copying and adapting an existing Sling pom.xml (eg. the pom.xml from the espblog sample)</li>
+  <li>Generate the Eclipse project files using mvn eclipse:eclipse</li>
+  <li>Choose File/Import in Eclipse and select "Existing projects into workspace"</li>
+  <li>Now you can create, edit and compile the files in Eclipse</li>
+  <li>To create the bundle jar and install it, just use the command line "mvn clean install" in the project directory</li>
+  <li>If you have a running Sling app you can install the bundle from the command line with "mvn -P autoInstallBundle clean install -Dsling.url=http://localhost:8080/system/console"</li>
+</ul>
+<p>If adding dependencies to the poms, run mvn eclipse:eclipse again and refresh the project in Eclipse. Debugging works as described above.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/hamcrest.html
----------------------------------------------------------------------
diff --git a/documentation/development/hamcrest.html b/documentation/development/hamcrest.html
new file mode 100644
index 0000000..c360878
--- /dev/null
+++ b/documentation/development/hamcrest.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Hamcrest Integration</h1></header><p>Deeper integration with the <a href="http://hamcrest.org/">Hamcrest matcher library</a>.</p>
+<h2>Maven Dependency</h2>
+<div class="warning">
+This module has not yet been officially released.
+</div>
+<h1>!xml</h1>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.hamcrest</artifactId> </dependency></p>
+<p>Note that to keep the classpath consistent this module has all its dependencies marked as <code>provided</code>. It relies on your own project to define the needed dependencies, such as <code>org.hamcrest:hamcrest-core</code> and <code>org.apache.sling:org.apache.sling.api</code> .</p>
+<p>See latest version on the <a href="/downloads.cgi">downloads page</a>.</p>
+<h2>Usage</h2>
+<p>The class <code>org.apache.sling.testing.hamcrest.ResourceMatchers</code> is the main entry point. It contains static methods that can be used to create assertions.</p>
+<h1>!java</h1>
+<p>import static org.apache.sling.hamcrest.ResourceMatchers.resourceOfType;</p>
+<p>public void MyServiceTest {</p>
+<p>@Test public void loadResources() { Map&lt;String, Object&gt; expectedProperties = /* define properties <em>/; Resource resource = /</em> load resource */ null;</p>
+<p>assertThat(resource, resourceOfType("my/app")); assertThat(resource, hasChildren("header", "body")); assertThat(resource, resourceWithProps(expectedProperties)); }</p>
+<p>}</p>
+<p>The Slingshot sample application uses these matchers, see <a href="http://svn.apache.org/repos/asf/sling/trunk/samples/slingshot/src/test/java/org/apache/sling/sample/slingshot/impl/SetupServiceTest.java">SetupServiceTest.java</a> for an example.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/htl-maven-plugin.html
----------------------------------------------------------------------
diff --git a/documentation/development/htl-maven-plugin.html b/documentation/development/htl-maven-plugin.html
new file mode 100644
index 0000000..b8f434a
--- /dev/null
+++ b/documentation/development/htl-maven-plugin.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>HTL Maven Plugin</h1></header><p>See <a href="http://sling.apache.org/components/htl-maven-plugin/">Apache Sling HTL Maven Plugin documentation</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/ide-tooling.html
----------------------------------------------------------------------
diff --git a/documentation/development/ide-tooling.html b/documentation/development/ide-tooling.html
new file mode 100644
index 0000000..2e84bf5
--- /dev/null
+++ b/documentation/development/ide-tooling.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling IDE tooling for Eclipse User Guide</h1></header><p>[TOC]</p>
+<h2>Installation</h2>
+<h3>Prerequisites</h3>
+<p>The Sling IDE tooling is known to work on Eclipse versions starting with Kepler. There is a hard dependency on the faceted project framework, which is included in the 'Eclipse IDE for Java EE Developers' package. If you're running a different package, you can always install it from the main Eclipse update site.</p>
+<p>There is an optional feature which relies on m2eclipse. For now it only provides project creation wizards, so if you don't use Maven you don't have to install it.</p>
+<h3>Update site installation</h3>
+<p>The links to the latest update site, including a permanent URL which stays up to date, are listed on the <a href="/downloads.cgi#ide-tooling">Download page, IDE tooling section</a>. There are also zipped update sites available from download for the latest version.</p>
+<h3>Building from source</h3>
+<p>The update sites are provided as a convenience for users that do not wish to build the project themselves. Building the project only requires a recent Maven installation. The project can be checked out, either <a href="https://svn.apache.org/repos/asf/sling/trunk/tooling/ide/">from trunk for the latest development version</a> or <a href="https://svn.apache.org/repos/asf/sling/tags/">from a tag for released versions</a>, where the tags names have the format sling-ide-tooling-$VERSION. Once you have obtained the source code, it is enough to run</p>
+<p>mvn package</p>
+<p>and you will find a p2 update site in p2update/target/repository .</p>
+<h2>Overall concepts</h2>
+<p>The Sling IDE tooling is centered around the Server and Module concepts. A Server is an instance of a Sling launchpad - or derivatives such as Adobe CQ - on which you deploy your content. A Module is a collection of resources grouped into a single Eclipse project which can be deployed onto one or multiple Servers.</p>
+<p>The tooling supports content and bundle modules. Content modules typically hold Sling scripts - like JSP and ESP files, client-side resources like CSS and JSS file, but also arbitrary repository content. Content modules support support setting JCR properties for nodes other than nodes and files, based on the FileVault serialization format. You can read mode about FileVault at the <a href="https://jackrabbit.apache.org/filevault/">Apache Jackkrabit FileVault docs</a>. Bundle modules represent a single OSGi bundle.</p>
+<h3>Server definition</h3>
+<p>To create a new Sling launchpad server you will need to start a Sling launchpad outside of Eclipse. We do not yet support starting Sling Launchpad instances from Eclipse.</p>
+<p>To kick off, create a new Sling Server using the File -&gt; New -&gt; Other... menu entry.</p>
+<p><img src="ide-tooling/new-server.png" alt="New Server" /></p>
+<p>In the resulting wizard, select the Sling Server (External) entry and enter the host name.</p>
+<p><img src="ide-tooling/new-server-2.png" alt="New Server Step 2" /></p>
+<p>Once that is done, press finish.</p>
+<h2>Server configuration</h2>
+<p>The server will appear in the servers view. You can double-click on it to review the settings which were automatically provided.</p>
+<p><img src="ide-tooling/servers-view.png" alt="Servers View" /></p>
+<p>There are a couple of important settings in the server definition page:</p>
+<ul>
+  <li>port: used for connecting to the server</li>
+  <li>username, password, context path: controls the connection details to the Sling instance.</li>
+  <li>debug port: used for connecting in debug mode</li>
+</ul>
+<p>For working with OSGi bundles there are two options as to how they are installed to the Sling launchpad instance:</p>
+<ul>
+  <li>Install via bundle upload: this is the normal way which creates a bundle (jar) locally and uploads that to the server. It thus works locally or remotely.</li>
+  <li>Install directly from local directory: this is a faster bundle redeployment variant which does not build a bundle (jar) locally but instead instructs the server to install a bundle based on an exploded directory. (See <a href="https://issues.apache.org/jira/browse/SLING-3019">SLING-3019</a> for details). This requires a special support bundle to be present on the server. If it is not present, you can install it using the hyperlink from the Install section. Note that this only works locally since the server will directly read from the exploded directory.</li>
+</ul>
+<p><img src="ide-tooling/server-definition.png" alt="Servers Definition" /></p>
+<p>You can now connect to the server.</p>
+<h2>Content sync</h2>
+<p>Content projects are required to have at least</p>
+<ul>
+  <li>a jcr_root directory, which contains the serialized content of the repository</li>
+  <li>a META-INF/vault/filter.xml file, which contains the workspace filter definition</li>
+</ul>
+<p>All changes performed in the local workspace are synchronized to the repository, given that they are included in the workspace filter definition.</p>
+<h3>Creating a new content project</h3>
+<p>Creating a new Sling content project is easily done by using the new Sling Content Project Wizard. To kick off, start by selected File -&gt; New -&gt; Project and select Sling Content Project under the Sling category.</p>
+<p><img src="ide-tooling/new-content-project-step-1.png" alt="New content project step 1" /></p>
+<p>You will then be asked to name the project and select its location.</p>
+<p><img src="ide-tooling/new-content-project-step-2.png" alt="New content project step 2" /></p>
+<p>Finally, you can select whether to add the project to an existing server, create a new one, or leave it undeployed.</p>
+<p><img src="ide-tooling/new-content-project-step-3.png" alt="New content project step 3" /></p>
+<p>Once you press finish, the project will be created and deployed to the server if needed.</p>
+<p>Note that deploying a project on the server publishes all the resources from the project if the server is started. If the server is stopped, you need to manually publish the changes after startup.</p>
+<h3>Converting existing projects</h3>
+<h4>Automatic conversion</h4>
+<p>Maven projects configured using the <code>com.day.jcr.vault:content-package-maven-plugin</code> are now automatically configured as content projects, removing the need to manually add the needed facets after importing them into Eclipse for the first time.</p>
+<p>The following pom properties can be used to tweak how the project is configured</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property name </th>
+      <th>Effect </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>sling.ide.m2e.contentpackage.active</code> </td>
+      <td>When set to <code>false</code>, the configuration is disabled </td>
+    </tr>
+    <tr>
+      <td><code>sling.ide.m2e.contentpackage.javaFacetVersion</code> </td>
+      <td>Controls the version of the Java Facet which is added to the project, e.g. <code>8</code> </td>
+    </tr>
+    <tr>
+      <td><code>sling.ide.m2e.contentpackage.webFacetVersion</code> </td>
+      <td>Controls the version of the Web Facet which is added to the project, e.g. <code>3.0</code> </td>
+    </tr>
+  </tbody>
+</table>
+<h4>Manual conversion</h4>
+<p>To mark a project as being a Sling content module, click it in the Project Explorer and Select Configure -&gt; Convert to Sling Content Project... . A dialog will pop up and will ask you to confirm the inferred location of the jcr_root directory. You can also change this from the project properties, the Sling page.</p>
+<h3>Content navigator</h3>
+<p>In the Project Explorer view there is an additional 'jcr_root' contribution to the project. It is denoted by a folder icon with a small web overlay. This contribution provides a logical view over the repository content, taking into account JCR metadata. As such, .content.xml files will be folded into the corresponding node.</p>
+<p><img src="ide-tooling/content-navigator.png" alt="Content navigator" /></p>
+<p>Node properties can be edited in a distinct JCR properties view.</p>
+<p><img src="ide-tooling/jcr-properties.png" alt="JCR properties" /></p>
+<h3>filter.xml - workspace filter definition</h3>
+<p>A content project does not synchronize all its contents to the workspace. Instead, it looks for a filter.xml file which defines which content is included in synchronization operations. More information about the filter.xml file format and semantics can be found at <a href="https://jackrabbit.apache.org/filevault/filter.html">FileVault docs - Workspace Filter</a>.</p>
+<h3>Deploying projects on the server</h3>
+<p>To deploy a project on the server, open the Servers view and use the Add and Remove... dialog to add one or more modules.</p>
+<p><img src="ide-tooling/add-remove-projects.png" alt="Add and Remove projects from server" /></p>
+<p>After content projects are deployed, each change will cause the changed resources to be updated in the repository.</p>
+<h3>Manual content sync</h3>
+<p>It is possible to manually import/export content from/to the repository. The precondition is that the content project must be associated with a started Sling launchpad server. The actions are available on the project root, or on any child resource under the jcr_root folder.</p>
+<p>The export wizard is available under the Sling -&gt; Export Content ... action.</p>
+<p><img src="ide-tooling/repository-export.png" alt="Repository export" /></p>
+<p>The import wizard is available under the Sling -&gt; Import Content ... action.</p>
+<p><img src="ide-tooling/repository-import.png" alt="Repository import" /></p>
+<h2>Bundle sync</h2>
+<p>The only requirement for bundle projects is that they are Java projects which generate an exploded OSGi bundle in their output directory. That requires at least a valid OSGi Manifest located in META-INF/MANIFEST.MF, but typically one of more Java classes. Other auxiliary files, such as Declarative Service descriptors, must also be placed under the project's output directory.</p>
+<h3>Creating a new bundle project</h3>
+<p>Creating a new Sling bundle project is easily done by using the new Sling Bundle Project Wizard. This wizard is only available when the Maven-based integration is installed. To kick off, start by selected File -&gt; New -&gt; Project and select Sling Bundle Project under the Sling category.</p>
+<p><img src="ide-tooling/new-bundle-project-step-1.png" alt="New bundle project step 1" /></p>
+<p>The next page allows you to select the archetype to use. It's recommended to select the latest version of the archetype.</p>
+<p><img src="ide-tooling/new-bundle-project-step-2.png" alt="New bundle project step 2" /></p>
+<p>You will be asked to configure the archetype's properties.</p>
+<p><img src="ide-tooling/new-bundle-project-step-3.png" alt="New bundle project step 3" /></p>
+<p>Finally, you can select whether to add the project to an existing server, create a new one, or leave it undeployed.</p>
+<p><img src="ide-tooling/new-bundle-project-step-4.png" alt="New bundle project step 4" /></p>
+<p>Once you press finish, the project will be created and deployed to the server if needed.</p>
+<h3>Converting existing projects</h3>
+<p>To mark a project as being a Sling bundle module, right click it in the Project Explorer and Select Configure -&gt; Convert to Sling Bundle Project... . A dialog will appear with all the candidate Sling bundle project from the workspace so that you can quickly select multiple projects.</p>
+<h3>Deploying projects on the server</h3>
+<p>To deploy a project on the server, open the Servers view and use the Add and Remove... dialog to add one or more modules.</p>
+<p><img src="ide-tooling/add-remove-projects.png" alt="Add and Remove projects from server" /></p>
+<p>After OSGi bundle projects are deployed, each change will cause the bundle to be redeployed on the server.</p>
+<h2>HTL support</h2>
+<p><em>Available with Sling IDE Tooling for Eclipse 1.1 or newer</em></p>
+<p>Support for HTL (formerly known as Sightly) has been added through an additional, optional, feature named <em>Sling IDE Tools - Sightly Integration</em>.</p>
+<p>This feature provides the following enhancements:</p>
+<ul>
+  <li>auto-completion of tag named and attributes names in the HTML Editor</li>
+  <li>wizards for creating new HTL scripts and Use Classes ( Java and Javascript )</li>
+  <li>HTL-aware validation for HTML files</li>
+</ul>
+<p><img src="ide-tooling/sightly-editor.png" alt="HTL Editor" /></p>
+<p>These enhancements are enabled once the HTL facet is added to a project. This is done automatically when converting a project to content project, but can also be done manually via the project properties, under the <em>Project Facets</em> page.</p>
+<h2>Debugging</h2>
+<p><em>Available with Sling IDE Tooling for Eclipse 1.1 or newer</em></p>
+<p>When first connecting to a Sling instance in debug mode, the IDE tooling tries to bind all the sources associated with the bundles deployed on the server and retrieves the associated source artifacts using Maven. Therefore, the debug classpath is as close as possible to sources used to build the bundles deployed on the server.</p>
+<p><img src="ide-tooling/debug.png" alt="Debugging" /></p>
+<p>Since a first source bundle resolution can potentially take a long time, this behaviour can be disabled from the server configuration page.</p>
+<h2>Launchpad project support</h2>
+<p><em>Available with Sling IDE Tooling for Eclipse 1.2 or newer</em></p>
+<p>Maven projects configured with the <code>slingstart-maven-plugin</code> will automatically have their models directory configured as a top-level entry in the project tree. By default, the models directory is <code>src/main/provisioning</code>. This contribution is only available in the <em>Project Explorer</em> view.</p>
+<p>The configuration is done automatically on import, and you can also do it manually by right-clicking on the project and then selecting <em>Maven</em> → <em>Update Project...</em>.</p>
+<p><img src="ide-tooling/launchpad-models-directory.png" alt="Launchpad project" /></p>
+<h2>Troubleshooting</h2>
+<h3>Gathering debug information</h3>
+<p>All operations that are performed on the Sling launchpad are logged in the Sling console. To view these operations, open the Eclipse console view and select Open Console -&gt; Sling Console.</p>
+<p><img src="ide-tooling/sling-console.png" alt="Sling Console" /></p>
+<p>Additional information can be obtained by enabling the Eclipse platform tracing facility. To do so, open the Eclipse preferences and navigate to General -&gt; Tracing. Make sure that 'Enable tracing' is checked and all options under 'Sling IDE Tooling' are enabled.</p>
+<p><img src="ide-tooling/tracing.png" alt="Tracing" /></p>
+<h3>Why do I get an error about "No DS descriptor found at..."?</h3>
+<p><img src="ide-tooling/missing-scr-descriptor.png" alt="Missing SCR descriptors" /></p>
+<p>Bundle deployment assumes that the OSGi bundle is packaged into the project's output directory. This includes:</p>
+<ul>
+  <li>the manifest</li>
+  <li>compiled class files</li>
+  <li>resources</li>
+  <li>Declarative Services descriptors</li>
+</ul>
+<p>One often-occuring situation is that a Maven project using the maven-scr-plugin generates the descriptors outside of target/classes, typically in target/scr-plugin-generated. To fix this, make sure that you're using the maven-scr-plugin 1.15.0 or newer and that you have not set a custom outputDirectory.</p>
+<h3>How do I fix the error "Missing m2e incremental build support for generating the bundle manifest, component descriptions and metatype resources"?</h3>
+<p>For further information on how to fix and configure the according maven plugins look at <a href="/documentation/development/ide-tooling/ide-tooling-incremental-build.html">Incremental Builds in Sling IDE tooling for Eclipse</a>.</p>
+<h2>Known issues</h2>
+<p>The content sync implementation tries to mimic the FileVault semantics as closely as possible. However, it is possible that some more exotic content structures will not be handled properly. Some of the problems we're are of are:</p>
+<ul>
+  <li><a href="https://issues.apache.org/jira/browse/SLING-3591">SLING-3591 - Unable to delete all nodes of a full coverage aggregate</a> . The workaround is to manually delete the child nodes .</li>
+  <li><a href="https://issues.apache.org/jira/browse/SLING-3644">SLING-3644 - Improve handling of binary properties outside nt:file file nodes</a> . Currently there is no workaround, but in practice this is not an often-encountered situation.</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/ide-tooling/ide-tooling-incremental-build.html
----------------------------------------------------------------------
diff --git a/documentation/development/ide-tooling/ide-tooling-incremental-build.html b/documentation/development/ide-tooling/ide-tooling-incremental-build.html
new file mode 100644
index 0000000..617d6fb
--- /dev/null
+++ b/documentation/development/ide-tooling/ide-tooling-incremental-build.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Incremental Builds in Sling IDE tooling for Eclipse</h1></header><p>[TOC]</p>
+<h2>Overview</h2>
+<p>The Sling IDE Tooling relies on the <a href="https://wiki.eclipse.org/M2E_compatible_maven_plugins">m2e incremental build support</a> for the generation of the bundle's manifest, the component descriptions as well as the metatype resources (the latter two being generated through OSGi 6 <a href="https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/annotations/package-summary.html">component annotations</a> and <a href="https://osgi.org/javadoc/r6/cmpn/org/osgi/service/metatype/annotations/package-summary.html">metatype annotations</a> or through <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html">Apache Felix SCR annotations</a>). That means whenever at least one java class is touched and the auto-build in Eclipse is enabled the annotations on that class should be reevaluated. This may lead to a modification of the bundle's manifest and/or generation/modification of service description XMLs and/or Metatype resource 
 files. Depending on which maven plugins you use you must adjust their configuration accordingly to properly support incremental builds.</p>
+<h2>Manifest Generation</h2>
+<h3>maven-bundle-plugin</h3>
+<p>The <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html">maven-bundle-plugin</a> is based on the <a href="http://bnd.bndtools.org/">bnd library</a>. It uses bnd to generate the bundle's manifest.</p>
+<h4>maven-bundle-plugin prior to version 3.2.0</h4>
+<p>This version needs <a href="https://github.com/tesla/m2eclipse-tycho">m2eclipse-tycho</a> (an Eclipse plugin) to generate the manifest and service descriptions during the incremental build. This plugin can be installed through the Maven Discovery feature of m2e.</p>
+<h4>maven-bundle-plugin since version 3.2.0</h4>
+<p>Natively supports incremental builds for the <code>manifest</code> goal (<a href="https://issues.apache.org/jira/browse/FELIX-4009">FELIX-4009</a>) which needs to be explicitly configured as outlined in the <a href="http://felix.apache.org/documentation/faqs/apache-felix-bundle-plugin-faq.html#use-scr-metadata-generated-by-bnd-in-unit-tests">maven-bundle-plugin FAQ</a>. m2e-tycho is incompatible with that version, because it leads to errors like <code>Duplicate bundle executions found. Please remove any explicitly defined bundle executions in your pom.xml.</code> and <code>Duplicate manifest executions found. Please remove any explicitly defined manifest executions in your pom.xml.</code> (compare with <a href="https://github.com/tesla/m2eclipse-tycho/issues/31">issue 31</a>). Therefore uninstall m2eclipse-tycho if you want to use newer versions of the <code>maven-bundle-plugin</code>.</p>
+<h3>bnd-maven-plugin</h3>
+<p>The <a href="https://github.com/bndtools/bnd/tree/master/maven/bnd-maven-plugin">bnd-maven-plugin</a> is developed from the bnd team and is based on bnd as well. It is versioned in parallel with bnd and bndtools. It natively supports incremental builds since version 3.1.0 (<a href="https://github.com/bndtools/bnd/issues/1180">issue 1180</a>).</p>
+<h2>Service Description and Metatype Resources</h2>
+<p>OSGi component and metatype annotations (for OSGi 6) are natively supported through bnd (and therefore automatically generated through both maven-bundle-plugin and bnd-maven-plugin). You don't need to configure anything explicitly since version 3.0.0 of bnd (<a href="https://github.com/bndtools/bnd/issues/1041">issue 1041</a>).</p>
+<p>The maven-bundle-plugin can be optionally coupled with the <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.html">maven-scr-plugin</a>. Both maven-bundle-plugin as well as bnd-maven-plugin can be optionally coupled with the <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/apache-felix-scr-bndtools-use.html">scr-bnd-plugin</a>. Both approaches can be used to generate components descriptions and metatype resources out of the <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html">Felix SCR annotations</a>. The recommended way for new projects though is to rely on OSGi 6 annotations. However if you need to rely on Felix SCR annotations though it is recommended to rather use the scr-bnd-plugin over the maven-scr-plugin, as the former is nicely integrated into bnd and therefore means less overhead during the build.</p>
 </section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[06/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@1x.png
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@1x.png b/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@1x.png
deleted file mode 100644
index bc0f8cb..0000000
Binary files a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@1x.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@2x.png
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@2x.png b/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@2x.png
deleted file mode 100644
index 3dbb8bd..0000000
Binary files a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@2x.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@3x.png
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@3x.png b/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@3x.png
deleted file mode 100644
index f8d1b5a..0000000
Binary files a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - Close Crop@3x.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@1x.png
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@1x.png b/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@1x.png
deleted file mode 100644
index a494823..0000000
Binary files a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@1x.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@2x.png
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@2x.png b/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@2x.png
deleted file mode 100644
index 906ffa7..0000000
Binary files a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@2x.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@3x.png
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@3x.png b/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@3x.png
deleted file mode 100644
index dcabaa5..0000000
Binary files a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo - With URL@3x.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@1x.png
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@1x.png b/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@1x.png
deleted file mode 100644
index 7e12d7f..0000000
Binary files a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@1x.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@2x.png
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@2x.png b/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@2x.png
deleted file mode 100644
index 301f26f..0000000
Binary files a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@2x.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@3x.png
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@3x.png b/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@3x.png
deleted file mode 100644
index c588636..0000000
Binary files a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PNG/Sling Logo@3x.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo - Close Crop.svg
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo - Close Crop.svg b/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo - Close Crop.svg
deleted file mode 100644
index 6ab2d9a..0000000
--- a/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo - Close Crop.svg	
+++ /dev/null
@@ -1 +0,0 @@
-<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 768 392"><defs><linearGradient id="linear-gradient" x1="-8576.57" y1="2068.26" x2="-8523.42" y2="2006.11" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f69923"/><stop offset="0.31" stop-color="#f79a23"/><stop offset="0.84" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-2" x1="-8969.97" y1="2075.12" x2="-8590.74" y2="2075.12" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0.32" stop-color="#9e2064"/><stop offset="0.63" stop-color="#c92037"/><stop offset="0.75" stop-color="#cd2335"/><stop offset="1" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-3" x1="-8924.2" y1="2037.09" x2="-8698.21" y2="2037.09" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.13, -1
 821.1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#282662"/><stop offset="0.1" stop-color="#662e8d"/><stop offset="0.79" stop-color="#9f2064"/><stop offset="0.95" stop-color="#cd2032"/></linearGradient><linearGradient id="linear-gradient-4" x1="-8948.67" y1="2078.65" x2="-8569.44" y2="2078.65" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-5" x1="-8921.02" y1="2073.54" x2="-8721.72" y2="2073.54" xlink:href="#linear-gradient-3"/><linearGradient id="linear-gradient-6" x1="-8948.67" y1="2039.41" x2="-8569.45" y2="2039.41" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-7" x1="-8972.2" y1="2041.35" x2="-8592.97" y2="2041.35" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-8" x1="-8948.67" y1="2027.74" x2="-8569.45" y2="2027.74" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-9" x1="-8948.67" y1="2029.08" x2="-8569.45" y2="2029.08" xlink:href="#linear-gradient-2"/><linearGradient id="li
 near-gradient-10" x1="-8735.63" y1="2029.35" x2="-8692.34" y2="2029.35" xlink:href="#linear-gradient-2"/></defs><title>Sling Logo - Close Crop</title><path d="M223.41,235.88V63l-36.64-.32V251.7q0,33.89,24.93,33.89c13.7,0,18.88-5.26,24.53-15.93C224.68,266.15,223.41,254.84,223.41,235.88Z" style="fill:#00678c"/><polygon points="260.96 158.86 275.98 158.86 275.98 283.36 311.94 283.36 311.94 129.39 260.96 129.39 260.96 158.86" style="fill:#00678c"/><path d="M294.3,69.73a19.91,19.91,0,0,0-14.58,6.09,21,21,0,0,0,0,29.47,20.43,20.43,0,0,0,28.89.26l.26-.26a21,21,0,0,0,0-29.47A19.91,19.91,0,0,0,294.3,69.73Z" style="fill:#00678c"/><path d="M431.14,125.93q-28.59,0-43.25,17V128.75H355.27V281.09h35.84V171a39,39,0,0,1,14.14-11,38.47,38.47,0,0,1,16.89-4.42q17.08,0,24.65,9T454.31,193v88h35.84V187.66q0-29.15-15.93-45.44T431.14,125.93Z" style="fill:#00678c"/><path d="M154.85,385l-2.77-.73-.18,0-1.25-.34c-21.81-5.87-37-11.75-45.1-17.46a33.85,33.85,0,0,1-7-6.59h-67V311.43A170.49,170.49,0,0,1,.15,298.89V
 392H185.77c-4.64-.92-9.31-1.89-14-2.92C165.58,387.68,160,386.35,154.85,385Z" style="fill:#00678c"/><path d="M129.72,354.16c5.61,4,18.63,8.84,36.46,13.64l14.09-18.15a264,264,0,0,1-35.69-9.1l-1.26-.43,1.26.43c3.54,1.14,14.73,4.43,35.49,7.65-5-9.83-14.05-24.37-21.89-36-22.71,5.71-29,17.47-29,17.47S118.18,346,129.72,354.16Z" style="fill:url(#linear-gradient)"/><path d="M242.78,323.18a1.49,1.49,0,0,0-.14-.19l.79,1.34.23.19C243.37,324.08,243.08,323.62,242.78,323.18Z" style="fill:none"/><path d="M280.45,318.26c.54.73,1,1.48,1.55,2.25C281.5,319.74,281,319,280.45,318.26Z" style="fill:none"/><path d="M385.47,352.77l-1,.06q-10,.61-19.52,1.08-10.69.52-20.78.89-10.65.38-20.62.59-10.49.22-20.27.28-8,0-15.48,0l-5-.05c-3.26,0-6.44-.09-9.57-.15-2.89-.06-5.71-.13-8.5-.21l-2.76-.09h-.44l.67,1.14-1.46,1.81.67,0q6.29.28,12.66.45l7.38.18q10.24.22,20.58.24t20.86-.13q10.24-.15,20.39-.45c6.76-.2,13.48-.43,20.12-.71,6.94-.29,13.82-.63,20.57-1l4.57-.25q8.19-.47,16.13-1l2.31-2.85-.76-1.28-.48,0Q395.4,352.16,38
 5.47,352.77Z" style="fill:none"/><path d="M282.36,321.09h0l0,0Z" style="fill:none"/><path d="M300,317.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S300.42,317.63,300,317.05Z" style="fill:#be202e"/><path d="M300,317.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S300.42,317.63,300,317.05Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.34,321.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e"/><path d="M282.34,321.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M241.13,357c-6.91-.48-13.72-1-20.39-1.7q-10.4-1-20.33-2.4l-1.17-.16c-6.5-.91-12.83-1.95-18.95-3.11L166.2,367.79l3.76,1c4.8,1.25,9.91,2.47,15.29,3.67,6.07,1.35,12.47,2.67,19.15,3.92,6.16,1.16,12.57,2.26,19.16,3.29q8.4,1.33,17.17,2.46l.65.08,19.46-24.12Q250.85,357.66,241.13,357Z" style="fill:url(#linear-gradient-2)"/><path d="M409.33,35
 1.14q8.1-.6,16.48-1.31l.24,0,2.38-.2c3.77-.32,7.15-.64,14.85-1.36,0-4.53,3.17-9.58,7-14.74a22.55,22.55,0,0,0-11.14,13c-7.51-18.92-19.4-32.77-36.66-34.91a40.68,40.68,0,0,0-4.74-.31c6.45,1.61,10.56,5.34,14,14.33l0,0,0,0c-11.58-10.3-20-14.26-31.79-15.85-2.79-.37-5.76-.62-9-.78,16.66,6,25.83,17.64,29.54,32.52l5.78,9.81Z" style="fill:url(#linear-gradient-3)"/><path d="M384,356.74q-10.15.55-20.57,1-10,.41-20.12.71t-20.39.45q-10.41.15-20.86.13t-20.58-.24l-7.38-.18q-6.36-.19-12.66-.45l-.67,0-19.46,24.12,1.31.17c6.19.79,12.49,1.51,18.87,2.13s13,1.16,19.53,1.58q8.31.55,16.65.86l3.36.1q10.46.29,20,.1c7.19-.14,14-.47,20.31-.94q6.27-.47,12-1.1c3.25-.38,6.47-.83,9.68-1.29q11.31-1.66,22.19-4.11l19.53-24.22q-7.93.52-16.13,1C387.12,356.58,385.58,356.65,384,356.74Z" style="fill:url(#linear-gradient-4)"/><path d="M386.18,379.5a214.44,214.44,0,0,0,25.68-7.57l.87-.31c-4.61,6.89-6,20.43-6,20.38,7.66-12.68,16.08-23.48,26.53-29.23,2.69,3.73,4,9.91,4.55,17.48,3.17-9.58,2.6-15.45,2.17-17.64,3.19,6.05,10.39,1
 0.61,18.27,14.93-8.2-7.81-13.23-14.82-14.46-20.92,28.78-2.42,60.13-6,93.19-10.28a8.39,8.39,0,0,0-7.4-2.92c-6,.81-45.23,6-98,10.16l-4.53.36-1.27.1c-5.54.42-11.21.83-17,1.22l-4,.26h-.08L385.2,379.73C385.53,379.64,385.86,379.58,386.18,379.5Z" style="fill:url(#linear-gradient-5)"/><path d="M262,355.16l2.76.09q4.16.12,8.5.21c3.13.06,6.31.12,9.57.15l5,.05q7.52.06,15.48,0,9.78-.05,20.27-.28,10-.21,20.62-.59,10.09-.36,20.78-.89,9.53-.47,19.52-1.08l1-.06q9.93-.6,20.34-1.37l.48,0-5.78-9.81c.06.23.13.43.17.67-7.1-11.64-23.7-23.9-39.86-29.37a107.71,107.71,0,0,0-24.72-5,176.41,176.41,0,0,0-21.88-.54c-6.86.22-14.14.75-21.92,1.6a40.76,40.76,0,0,1,7.7,8.16c.41.57.83,1.16,1.23,1.74s.81,1.21,1.2,1.83h0l0,0c-9.61-9.52-21.42-12.92-34.27-13.47a44.67,44.67,0,0,1,12.3,11.11c.54.73,1,1.48,1.55,2.25.13.19.25.38.37.58h0l0,0h0a51.59,51.59,0,0,0-10.38-7.7c-.76-.41-1.51-.81-2.29-1.16-1.17-.55-2.37-1-3.59-1.46-.78-.27-1.57-.53-2.37-.74a43.86,43.86,0,0,0-5.88-1.22l-1.9-.24-2.67-.13c-4-.15-7.41-.14-10.41,0-1.49.05
 -2.87.14-4.13.25-.5,0-1,.08-1.45.14-1.4.14-2.63.3-3.69.46a36.5,36.5,0,0,0-3.71.76h0a12.78,12.78,0,0,1,1.51.93c3.64,2.54,8.22,7.65,11.27,12.05l-5.31-9,5.31,9a1.49,1.49,0,0,0,.14.19l.88,1.34-.23-.19,18.16,30.82A2,2,0,0,0,262,355.16Z" style="fill:url(#linear-gradient-6)"/><path d="M180.07,348.2c5.72.89,12.16,1.77,19.38,2.6l1.14.13Q210,352,221,352.9c6.39.52,13.2,1,20.47,1.38q9.51.51,20.07.86l-18.16-30.82c-8.59-7.49-14.43-9.94-22-11.47-2.05-.38-4.19-.74-6.37-1.06-6.7-1-13.9-1.68-20.89-2a186.88,186.88,0,0,0-19.1-.07,87.87,87.87,0,0,0-9.87,1c-2.52.42-4.86.93-7.06,1.48C166,323.83,175,338.37,180.07,348.2Z" style="fill:url(#linear-gradient-7)"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:#be202e"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:ur
 l(#linear-gradient-8)"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:url(#linear-gradient-9)"/><path d="M282.35,321.08Z" style="fill:#be202e"/><path d="M282.35,321.08Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.35,321.08Z" style="fill:url(#linear-gradient-10)"/><path d="M600.39,249.82a39.59,39.59,0,0,0,31.86-13.62c7.49-9,11.47-25.25,11.47-39.83a45,45,0,0,0-12.39-31.86,40.7,40.7,0,0,0-30.94-13.18,43,43,0,0,0-32.74,13.18,44.64,44.64,0,0,0-12.39,32c0,14.06,4.22,30.19,12.19,39.43A41.62,41.62,0,0,0,600.39,249.82Z" style="fill:none"/><rect width="768" height="392" style="fill:none"/><path d="M623.13,292.79c-5.77.68-11.51,1.59-17.24,2.47-12.74,2-25.45,4.54-38.23,6.25-4,.52-9.24,1.08-11.95-2.59-3.78
 -5.54,5.93-11.71,9.28-14.18,4-2.95,12.31-6.61,12.82-7.13a67.43,67.43,0,0,1,7.33.52,95.86,95.86,0,0,0,52.41-8.32,79.66,79.66,0,0,0,18-11.95A61.61,61.61,0,0,0,668.77,241a92.09,92.09,0,0,0,7.37-23.58,112.68,112.68,0,0,0,1.63-25.85,75.07,75.07,0,0,0-4.5-21.86,130.22,130.22,0,0,0-9.16-17.44l19.47-19.63V0H76.93Q43.72.68,22.29,20.47A67.42,67.42,0,0,0,.15,72.24,81.36,81.36,0,0,0,11.5,116.05q11.35,18.24,39.83,31.54l22.74,10.63q30.39,14.26,37.91,26.32a48.39,48.39,0,0,1,7.53,26.13,39.83,39.83,0,0,1-13.58,31,51.77,51.77,0,0,1-35.84,12.15,92.75,92.75,0,0,1-28.55-5.22A95.3,95.3,0,0,1,15,235.41L1,270.37a112.55,112.55,0,0,0,63.72,17.48q42.41,0,67.7-21.86a67.7,67.7,0,0,0,25.09-53.21q0-28.87-11.55-47.79t-40.22-32.18l-23.1-10.63a166.78,166.78,0,0,1-29.31-16.53A40.46,40.46,0,0,1,42.16,91a45.8,45.8,0,0,1-4-19.39A38,38,0,0,1,49.37,43.33a34.77,34.77,0,0,1,27.4-11.95H652.17v88.33l-11.71,11.95a28.32,28.32,0,0,0-5.5-2.87A96.14,96.14,0,0,0,602.15,122a93.39,93.39,0,0,0-33.29,4.38A77,77,0,0,0,542,144.21a80.93,8
 0.93,0,0,0-15,21.7,87.14,87.14,0,0,0-6.85,26,85.11,85.11,0,0,0,1,26.68,75.39,75.39,0,0,0,8.64,22.9,78.86,78.86,0,0,0,14.34,16.29,99.57,99.57,0,0,0,10.31,8.72c-4,2.51-7.73,5.3-11.43,8-9.8,7.41-19.08,19.55-14.34,33.29s20.15,17.68,33.05,18.76a134.77,134.77,0,0,0,35.13-2.71c8.72-1.59,17.6-2.31,26.44-3.15,3.66-.36,7.25-1,11-1.08A21.11,21.11,0,0,1,651.33,326a13.32,13.32,0,0,1,1.13,2l0,.1c7.5,18.4-22.1,26.47-44.63,29.16-12.64,1.51-41,3.55-60.63,2.13-.68,13.23-6.45,24.89-15.74,32.55,15.74,0,38.51-.12,51.52-.91,11.1-.67,21.88-1,33.42-2.69,40-5.13,71.64-26.27,71.64-51C688,308.74,663.92,287.06,623.13,292.79ZM567.66,164.52a43,43,0,0,1,32.74-13.18,40.7,40.7,0,0,1,30.94,13.18,45,45,0,0,1,12.39,31.86c0,14.58-4,30.82-11.47,39.83a39.59,39.59,0,0,1-31.86,13.62A41.62,41.62,0,0,1,567.46,236c-8-9.24-12.19-25.37-12.19-39.43A44.64,44.64,0,0,1,567.66,164.52Z" style="fill:#00678c"/><path d="M728.16,3.74H716.93V34h-4V3.74H701.66V0h26.5Z" style="fill:#6d6e71"/><path d="M732.91,0h6l11.52,26.64h.1L762.14,0H768V
 34h-4V5.47h-.1L751.68,34h-2.45L737,5.47h-.09V34h-4Z" style="fill:#6d6e71"/></svg>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo - With URL.svg
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo - With URL.svg b/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo - With URL.svg
deleted file mode 100644
index 3d593bc..0000000
--- a/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo - With URL.svg	
+++ /dev/null
@@ -1 +0,0 @@
-<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1072 918.34"><defs><linearGradient id="linear-gradient" x1="-5224.64" y1="2280.81" x2="-5171.49" y2="2218.65" gradientTransform="matrix(-1, -0.01, -0.01, 1, -4837.77, -1798.04)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f69923"/><stop offset="0.31" stop-color="#f79a23"/><stop offset="0.84" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-2" x1="-5618.04" y1="2287.66" x2="-5238.81" y2="2287.66" gradientTransform="matrix(-1, -0.01, -0.01, 1, -4837.77, -1798.04)" gradientUnits="userSpaceOnUse"><stop offset="0.32" stop-color="#9e2064"/><stop offset="0.63" stop-color="#c92037"/><stop offset="0.75" stop-color="#cd2335"/><stop offset="1" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-3" x1="-5572.26" y1="2249.63" x2="-5346.28" y2="2249.63" gradientTransform="matrix(-1, -0.01, -0.01, 1, -4837
 .77, -1798.04)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#282662"/><stop offset="0.1" stop-color="#662e8d"/><stop offset="0.79" stop-color="#9f2064"/><stop offset="0.95" stop-color="#cd2032"/></linearGradient><linearGradient id="linear-gradient-4" x1="-5596.74" y1="2291.19" x2="-5217.51" y2="2291.19" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-5" x1="-5569.09" y1="2286.08" x2="-5369.79" y2="2286.08" xlink:href="#linear-gradient-3"/><linearGradient id="linear-gradient-6" x1="-5596.74" y1="2251.96" x2="-5217.51" y2="2251.96" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-7" x1="-5620.27" y1="2253.9" x2="-5241.04" y2="2253.9" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-8" x1="-5596.74" y1="2240.28" x2="-5217.51" y2="2240.28" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-9" x1="-5596.74" y1="2241.62" x2="-5217.51" y2="2241.62" xlink:href="#linear-gradient-2"/><linearGradient
  id="linear-gradient-10" x1="-5383.7" y1="2241.89" x2="-5340.41" y2="2241.89" xlink:href="#linear-gradient-2"/></defs><title>Sling Logo - With URL</title><path d="M415.41,427.88V255l-36.64-.32V443.7q0,33.89,24.93,33.89c13.7,0,18.88-5.26,24.53-15.93C416.68,458.15,415.41,446.84,415.41,427.88Z" style="fill:#00678c"/><polygon points="452.96 350.86 467.98 350.86 467.98 475.36 503.94 475.36 503.94 321.39 452.96 321.39 452.96 350.86" style="fill:#00678c"/><path d="M486.3,261.73a19.91,19.91,0,0,0-14.58,6.09,21,21,0,0,0,0,29.47,20.43,20.43,0,0,0,28.89.26l.26-.26a21,21,0,0,0,0-29.47A19.91,19.91,0,0,0,486.3,261.73Z" style="fill:#00678c"/><path d="M623.14,317.93q-28.59,0-43.25,17V320.75H547.27V473.09h35.84V363a39,39,0,0,1,14.14-11,38.47,38.47,0,0,1,16.89-4.42q17.08,0,24.65,9T646.31,385v88h35.84V379.66q0-29.15-15.93-45.44T623.14,317.93Z" style="fill:#00678c"/><path d="M346.85,577l-2.77-.73-.18,0-1.25-.34c-21.81-5.87-37-11.75-45.1-17.46a33.85,33.85,0,0,1-7-6.59h-67V503.43a170.49,170.49,0,0,1-31.4
 6-12.54V584H377.77c-4.64-.92-9.31-1.89-14-2.92C357.58,579.68,352,578.35,346.85,577Z" style="fill:#00678c"/><path d="M321.72,546.16c5.61,4,18.63,8.84,36.46,13.64l14.09-18.15a264,264,0,0,1-35.69-9.1l-1.26-.43,1.26.43c3.54,1.14,14.73,4.43,35.49,7.65-5-9.83-14.05-24.37-21.89-36-22.71,5.71-29,17.47-29,17.47S310.18,538,321.72,546.16Z" style="fill:url(#linear-gradient)"/><path d="M434.78,515.18a1.49,1.49,0,0,0-.14-.19l.79,1.34.23.19C435.37,516.08,435.08,515.63,434.78,515.18Z" style="fill:none"/><path d="M472.45,510.26c.54.73,1,1.48,1.55,2.25C473.5,511.74,473,511,472.45,510.26Z" style="fill:none"/><path d="M577.47,544.77l-1,.06q-10,.61-19.52,1.08-10.69.52-20.78.89-10.65.38-20.62.59-10.49.22-20.27.28-8,0-15.48,0l-5-.05c-3.26,0-6.44-.09-9.57-.15-2.89-.06-5.71-.13-8.5-.21l-2.76-.09h-.44l.67,1.14-1.46,1.81.67,0q6.29.28,12.66.45l7.38.18q10.24.22,20.58.24t20.86-.13q10.24-.15,20.39-.45c6.76-.2,13.48-.43,20.12-.71,6.94-.29,13.82-.63,20.57-1l4.57-.25q8.19-.47,16.13-1l2.31-2.85-.76-1.28-.48,0Q587.4,5
 44.16,577.47,544.77Z" style="fill:none"/><path d="M474.36,513.09h0l0,0Z" style="fill:none"/><path d="M492,509.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S492.42,509.63,492,509.05Z" style="fill:#be202e"/><path d="M492,509.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S492.42,509.63,492,509.05Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M474.34,513.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e"/><path d="M474.34,513.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M433.13,549c-6.91-.48-13.72-1-20.39-1.7q-10.4-1-20.33-2.4l-1.17-.16c-6.5-.91-12.83-1.95-18.95-3.11L358.2,559.79l3.76,1c4.8,1.25,9.91,2.47,15.29,3.67,6.07,1.35,12.47,2.67,19.15,3.92,6.16,1.16,12.57,2.26,19.16,3.29q8.4,1.33,17.17,2.46l.65.08,19.46-24.12Q442.85,549.66,433.13,549Z" style="fill:url(#linear-gradient-2)"/><path d="M6
 01.33,543.14q8.1-.6,16.48-1.31l.24,0,2.38-.2c3.77-.32,7.15-.64,14.85-1.36,0-4.53,3.17-9.58,7-14.74a22.55,22.55,0,0,0-11.14,13c-7.51-18.92-19.4-32.77-36.66-34.91a40.68,40.68,0,0,0-4.74-.31c6.45,1.61,10.56,5.34,14,14.33l0,0,0,0c-11.58-10.3-20-14.26-31.79-15.85-2.79-.37-5.76-.62-9-.78,16.66,6,25.83,17.64,29.54,32.52l5.78,9.81Z" style="fill:url(#linear-gradient-3)"/><path d="M576,548.74q-10.15.55-20.57,1-10,.41-20.12.71t-20.39.45q-10.41.15-20.86.13t-20.58-.24l-7.38-.18q-6.36-.19-12.66-.45l-.67,0-19.46,24.12,1.31.17c6.19.79,12.49,1.51,18.87,2.13s13,1.16,19.53,1.58q8.31.55,16.65.86l3.36.1q10.46.29,20,.1c7.19-.14,14-.47,20.31-.94q6.27-.47,12-1.1c3.25-.38,6.47-.83,9.68-1.29q11.31-1.66,22.19-4.11l19.53-24.22q-7.93.52-16.13,1C579.12,548.58,577.58,548.65,576,548.74Z" style="fill:url(#linear-gradient-4)"/><path d="M578.18,571.5a214.44,214.44,0,0,0,25.68-7.57l.87-.31c-4.61,6.89-6,20.43-6,20.38,7.66-12.68,16.08-23.48,26.53-29.23,2.69,3.73,4,9.91,4.55,17.48,3.17-9.58,2.6-15.45,2.17-17.64,3.19,6.05
 ,10.39,10.61,18.27,14.93-8.2-7.81-13.23-14.82-14.46-20.92,28.78-2.42,60.13-6,93.19-10.28a8.39,8.39,0,0,0-7.4-2.92c-6,.81-45.23,6-98,10.16l-4.53.36-1.27.1c-5.54.42-11.21.83-17,1.22l-4,.26h-.08L577.2,571.73C577.53,571.64,577.86,571.58,578.18,571.5Z" style="fill:url(#linear-gradient-5)"/><path d="M454,547.16l2.76.09q4.16.12,8.5.21c3.13.06,6.31.12,9.57.15l5,.05q7.52.06,15.48,0,9.78-.05,20.27-.28,10-.21,20.62-.59,10.09-.36,20.78-.89,9.53-.47,19.52-1.08l1-.06q9.93-.6,20.34-1.37l.48,0-5.78-9.81c.06.23.13.43.17.67-7.1-11.64-23.7-23.9-39.86-29.37a107.71,107.71,0,0,0-24.72-5,176.41,176.41,0,0,0-21.88-.54c-6.86.22-14.14.75-21.92,1.6a40.76,40.76,0,0,1,7.7,8.16c.41.57.83,1.16,1.23,1.74s.81,1.21,1.2,1.83h0l0,0c-9.61-9.52-21.42-12.92-34.27-13.47a44.67,44.67,0,0,1,12.3,11.11c.54.73,1,1.48,1.55,2.25.13.19.25.38.37.58h0l0,0h0a51.59,51.59,0,0,0-10.38-7.7c-.76-.41-1.51-.81-2.29-1.16-1.17-.55-2.37-1-3.59-1.46-.78-.27-1.57-.53-2.37-.74a43.86,43.86,0,0,0-5.88-1.22l-1.9-.24-2.67-.13c-4-.15-7.41-.14-10.41,0
 -1.49.05-2.87.14-4.13.25-.5,0-1,.08-1.45.14-1.4.14-2.63.3-3.69.46a36.5,36.5,0,0,0-3.71.76h0a12.78,12.78,0,0,1,1.51.93c3.64,2.54,8.22,7.65,11.27,12.05l-5.31-9,5.31,9a1.49,1.49,0,0,0,.14.19l.88,1.34-.23-.19,18.16,30.82A2,2,0,0,0,454,547.16Z" style="fill:url(#linear-gradient-6)"/><path d="M372.07,540.2c5.72.89,12.16,1.77,19.38,2.6l1.14.13Q402,544,413,544.9c6.39.52,13.2,1,20.47,1.38q9.51.51,20.07.86l-18.16-30.82c-8.59-7.49-14.43-9.94-22-11.47-2.05-.38-4.19-.74-6.37-1.06-6.7-1-13.9-1.68-20.89-2a186.88,186.88,0,0,0-19.1-.07,87.87,87.87,0,0,0-9.87,1c-2.52.42-4.86.93-7.06,1.48C358,515.83,367,530.37,372.07,540.2Z" style="fill:url(#linear-gradient-7)"/><path d="M493.23,510.8c.41.6.81,1.21,1.2,1.83h0C494,512,493.64,511.4,493.23,510.8Z" style="fill:#be202e"/><path d="M493.23,510.8c.41.6.81,1.21,1.2,1.83h0C494,512,493.64,511.4,493.23,510.8Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M493.23,510.8c.41.6.81,1.21,1.2,1.83h0C494,512,493.64,511.4,493.23,510.8Z" style=
 "fill:url(#linear-gradient-8)"/><path d="M474.36,513.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e"/><path d="M474.36,513.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M474.36,513.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:url(#linear-gradient-9)"/><path d="M474.35,513.08Z" style="fill:#be202e"/><path d="M474.35,513.08Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M474.35,513.08Z" style="fill:url(#linear-gradient-10)"/><path d="M792.39,441.82a39.59,39.59,0,0,0,31.86-13.62c7.49-9,11.47-25.25,11.47-39.83a45,45,0,0,0-12.39-31.86,40.7,40.7,0,0,0-30.94-13.18,43,43,0,0,0-32.74,13.18,44.64,44.64,0,0,0-12.39,32c0,14.06,4.22,30.19,12.19,39.43A41.62,41.62,0,0,0,792.39,441.82Z" style="fill:none"/><rect x="76.83" y="-76.83" width="918.34" height="1072" transform="translate(995.17 -76.83) rotate(90)" style="fill:none"/><path d="M815.13,484.79c-5.77.68-11
 .51,1.59-17.24,2.47-12.74,2-25.45,4.54-38.23,6.25-4,.52-9.24,1.08-11.95-2.59-3.78-5.54,5.93-11.71,9.28-14.18,4-2.95,12.31-6.61,12.82-7.13a67.43,67.43,0,0,1,7.33.52,95.86,95.86,0,0,0,52.41-8.32,79.66,79.66,0,0,0,18-11.95A61.61,61.61,0,0,0,860.77,433a92.09,92.09,0,0,0,7.37-23.58,112.68,112.68,0,0,0,1.63-25.85,75.07,75.07,0,0,0-4.5-21.86,130.22,130.22,0,0,0-9.16-17.44l19.47-19.63V192H268.93q-33.21.68-54.64,20.47a67.42,67.42,0,0,0-22.14,51.77,81.36,81.36,0,0,0,11.35,43.81q11.35,18.24,39.83,31.54l22.74,10.63q30.39,14.26,37.91,26.32a48.39,48.39,0,0,1,7.53,26.13,39.83,39.83,0,0,1-13.58,31,51.77,51.77,0,0,1-35.84,12.15,92.75,92.75,0,0,1-28.55-5.22A95.3,95.3,0,0,1,207,427.41l-13.94,35a112.55,112.55,0,0,0,63.72,17.48q42.41,0,67.7-21.86a67.7,67.7,0,0,0,25.09-53.21q0-28.87-11.55-47.79t-40.22-32.18l-23.1-10.63a166.78,166.78,0,0,1-29.31-16.53A40.46,40.46,0,0,1,234.16,283a45.8,45.8,0,0,1-4-19.39,38,38,0,0,1,11.19-28.32,34.77,34.77,0,0,1,27.4-11.95H844.17v88.33l-11.71,11.95a28.32,28.32,0,0,0-5.5-2.
 87A96.14,96.14,0,0,0,794.15,314a93.39,93.39,0,0,0-33.29,4.38A77,77,0,0,0,734,336.21a80.93,80.93,0,0,0-15,21.7,87.14,87.14,0,0,0-6.85,26,85.11,85.11,0,0,0,1,26.68,75.39,75.39,0,0,0,8.64,22.9,78.86,78.86,0,0,0,14.34,16.29,99.57,99.57,0,0,0,10.31,8.72c-4,2.51-7.73,5.3-11.43,8-9.8,7.41-19.08,19.55-14.34,33.29s20.15,17.68,33.05,18.76a134.77,134.77,0,0,0,35.13-2.71c8.72-1.59,17.6-2.31,26.44-3.15,3.66-.36,7.25-1,11-1.08A21.11,21.11,0,0,1,843.33,518a13.32,13.32,0,0,1,1.13,2l0,.1c7.5,18.4-22.1,26.47-44.63,29.16-12.64,1.51-41,3.55-60.63,2.13-.68,13.23-6.45,24.89-15.74,32.55,15.74,0,38.51-.12,51.52-.91,11.1-.67,21.88-1,33.42-2.69,40-5.13,71.64-26.27,71.64-51C880,500.74,855.92,479.06,815.13,484.79ZM759.66,356.52a43,43,0,0,1,32.74-13.18,40.7,40.7,0,0,1,30.94,13.18,45,45,0,0,1,12.39,31.86c0,14.58-4,30.82-11.47,39.83a39.59,39.59,0,0,1-31.86,13.62A41.62,41.62,0,0,1,759.46,428c-8-9.24-12.19-25.37-12.19-39.43A44.64,44.64,0,0,1,759.66,356.52Z" style="fill:#00678c"/><path d="M197,692.42a12.25,12.25,0,0
 ,0,5.31,5.35,15.61,15.61,0,0,0,7.39,1.85,12,12,0,0,0,3.6-.57,11,11,0,0,0,3.22-1.61,8.76,8.76,0,0,0,2.32-2.51,6.28,6.28,0,0,0,.9-3.36,5.41,5.41,0,0,0-1.94-4.55,14.48,14.48,0,0,0-4.78-2.37,58.18,58.18,0,0,0-6.25-1.47,26.56,26.56,0,0,1-6.26-1.9,13.43,13.43,0,0,1-4.78-3.55,9.63,9.63,0,0,1-1.94-6.44,11.24,11.24,0,0,1,1.33-5.59,12.17,12.17,0,0,1,3.45-3.93,15.08,15.08,0,0,1,4.79-2.32,19.62,19.62,0,0,1,5.4-.76,20.42,20.42,0,0,1,9.34,2,13.8,13.8,0,0,1,6.11,6.25l-5.12,3a12,12,0,0,0-4-4.59,11.41,11.41,0,0,0-6.3-1.56,11.66,11.66,0,0,0-3.17.47,11.12,11.12,0,0,0-3,1.33,7.68,7.68,0,0,0-2.23,2.18,5.3,5.3,0,0,0-.9,3,5,5,0,0,0,1.94,4.36,15,15,0,0,0,4.78,2.23,59,59,0,0,0,6.25,1.37,25.28,25.28,0,0,1,6.26,1.85,12.81,12.81,0,0,1,4.78,3.69q1.94,2.42,1.94,6.87a12.87,12.87,0,0,1-1.28,5.92,12.21,12.21,0,0,1-3.51,4.21,15.61,15.61,0,0,1-5.07,2.56,20.72,20.72,0,0,1-6,.85,24.33,24.33,0,0,1-10.38-2.18,15.75,15.75,0,0,1-7.25-6.73Z" style="fill:#6d6e71"/><path d="M238.24,632h5.69V703.6h-5.69Z" style="fill:#6d6e71"/
 ><path d="M259.66,642.49a4.2,4.2,0,1,1,1.23,3A4.12,4.12,0,0,1,259.66,642.49Zm1.42,17.34h5.69V703.6h-5.69Z" style="fill:#6d6e71"/><path d="M282.87,672.15q0-1.23-.09-3t-.14-3.55c0-1.2-.08-2.32-.14-3.36s-.09-1.85-.09-2.42h5.68q.09,2.46.14,4.74a14.81,14.81,0,0,0,.24,2.94h.28a15.33,15.33,0,0,1,5.69-6.21,16.55,16.55,0,0,1,9.28-2.6,18.69,18.69,0,0,1,8.34,1.61,13.38,13.38,0,0,1,5.07,4.21,15.9,15.9,0,0,1,2.56,6,34.47,34.47,0,0,1,.71,7V703.6h-5.68V677.83a27.8,27.8,0,0,0-.47-5.16,13.76,13.76,0,0,0-1.66-4.5,8.71,8.71,0,0,0-3.32-3.17,11.39,11.39,0,0,0-5.54-1.18,16.18,16.18,0,0,0-5.92,1.09,12.8,12.8,0,0,0-4.84,3.32,16.1,16.1,0,0,0-3.22,5.59,23.9,23.9,0,0,0-1.18,7.91V703.6h-5.69Z" style="fill:#6d6e71"/><path d="M379.52,700.76q0,8.14-2.37,13.17a20.77,20.77,0,0,1-5.92,7.77,19.67,19.67,0,0,1-7.63,3.7,33.06,33.06,0,0,1-7.39.95,34.23,34.23,0,0,1-6.49-.61,31.09,31.09,0,0,1-6-1.8,24.89,24.89,0,0,1-5.16-2.89,20.43,20.43,0,0,1-4-3.89L339,713a18.12,18.12,0,0,0,7.58,6.26,23.86,23.86,0,0,0,9.66,2,20.71,20.71,
 0,0,0,7.34-1.14,14.53,14.53,0,0,0,4.93-3,14.32,14.32,0,0,0,3-4.08,21.19,21.19,0,0,0,1.61-4.45,23.37,23.37,0,0,0,.62-4.21c.06-1.33.09-2.4.09-3.23v-6.06h-.19a17.46,17.46,0,0,1-6.68,6.25,20.57,20.57,0,0,1-9.9,2.28,23.64,23.64,0,0,1-9.1-1.75,23.16,23.16,0,0,1-12.46-12,21.48,21.48,0,0,1,0-17.43,22.63,22.63,0,0,1,5-7.11,24.32,24.32,0,0,1,7.44-4.83,23.17,23.17,0,0,1,9.1-1.8A20.57,20.57,0,0,1,367,661a17.44,17.44,0,0,1,6.68,6.26h.19v-7.39h5.68ZM374,681.15a16.85,16.85,0,0,0-1.38-6.78,17.22,17.22,0,0,0-9.19-9.19,17.4,17.4,0,0,0-13.55,0,17.24,17.24,0,0,0-9.19,9.19,17.4,17.4,0,0,0,0,13.55,17.23,17.23,0,0,0,9.19,9.19,17.4,17.4,0,0,0,13.55,0,17.21,17.21,0,0,0,9.19-9.19A16.82,16.82,0,0,0,374,681.15Z" style="fill:#6d6e71"/><path d="M393.63,699.62a4.54,4.54,0,1,1,1.33,3.22A4.39,4.39,0,0,1,393.63,699.62Z" style="fill:#6d6e71"/><path d="M452.1,685.22q0,3.22,0,5.78c0,1.7.08,3.28.14,4.74s.14,2.81.24,4.07.24,2.53.43,3.79h-5.31a40.89,40.89,0,0,1-.57-7.11h-.19a16,16,0,0,1-6.11,6.26,19.17,19.17,0,0,1-9.24,2,
 22.37,22.37,0,0,1-5.59-.71,14.71,14.71,0,0,1-4.93-2.28,11.69,11.69,0,0,1-4.93-10,11.7,11.7,0,0,1,2.56-8,16,16,0,0,1,6.3-4.41,29.87,29.87,0,0,1,8-1.89q4.21-.43,7.44-.43H447v-2.66q0-5.68-3.51-8.15a15,15,0,0,0-8.81-2.46,20,20,0,0,0-13.36,4.93L418,664.85a20.19,20.19,0,0,1,7.77-4.59,27.81,27.81,0,0,1,8.91-1.56q8,0,12.7,3.74t4.74,12.08Zm-11.37-3.6a49.79,49.79,0,0,0-7,.47,24.26,24.26,0,0,0-6.06,1.61,11.29,11.29,0,0,0-4.31,3,7.07,7.07,0,0,0-1.61,4.74,7,7,0,0,0,.9,3.55,7.89,7.89,0,0,0,2.32,2.56,11,11,0,0,0,3.17,1.52,12.4,12.4,0,0,0,3.55.52,18.23,18.23,0,0,0,7.49-1.33,12.72,12.72,0,0,0,4.69-3.46,12.06,12.06,0,0,0,2.42-4.83,22.92,22.92,0,0,0,.66-5.45v-2.94Z" style="fill:#6d6e71"/><path d="M466,659.83h5.69v7.67h.19a14.7,14.7,0,0,1,3.32-3.93,20.06,20.06,0,0,1,4.31-2.75,21.72,21.72,0,0,1,4.88-1.61,25.35,25.35,0,0,1,5-.52,24.38,24.38,0,0,1,9.24,1.71,21.46,21.46,0,0,1,12.08,12.08,25.87,25.87,0,0,1,0,18.48A21.47,21.47,0,0,1,498.67,703a24.38,24.38,0,0,1-9.24,1.71,25.35,25.35,0,0,1-5-.52,21.72,21.72,0
 ,0,1-4.88-1.61,19.91,19.91,0,0,1-4.31-2.75,14.7,14.7,0,0,1-3.32-3.93h-.19v29.28H466Zm5.12,21.89a17.31,17.31,0,0,0,1.42,7,17.91,17.91,0,0,0,3.89,5.69,18.62,18.62,0,0,0,5.78,3.83,18,18,0,0,0,7.2,1.42,17.62,17.62,0,0,0,7.2-1.42,16.71,16.71,0,0,0,5.5-3.83,16.35,16.35,0,0,0,3.46-5.69,21.09,21.09,0,0,0,0-13.93,16.29,16.29,0,0,0-3.46-5.68,16.72,16.72,0,0,0-5.5-3.84,17.62,17.62,0,0,0-7.2-1.42,18,18,0,0,0-7.2,1.42,18.63,18.63,0,0,0-5.78,3.84,17.85,17.85,0,0,0-3.89,5.68A17.31,17.31,0,0,0,471.14,681.72Z" style="fill:#6d6e71"/><path d="M559.17,685.22q0,3.22,0,5.78c0,1.7.08,3.28.14,4.74s.14,2.81.24,4.07.24,2.53.43,3.79h-5.31a40.89,40.89,0,0,1-.57-7.11H554a16,16,0,0,1-6.11,6.26,19.17,19.17,0,0,1-9.24,2A22.37,22.37,0,0,1,533,704a14.71,14.71,0,0,1-4.93-2.28,11.69,11.69,0,0,1-4.93-10,11.7,11.7,0,0,1,2.56-8,16,16,0,0,1,6.3-4.41,29.87,29.87,0,0,1,8-1.89q4.21-.43,7.44-.43h6.63v-2.66q0-5.68-3.51-8.15a15,15,0,0,0-8.81-2.46,20,20,0,0,0-13.36,4.93l-3.32-3.89a20.19,20.19,0,0,1,7.77-4.59,27.81,27.81,0,0,1,8.
 91-1.56q8,0,12.7,3.74t4.74,12.08Zm-11.37-3.6a49.79,49.79,0,0,0-7,.47,24.26,24.26,0,0,0-6.06,1.61,11.29,11.29,0,0,0-4.31,3,7.07,7.07,0,0,0-1.61,4.74,7,7,0,0,0,.9,3.55,7.89,7.89,0,0,0,2.32,2.56,11,11,0,0,0,3.17,1.52,12.4,12.4,0,0,0,3.55.52,18.23,18.23,0,0,0,7.49-1.33,12.72,12.72,0,0,0,4.69-3.46,12.06,12.06,0,0,0,2.42-4.83,22.92,22.92,0,0,0,.66-5.45v-2.94Z" style="fill:#6d6e71"/><path d="M611,697.16a20.45,20.45,0,0,1-7.3,5.73,21.05,21.05,0,0,1-8.81,1.85,24.71,24.71,0,0,1-9.28-1.71,21,21,0,0,1-7.3-4.78,22,22,0,0,1-4.74-7.29,25.87,25.87,0,0,1,0-18.48,22,22,0,0,1,4.74-7.3,21,21,0,0,1,7.3-4.78,24.71,24.71,0,0,1,9.28-1.71,20.28,20.28,0,0,1,9,2,23.58,23.58,0,0,1,7.34,5.59l-4.55,3.41a19.64,19.64,0,0,0-5.4-4.31,13.26,13.26,0,0,0-6.35-1.56,17.6,17.6,0,0,0-7.2,1.42,16.67,16.67,0,0,0-5.5,3.84,16.24,16.24,0,0,0-3.46,5.68,21.09,21.09,0,0,0,0,13.93,16.29,16.29,0,0,0,3.46,5.69,16.66,16.66,0,0,0,5.5,3.83,17.6,17.6,0,0,0,7.2,1.42,13.29,13.29,0,0,0,6.59-1.66,17.17,17.17,0,0,0,5.16-4.4Z" style="fill:#6d6
 e71"/><path d="M619.9,632h5.69V667.5h.19a15.33,15.33,0,0,1,5.69-6.21,16.55,16.55,0,0,1,9.28-2.6,18.69,18.69,0,0,1,8.34,1.61,13.38,13.38,0,0,1,5.07,4.21,15.9,15.9,0,0,1,2.56,6,34.47,34.47,0,0,1,.71,7V703.6h-5.68V677.83a27.8,27.8,0,0,0-.47-5.16,13.76,13.76,0,0,0-1.66-4.5,8.71,8.71,0,0,0-3.32-3.17,11.39,11.39,0,0,0-5.54-1.18,16.18,16.18,0,0,0-5.92,1.09,12.8,12.8,0,0,0-4.84,3.32,16.1,16.1,0,0,0-3.22,5.59,23.9,23.9,0,0,0-1.18,7.91V703.6H619.9Z" style="fill:#6d6e71"/><path d="M711.25,695.36a19.15,19.15,0,0,1-8.2,7.2,26.08,26.08,0,0,1-10.75,2.18,23.28,23.28,0,0,1-9.1-1.71,20.5,20.5,0,0,1-7-4.78,21,21,0,0,1-4.5-7.29,26.72,26.72,0,0,1-1.56-9.34,25,25,0,0,1,1.61-9.09,21.66,21.66,0,0,1,4.55-7.25,21.34,21.34,0,0,1,6.92-4.83,21.66,21.66,0,0,1,8.81-1.75,21.15,21.15,0,0,1,8.86,1.75,19.39,19.39,0,0,1,6.44,4.64,19.6,19.6,0,0,1,3.93,6.59,22,22,0,0,1,1.33,7.49v4H675.81a19.32,19.32,0,0,0,.71,4.59,16.2,16.2,0,0,0,2.61,5.45,16.47,16.47,0,0,0,5.07,4.55,15.77,15.77,0,0,0,8.2,1.9,18.31,18.31,0,0,0,8.43-2.08
 ,15.19,15.19,0,0,0,6.25-5.69ZM706.89,678a12.94,12.94,0,0,0-1.18-5.49,14.78,14.78,0,0,0-3.22-4.5,15.36,15.36,0,0,0-4.83-3.08,15.54,15.54,0,0,0-5.92-1.14,14.46,14.46,0,0,0-7.72,1.9,16.86,16.86,0,0,0-4.88,4.36,17.29,17.29,0,0,0-2.56,4.78,12.61,12.61,0,0,0-.76,3.17Z" style="fill:#6d6e71"/><path d="M725.46,699.62a4.54,4.54,0,1,1,1.33,3.22A4.39,4.39,0,0,1,725.46,699.62Z" style="fill:#6d6e71"/><path d="M747.44,681.72a24.42,24.42,0,0,1,1.71-9.24,22,22,0,0,1,4.74-7.3,21,21,0,0,1,7.3-4.78,24.71,24.71,0,0,1,9.28-1.71,24.38,24.38,0,0,1,9.24,1.71,21.46,21.46,0,0,1,12.08,12.08,25.87,25.87,0,0,1,0,18.48A21.47,21.47,0,0,1,779.71,703a24.38,24.38,0,0,1-9.24,1.71,24.71,24.71,0,0,1-9.28-1.71,21,21,0,0,1-7.3-4.78,22,22,0,0,1-4.74-7.29A24.46,24.46,0,0,1,747.44,681.72Zm5.69,0a20.24,20.24,0,0,0,1.18,7,16.29,16.29,0,0,0,3.46,5.69,16.66,16.66,0,0,0,5.5,3.83,19,19,0,0,0,14.4,0,16.71,16.71,0,0,0,5.5-3.83,16.35,16.35,0,0,0,3.46-5.69,21.09,21.09,0,0,0,0-13.93,16.29,16.29,0,0,0-3.46-5.68,16.72,16.72,0,0,0-5.5-3.8
 4,19,19,0,0,0-14.4,0,16.67,16.67,0,0,0-5.5,3.84,16.24,16.24,0,0,0-3.46,5.68A20.24,20.24,0,0,0,753.13,681.72Z" style="fill:#6d6e71"/><path d="M806.19,672.15q0-1.23-.09-3t-.14-3.55c0-1.2-.08-2.32-.14-3.36s-.09-1.85-.09-2.42h5.68q.09,2.46.14,4.74a14.81,14.81,0,0,0,.24,2.94,19.46,19.46,0,0,1,5.59-6.35,13.86,13.86,0,0,1,8.34-2.46,9.5,9.5,0,0,1,1.66.14c.53.09,1.09.21,1.66.33l-.66,5.59a7,7,0,0,0-2.18-.38,15.81,15.81,0,0,0-6.4,1.19,12,12,0,0,0-4.45,3.27,13.59,13.59,0,0,0-2.6,4.88,20.48,20.48,0,0,0-.85,6V703.6h-5.69Z" style="fill:#6d6e71"/><path d="M880,700.76q0,8.14-2.37,13.17a20.77,20.77,0,0,1-5.92,7.77,19.67,19.67,0,0,1-7.63,3.7,33.06,33.06,0,0,1-7.39.95,34.23,34.23,0,0,1-6.49-.61,31.09,31.09,0,0,1-6-1.8A24.89,24.89,0,0,1,839,721a20.43,20.43,0,0,1-4-3.89l4.45-4.17a18.12,18.12,0,0,0,7.58,6.26,23.86,23.86,0,0,0,9.66,2,20.71,20.71,0,0,0,7.34-1.14,14.53,14.53,0,0,0,4.93-3,14.32,14.32,0,0,0,3-4.08,21.19,21.19,0,0,0,1.61-4.45,23.37,23.37,0,0,0,.62-4.21c.06-1.33.09-2.4.09-3.23v-6.06h-.19a17.46,1
 7.46,0,0,1-6.68,6.25,20.57,20.57,0,0,1-9.9,2.28,23.64,23.64,0,0,1-9.1-1.75,23.16,23.16,0,0,1-12.46-12,21.48,21.48,0,0,1,0-17.43,22.63,22.63,0,0,1,5-7.11,24.32,24.32,0,0,1,7.44-4.83,23.17,23.17,0,0,1,9.1-1.8,20.57,20.57,0,0,1,9.9,2.27,17.44,17.44,0,0,1,6.68,6.26h.19v-7.39H880Zm-5.49-19.62a16.85,16.85,0,0,0-1.38-6.78,17.22,17.22,0,0,0-9.19-9.19,17.4,17.4,0,0,0-13.55,0,17.24,17.24,0,0,0-9.19,9.19,17.4,17.4,0,0,0,0,13.55,17.23,17.23,0,0,0,9.19,9.19,17.4,17.4,0,0,0,13.55,0,17.21,17.21,0,0,0,9.19-9.19A16.82,16.82,0,0,0,874.51,681.15Z" style="fill:#6d6e71"/><path d="M920.16,195.74H908.93V226h-4V195.74H893.66V192h26.5Z" style="fill:#6d6e71"/><path d="M924.91,192h6l11.52,26.64h.1L954.14,192H960v34h-4V197.47h-.1L943.68,226h-2.45L929,197.47h-.09V226h-4Z" style="fill:#6d6e71"/></svg>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo.svg
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo.svg b/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo.svg
deleted file mode 100644
index e5ba964..0000000
--- a/sling-archives/logo/sling-logo-since-2017-SLING-2696/SVG/Sling Logo.svg	
+++ /dev/null
@@ -1 +0,0 @@
-<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1072 776"><defs><linearGradient id="linear-gradient" x1="-1680.73" y1="2303.85" x2="-1627.57" y2="2241.69" gradientTransform="matrix(-1, -0.01, -0.01, 1, -1293.91, -1775)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f69923"/><stop offset="0.31" stop-color="#f79a23"/><stop offset="0.84" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-2" x1="-2074.12" y1="2310.7" x2="-1694.9" y2="2310.7" gradientTransform="matrix(-1, -0.01, -0.01, 1, -1293.91, -1775)" gradientUnits="userSpaceOnUse"><stop offset="0.32" stop-color="#9e2064"/><stop offset="0.63" stop-color="#c92037"/><stop offset="0.75" stop-color="#cd2335"/><stop offset="1" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-3" x1="-2028.35" y1="2272.67" x2="-1802.36" y2="2272.67" gradientTransform="matrix(-1, -0.01, -0.01, 1, -1293.91, -1775)"
  gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#282662"/><stop offset="0.1" stop-color="#662e8d"/><stop offset="0.79" stop-color="#9f2064"/><stop offset="0.95" stop-color="#cd2032"/></linearGradient><linearGradient id="linear-gradient-4" x1="-2052.82" y1="2314.23" x2="-1673.6" y2="2314.23" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-5" x1="-2025.17" y1="2309.12" x2="-1825.87" y2="2309.12" xlink:href="#linear-gradient-3"/><linearGradient id="linear-gradient-6" x1="-2052.82" y1="2275" x2="-1673.6" y2="2275" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-7" x1="-2076.35" y1="2276.94" x2="-1697.12" y2="2276.94" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-8" x1="-2052.82" y1="2263.32" x2="-1673.6" y2="2263.32" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-9" x1="-2052.82" y1="2264.66" x2="-1673.6" y2="2264.66" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-10
 " x1="-1839.78" y1="2264.93" x2="-1796.49" y2="2264.93" xlink:href="#linear-gradient-2"/></defs><title>Sling Logo</title><path d="M415.41,427.88V255l-36.64-.32V443.7q0,33.89,24.93,33.89c13.7,0,18.88-5.26,24.53-15.93C416.68,458.15,415.41,446.84,415.41,427.88Z" style="fill:#00678c"/><polygon points="452.96 350.86 467.98 350.86 467.98 475.36 503.94 475.36 503.94 321.39 452.96 321.39 452.96 350.86" style="fill:#00678c"/><path d="M486.3,261.73a19.91,19.91,0,0,0-14.58,6.09,21,21,0,0,0,0,29.47,20.43,20.43,0,0,0,28.89.26l.26-.26a21,21,0,0,0,0-29.47A19.91,19.91,0,0,0,486.3,261.73Z" style="fill:#00678c"/><path d="M623.14,317.93q-28.59,0-43.25,17V320.75H547.27V473.09h35.84V363a39,39,0,0,1,14.14-11,38.47,38.47,0,0,1,16.89-4.42q17.08,0,24.65,9T646.31,385v88h35.84V379.66q0-29.15-15.93-45.44T623.14,317.93Z" style="fill:#00678c"/><path d="M346.85,577l-2.77-.73-.18,0-1.25-.34c-21.81-5.87-37-11.75-45.1-17.46a33.85,33.85,0,0,1-7-6.59h-67V503.43a170.49,170.49,0,0,1-31.46-12.54V584H377.77c-4.64-.92-9.31
 -1.89-14-2.92C357.58,579.68,352,578.35,346.85,577Z" style="fill:#00678c"/><path d="M321.72,546.16c5.61,4,18.63,8.84,36.46,13.64l14.09-18.15a264,264,0,0,1-35.69-9.1l-1.26-.43,1.26.43c3.54,1.14,14.73,4.43,35.49,7.65-5-9.83-14.05-24.37-21.89-36-22.71,5.71-29,17.47-29,17.47S310.18,538,321.72,546.16Z" style="fill:url(#linear-gradient)"/><path d="M434.78,515.18a1.49,1.49,0,0,0-.14-.19l.79,1.34.23.19C435.37,516.08,435.08,515.63,434.78,515.18Z" style="fill:none"/><path d="M472.45,510.26c.54.73,1,1.48,1.55,2.25C473.5,511.74,473,511,472.45,510.26Z" style="fill:none"/><path d="M577.47,544.77l-1,.06q-10,.61-19.52,1.08-10.69.52-20.78.89-10.65.38-20.62.59-10.49.22-20.27.28-8,0-15.48,0l-5-.05c-3.26,0-6.44-.09-9.57-.15-2.89-.06-5.71-.13-8.5-.21l-2.76-.09h-.44l.67,1.14-1.46,1.81.67,0q6.29.28,12.66.45l7.38.18q10.24.22,20.58.24t20.86-.13q10.24-.15,20.39-.45c6.76-.2,13.48-.43,20.12-.71,6.94-.29,13.82-.63,20.57-1l4.57-.25q8.19-.47,16.13-1l2.31-2.85-.76-1.28-.48,0Q587.4,544.16,577.47,544.77Z" style="fill
 :none"/><path d="M474.36,513.09h0l0,0Z" style="fill:none"/><path d="M492,509.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S492.42,509.63,492,509.05Z" style="fill:#be202e"/><path d="M492,509.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S492.42,509.63,492,509.05Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M474.34,513.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e"/><path d="M474.34,513.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M433.13,549c-6.91-.48-13.72-1-20.39-1.7q-10.4-1-20.33-2.4l-1.17-.16c-6.5-.91-12.83-1.95-18.95-3.11L358.2,559.79l3.76,1c4.8,1.25,9.91,2.47,15.29,3.67,6.07,1.35,12.47,2.67,19.15,3.92,6.16,1.16,12.57,2.26,19.16,3.29q8.4,1.33,17.17,2.46l.65.08,19.46-24.12Q442.85,549.66,433.13,549Z" style="fill:url(#linear-gradient-2)"/><path d="M601.33,543.14q8.1-.6,16.48-1.31l.2
 4,0,2.38-.2c3.77-.32,7.15-.64,14.85-1.36,0-4.53,3.17-9.58,7-14.74a22.55,22.55,0,0,0-11.14,13c-7.51-18.92-19.4-32.77-36.66-34.91a40.68,40.68,0,0,0-4.74-.31c6.45,1.61,10.56,5.34,14,14.33l0,0,0,0c-11.58-10.3-20-14.26-31.79-15.85-2.79-.37-5.76-.62-9-.78,16.66,6,25.83,17.64,29.54,32.52l5.78,9.81Z" style="fill:url(#linear-gradient-3)"/><path d="M576,548.74q-10.15.55-20.57,1-10,.41-20.12.71t-20.39.45q-10.41.15-20.86.13t-20.58-.24l-7.38-.18q-6.36-.19-12.66-.45l-.67,0-19.46,24.12,1.31.17c6.19.79,12.49,1.51,18.87,2.13s13,1.16,19.53,1.58q8.31.55,16.65.86l3.36.1q10.46.29,20,.1c7.19-.14,14-.47,20.31-.94q6.27-.47,12-1.1c3.25-.38,6.47-.83,9.68-1.29q11.31-1.66,22.19-4.11l19.53-24.22q-7.93.52-16.13,1C579.12,548.58,577.58,548.65,576,548.74Z" style="fill:url(#linear-gradient-4)"/><path d="M578.18,571.5a214.44,214.44,0,0,0,25.68-7.57l.87-.31c-4.61,6.89-6,20.43-6,20.38,7.66-12.68,16.08-23.48,26.53-29.23,2.69,3.73,4,9.91,4.55,17.48,3.17-9.58,2.6-15.45,2.17-17.64,3.19,6.05,10.39,10.61,18.27,14.93-8.2-7.81
 -13.23-14.82-14.46-20.92,28.78-2.42,60.13-6,93.19-10.28a8.39,8.39,0,0,0-7.4-2.92c-6,.81-45.23,6-98,10.16l-4.53.36-1.27.1c-5.54.42-11.21.83-17,1.22l-4,.26h-.08L577.2,571.73C577.53,571.64,577.86,571.58,578.18,571.5Z" style="fill:url(#linear-gradient-5)"/><path d="M454,547.16l2.76.09q4.16.12,8.5.21c3.13.06,6.31.12,9.57.15l5,.05q7.52.06,15.48,0,9.78-.05,20.27-.28,10-.21,20.62-.59,10.09-.36,20.78-.89,9.53-.47,19.52-1.08l1-.06q9.93-.6,20.34-1.37l.48,0-5.78-9.81c.06.23.13.43.17.67-7.1-11.64-23.7-23.9-39.86-29.37a107.71,107.71,0,0,0-24.72-5,176.41,176.41,0,0,0-21.88-.54c-6.86.22-14.14.75-21.92,1.6a40.76,40.76,0,0,1,7.7,8.16c.41.57.83,1.16,1.23,1.74s.81,1.21,1.2,1.83h0l0,0c-9.61-9.52-21.42-12.92-34.27-13.47a44.67,44.67,0,0,1,12.3,11.11c.54.73,1,1.48,1.55,2.25.13.19.25.38.37.58h0l0,0h0a51.59,51.59,0,0,0-10.38-7.7c-.76-.41-1.51-.81-2.29-1.16-1.17-.55-2.37-1-3.59-1.46-.78-.27-1.57-.53-2.37-.74a43.86,43.86,0,0,0-5.88-1.22l-1.9-.24-2.67-.13c-4-.15-7.41-.14-10.41,0-1.49.05-2.87.14-4.13.25-.5,0-1,.
 08-1.45.14-1.4.14-2.63.3-3.69.46a36.5,36.5,0,0,0-3.71.76h0a12.78,12.78,0,0,1,1.51.93c3.64,2.54,8.22,7.65,11.27,12.05l-5.31-9,5.31,9a1.49,1.49,0,0,0,.14.19l.88,1.34-.23-.19,18.16,30.82A2,2,0,0,0,454,547.16Z" style="fill:url(#linear-gradient-6)"/><path d="M372.07,540.2c5.72.89,12.16,1.77,19.38,2.6l1.14.13Q402,544,413,544.9c6.39.52,13.2,1,20.47,1.38q9.51.51,20.07.86l-18.16-30.82c-8.59-7.49-14.43-9.94-22-11.47-2.05-.38-4.19-.74-6.37-1.06-6.7-1-13.9-1.68-20.89-2a186.88,186.88,0,0,0-19.1-.07,87.87,87.87,0,0,0-9.87,1c-2.52.42-4.86.93-7.06,1.48C358,515.83,367,530.37,372.07,540.2Z" style="fill:url(#linear-gradient-7)"/><path d="M493.23,510.8c.41.6.81,1.21,1.2,1.83h0C494,512,493.64,511.4,493.23,510.8Z" style="fill:#be202e"/><path d="M493.23,510.8c.41.6.81,1.21,1.2,1.83h0C494,512,493.64,511.4,493.23,510.8Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M493.23,510.8c.41.6.81,1.21,1.2,1.83h0C494,512,493.64,511.4,493.23,510.8Z" style="fill:url(#linear-gradient-8)"/><
 path d="M474.36,513.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e"/><path d="M474.36,513.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M474.36,513.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:url(#linear-gradient-9)"/><path d="M474.35,513.08Z" style="fill:#be202e"/><path d="M474.35,513.08Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M474.35,513.08Z" style="fill:url(#linear-gradient-10)"/><path d="M792.39,441.82a39.59,39.59,0,0,0,31.86-13.62c7.49-9,11.47-25.25,11.47-39.83a45,45,0,0,0-12.39-31.86,40.7,40.7,0,0,0-30.94-13.18,43,43,0,0,0-32.74,13.18,44.64,44.64,0,0,0-12.39,32c0,14.06,4.22,30.19,12.19,39.43A41.62,41.62,0,0,0,792.39,441.82Z" style="fill:none"/><rect x="148" y="-148" width="776" height="1072" transform="translate(924 -148) rotate(90)" style="fill:none"/><rect x="148" y="-148" width="776" height="1072" transform="translate(924 -148) 
 rotate(90)" style="fill:none"/><path d="M815.13,484.79c-5.77.68-11.51,1.59-17.24,2.47-12.74,2-25.45,4.54-38.23,6.25-4,.52-9.24,1.08-11.95-2.59-3.78-5.54,5.93-11.71,9.28-14.18,4-2.95,12.31-6.61,12.82-7.13a67.43,67.43,0,0,1,7.33.52,95.86,95.86,0,0,0,52.41-8.32,79.66,79.66,0,0,0,18-11.95A61.61,61.61,0,0,0,860.77,433a92.09,92.09,0,0,0,7.37-23.58,112.68,112.68,0,0,0,1.63-25.85,75.07,75.07,0,0,0-4.5-21.86,130.22,130.22,0,0,0-9.16-17.44l19.47-19.63V192H268.93q-33.21.68-54.64,20.47a67.42,67.42,0,0,0-22.14,51.77,81.36,81.36,0,0,0,11.35,43.81q11.35,18.24,39.83,31.54l22.74,10.63q30.39,14.26,37.91,26.32a48.39,48.39,0,0,1,7.53,26.13,39.83,39.83,0,0,1-13.58,31,51.77,51.77,0,0,1-35.84,12.15,92.75,92.75,0,0,1-28.55-5.22A95.3,95.3,0,0,1,207,427.41l-13.94,35a112.55,112.55,0,0,0,63.72,17.48q42.41,0,67.7-21.86a67.7,67.7,0,0,0,25.09-53.21q0-28.87-11.55-47.79t-40.22-32.18l-23.1-10.63a166.78,166.78,0,0,1-29.31-16.53A40.46,40.46,0,0,1,234.16,283a45.8,45.8,0,0,1-4-19.39,38,38,0,0,1,11.19-28.32,34.77,34.77,0
 ,0,1,27.4-11.95H844.17v88.33l-11.71,11.95a28.32,28.32,0,0,0-5.5-2.87A96.14,96.14,0,0,0,794.15,314a93.39,93.39,0,0,0-33.29,4.38A77,77,0,0,0,734,336.21a80.93,80.93,0,0,0-15,21.7,87.14,87.14,0,0,0-6.85,26,85.11,85.11,0,0,0,1,26.68,75.39,75.39,0,0,0,8.64,22.9,78.86,78.86,0,0,0,14.34,16.29,99.57,99.57,0,0,0,10.31,8.72c-4,2.51-7.73,5.3-11.43,8-9.8,7.41-19.08,19.55-14.34,33.29s20.15,17.68,33.05,18.76a134.77,134.77,0,0,0,35.13-2.71c8.72-1.59,17.6-2.31,26.44-3.15,3.66-.36,7.25-1,11-1.08A21.11,21.11,0,0,1,843.33,518a13.32,13.32,0,0,1,1.13,2l0,.1c7.5,18.4-22.1,26.47-44.63,29.16-12.64,1.51-41,3.55-60.63,2.13-.68,13.23-6.45,24.89-15.74,32.55,15.74,0,38.51-.12,51.52-.91,11.1-.67,21.88-1,33.42-2.69,40-5.13,71.64-26.27,71.64-51C880,500.74,855.92,479.06,815.13,484.79ZM759.66,356.52a43,43,0,0,1,32.74-13.18,40.7,40.7,0,0,1,30.94,13.18,45,45,0,0,1,12.39,31.86c0,14.58-4,30.82-11.47,39.83a39.59,39.59,0,0,1-31.86,13.62A41.62,41.62,0,0,1,759.46,428c-8-9.24-12.19-25.37-12.19-39.43A44.64,44.64,0,0,1,759.66,3
 56.52Z" style="fill:#00678c"/><path d="M918.93,195.74H907.7V226h-4V195.74H892.43V192h26.5Z" style="fill:#6d6e71"/><path d="M923.68,192h6l11.52,26.64h.1L952.91,192h5.86v34h-4V197.47h-.1L942.45,226H940l-12.19-28.51h-.09V226h-4Z" style="fill:#6d6e71"/></svg>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-original-logo-from-SLING-174/favicon.ico
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-original-logo-from-SLING-174/favicon.ico b/sling-archives/logo/sling-original-logo-from-SLING-174/favicon.ico
deleted file mode 100644
index a36e242..0000000
Binary files a/sling-archives/logo/sling-original-logo-from-SLING-174/favicon.ico and /dev/null differ


[33/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/downloads.html
----------------------------------------------------------------------
diff --git a/downloads.html b/downloads.html
new file mode 100644
index 0000000..2750e8c
--- /dev/null
+++ b/downloads.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Downloads</h1></header><p>To get the latest development release of Apache Sling, you can check out the Source Code and Getting and Building Sling yourself. Otherwise, the releases below are available for download. To install, just download and extract. The PGP keys at <a href="./https%3A%2F%2Fpeople.apache.org%2Fkeys%2Fgroup%2Fsling.asc.html">https://people.apache.org/keys/group/sling.asc</a> can be used to verify the integrity of the release archives.</p>
+<p>All Apache Sling products are distributed under the terms of The Apache Software License (version 2.0). See our license, or the LICENSE file included in each distribution. </p>
+<p>TODO ToC ??</p>
+<h1>Mirrors</h1>
+<p>Use the links below to download binary or source distributions of Apache Sling from one of our mirrors.</p>
+<p>You are currently using <strong>[preferred]</strong>. If you encounter a problem with this mirror, please select another mirror. If all mirrors are failing, there are backup mirrors (at the end of the mirrors list) that should be available. If the mirror displayed above is labeled <em>preferred</em>, then please reload this page by [downloads.cgi](clicking here)</p>
+<form action="[location]" method="get" id="SelectMirror">
+<p>Other mirrors: </p>
+<select name="Preferred">
+[if-any http]
+[for http]<option value="[http]">[http]</option>[end]
+[end]
+[if-any ftp]
+[for ftp]<option value="[ftp]">[ftp]</option>[end]
+[end]
+[if-any backup]
+[for backup]<option value="[backup]">[backup] (backup)</option>[end]
+[end]
+</select>
+<input type="submit" value="Change"></input>
+</form><h2>Sling Application</h2><table class="table"><thead>
+                                <tr>
+                                    <th>Artifact</th><th>Version</th><th>Provides</th><th>Package</th>
+                                </tr>
+                            </thead><tbody><tr><td>Sling Standalone Application</td><td>9</td><td>A self-runnable Sling jar</td><var/><td><a href="[preferred]sling/org.apache.sling.launchpad-9.jar">org.apache.sling.launchpad-9.jar</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad-9.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad-9.jar.md5">md5</a>)</td></tr><tr><td>Sling Web Application</td><td>9</td><td>A ready-to run Sling webapp as a war file</td><var>org.apache.sling.launchpad-9.jar</var><td><a href="[preferred]sling/org.apache.sling.launchpad-9-webapp.war">org.apache.sling.launchpad-9-webapp.war</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad-9-webapp.war.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad-9-webapp.war.md5">md5</a>)</td></tr><tr><td>Sling Source Release</td><td>9</td><td>The released Sling source code</td><var>org.apache.sling.launchpad-9-weba
 pp.war</var><td><a href="[preferred]sling/org.apache.sling.launchpad-9-source-release.zip">org.apache.sling.launchpad-9-source-release.zip</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad-9-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad-9-source-release.zip.md5">md5</a>)</td></tr></tbody></table><h2>Sling IDE Tooling</h2><table class="table"><thead>
+                                <tr>
+                                    <th>Artifact</th><th>Version</th><th>Provides</th><th>Update Site</th>
+                                </tr>
+                            </thead><tbody><tr><td>Sling IDE Tooling for Eclipse</td><td>1.1.0</td><td>A p2 update site which can be installed in Eclipse.</td><td><a href="[preferred]sling/eclipse/1.1.0">Update site</a> (<a href="http://www.apache.org/dist/sling/eclipse/1.1.0.asc">asc</a>, <a href="http://www.apache.org/dist/sling/eclipse/1.1.0.md5">md5</a>)</td></tr></tbody></table><h2>Sling Components</h2><table class="table"><thead>
+                                <tr>
+                                    <th>Artifact</th><th>Version</th><th>Binary</th><th>Source</th>
+                                </tr>
+                            </thead><tbody><tr><td>Validation API</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.validation.api-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.validation.api-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.validation.api-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.validation.api-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.validation.api-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.validation.api-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Validation Core</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.validation.core-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.validation.core-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.val
 idation.core-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.validation.core-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.validation.core-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.validation.core-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Adapter</td><td>2.1.10</td><td><a href="[preferred]sling/org.apache.sling.adapter-2.1.10.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.adapter-2.1.10.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.adapter-2.1.10.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.adapter-2.1.10-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.adapter-2.1.10-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.adapter-2.1.10-source-release.zip.md5">md5</a>)<
 /td></tr><tr><td>Adapter Annotations</td><td>1.0.0</td><td><a href="[preferred]sling/adapter-annotations-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/adapter-annotations-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/adapter-annotations-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/adapter-annotations-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/adapter-annotations-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/adapter-annotations-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>API</td><td>2.16.2</td><td><a href="[preferred]sling/org.apache.sling.api-2.16.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.api-2.16.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.api-2.16.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.api-2.16.2-source-release.zip">Source ZIP</a> (<a href="h
 ttp://www.apache.org/dist/sling/org.apache.sling.api-2.16.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.api-2.16.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Auth Core</td><td>1.3.26</td><td><a href="[preferred]sling/org.apache.sling.auth.core-1.3.26.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.core-1.3.26.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.core-1.3.26.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.auth.core-1.3.26-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.core-1.3.26-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.core-1.3.26-source-release.zip.md5">md5</a>)</td></tr><tr><td>Auth Form</td><td>1.0.8</td><td><a href="[preferred]sling/org.apache.sling.auth.form-1.0.8.jar">Bundle</a> (<a href="http://www.apache.org/dist/sli
 ng/org.apache.sling.auth.form-1.0.8.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.form-1.0.8.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.auth.form-1.0.8-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.form-1.0.8-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.form-1.0.8-source-release.zip.md5">md5</a>)</td></tr><tr><td>Auth OpenID</td><td>1.0.4</td><td><a href="[preferred]sling/org.apache.sling.auth.openid-1.0.4.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.openid-1.0.4.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.openid-1.0.4.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.auth.openid-1.0.4-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.openid-1.0.4-source-release.zip.asc">asc</a
 >, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.openid-1.0.4-source-release.zip.md5">md5</a>)</td></tr><tr><td>Auth Selector</td><td>1.0.6</td><td><a href="[preferred]sling/org.apache.sling.auth.selector-1.0.6.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.selector-1.0.6.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.selector-1.0.6.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.auth.selector-1.0.6-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.selector-1.0.6-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.selector-1.0.6-source-release.zip.md5">md5</a>)</td></tr><tr><td>Authentication XING API</td><td>0.0.2</td><td><a href="[preferred]sling/org.apache.sling.auth.xing.api-0.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.api-0.0.2.jar.
 asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.api-0.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.auth.xing.api-0.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.api-0.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.api-0.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Authentication XING Login</td><td>0.0.2</td><td><a href="[preferred]sling/org.apache.sling.auth.xing.login-0.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.login-0.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.login-0.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.auth.xing.login-0.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.login-0.0.2-source-release.zip.a
 sc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.login-0.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Authentication XING OAuth</td><td>0.0.2</td><td><a href="[preferred]sling/org.apache.sling.auth.xing.oauth-0.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.oauth-0.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.oauth-0.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.auth.xing.oauth-0.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.oauth-0.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.auth.xing.oauth-0.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Background Servlets Engine</td><td>1.0.8</td><td><a href="[preferred]sling/org.apache.sling.bgservlets-1.0.8.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org
 .apache.sling.bgservlets-1.0.8.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.bgservlets-1.0.8.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.bgservlets-1.0.8-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.bgservlets-1.0.8-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.bgservlets-1.0.8-source-release.zip.md5">md5</a>)</td></tr><tr><td>Background Servlets Integration Test</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.bgservlets.testing-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.bgservlets.testing-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.bgservlets.testing-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.bgservlets.testing-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sl
 ing.bgservlets.testing-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.bgservlets.testing-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Bundle Resource Provider</td><td>2.2.0</td><td><a href="[preferred]sling/org.apache.sling.bundleresource.impl-2.2.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.bundleresource.impl-2.2.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.bundleresource.impl-2.2.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.bundleresource.impl-2.2.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.bundleresource.impl-2.2.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.bundleresource.impl-2.2.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Classloader Leak Detector</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.exten
 sions.classloader-leak-detector-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.classloader-leak-detector-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.classloader-leak-detector-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.extensions.classloader-leak-detector-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.classloader-leak-detector-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.classloader-leak-detector-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Classloader</td><td>1.4.0</td><td><a href="[preferred]sling/org.apache.sling.commons.classloader-1.4.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.classloader-1.4.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.s
 ling.commons.classloader-1.4.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.classloader-1.4.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.classloader-1.4.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.classloader-1.4.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Compiler</td><td>2.2.0</td><td><a href="[preferred]sling/org.apache.sling.commons.compiler-2.2.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.compiler-2.2.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.compiler-2.2.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.compiler-2.2.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.compiler-2.2.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist
 /sling/org.apache.sling.commons.compiler-2.2.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons FileSystem ClassLoader</td><td>1.0.6</td><td><a href="[preferred]sling/org.apache.sling.commons.fsclassloader-1.0.6.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.fsclassloader-1.0.6.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.fsclassloader-1.0.6.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.fsclassloader-1.0.6-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.fsclassloader-1.0.6-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.fsclassloader-1.0.6-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons HTML</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.commons.html-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.comm
 ons.html-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.html-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.html-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.html-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.html-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Johnzon</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.commons.johnzon-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.johnzon-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.johnzon-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.johnzon-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.johnzon-1.0.0-source-release.
 zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.johnzon-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons JSON</td><td>2.0.20</td><td><a href="[preferred]sling/org.apache.sling.commons.json-2.0.20.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.json-2.0.20.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.json-2.0.20.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.json-2.0.20-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.json-2.0.20-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.json-2.0.20-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Log</td><td>5.0.2</td><td><a href="[preferred]sling/org.apache.sling.commons.log-5.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.log-5.0.2.j
 ar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.log-5.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.log-5.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.log-5.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.log-5.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Log WebConsole Plugin</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.commons.log.webconsole-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.log.webconsole-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.log.webconsole-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.log.webconsole-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.log.web
 console-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.log.webconsole-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Log Service</td><td>1.0.6</td><td><a href="[preferred]sling/org.apache.sling.commons.logservice-1.0.6.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.logservice-1.0.6.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.logservice-1.0.6.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.logservice-1.0.6-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.logservice-1.0.6-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.logservice-1.0.6-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Metrics</td><td>1.2.2</td><td><a href="[preferred]sling/org.apache.sling.commons.metrics-1.2.2.jar">Bundle</a>
  (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.metrics-1.2.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.metrics-1.2.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.metrics-1.2.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.metrics-1.2.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.metrics-1.2.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Mime Type Service</td><td>2.1.10</td><td><a href="[preferred]sling/org.apache.sling.commons.mime-2.1.10.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.mime-2.1.10.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.mime-2.1.10.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.mime-2.1.10-source-release.zip">Source ZIP</a> (<a href="http
 ://www.apache.org/dist/sling/org.apache.sling.commons.mime-2.1.10-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.mime-2.1.10-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons OSGi</td><td>2.4.0</td><td><a href="[preferred]sling/org.apache.sling.commons.osgi-2.4.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.osgi-2.4.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.osgi-2.4.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.osgi-2.4.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.osgi-2.4.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.osgi-2.4.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Scheduler</td><td>2.6.2</td><td><a href="[preferred]sling/org.apache.sling.commons.scheduler-2.6.2.jar">Bundle
 </a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.scheduler-2.6.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.scheduler-2.6.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.scheduler-2.6.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.scheduler-2.6.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.scheduler-2.6.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Testing</td><td>2.1.0</td><td><a href="[preferred]sling/org.apache.sling.commons.testing-2.1.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.testing-2.1.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.testing-2.1.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.testing-2.1.0-source-release.zip">Source ZIP</a> (<a
  href="http://www.apache.org/dist/sling/org.apache.sling.commons.testing-2.1.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.testing-2.1.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Commons Threads</td><td>3.2.6</td><td><a href="[preferred]sling/org.apache.sling.commons.threads-3.2.6.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.threads-3.2.6.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.threads-3.2.6.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.threads-3.2.6-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.threads-3.2.6-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.threads-3.2.6-source-release.zip.md5">md5</a>)</td></tr><tr><td>Content Detection Support</td><td>1.0.2</td><td><a href="[preferred]sling/org.apac
 he.sling.commons.contentdetection-1.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.contentdetection-1.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.contentdetection-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.commons.contentdetection-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.commons.contentdetection-1.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.commons.contentdetection-1.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Context-Aware Configuration API</td><td>1.1.0</td><td><a href="[preferred]sling/org.apache.sling.caconfig.api-1.1.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.api-1.1.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.api-1.1.0.jar.md5">md5</a>)</td><td><a href="[
 preferred]sling/org.apache.sling.caconfig.api-1.1.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.api-1.1.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.api-1.1.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Context-Aware Configuration bnd Plugin</td><td>1.0.2</td><td><a href="[preferred]sling/org.apache.sling.caconfig.bnd-plugin-1.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.bnd-plugin-1.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.bnd-plugin-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.caconfig.bnd-plugin-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.bnd-plugin-1.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.bnd-plugin-1.0.2-s
 ource-release.zip.md5">md5</a>)</td></tr><tr><td>Context-Aware Configuration Impl</td><td>1.4.2</td><td><a href="[preferred]sling/org.apache.sling.caconfig.impl-1.4.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.impl-1.4.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.impl-1.4.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.caconfig.impl-1.4.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.impl-1.4.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.impl-1.4.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Context-Aware Configuration Mock Plugin</td><td>1.3.0</td><td><a href="[preferred]sling/org.apache.sling.testing.caconfig-mock-plugin-1.3.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.testing.caconfig-mock-plugin-1.3.0.jar.asc">asc</a>, <a
  href="http://www.apache.org/dist/sling/org.apache.sling.testing.caconfig-mock-plugin-1.3.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.testing.caconfig-mock-plugin-1.3.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.testing.caconfig-mock-plugin-1.3.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.testing.caconfig-mock-plugin-1.3.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Context-Aware Configuration SPI</td><td>1.3.2</td><td><a href="[preferred]sling/org.apache.sling.caconfig.spi-1.3.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.spi-1.3.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.spi-1.3.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.caconfig.spi-1.3.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.caco
 nfig.spi-1.3.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.caconfig.spi-1.3.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Crankstart API</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.crankstart.api-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.api-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.api-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.crankstart.api-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.api-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.api-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Crankstart API Fragment</td><td>1.0.2</td><td><a href="[preferred]sling/org.apache.sling.crankstart.api.fragment-1.0.2.jar">Bundle</a> (<a href="http://www.
 apache.org/dist/sling/org.apache.sling.crankstart.api.fragment-1.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.api.fragment-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.crankstart.api.fragment-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.api.fragment-1.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.api.fragment-1.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Crankstart Core</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.crankstart.core-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.core-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.core-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.crankstart.core-1.0.0-source-release.zip">Source ZIP</a>
  (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.core-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.core-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Crankstart Launcher</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.crankstart.launcher-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.launcher-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.launcher-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.crankstart.launcher-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.launcher-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.launcher-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Crankstart Launcher Sling Extensions</td><td>1.0.0
 </td><td><a href="[preferred]sling/org.apache.sling.crankstart.sling.extensions-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.sling.extensions-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.sling.extensions-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.crankstart.sling.extensions-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.sling.extensions-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.sling.extensions-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Crankstart Launcher Test Services</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.crankstart.test.services-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.test.services-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.
 org/dist/sling/org.apache.sling.crankstart.test.services-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.crankstart.test.services-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.test.services-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.crankstart.test.services-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>DataSource Provider</td><td>1.0.2</td><td><a href="[preferred]sling/org.apache.sling.datasource-1.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.datasource-1.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.datasource-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.datasource-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.datasource-1.0.2-source-release.zip.asc">asc</a>, <a href="http:/
 /www.apache.org/dist/sling/org.apache.sling.datasource-1.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Discovery API</td><td>1.0.4</td><td><a href="[preferred]sling/org.apache.sling.discovery.api-1.0.4.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.api-1.0.4.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.api-1.0.4.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.discovery.api-1.0.4-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.api-1.0.4-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.api-1.0.4-source-release.zip.md5">md5</a>)</td></tr><tr><td>Discovery Impl</td><td>1.2.12</td><td><a href="[preferred]sling/org.apache.sling.discovery.impl-1.2.12.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.impl-1.2.12.jar.asc">asc</a>, <a href="
 http://www.apache.org/dist/sling/org.apache.sling.discovery.impl-1.2.12.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.discovery.impl-1.2.12-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.impl-1.2.12-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.impl-1.2.12-source-release.zip.md5">md5</a>)</td></tr><tr><td>Discovery Commons</td><td>1.0.20</td><td><a href="[preferred]sling/org.apache.sling.discovery.commons-1.0.20.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.commons-1.0.20.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.commons-1.0.20.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.discovery.commons-1.0.20-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.commons-1.0.20-source-release.zip.asc">asc
 </a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.commons-1.0.20-source-release.zip.md5">md5</a>)</td></tr><tr><td>Discovery Base</td><td>2.0.0</td><td><a href="[preferred]sling/org.apache.sling.discovery.base-2.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.base-2.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.base-2.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.discovery.base-2.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.base-2.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.base-2.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Discovery Oak</td><td>1.2.18</td><td><a href="[preferred]sling/org.apache.sling.discovery.oak-1.2.18.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.oak-1
 .2.18.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.oak-1.2.18.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.discovery.oak-1.2.18-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.oak-1.2.18-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.oak-1.2.18-source-release.zip.md5">md5</a>)</td></tr><tr><td>Discovery Standalone</td><td>1.0.2</td><td><a href="[preferred]sling/org.apache.sling.discovery.standalone-1.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.standalone-1.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.standalone-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.discovery.standalone-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.sta
 ndalone-1.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.standalone-1.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Discovery Support</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.discovery.support-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.support-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.support-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.discovery.support-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.support-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.discovery.support-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Distributed Event Admin</td><td>1.1.2</td><td><a href="[preferred]sling/org.apache.sling.event.dea-1.1.2.jar">Bundle</a> (<a hre
 f="http://www.apache.org/dist/sling/org.apache.sling.event.dea-1.1.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.event.dea-1.1.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.event.dea-1.1.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.event.dea-1.1.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.event.dea-1.1.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Distribution API</td><td>0.3.0</td><td><a href="[preferred]sling/org.apache.sling.distribution.api-0.3.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.api-0.3.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.api-0.3.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.distribution.api-0.3.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apa
 che.sling.distribution.api-0.3.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.api-0.3.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Distribution Core</td><td>0.2.8</td><td><a href="[preferred]sling/org.apache.sling.distribution.core-0.2.8.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.core-0.2.8.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.core-0.2.8.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.distribution.core-0.2.8-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.core-0.2.8-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.core-0.2.8-source-release.zip.md5">md5</a>)</td></tr><tr><td>Distribution Integration Tests</td><td>0.1.2</td><td><a href="[preferred]sling/org.apache.sling.distribution.it-0
 .1.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.it-0.1.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.it-0.1.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.distribution.it-0.1.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.it-0.1.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.it-0.1.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Distribution Sample</td><td>0.1.6</td><td><a href="[preferred]sling/org.apache.sling.distribution.sample-0.1.6.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.sample-0.1.6.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.sample-0.1.6.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.distribution.sample-0.1.6-source-relea
 se.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.sample-0.1.6-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.distribution.sample-0.1.6-source-release.zip.md5">md5</a>)</td></tr><tr><td>Dynamic Include</td><td>3.0.0</td><td><a href="[preferred]sling/org.apache.sling.dynamic-include-3.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.dynamic-include-3.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.dynamic-include-3.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.dynamic-include-3.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.dynamic-include-3.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.dynamic-include-3.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Engine</td><td>2.6.8</td><td><a href="[preferred
 ]sling/org.apache.sling.engine-2.6.8.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.engine-2.6.8.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.engine-2.6.8.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.engine-2.6.8-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.engine-2.6.8-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.engine-2.6.8-source-release.zip.md5">md5</a>)</td></tr><tr><td>Event</td><td>4.2.2</td><td><a href="[preferred]sling/org.apache.sling.event-4.2.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.event-4.2.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.event-4.2.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.event-4.2.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.
 event-4.2.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.event-4.2.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Event API</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.event.api-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.event.api-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.event.api-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.event.api-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.event.api-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.event.api-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Explorer</td><td>1.0.4</td><td><a href="[preferred]sling/org.apache.sling.extensions.explorer-1.0.4.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.explorer-1.0.4
 .jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.explorer-1.0.4.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.extensions.explorer-1.0.4-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.explorer-1.0.4-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.explorer-1.0.4-source-release.zip.md5">md5</a>)</td></tr><tr><td>Feature Flags</td><td>1.2.0</td><td><a href="[preferred]sling/org.apache.sling.featureflags-1.2.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.featureflags-1.2.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.featureflags-1.2.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.featureflags-1.2.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.featureflags-1.2.0-source-release.zip
 .asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.featureflags-1.2.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>GWT Integration</td><td>3.0.0</td><td><a href="[preferred]sling/org.apache.sling.gwt.servlet-3.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.gwt.servlet-3.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.gwt.servlet-3.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.gwt.servlet-3.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.gwt.servlet-3.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.gwt.servlet-3.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Thread Dumper</td><td>0.2.2</td><td><a href="[preferred]sling/org.apache.sling.extensions.threaddump-0.2.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.threaddump-0
 .2.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.threaddump-0.2.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.extensions.threaddump-0.2.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.threaddump-0.2.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.extensions.threaddump-0.2.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>File System Resource Provider</td><td>2.1.4</td><td><a href="[preferred]sling/org.apache.sling.fsresource-2.1.4.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.fsresource-2.1.4.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.fsresource-2.1.4.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.fsresource-2.1.4-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.fsresource-2.1.4-
 source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.fsresource-2.1.4-source-release.zip.md5">md5</a>)</td></tr><tr><td>I18n</td><td>2.5.8</td><td><a href="[preferred]sling/org.apache.sling.i18n-2.5.8.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.i18n-2.5.8.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.i18n-2.5.8.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.i18n-2.5.8-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.i18n-2.5.8-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.i18n-2.5.8-source-release.zip.md5">md5</a>)</td></tr><tr><td>HApi</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.api-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.api-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.
 api-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.api-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.api-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.api-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Health Check Annotations</td><td>1.0.4</td><td><a href="[preferred]sling/org.apache.sling.hc.annotations-1.0.4.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.annotations-1.0.4.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.annotations-1.0.4.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.hc.annotations-1.0.4-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.annotations-1.0.4-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.annotations-1.0.4-source-release.zip.md5">md
 5</a>)</td></tr><tr><td>Health Check Core</td><td>1.2.8</td><td><a href="[preferred]sling/org.apache.sling.hc.core-1.2.8.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.core-1.2.8.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.core-1.2.8.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.hc.core-1.2.8-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.core-1.2.8-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.core-1.2.8-source-release.zip.md5">md5</a>)</td></tr><tr><td>Health Check API</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.hc.api-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.api-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.api-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.hc.a
 pi-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.api-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.api-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Health Check Integration Tests</td><td>1.0.4</td><td><a href="[preferred]sling/org.apache.sling.hc.it-1.0.4.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.it-1.0.4.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.it-1.0.4.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.hc.it-1.0.4-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.it-1.0.4-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.it-1.0.4-source-release.zip.md5">md5</a>)</td></tr><tr><td>Health Check JUnit Bridge</td><td>1.0.2</td><td><a href="[preferred]sling/org.apache.sling.hc.juni
 t.bridge-1.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.junit.bridge-1.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.junit.bridge-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.hc.junit.bridge-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.junit.bridge-1.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.junit.bridge-1.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Health Check Samples</td><td>1.0.6</td><td><a href="[preferred]sling/org.apache.sling.hc.samples-1.0.6.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.samples-1.0.6.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.samples-1.0.6.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.hc.samples-1.0.6-source-release.zip">Source ZIP</a> (<
 a href="http://www.apache.org/dist/sling/org.apache.sling.hc.samples-1.0.6-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.samples-1.0.6-source-release.zip.md5">md5</a>)</td></tr><tr><td>Health Check Support</td><td>1.0.4</td><td><a href="[preferred]sling/org.apache.sling.hc.support-1.0.4.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.support-1.0.4.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.support-1.0.4.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.hc.support-1.0.4-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.support-1.0.4-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.support-1.0.4-source-release.zip.md5">md5</a>)</td></tr><tr><td>Health Check Webconsole</td><td>1.1.2</td><td><a href="[preferred]sling/org.apache.sling.hc.webconsole-1.1.2.jar">Bu
 ndle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.webconsole-1.1.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.webconsole-1.1.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.hc.webconsole-1.1.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.hc.webconsole-1.1.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.hc.webconsole-1.1.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Installer Core</td><td>3.8.10</td><td><a href="[preferred]sling/org.apache.sling.installer.core-3.8.10.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.core-3.8.10.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.core-3.8.10.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.installer.core-3.8.10-source-release.zip">Source ZIP</a> (<a href="http://ww
 w.apache.org/dist/sling/org.apache.sling.installer.core-3.8.10-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.core-3.8.10-source-release.zip.md5">md5</a>)</td></tr><tr><td>Installer Console</td><td>1.0.2</td><td><a href="[preferred]sling/org.apache.sling.installer.console-1.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.console-1.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.console-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.installer.console-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.console-1.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.console-1.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Installer Configuration Support</td><td>1.1.2</td><td><a href="[preferred]sling/org.
 apache.sling.installer.factory.configuration-1.1.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.factory.configuration-1.1.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.factory.configuration-1.1.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.installer.factory.configuration-1.1.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.factory.configuration-1.1.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.factory.configuration-1.1.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Installer Health Checks</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.installer.hc-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.hc-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.hc-1.0.
 0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.installer.hc-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.hc-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.hc-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Installer Subystems Support</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.installer.factory.subsystems-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.factory.subsystems-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.factory.subsystems-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.installer.factory.subsystems-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.factory.subsystems-1.0.0-source-release.zip.asc">asc</a>, <a href="http:
 //www.apache.org/dist/sling/org.apache.sling.installer.factory.subsystems-1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Installer File Provider</td><td>1.1.0</td><td><a href="[preferred]sling/org.apache.sling.installer.provider.file-1.1.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.provider.file-1.1.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.provider.file-1.1.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.installer.provider.file-1.1.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.provider.file-1.1.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.provider.file-1.1.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Installer JCR Provider</td><td>3.1.26</td><td><a href="[preferred]sling/org.apache.sling.installer.provider.jcr-3.1.26.jar">Bundle</a> (<a 
 href="http://www.apache.org/dist/sling/org.apache.sling.installer.provider.jcr-3.1.26.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.provider.jcr-3.1.26.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.installer.provider.jcr-3.1.26-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.installer.provider.jcr-3.1.26-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.installer.provider.jcr-3.1.26-source-release.zip.md5">md5</a>)</td></tr><tr><td>javax activation</td><td>0.1.0</td><td><a href="[preferred]sling/org.apache.sling.javax.activation-0.1.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.javax.activation-0.1.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.javax.activation-0.1.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.javax.activation-0.1.0-source-relea
 se.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.javax.activation-0.1.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.javax.activation-0.1.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR API</td><td>2.4.0</td><td><a href="[preferred]sling/org.apache.sling.jcr.api-2.4.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.api-2.4.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.api-2.4.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.api-2.4.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.api-2.4.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.api-2.4.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR API Wrapper</td><td>2.0.0</td><td><a href="[preferred]sling/org.apache.sling.jcr.jcr-wrapper-2.0.0.jar">Bu
 ndle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jcr-wrapper-2.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jcr-wrapper-2.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.jcr-wrapper-2.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jcr-wrapper-2.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jcr-wrapper-2.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Base</td><td>3.0.2</td><td><a href="[preferred]sling/org.apache.sling.jcr.base-3.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.base-3.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.base-3.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.base-3.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/o
 rg.apache.sling.jcr.base-3.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.base-3.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR ClassLoader</td><td>3.2.2</td><td><a href="[preferred]sling/org.apache.sling.jcr.classloader-3.2.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.classloader-3.2.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.classloader-3.2.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.classloader-3.2.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.classloader-3.2.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.classloader-3.2.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Compiler</td><td>2.1.0</td><td><a href="[preferred]sling/org.apache.sling.jcr.compiler-2.1.0.jar">Bundle</a> (<a href="http://www.apa
 che.org/dist/sling/org.apache.sling.jcr.compiler-2.1.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.compiler-2.1.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.compiler-2.1.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.compiler-2.1.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.compiler-2.1.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Content Loader</td><td>2.2.4</td><td><a href="[preferred]sling/org.apache.sling.jcr.contentloader-2.2.4.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.contentloader-2.2.4.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.contentloader-2.2.4.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.contentloader-2.2.4-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org
 .apache.sling.jcr.contentloader-2.2.4-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.contentloader-2.2.4-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Content Parser</td><td>1.2.2</td><td><a href="[preferred]sling/org.apache.sling.jcr.contentparser-1.2.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.contentparser-1.2.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.contentparser-1.2.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.contentparser-1.2.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.contentparser-1.2.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.contentparser-1.2.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR DavEx</td><td>1.3.8</td><td><a href="[preferred]sling/org.apache.sling.jcr.davex-1.3.8.jar">Bundle</a>
  (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.davex-1.3.8.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.davex-1.3.8.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.davex-1.3.8-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.davex-1.3.8-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.davex-1.3.8-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Jackrabbit AccessManager</td><td>3.0.0</td><td><a href="[preferred]sling/org.apache.sling.jcr.jackrabbit.accessmanager-3.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.accessmanager-3.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.accessmanager-3.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.jackrabbit.accessmanager-3.0.0-source-release.zi
 p">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.accessmanager-3.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.accessmanager-3.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Jackrabbit Server</td><td>2.3.0</td><td><a href="[preferred]sling/org.apache.sling.jcr.jackrabbit.server-2.3.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.server-2.3.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.server-2.3.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.jackrabbit.server-2.3.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.server-2.3.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.server-2.3.0-source-release.zip.md5">md5</a>)</td></tr><
 tr><td>JCR Jackrabbit UserManager</td><td>2.2.6</td><td><a href="[preferred]sling/org.apache.sling.jcr.jackrabbit.usermanager-2.2.6.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.usermanager-2.2.6.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.usermanager-2.2.6.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.jackrabbit.usermanager-2.2.6-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.usermanager-2.2.6-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.jackrabbit.usermanager-2.2.6-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Oak Server</td><td>1.1.4</td><td><a href="[preferred]sling/org.apache.sling.jcr.oak.server-1.1.4.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.oak.server-1.1.4.jar.asc">asc</a>, <a href="http://www.apach
 e.org/dist/sling/org.apache.sling.jcr.oak.server-1.1.4.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.oak.server-1.1.4-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.oak.server-1.1.4-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.oak.server-1.1.4-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Prefs</td><td>1.0.0</td><td><a href="[preferred]sling/org.apache.sling.jcr.prefs-1.0.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.prefs-1.0.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.prefs-1.0.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.prefs-1.0.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.prefs-1.0.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.prefs
 -1.0.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Registration</td><td>1.0.2</td><td><a href="[preferred]sling/org.apache.sling.jcr.registration-1.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.registration-1.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.registration-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.registration-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.registration-1.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.registration-1.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Repoinit</td><td>1.1.4</td><td><a href="[preferred]sling/org.apache.sling.jcr.repoinit-1.1.4.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.repoinit-1.1.4.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apach
 e.sling.jcr.repoinit-1.1.4.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.repoinit-1.1.4-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.repoinit-1.1.4-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.repoinit-1.1.4-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Resource</td><td>3.0.2</td><td><a href="[preferred]sling/org.apache.sling.jcr.resource-3.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.resource-3.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.resource-3.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.resource-3.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.resource-3.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.resource-3.0.2-source
 -release.zip.md5">md5</a>)</td></tr><tr><td>JCR Resource Security</td><td>1.0.2</td><td><a href="[preferred]sling/org.apache.sling.jcr.resourcesecurity-1.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.resourcesecurity-1.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.resourcesecurity-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.resourcesecurity-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.resourcesecurity-1.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.resourcesecurity-1.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR Web Console Plugin</td><td>1.0.2</td><td><a href="[preferred]sling/org.apache.sling.jcr.webconsole-1.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.webconsole-1.0.2.jar.asc">asc</a>, <a href="http://www.a
 pache.org/dist/sling/org.apache.sling.jcr.webconsole-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.webconsole-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.webconsole-1.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.webconsole-1.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>JXM Resource Provider</td><td>1.0.2</td><td><a href="[preferred]sling/org.apache.sling.jmx.provider-1.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jmx.provider-1.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jmx.provider-1.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jmx.provider-1.0.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jmx.provider-1.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/s
 ling/org.apache.sling.jmx.provider-1.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>JCR WebDAV</td><td>2.3.8</td><td><a href="[preferred]sling/org.apache.sling.jcr.webdav-2.3.8.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.webdav-2.3.8.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.webdav-2.3.8.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.jcr.webdav-2.3.8-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.webdav-2.3.8-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jcr.webdav-2.3.8-source-release.zip.md5">md5</a>)</td></tr><tr><td>JUnit Core</td><td>1.0.26</td><td><a href="[preferred]sling/org.apache.sling.junit.core-1.0.26.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.junit.core-1.0.26.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.jun
 it.core-1.0.26.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.junit.core-1.0.26-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.junit.core-1.0.26-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.junit.core-1.0.26-source-release.zip.md5">md5</a>)</td></tr><tr><td>JUnit Remote Tests Runners</td><td>1.0.12</td><td><a href="[preferred]sling/org.apache.sling.junit.remote-1.0.12.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.junit.remote-1.0.12.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.junit.remote-1.0.12.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.junit.remote-1.0.12-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.junit.remote-1.0.12-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.junit.remote-1.0.12-
 source-release.zip.md5">md5</a>)</td></tr><tr><td>JUnit Scriptable Tests Provider</td><td>1.0.12</td><td><a href="[preferred]sling/org.apache.sling.junit.scriptable-1.0.12.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.junit.scriptable-1.0.12.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.junit.scriptable-1.0.12.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.junit.scriptable-1.0.12-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.junit.scriptable-1.0.12-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.junit.scriptable-1.0.12-source-release.zip.md5">md5</a>)</td></tr><tr><td>JUnit Tests Teleporter</td><td>1.0.14</td><td><a href="[preferred]sling/org.apache.sling.junit.teleporter-1.0.14.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.junit.teleporter-1.0.14.jar.asc">asc</a>, <a href="http:/
 /www.apache.org/dist/sling/org.apache.sling.junit.teleporter-1.0.14.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.junit.teleporter-1.0.14-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.junit.teleporter-1.0.14-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.junit.teleporter-1.0.14-source-release.zip.md5">md5</a>)</td></tr><tr><td>JUnit Health Checks</td><td>1.0.6</td><td><a href="[preferred]sling/org.apache.sling.junit.healthcheck-1.0.6.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.junit.healthcheck-1.0.6.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.junit.healthcheck-1.0.6.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.junit.healthcheck-1.0.6-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.junit.healthcheck-1.0.6-source-release.zip.asc">asc</
 a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.junit.healthcheck-1.0.6-source-release.zip.md5">md5</a>)</td></tr><tr><td>Karaf repoinit</td><td>0.2.0</td><td><a href="[preferred]sling/org.apache.sling.karaf-repoinit-0.2.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.karaf-repoinit-0.2.0.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.karaf-repoinit-0.2.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.karaf-repoinit-0.2.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.karaf-repoinit-0.2.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.karaf-repoinit-0.2.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad API</td><td>1.1.0</td><td><a href="[preferred]sling/org.apache.sling.launchpad.api-1.1.0.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.api-1.1.0.
 jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.api-1.1.0.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.launchpad.api-1.1.0-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.api-1.1.0-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.api-1.1.0-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Base</td><td>5.6.4-2.6.18</td><td><a href="[preferred]sling/org.apache.sling.launchpad.base-5.6.4-2.6.18.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.4-2.6.18.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.4-2.6.18.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.launchpad.base-5.6.4-2.6.18-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6
 .4-2.6.18-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.4-2.6.18-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Base - Application Launcher</td><td>5.6.0-2.6.16</td><td><a href="[preferred]sling/org.apache.sling.launchpad.base-5.6.0-2.6.16.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.0-2.6.16.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.0-2.6.16.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.launchpad.base-5.6.0-2.6.16-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.0-2.6.16-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.0-2.6.16-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Base - Web Launcher</td><td>5.6.0-2.6.16</td><td><a href="[preferred]s
 ling/org.apache.sling.launchpad.base-5.6.0-2.6.16.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.0-2.6.16.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.0-2.6.16.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.launchpad.base-5.6.0-2.6.16-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.0-2.6.16-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.base-5.6.0-2.6.16-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Content</td><td>2.0.12</td><td><a href="[preferred]sling/org.apache.sling.launchpad.content-2.0.12.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.content-2.0.12.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.content-2.0.12.jar.md5">md5</a>)</td><td><a href="[
 preferred]sling/org.apache.sling.launchpad.content-2.0.12-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.content-2.0.12-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.content-2.0.12-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Installer</td><td>1.2.2</td><td><a href="[preferred]sling/org.apache.sling.launchpad.installer-1.2.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.installer-1.2.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.installer-1.2.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.launchpad.installer-1.2.2-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.installer-1.2.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.installer-1.2.2-so
 urce-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Integration Tests</td><td>1.0.</td><td><a href="[preferred]sling/org.apache.sling.launchpad.integration-tests-1.0..jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.integration-tests-1.0..jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.integration-tests-1.0..jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.launchpad.integration-tests-1.0.-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.integration-tests-1.0.-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.integration-tests-1.0.-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Test Fragment Bundle</td><td>2.0.12</td><td><a href="[preferred]sling/org.apache.sling.launchpad.test-fragment-2.0.12.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sl
 ing.launchpad.test-fragment-2.0.12.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-fragment-2.0.12.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.launchpad.test-fragment-2.0.12-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-fragment-2.0.12-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-fragment-2.0.12-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Test Bundles</td><td>0.0.2</td><td><a href="[preferred]sling/org.apache.sling.launchpad.test-bundles-0.0.2.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-bundles-0.0.2.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-bundles-0.0.2.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.launchpad.test-bundles-0.0.2-source-release.zip">Source ZI
 P</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-bundles-0.0.2-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-bundles-0.0.2-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Testing</td><td>9</td><td><a href="[preferred]sling/org.apache.sling.launchpad.testing-9.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.testing-9.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.testing-9.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.launchpad.testing-9-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.testing-9-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.testing-9-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Testing WAR</td><td>9</td><td><a href="[preferred]sling/org.apa
 che.sling.launchpad.testing-war-9.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.testing-war-9.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.testing-war-9.jar.md5">md5</a>)</td><td><a href="[preferred]sling/org.apache.sling.launchpad.testing-war-9-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.testing-war-9-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.testing-war-9-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Testing Services</td><td>2.0.12</td><td><a href="[preferred]sling/org.apache.sling.launchpad.test-services-2.0.12.jar">Bundle</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-services-2.0.12.jar.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-services-2.0.12.jar.md5">md5</a>)</td><td><a href="[preferred
 ]sling/org.apache.sling.launchpad.test-services-2.0.12-source-release.zip">Source ZIP</a> (<a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-services-2.0.12-source-release.zip.asc">asc</a>, <a href="http://www.apache.org/dist/sling/org.apache.sling.launchpad.test-services-2.0.12-source-release.zip.md5">md5</a>)</td></tr><tr><td>Launchpad Testing Services WAR</td><td>2.0.12</td><td><a href="[preferred]slin

<TRUNCATED>

[30/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/news/sling-launchpad-9-released.html
----------------------------------------------------------------------
diff --git a/news/sling-launchpad-9-released.html b/news/sling-launchpad-9-released.html
new file mode 100644
index 0000000..5f9508c
--- /dev/null
+++ b/news/sling-launchpad-9-released.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling Launchpad 9 released</h1></header><p>Here are some of the more noteworthy things available in this release.</p>
+<h2>Updated to Oak 1.6.1 and segment-tar persistence</h2>
+<p>We now include the latest stable version of Oak and have switched to the latest form of the disk-based persitence - oak-segment-tar. This module provides better runtime characteristics when compared to the oak-segment persistence and also allows reliable online compaction of the repository.</p>
+<p>If you're upgrading from a previous version of Sling you will need to manually upgrade the repository. See the <a href="http://jackrabbit.apache.org/oak/docs/migration.html">Oak documentation on Repository migration</a> for more details.</p>
+<h2>The Sling Explorer is replaced with Composum</h2>
+<p>The Sling Launchpad ships with a new repository explorer and administration tool - <a href="https://github.com/ist-dresden/composum">Composum</a>. Composum is more reliable and featureful compared to the previous Sling explorer.</p>
+<h2>The Slingshot sample is included</h2>
+<p>The default Sling configuration now includes the Slingshot sample. Slingshot exemplifies how to build and deploy a Sling application.</p>
+<h2>New Resource Provider and Observation API</h2>
+<p>The Resource Provider API has been replaced with a new implementation, which is more performant and better suited for future evolution. Existing ResourceProvider will be able to work using a backwards-compatible layer, but developers are nonetheless encouraged to move to the new implementation.</p>
+<p>In the same manner, the Observation API has been refreshed.</p>
+<h2>New modules added: Validation, Context-Aware Configuration, Repository Initialization Language</h2>
+<p>A number of new general-purpose modules have been added to the Sling Launchpad:</p>
+<ul>
+  <li><a href="/documentation/bundles/validation.html">Validation</a></li>
+  <li><a href="/documentation/bundles/context-aware-configuration/context-aware-configuration.html">Context-Aware configuration</a></li>
+  <li><a href="/documentation/bundles/repository-initialization.html">Repository Initialization Language</a></li>
+</ul>
+<h2>Tooling: HTL Maven Plugin</h2>
+<p>The <a href="http://sling.apache.org/components/htl-maven-plugin/">HTL Maven Plugin</a> provides build-time validation for projects using HTL. Furthermore, the HTL engine has been modularised into an HTL Compiler, an HTL Java Compiler and an HTL Script Engine, with the first two allowing to build other HTL tools in a Sling-independent way.</p>
+<h2>Streaming Upload Support</h2>
+<p>The version of the Sling Engine shipped in the Launchpad now supports streaming uploads, for better I/O throughput. Streaming uploads are opt-in via setting the following HTTP Header:</p>
+<p>Sling-UploadMode: stream</p>
+<h2>Discovery: added Oak-based discovery implementation</h2>
+<p>The Sling discovery mechanism has been augmented with a mechanism which delegates instance discovery to Oak. When working with a DocumentNodeStore-based Oak implementation, this information is already available to Oak so there is no point in duplicating the work.</p>
+<h2>Security: loginAdministrative deprecation</h2>
+<p>We believe that the vast majority of bundles performing background work do not require administrative access to the repository via <code>loginAdministrative</code>. We have removed many usages of <code>loginAdministrative</code> in the Sling code and replaced then with a service-based approach - <code>loginService</code>. We encourage you to do the same.</p>
+<p>Documentation available at <a href="/documentation/the-sling-engine/service-authentication.html">Service Authentication</a>.</p>
+<h2>Removed org.apache.sling.commons.json and org.json bundles</h2>
+<p>Apache projects are no longer allowed, for legal reasons, to ship code which uses or links to the JSON.org Java implementation. As a consequence we have removed all code which references that API.</p>
+<p>If you need to use these bundles, you can always retrieve then from Maven Central and incorporate them in your launchpad.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/old-stuff.html
----------------------------------------------------------------------
diff --git a/old-stuff.html b/old-stuff.html
new file mode 100644
index 0000000..80d1228
--- /dev/null
+++ b/old-stuff.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Old Stuff</h1></header><p>translation_pending: true</p>
+<p>Should either be deleted or reviewed and updated to match the current code:</p>
+<p>{% for label, page in children %}* [{{ page.headers.title }}]({{ page.path }}) {% endfor %}</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
new file mode 100644
index 0000000..e4a03af
--- /dev/null
+++ b/plugins.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Plugins</h1></header><p>translation_pending: true</p>
+<p>These pages present the various Maven Plugins of Sling:</p>
+<p>{% for label, page in children %}* [{{ page.headers.title }}]({{ page.path }}) {% endfor %}</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/project-information.html
----------------------------------------------------------------------
diff --git a/project-information.html b/project-information.html
new file mode 100644
index 0000000..9b6cdc2
--- /dev/null
+++ b/project-information.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Project Information</h1></header><p>This document provides an overview of the various documents and links that are part of this project's general information:</p>
+<ul>
+  <li><a href="/project-information/apache-sling-community-roles-and-processes.html">Community Roles and Processes</a></li>
+  <li><a href="/project-information/project-team.html">Project Team</a></li>
+  <li><a href="#mailing-lists">Mailing Lists</a></li>
+  <li><a href="#issue-tracking">Issue Tracking</a></li>
+  <li><a href="#source-repository">Source Repository</a></li>
+  <li><a href="#continuous-integration">Continuous Integration</a></li>
+  <li><a href="/project-information/project-license.html">Project License</a></li>
+  <li><a href="#documentation-repository">Documentation Repository</a></li>
+</ul>
+<h2>Mailing Lists</h2>
+<p>These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.</p>
+<p>The Sling Users List is the preferred way of getting help with Sling. However, you can also <a href="http://stackoverflow.com/questions/ask?tags=sling">Ask a Sling question on StackOverflow</a> if you prefer.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Name </th>
+      <th>Subscribe </th>
+      <th>Unsubscribe </th>
+      <th>Post </th>
+      <th>Archive </th>
+      <th>Other Archives </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Sling Users List </td>
+      <td><a href="mailto:users-subscribe@sling.apache.org">Subscribe</a> </td>
+      <td><a href="mailto:users-unsubscribe@sling.apache.org">Unsubscribe</a> </td>
+      <td>users at sling.apache.org </td>
+      <td><a href="https://lists.apache.org/list.html?users@sling.apache.org">lists.apache.org</a> </td>
+      <td><a href="http://www.mail-archive.com/users@sling.apache.org/">www.mail-archive.com</a> <a href="http://sling.markmail.org">MarkMail</a> <a href="http://apache-sling.73963.n3.nabble.com/Sling-Users-f73968.html">Nabble</a> </td>
+    </tr>
+    <tr>
+      <td>Sling Developers List </td>
+      <td><a href="mailto:dev-subscribe@sling.apache.org">Subscribe</a> </td>
+      <td><a href="mailto:dev-unsubscribe@sling.apache.org">Unsubscribe</a> </td>
+      <td>dev at sling.apache.org </td>
+      <td><a href="https://lists.apache.org/list.html?dev@sling.apache.org">lists.apache.org</a> </td>
+      <td><a href="http://www.mail-archive.com/dev@sling.apache.org/">www.mail-archive.com</a> <a href="http://sling.markmail.org">MarkMail</a> <a href="http://apache-sling.73963.n3.nabble.com/Sling-Dev-f73966.html">Nabble</a> </td>
+    </tr>
+    <tr>
+      <td>Sling Source Control List </td>
+      <td><a href="mailto:commits-subscribe@sling.apache.org">Subscribe</a> </td>
+      <td><a href="mailto:commits-unsubscribe@sling.apache.org">Unsubscribe</a> </td>
+      <td> </td>
+      <td><a href="https://lists.apache.org/list.html?commits@sling.apache.org">lists.apache.org</a> </td>
+      <td><a href="http://www.mail-archive.com/commits@sling.apache.org/">www.mail-archive.com</a> <a href="http://sling.markmail.org">MarkMail</a> </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Issue Tracking</h2>
+<p>This project uses JIRA a J2EE-based, issue tracking and project management application. Issues, bugs, and feature requests should be submitted to the following issue tracking system for this project.</p>
+<p>The issue tracker can be found at <a href="http://issues.apache.org/jira/browse/SLING">http://issues.apache.org/jira/browse/SLING</a></p>
+<h2>Source Repository</h2>
+<p>This project uses Subversion to manage its source code. Instructions on Subversion use can be found at <a href="http://svnbook.red-bean.com/">http://svnbook.red-bean.com/</a>.</p>
+<h3>Web Access</h3>
+<p>The following is a link to the online source repository.</p>
+<p>http://svn.apache.org/viewvc/sling/trunk</p>
+<h3>Anonymous access</h3>
+<p>The source can be checked out anonymously from SVN with this command:</p>
+<p>$ svn checkout http://svn.apache.org/repos/asf/sling/trunk sling</p>
+<h3>Developer access</h3>
+<p>Everyone can access the Subversion repository via HTTPS, but Committers must checkout the Subversion repository via HTTPS.</p>
+<p>$ svn checkout https://svn.apache.org/repos/asf/sling/trunk sling</p>
+<p>To commit changes to the repository, execute the following command to commit your changes (svn will prompt you for your password)</p>
+<p>$ svn commit --username your-username -m "A message"</p>
+<h3>Access from behind a firewall</h3>
+<p>For those users who are stuck behind a corporate firewall which is blocking http access to the Subversion repository, you can try to access it via the developer connection:</p>
+<p>$ svn checkout https://svn.apache.org/repos/asf/sling/trunk sling</p>
+<h3>Access through a proxy</h3>
+<p>The Subversion client can go through a proxy, if you configure it to do so. First, edit your "servers" configuration file to indicate which proxy to use. The files location depends on your operating system. On Linux or Unix it is located in the directory "~/.subversion". On Windows it is in "%APPDATA%Subversion". (Try "echo %APPDATA%", note this is a hidden directory.)</p>
+<p>There are comments in the file explaining what to do. If you don't have that file, get the latest Subversion client and run any command; this will cause the configuration directory and template files to be created.</p>
+<p>Example : Edit the 'servers' file and add something like :</p>
+<p>[global] http-proxy-host = your.proxy.name http-proxy-port = 3128</p>
+<h2>Continuous Integration</h2>
+<p>Sling builds run automatically on the <a href="https://builds.apache.org/">ASF's Jenkins instance</a>, triggered by commits.</p>
+<p>We maintain multiple build jobs, typically one or two per module. These are grouped into two views:</p>
+<ul>
+  <li><a href="https://builds.apache.org/view/S-Z/view/Sling/">Sling</a>, which holds all Sling-related jobs</li>
+  <li><a href="https://builds.apache.org/view/S-Z/view/Sling-Dashboard/">Sling-Dashboard</a>, which holds all Sling jobs needing attention, such as failed jobs.</li>
+</ul>
+<p>More documentation regarding the Jenkins setup is available as wiki links from the views mentioned above.</p>
+<h2>Documentation Repository</h2>
+<p>The documentation website, in fact the very page that you are reading right now, is located at <a href="https://cms.apache.org/sling/">The ASF Content Management System’s Sling project</a>. You can contribute without being an official project committer.</p>
+<h3>Save your changes as an SVN patch:</h3>
+<ol>
+  <li>Log in as username <em>anonymous</em> and leave the password blank.</li>
+  <li>Click <em>Get sling Working Copy</em> to check out a local branch through the browser.</li>
+  <li>Navigate to a document and click <em>edit</em>.</li>
+  <li>Edit the page in the online markdown editor.</li>
+  <li>Uncheck <em>Quick Mail</em>.</li>
+  <li>Click <em>submit</em>.</li>
+  <li>Click <em>Diff</em>, then <em>Download Diff</em> and save the SVN patch to your computer.</li>
+</ol>
+<h3>Submit your changes:</h3>
+<ol>
+  <li>Navigate to the <a href="https://issues.apache.org/jira/browse/SLING">Jira issue tracker</a>.</li>
+  <li>Create an account and/or login.</li>
+  <li>Create a ticket, enter a description and choose <em>Documentation</em> for <em>Components</em>.</li>
+  <li>Select the ticket, click <em>more</em>, select <em>attach files</em> and attach your SVN patch.</li>
+</ol>
+<h3>Further resources:</h3>
+<ol>
+  <li>Read the <a href="http://www.apache.org/dev/cmsref#non-committer">ASF CMS reference for non-committers</a>.</li>
+  <li>Watch a <a href="http://s.apache.org/cms-anonymous-tutorial">video tutorial by Rob Weir for anonymous users</a>.</li>
+</ol></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/project-information/apache-sling-community-roles-and-processes.html
----------------------------------------------------------------------
diff --git a/project-information/apache-sling-community-roles-and-processes.html b/project-information/apache-sling-community-roles-and-processes.html
new file mode 100644
index 0000000..898ae7a
--- /dev/null
+++ b/project-information/apache-sling-community-roles-and-processes.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling Community Roles and Processes</h1></header><p>The Community Roles and Processes are put in effect as of 13/May/2009. Updated 7/December/2009 to reflect Sling being a top level project.</p>
+<h2>Roles</h2>
+<p>There are different roles with which Sling community members may be associated: User, Contributor, Committer, and PMC (Project Management Committee) Member. These roles are assigned and assumed based on merit.</p>
+<p>The User and Contributor roles are acquired by using the software and participating in the community, but the Committer and PMC member roles can only be granted by a PMC vote.</p>
+<p>The roles defined here conform to the ASF's <a href="http://www.apache.org/foundation/how-it-works.html#roles">definition of roles</a>.</p>
+<h3>Users</h3>
+<p>Users are the people who use any of the products of the Sling project. People in this role are not contributing code, but they are using the products, reporting bugs, making feature requests, testing code, and such. This is by far the most important category of people, since without users there is no reason for Sling. When a user starts to contribute code or documentation patches, they become a <em>Contributor</em>.</p>
+<h3>Contributors</h3>
+<p>Contributors are the people who write code or documentation patches or contribute positively to the project in other ways. A volunteer's contribution is always recognized.</p>
+<h3>Committers</h3>
+<p>Contributors who give frequent and valuable contributions to a subproject of Sling can have their status promoted to that of a <em><a href="http://www.apache.org/dev/committers.html">Committer</a></em>. A Committer has write access to Sling's source code repository. Contributors of documentation are eligible as committers in the same way as contributors of pure code.</p>
+<h3>PMC Members</h3>
+<p>Committers showing continued interest in the project and taking an active part in the evolution of the project may be elected as <em><a href="http://www.apache.org/dev/pmc.html">PMC</a> members</em>. The PMC (Project Management Committee) is the official managing body of project and is responsible for setting its overall direction.</p>
+<h2>Processes</h2>
+<h3>Becoming a User or Contributor</h3>
+<p>There is no requirement for becoming a User or Contributor; these roles are open to everyone.</p>
+<h3>Becoming a Committer</h3>
+<p>In order for a Contributor to become a Committer, a member of the PMC can nominate that Contributor to the PMC. Once a Contributor is nominated, the PMC calls a vote on the PMC private mailing list.</p>
+<p>If there are at least three positive votes and no negative votes after three days (72 hours), the results are posted to the PMC private mailing list.</p>
+<p>Upon a positive vote result, the Contributor will be emailed by the PMC to invite him/her to become a Committer. If the invitation is accepted, an announcement about the new Committer is made to the developer mailing list and he/she is given write access to the source code repository. A Contributor will not officially become a Committer member until the appropriate legal paperwork is submitted.</p>
+<h3>Becoming a PMC Member</h3>
+<p>In order for a Committer to become a member of the PMC, a member of the PMC can nominate that Committer to the PMC. Once a Committer is nominated, the PMC calls a vote on the PMC private mailing list.</p>
+<p>If there are at least three positive votes and no negative votes after three days (72 hours), the results are posted to the PMC private mailing list.</p>
+<p>To have the Committer being accepted as a PMC member, the ASF Board has acknowledge the addition to the PMC. The Committer should not be consulted about his/her desire to become a PMC member before the board acknowledgement, or be informed that they are being considered, since this could create hard feelings if the vote does not pass.</p>
+<p>Upon a positive vote result, the PMC member will be emailed by the PMC to invite him/her to become a PMC member. If the invitation is accepted, an announcement about the new PMC member is made to the developer mailing list.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/project-information/project-license.html
----------------------------------------------------------------------
diff --git a/project-information/project-license.html b/project-information/project-license.html
new file mode 100644
index 0000000..60bef2e
--- /dev/null
+++ b/project-information/project-license.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Project License</h1></header><p>As with all projects of the <a href="http://apache.org">Apache Software Foundation</a>, Apache Sling is licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License, Version 2.0</a></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/project-information/project-team.html
----------------------------------------------------------------------
diff --git a/project-information/project-team.html b/project-information/project-team.html
new file mode 100644
index 0000000..0a9deed
--- /dev/null
+++ b/project-information/project-team.html
@@ -0,0 +1,330 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Project Team</h1></header><p>A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.</p>
+<p>The team is comprised of Committers and Contributors. Committers have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.</p>
+<h2>Committers and PMC members</h2>
+<p>The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.</p>
+<p>Committers marked with an asterisk (*) are also members of the Sling Project Management Commitee (<a href="http://www.apache.org/dev/pmc.html">PMC</a>) as defined in <a href="/project-information/apache-sling-community-roles-and-processes.html">Apache Sling Community Roles and Processes</a></p>
+<p>This page is currently maintained manually, the ASF's LDAP information is the ultimate reference.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Id </th>
+      <th>Name </th>
+      <th>Organization </th>
+      <th>Roles </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>aheimoz </td>
+      <td>Alison Heimoz </td>
+      <td>Adobe </td>
+      <td>Technical Writer </td>
+    </tr>
+    <tr>
+      <td>amitgupt </td>
+      <td>Amit Gupta </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>apopescu (*) </td>
+      <td>Alexandru Popescu </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>asanso (*) </td>
+      <td>Antonio Sanso </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>bdelacretaz (*) </td>
+      <td>Bertrand Delacretaz </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>clemens </td>
+      <td>Clemens Wyss </td>
+      <td>MySign AG </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>chetanm (*) </td>
+      <td>Chetan Mehrotra </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>clombart (*) </td>
+      <td>Christophe Lombart </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>cziegeler (*) </td>
+      <td>Carsten Ziegeler </td>
+      <td>Adobe </td>
+      <td>Chair, Java Developer </td>
+    </tr>
+    <tr>
+      <td>dklco (*) </td>
+      <td>Dan Klco </td>
+      <td>Six Dimensions </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>dulvac </td>
+      <td>Andrei Dulvac </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>fmeschbe (*) </td>
+      <td>Felix Meschberger </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>enorman </td>
+      <td>Eric Norman </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>gianugo (*) </td>
+      <td>Gianugo Rabellino </td>
+      <td> </td>
+      <td> </td>
+    </tr>
+    <tr>
+      <td>ghenzler </td>
+      <td>Georg Henzler </td>
+      <td>Netcentric </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>jckautzmann </td>
+      <td>Jean-Christophe Kautzmann </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>jsedding </td>
+      <td>Julian Sedding </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>justin (*) </td>
+      <td>Justin Edelson </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>hannonpi (*) </td>
+      <td>Padraic Hannon </td>
+      <td>Edmunds Inc. </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>ieb (*) </td>
+      <td>Ian Boston </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>juanjo (*) </td>
+      <td>Juan José Vázquez Delgado </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>kwin (*) </td>
+      <td>Konrad Windszus </td>
+      <td>Netcentric </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>mduerig </td>
+      <td>Michael Dürig </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>mykee (*) </td>
+      <td>Mike Müller </td>
+      <td>MySign AG </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>npeltier </td>
+      <td>Nicolas Peltier </td>
+      <td> Adobe </td>
+      <td> Java Developer </td>
+    </tr>
+    <tr>
+      <td>olli (*) </td>
+      <td>Oliver Lietz </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>pauls (*) </td>
+      <td>Karl Pauls </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>radu (*) </td>
+      <td>Radu Cotescu </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>rombert (*) </td>
+      <td>Robert Munteanu </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>sboehme </td>
+      <td>Sandro Boehme </td>
+      <td>inovex GmbH </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>sseifert (*) </td>
+      <td>Stefan Seifert </td>
+      <td>pro!vision GmbH </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>stefanegli (*) </td>
+      <td>Stefan Egli </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>thecarlhall </td>
+      <td>Carl Hall </td>
+      <td>Hallway Technologies </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>tmaret </td>
+      <td>Timothee Maret </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>tommaso </td>
+      <td>Tommaso Teofili </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>tomekr </td>
+      <td>Tomek Rękawek </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>vramdal </td>
+      <td>Vidar Ramdal </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+    <tr>
+      <td>mpetria </td>
+      <td>Marius Petria </td>
+      <td>Adobe </td>
+      <td>Java Developer </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Emeritus Committers and PMC members</h2>
+<p>The following list of former committers and PMC members have chosen to go emeritus. We are still thankful for their help and guidance during earlier phases of the Sling project.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Id </th>
+      <th>Name </th>
+      <th>Organization </th>
+      <th>Roles </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>farra </td>
+      <td><strong>J Aaron Farr</strong> </td>
+      <td> </td>
+      <td>Mentor </td>
+    </tr>
+    <tr>
+      <td>jukka </td>
+      <td><strong>Jukka Zitting</strong> </td>
+      <td>Adobe </td>
+      <td>Champion, Mentor </td>
+    </tr>
+  </tbody>
+</table>
+<p>Committers with their names printed in bold face have also been members of the PMC (or PPMC during Sling incubation) as defined in <a href="/project-information/apache-sling-community-roles-and-processes.html">Apache Sling Community Roles and Processes</a></p>
+<h2>Emeritus PMC members</h2>
+<p>The following list of former PMC members have chosen to go emeritus as a PMC member but stay active as a committer. We are still thankful for their help and guidance.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Id </th>
+      <th>Name </th>
+      <th>Organization </th>
+      <th>Roles </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>vramdal </td>
+      <td>Vidar Ramdal </td>
+      <td> </td>
+      <td>Java Developer </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Special Thanks</h2>
+<p>Special thanks go to <strong>Chris Millar</strong> who provided the new Apache Sling Logo in 2017.</p>
+<p>The original Sling logo was created by Paul Walker in 2008 as part of the Google Highly Open Participation contest.</p>
+<h2>Contributors</h2>
+<p>There are no contributors listed for this project.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/project-information/security.html
----------------------------------------------------------------------
diff --git a/project-information/security.html b/project-information/security.html
new file mode 100644
index 0000000..c8de846
--- /dev/null
+++ b/project-information/security.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Security</h1></header><h1>Reporting New Security Problems with Apache Sling</h1>
+<p>The Apache Software Foundation takes a very active stance in eliminating security problems and denial of service attacks against Apache Sling.</p>
+<p>We strongly encourage folks to report such problems to our private security mailing list first, before disclosing them in a public forum.</p>
+<p><em>Please note that the security mailing list should only be used for reporting undisclosed security vulnerabilities in Apache Sling and managing the process of fixing such vulnerabilities. We cannot accept regular bug reports or other queries at this address. All mail sent to this address that does not relate to an undisclosed security problem in the Apache Sling source code will be ignored.</em></p>
+<p>If you need to report a bug that isn't an undisclosed security vulnerability, please use our <a href="https://issues.apache.org/jira/browse/SLING">public issue tracker</a>.</p>
+<p>Questions about:</p>
+<ul>
+  <li>how to configure Sling securely</li>
+  <li>whether a published vulnerability applies to your particular application</li>
+  <li>obtaining further information on a published vulnerability</li>
+  <li>availability of patches and/or new releases</li>
+</ul>
+<p>should be addressed to our public users mailing list. Please see the <a href="/project-information.html">Project Information</a> page for details of how to subscribe.</p>
+<p>The private security mailing address is: security(at)sling.apache.org.</p>
+<p>Note that all networked servers are subject to denial of service attacks, and we cannot promise magic workarounds to generic problems (such as a client streaming lots of data to your server, or re-requesting the same URL repeatedly). In general our philosophy is to avoid any attacks which can cause the server to consume resources in a non-linear relationship to the size of inputs.</p>
+<p>For more information on handling security issues at the Apache Software Foundation please refer to the <a href="http://www.apache.org/security/">ASF Security Team</a> page and to the <a href="http://www.apache.org/security/committers.html">security process description for committers</a>.</p>
+<h1>Errors and omissions</h1>
+<p>Please report any errors or omissions to security(at)sling.apache.org.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/res/css/codehilite.css
----------------------------------------------------------------------
diff --git a/res/css/codehilite.css b/res/css/codehilite.css
new file mode 100644
index 0000000..93ce023
--- /dev/null
+++ b/res/css/codehilite.css
@@ -0,0 +1,429 @@
+/*************************************************************************
+
+    For reference: classes defined by the Confluence batch.css
+    
+.code {
+    border-width: 1px;
+    border-style: dashed;
+    overflow: auto;
+}
+
+.code,.preformatted {
+    background-color: #fff;
+}
+
+.code pre,.preformatted pre {
+    font-family: "Courier New", Courier, monospace;
+    line-height: 1.3;
+}
+
+.code-keyword {
+    color: #000091;
+    background-color: inherit;
+}
+
+.code-object {
+    color: #910091;
+    background-color: inherit;
+}
+
+.code-quote {
+    color: #009100;
+    background-color: inherit;
+}
+
+.code-comment {
+    color: #808080;
+    background-color: inherit;
+}
+
+.code-xml .code-keyword {
+    color: inherit;
+    font-weight: bold;
+}
+
+.code-tag {
+    color: #000091;
+    background-color: inherit;
+}
+
+*/
+
+/*************************************************************************
+
+    For reference: classes defined by the old Sling Site CSS
+
+.codehilite {
+    color: black;
+    background-color: #f0f0f0;
+    border: solid 1px black;
+    margin-top: 0.5em;
+    margin-bottom: 0.5em;
+    padding: 0.5em
+}
+
+.codeHeader {
+    text-align: center;
+    font-family: monospace;
+    border-bottom: 1px solid black;
+    padding-top: 0.5em;
+    padding-bottom: 0.5em;
+    margin-bottom: 0.5em;
+}
+
+
+.codehilite pre {
+    margin: 0em
+}
+
+.code-keyword {
+    color: #880000
+}
+
+.code-quote {
+    color: #008800
+}
+
+.code-object {
+    color: #0000dd
+}
+
+.code-java {
+    margin: 0em
+}
+
+*/
+
+/**
+  Apache CMS Code High Lighting
+
+  HTML structure for default (:::, un-numbered code)
+  
+  <div class="codehilite">
+    <pre>
+    ... span-tagged code ...
+    </pre>
+  </div>
+
+
+  HTML structure for #! (line numbered code)
+  
+  <table class="codehilitetable">
+    <tr>
+        <td class="linenos">
+            <div class="linenodiv">
+                <pre>
+                ... line numbers ...
+                </pre>
+            </div>
+        </td>
+        <td class="code">
+            <div class="codehilite">
+                <pre>
+                ... span-tagged code ...
+                </pre>
+            </div>
+        </td>
+    </tr>
+  </table>
+*/
+
+.codehilitetable, .codehilite {
+    color: black;
+    background-color: #f4f4f4;
+    border: solid 1px #DDD;
+    margin-top: 0.5em;
+    margin-bottom: 0.5em;
+    padding: 0.5em;
+}
+
+.codehilitetable .linenos {
+    border: none;
+}
+
+.codehilitetable .linenos .linenodiv {
+}
+
+.codehilitetable .linenos .linenodiv pre {
+    margin: 0px;
+    padding: 0px;
+}
+
+.codehilitetable .code {
+    border: none;
+}
+
+.codehilitetable .code .codehilite {
+    /** overwrite from .codehilite class above */
+    border: none;
+    margin: 0px;
+    padding: 0px;
+}
+
+.codehilite pre {
+    /* Applies to both .codehilite divs, top level and in table */
+    margin: 0px;
+    padding: 0px;
+    overflow: auto;
+}
+
+
+/**
+ * Pygments Code Formatter Styles
+ */
+ 
+/** Whitespace */
+.codehilite .w {
+}
+/** Error */
+.codehilite .err {
+}
+/** Other */
+.codehilite .x {
+}
+
+/** Keyword */
+.codehilite .k {
+    color: #880000
+}
+/** Keyword.Constant */
+.codehilite .kc {
+    color: #880000
+}
+/** Keyword.Declaration */
+.codehilite .kd {
+    color: #880000
+}
+/** Keyword.Namespace */
+.codehilite .kn {
+    color: #880000
+}
+/** Keyword.Pseudo */
+.codehilite .kp {
+    color: #880000
+}
+/** Keyword.Reserved */
+.codehilite .kr {
+    color: #880000
+}
+/** Keyword.Type */
+.codehilite .kt {
+    color: #880000
+}
+    
+/** Name */
+.codehilite .n {
+    color: #0000dd
+}
+/** Name.Attribute */
+.codehilite .na {
+    color: #0000dd
+}
+/** Name.Builtin */
+.codehilite .nb {
+    color: #0000dd
+}
+/** Name.Builtin.Pseudo */
+.codehilite .bp {
+    color: #0000dd
+}
+/** Name.Class */
+.codehilite .nc {
+    color: #0000dd
+}
+/** Name.Constant */
+.codehilite .no {
+    color: #0000dd
+}
+/** Name.Decorator */
+.codehilite .nd {
+    color: #0000dd
+}
+/** Name.Entity */
+.codehilite .ni {
+    color: #0000dd
+}
+/** Name.Exception */
+.codehilite .ne {
+    color: #0000dd
+}
+/** Name.Function */
+.codehilite .nf {
+    color: #0000dd
+}
+/** Name.Property */
+.codehilite .py {
+    color: #0000dd
+}
+/** Name.Label */
+.codehilite .nl {
+    color: #0000dd
+}
+/** Name.Namespace */
+.codehilite .nn {
+    color: #0000dd
+}
+/** Name.Other */
+.codehilite .nx {
+    color: #0000dd
+}
+/** Name.Tag */
+.codehilite .nt {
+    color: #0000dd
+}
+/** Name.Variable */
+.codehilite .nv {
+    color: #0000dd
+}
+/** Name.Variable.Class */
+.codehilite .vc {
+    color: #0000dd
+}
+/** Name.Variable.Global */
+.codehilite .vg {
+    color: #0000dd
+}
+/** Name.Variable.Instance */
+.codehilite .vi {
+    color: #0000dd
+}
+    
+/** Literal */
+.codehilite .l {
+}
+/** Literal.Date */
+.codehilite .ld {
+}
+
+/** String */
+.codehilite .s {
+    color: #008800
+}
+/** String.Backtick */
+.codehilite .sb {
+    color: #008800
+}
+/** String.Char */
+.codehilite .sc {
+    color: #008800
+}
+/** String.Doc */
+.codehilite .sd {
+    color: #008800
+}
+/** String.Double */
+.codehilite .s2 {
+    color: #008800
+}
+/** String.Escape */
+.codehilite .se {
+    color: #008800
+}
+/** String.Heredoc */
+.codehilite .sh {
+    color: #008800
+}
+/** String.Interpol */
+.codehilite .si {
+    color: #008800
+}
+/** String.Other */
+.codehilite .sx {
+    color: #008800
+}
+/** String.Regex */
+.codehilite .sr {
+    color: #008800
+}
+/** String.Single */
+.codehilite .s1 {
+    color: #008800
+}
+/** String.Symbol */
+.codehilite .ss {
+    color: #008800
+}
+    
+/** Number */
+.codehilite .m {
+}
+/** Number.Float */
+.codehilite .mf {
+}
+/** Number.Hex */
+.codehilite .mh {
+}
+/** Number.Integer */
+.codehilite .mi {
+}
+/** Number.Integer.Long */
+.codehilite .il {
+}
+/** Number.Oct */
+.codehilite .mo {
+}
+/** Operator */
+.codehilite .o {
+}
+/** Operator.Word */
+.codehilite .ow {
+}
+/** Punctuation */
+.codehilite .p {
+}
+
+/** Comment */
+.codehilite .c {
+    color: #808080;
+}
+/** Comment.Multiline */
+.codehilite .cm {
+    color: #808080;
+}
+/** Comment.Preproc */
+.codehilite .cp {
+    color: #808080;
+}
+/** Comment.Single */
+.codehilite .c1 {
+    color: #808080;
+}
+/** Comment.Special */
+.codehilite .cs {
+    color: #808080;
+}
+    
+/** Generic */
+.codehilite .g {
+}
+/** Generic.Deleted */
+.codehilite .gd {
+}
+/** Generic.Emph */
+.codehilite .ge {
+}
+/** Generic.Error */
+.codehilite .gr {
+}
+/** Generic.Heading */
+.codehilite .gh {
+}
+/** Generic.Inserted */
+.codehilite .gi {
+}
+/** Generic.Output */
+.codehilite .go {
+}
+/** Generic.Prompt */
+.codehilite .gp {
+}
+/** Generic.Strong */
+.codehilite .gs {
+}
+/** Generic.Subheading */
+.codehilite .gu {
+}
+/** Generic.Traceback */
+.codehilite .gt {
+}
+

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/res/css/site.css
----------------------------------------------------------------------
diff --git a/res/css/site.css b/res/css/site.css
new file mode 100644
index 0000000..a626a5a
--- /dev/null
+++ b/res/css/site.css
@@ -0,0 +1,263 @@
+body {
+    background-color: #ffffff;
+    color: #3b3b3b;
+    font-family: Tahoma, Arial, sans-serif;
+    font-size: 10pt;
+    line-height: 140%
+}
+
+h1,h2,h3,h4,h5,h6 {
+    font-weight: normal;
+    color: #000000;
+    line-height: 100%;
+}
+
+h1 {
+    font-size: 200%;
+    font-weight: bold;
+    border-bottom: solid #EEE 1px;
+    border-top: solid #EEE 1px;
+    padding-top:.2em;
+    padding-bottom:.2em;
+}
+
+h2 {
+    font-size: 200%;
+    margin-top: 1em;
+    font-weight: normal;
+    border-top: solid rgb(155, 155, 155) 2px;
+    padding-top: 0.45em;
+}
+
+h3 {
+    font-size: 150%
+}
+
+h4 {
+    font-size: 140%
+}
+
+h5 {
+    font-size: 130%
+}
+
+h6 {
+    font-size: 120%
+}
+
+a {
+    color: #1980af
+}
+
+a:visited {
+    color: #1980af
+}
+
+a:hover {
+    color: #1faae9
+}
+
+img {
+    max-width: 100%;
+    border: solid 1px #EEE;
+    margin-top: 0.5em;
+    margin-bottom: 0.5em;
+    padding: 0.5em
+}
+
+.title {
+    position: absolute;
+    left: 1px;
+    right: 1px;
+    top: 25px;
+    height: 81px;
+    background:
+        url(https://sling.apache.org/site/media.data/gradient.png)
+        repeat-x;
+    background-position: bottom;
+}
+
+.title img {
+    width: auto;
+    border: none;
+    margin-top: 0px;
+    margin-bottom: 0px;
+    padding: 0px;    
+}
+
+.logo {
+    position: absolute;
+    width: 15em;
+    height: 81px;
+    text-align: center;
+}
+
+.logo img {
+    height: 63px;
+}
+
+.header {
+    text-align: right;
+    margin-right: 20pt;
+}
+
+.menu {
+    border-top: 10px solid #f9bb00;
+    position: absolute;
+    top: 107px;
+    left: 1px;
+    width: 15em;
+    bottom: 0px;
+    padding: 0px;
+    background-color: #fcfcfc
+}
+
+.menu ul,.menu p {
+    background-color: #fdf5d9;
+    list-style: none;
+    padding-left: 4em;
+    margin-top: 0px;
+    padding-top: 2em;
+    padding-bottom: 2em;
+    margin-left: 0px;
+    color: #4a4a43
+}
+
+.menu p {
+    font-size: 90%;
+    margin: 0px;
+    padding: 1px;
+    padding-left: 1em;
+    padding-bottom: 1em;
+}
+
+.menu a {
+    text-decoration: none;
+    color: #4a4a43
+}
+
+.main {
+    position: absolute;
+    border-top: 10px solid #cde0ea;
+    top: 107px;
+    left: 15em;
+    right: 1px;
+    margin-left: 2px;
+    padding-right: 4em;
+    padding-left: 1em;
+    padding-top: 1em;
+}
+
+.preformatted {
+    color: black;
+    background-color: #eeeeee;
+    border: solid 1px black;
+    padding: 0.5em
+}
+
+.preformattedContent pre {
+    margin: 0em
+}
+
+table {
+    border-collapse: collapse;
+    margin: 5px;
+}
+
+th {
+    background-color: #FDF5D9;
+    border: 1px solid #DDD;
+    padding: 3px 4px;
+    text-align: left;
+    font-weight:bold;
+    font-size:90%;
+    padding: 3px 4px;
+}
+
+td {
+    border: 1px solid #DDD;
+    padding: 3px 4px;
+}
+
+.note
+{
+/*
+    background-color: #FFFFCE;
+    border: 1px solid #F0C000;
+*/
+    border: 1px solid #f0c000;
+	background: #ffffce url('icons/warning.gif') no-repeat 5px 5px;
+	text-align: left;
+	margin-top: 5px;
+	margin-bottom: 5px;
+	padding: 5px 5px 5px 28px;
+}
+
+.warning
+{
+/*
+    background-color: #FFCCCC;
+    border: 1px solid #CC0000;
+*/
+    border: 1px solid #f0c000;
+	background: #ffffce url('icons/forbidden.gif') no-repeat 5px 5px;
+	text-align: left;
+	margin-top: 5px;
+	margin-bottom: 5px;
+	padding: 5px 5px 5px 28px;
+}
+
+.info
+{
+/*
+    background-color: #D8E4F1;
+    border: 1px solid #3C78B5;
+*/
+    border: 1px solid #3c78b5;
+	background: #D8E4F1 url('icons/information.gif') no-repeat 5px 5px;
+	text-align: left;
+	margin-top: 5px;
+	margin-bottom: 5px;
+	padding: 5px 5px 5px 28px;
+}
+
+.tip
+{
+/*
+    background-color: #DDFFDD;
+    border: 1px solid #009900;
+*/
+	border: 1px solid #090;
+	background: #dfd url('/res/icons/check.gif') no-repeat 5px 5px;
+	text-align: left;
+	margin-top: 5px;
+	margin-bottom: 5px;
+	padding: 5px 5px 5px 28px;
+}
+
+/** Breadcrump at the top of each page */
+.breadcrump {
+    font-size: 80%;
+}
+
+/** Last modification information at the botton of each page */
+.timestamp {
+    margin-top: 30px;
+    font-size: 80%;
+    text-align: right;
+}
+
+/** Trademark text at the bottom of each page */
+.trademarkFooter {
+    font-size: 80%;
+    font-style: italic;
+    margin-top: 10px;
+    text-align: left;
+}
+
+blockquote {
+    font-style: italic;
+    margin: 0;
+    padding-left: 1em;
+    border-left: 1px solid black;
+}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/res/logos/apache.png
----------------------------------------------------------------------
diff --git a/res/logos/apache.png b/res/logos/apache.png
new file mode 100644
index 0000000..fc3f667
Binary files /dev/null and b/res/logos/apache.png differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/res/logos/sling.png
----------------------------------------------------------------------
diff --git a/res/logos/sling.png b/res/logos/sling.png
new file mode 100644
index 0000000..69163d9
Binary files /dev/null and b/res/logos/sling.png differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/res/logos/sling.svg
----------------------------------------------------------------------
diff --git a/res/logos/sling.svg b/res/logos/sling.svg
new file mode 100644
index 0000000..ac3c0e7
--- /dev/null
+++ b/res/logos/sling.svg
@@ -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.
+-->
+<svg id="Sling_Logo" data-name="Sling Logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 768 392"><defs><linearGradient id="linear-gradient" x1="-8576.57" y1="2068.26" x2="-8523.42" y2="2006.11" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f69923"/><stop offset="0.31" stop-color="#f79a23"/><stop offset="0.84" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-2" x1="-8969.97" y1="2075.12" x2="-8590.74" y2="2075.12" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0.32" stop-color="#9e2064"/><stop offset="0.63" stop-color="#c92037"/><stop offset="0.75" stop-color="#cd2335"/><stop offset="1" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-3" x1="-8924.2" y1="2037.09" x2="-8698.21" y2="2037.09" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.
 13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#282662"/><stop offset="0.1" stop-color="#662e8d"/><stop offset="0.79" stop-color="#9f2064"/><stop offset="0.95" stop-color="#cd2032"/></linearGradient><linearGradient id="linear-gradient-4" x1="-8948.67" y1="2078.65" x2="-8569.44" y2="2078.65" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-5" x1="-8921.02" y1="2073.54" x2="-8721.72" y2="2073.54" xlink:href="#linear-gradient-3"/><linearGradient id="linear-gradient-6" x1="-8948.67" y1="2039.41" x2="-8569.45" y2="2039.41" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-7" x1="-8972.2" y1="2041.35" x2="-8592.97" y2="2041.35" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-8" x1="-8948.67" y1="2027.74" x2="-8569.45" y2="2027.74" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-9" x1="-8948.67" y1="2029.08" x2="-8569.45" y2="2029.08" xlink:href="#linear-gradient-2"/><linearGradient 
 id="linear-gradient-10" x1="-8735.63" y1="2029.35" x2="-8692.34" y2="2029.35" xlink:href="#linear-gradient-2"/></defs><title>Logo - Close Crop</title><path d="M223.41,235.88V63l-36.64-.32V251.7q0,33.89,24.93,33.89c13.7,0,18.88-5.26,24.53-15.93C224.68,266.15,223.41,254.84,223.41,235.88Z" style="fill:#00678c"/><polygon points="260.96 158.86 275.98 158.86 275.98 283.36 311.94 283.36 311.94 129.39 260.96 129.39 260.96 158.86" style="fill:#00678c"/><path d="M294.3,69.73a19.91,19.91,0,0,0-14.58,6.09,21,21,0,0,0,0,29.47,20.43,20.43,0,0,0,28.89.26l.26-.26a21,21,0,0,0,0-29.47A19.91,19.91,0,0,0,294.3,69.73Z" style="fill:#00678c"/><path d="M431.14,125.93q-28.59,0-43.25,17V128.75H355.27V281.09h35.84V171a39,39,0,0,1,14.14-11,38.47,38.47,0,0,1,16.89-4.42q17.08,0,24.65,9T454.31,193v88h35.84V187.66q0-29.15-15.93-45.44T431.14,125.93Z" style="fill:#00678c"/><path d="M154.85,385l-2.77-.73-.18,0-1.25-.34c-21.81-5.87-37-11.75-45.1-17.46a33.85,33.85,0,0,1-7-6.59h-67V311.43A170.49,170.49,0,0,1,.15,298.89V
 392H185.77c-4.64-.92-9.31-1.89-14-2.92C165.58,387.68,160,386.35,154.85,385Z" style="fill:#00678c"/><path d="M129.72,354.16c5.61,4,18.63,8.84,36.46,13.64l14.09-18.15a264,264,0,0,1-35.69-9.1l-1.26-.43,1.26.43c3.54,1.14,14.73,4.43,35.49,7.65-5-9.83-14.05-24.37-21.89-36-22.71,5.71-29,17.47-29,17.47S118.18,346,129.72,354.16Z" style="fill:url(#linear-gradient)"/><path d="M242.78,323.18a1.49,1.49,0,0,0-.14-.19l.79,1.34.23.19C243.37,324.08,243.08,323.62,242.78,323.18Z" style="fill:none"/><path d="M280.45,318.26c.54.73,1,1.48,1.55,2.25C281.5,319.74,281,319,280.45,318.26Z" style="fill:none"/><path d="M385.47,352.77l-1,.06q-10,.61-19.52,1.08-10.69.52-20.78.89-10.65.38-20.62.59-10.49.22-20.27.28-8,0-15.48,0l-5-.05c-3.26,0-6.44-.09-9.57-.15-2.89-.06-5.71-.13-8.5-.21l-2.76-.09h-.44l.67,1.14-1.46,1.81.67,0q6.29.28,12.66.45l7.38.18q10.24.22,20.58.24t20.86-.13q10.24-.15,20.39-.45c6.76-.2,13.48-.43,20.12-.71,6.94-.29,13.82-.63,20.57-1l4.57-.25q8.19-.47,16.13-1l2.31-2.85-.76-1.28-.48,0Q395.4,352.16,38
 5.47,352.77Z" style="fill:none"/><path d="M282.36,321.09h0l0,0Z" style="fill:none"/><path d="M300,317.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S300.42,317.63,300,317.05Z" style="fill:#be202e"/><path d="M300,317.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S300.42,317.63,300,317.05Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.34,321.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e"/><path d="M282.34,321.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M241.13,357c-6.91-.48-13.72-1-20.39-1.7q-10.4-1-20.33-2.4l-1.17-.16c-6.5-.91-12.83-1.95-18.95-3.11L166.2,367.79l3.76,1c4.8,1.25,9.91,2.47,15.29,3.67,6.07,1.35,12.47,2.67,19.15,3.92,6.16,1.16,12.57,2.26,19.16,3.29q8.4,1.33,17.17,2.46l.65.08,19.46-24.12Q250.85,357.66,241.13,357Z" style="fill:url(#linear-gradient-2)"/><path d="M409.33,35
 1.14q8.1-.6,16.48-1.31l.24,0,2.38-.2c3.77-.32,7.15-.64,14.85-1.36,0-4.53,3.17-9.58,7-14.74a22.55,22.55,0,0,0-11.14,13c-7.51-18.92-19.4-32.77-36.66-34.91a40.68,40.68,0,0,0-4.74-.31c6.45,1.61,10.56,5.34,14,14.33l0,0,0,0c-11.58-10.3-20-14.26-31.79-15.85-2.79-.37-5.76-.62-9-.78,16.66,6,25.83,17.64,29.54,32.52l5.78,9.81Z" style="fill:url(#linear-gradient-3)"/><path d="M384,356.74q-10.15.55-20.57,1-10,.41-20.12.71t-20.39.45q-10.41.15-20.86.13t-20.58-.24l-7.38-.18q-6.36-.19-12.66-.45l-.67,0-19.46,24.12,1.31.17c6.19.79,12.49,1.51,18.87,2.13s13,1.16,19.53,1.58q8.31.55,16.65.86l3.36.1q10.46.29,20,.1c7.19-.14,14-.47,20.31-.94q6.27-.47,12-1.1c3.25-.38,6.47-.83,9.68-1.29q11.31-1.66,22.19-4.11l19.53-24.22q-7.93.52-16.13,1C387.12,356.58,385.58,356.65,384,356.74Z" style="fill:url(#linear-gradient-4)"/><path d="M386.18,379.5a214.44,214.44,0,0,0,25.68-7.57l.87-.31c-4.61,6.89-6,20.43-6,20.38,7.66-12.68,16.08-23.48,26.53-29.23,2.69,3.73,4,9.91,4.55,17.48,3.17-9.58,2.6-15.45,2.17-17.64,3.19,6.05,10.39,1
 0.61,18.27,14.93-8.2-7.81-13.23-14.82-14.46-20.92,28.78-2.42,60.13-6,93.19-10.28a8.39,8.39,0,0,0-7.4-2.92c-6,.81-45.23,6-98,10.16l-4.53.36-1.27.1c-5.54.42-11.21.83-17,1.22l-4,.26h-.08L385.2,379.73C385.53,379.64,385.86,379.58,386.18,379.5Z" style="fill:url(#linear-gradient-5)"/><path d="M262,355.16l2.76.09q4.16.12,8.5.21c3.13.06,6.31.12,9.57.15l5,.05q7.52.06,15.48,0,9.78-.05,20.27-.28,10-.21,20.62-.59,10.09-.36,20.78-.89,9.53-.47,19.52-1.08l1-.06q9.93-.6,20.34-1.37l.48,0-5.78-9.81c.06.23.13.43.17.67-7.1-11.64-23.7-23.9-39.86-29.37a107.71,107.71,0,0,0-24.72-5,176.41,176.41,0,0,0-21.88-.54c-6.86.22-14.14.75-21.92,1.6a40.76,40.76,0,0,1,7.7,8.16c.41.57.83,1.16,1.23,1.74s.81,1.21,1.2,1.83h0l0,0c-9.61-9.52-21.42-12.92-34.27-13.47a44.67,44.67,0,0,1,12.3,11.11c.54.73,1,1.48,1.55,2.25.13.19.25.38.37.58h0l0,0h0a51.59,51.59,0,0,0-10.38-7.7c-.76-.41-1.51-.81-2.29-1.16-1.17-.55-2.37-1-3.59-1.46-.78-.27-1.57-.53-2.37-.74a43.86,43.86,0,0,0-5.88-1.22l-1.9-.24-2.67-.13c-4-.15-7.41-.14-10.41,0-1.49.05
 -2.87.14-4.13.25-.5,0-1,.08-1.45.14-1.4.14-2.63.3-3.69.46a36.5,36.5,0,0,0-3.71.76h0a12.78,12.78,0,0,1,1.51.93c3.64,2.54,8.22,7.65,11.27,12.05l-5.31-9,5.31,9a1.49,1.49,0,0,0,.14.19l.88,1.34-.23-.19,18.16,30.82A2,2,0,0,0,262,355.16Z" style="fill:url(#linear-gradient-6)"/><path d="M180.07,348.2c5.72.89,12.16,1.77,19.38,2.6l1.14.13Q210,352,221,352.9c6.39.52,13.2,1,20.47,1.38q9.51.51,20.07.86l-18.16-30.82c-8.59-7.49-14.43-9.94-22-11.47-2.05-.38-4.19-.74-6.37-1.06-6.7-1-13.9-1.68-20.89-2a186.88,186.88,0,0,0-19.1-.07,87.87,87.87,0,0,0-9.87,1c-2.52.42-4.86.93-7.06,1.48C166,323.83,175,338.37,180.07,348.2Z" style="fill:url(#linear-gradient-7)"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:#be202e"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:ur
 l(#linear-gradient-8)"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:url(#linear-gradient-9)"/><path d="M282.35,321.08Z" style="fill:#be202e"/><path d="M282.35,321.08Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.35,321.08Z" style="fill:url(#linear-gradient-10)"/><path d="M600.39,249.82a39.59,39.59,0,0,0,31.86-13.62c7.49-9,11.47-25.25,11.47-39.83a45,45,0,0,0-12.39-31.86,40.7,40.7,0,0,0-30.94-13.18,43,43,0,0,0-32.74,13.18,44.64,44.64,0,0,0-12.39,32c0,14.06,4.22,30.19,12.19,39.43A41.62,41.62,0,0,0,600.39,249.82Z" style="fill:none"/><rect width="768" height="392" style="fill:none"/><path d="M623.13,292.79c-5.77.68-11.51,1.59-17.24,2.47-12.74,2-25.45,4.54-38.23,6.25-4,.52-9.24,1.08-11.95-2.59-3.78
 -5.54,5.93-11.71,9.28-14.18,4-2.95,12.31-6.61,12.82-7.13a67.43,67.43,0,0,1,7.33.52,95.86,95.86,0,0,0,52.41-8.32,79.66,79.66,0,0,0,18-11.95A61.61,61.61,0,0,0,668.77,241a92.09,92.09,0,0,0,7.37-23.58,112.68,112.68,0,0,0,1.63-25.85,75.07,75.07,0,0,0-4.5-21.86,130.22,130.22,0,0,0-9.16-17.44l19.47-19.63V0H76.93Q43.72.68,22.29,20.47A67.42,67.42,0,0,0,.15,72.24,81.36,81.36,0,0,0,11.5,116.05q11.35,18.24,39.83,31.54l22.74,10.63q30.39,14.26,37.91,26.32a48.39,48.39,0,0,1,7.53,26.13,39.83,39.83,0,0,1-13.58,31,51.77,51.77,0,0,1-35.84,12.15,92.75,92.75,0,0,1-28.55-5.22A95.3,95.3,0,0,1,15,235.41L1,270.37a112.55,112.55,0,0,0,63.72,17.48q42.41,0,67.7-21.86a67.7,67.7,0,0,0,25.09-53.21q0-28.87-11.55-47.79t-40.22-32.18l-23.1-10.63a166.78,166.78,0,0,1-29.31-16.53A40.46,40.46,0,0,1,42.16,91a45.8,45.8,0,0,1-4-19.39A38,38,0,0,1,49.37,43.33a34.77,34.77,0,0,1,27.4-11.95H652.17v88.33l-11.71,11.95a28.32,28.32,0,0,0-5.5-2.87A96.14,96.14,0,0,0,602.15,122a93.39,93.39,0,0,0-33.29,4.38A77,77,0,0,0,542,144.21a80.93,8
 0.93,0,0,0-15,21.7,87.14,87.14,0,0,0-6.85,26,85.11,85.11,0,0,0,1,26.68,75.39,75.39,0,0,0,8.64,22.9,78.86,78.86,0,0,0,14.34,16.29,99.57,99.57,0,0,0,10.31,8.72c-4,2.51-7.73,5.3-11.43,8-9.8,7.41-19.08,19.55-14.34,33.29s20.15,17.68,33.05,18.76a134.77,134.77,0,0,0,35.13-2.71c8.72-1.59,17.6-2.31,26.44-3.15,3.66-.36,7.25-1,11-1.08A21.11,21.11,0,0,1,651.33,326a13.32,13.32,0,0,1,1.13,2l0,.1c7.5,18.4-22.1,26.47-44.63,29.16-12.64,1.51-41,3.55-60.63,2.13-.68,13.23-6.45,24.89-15.74,32.55,15.74,0,38.51-.12,51.52-.91,11.1-.67,21.88-1,33.42-2.69,40-5.13,71.64-26.27,71.64-51C688,308.74,663.92,287.06,623.13,292.79ZM567.66,164.52a43,43,0,0,1,32.74-13.18,40.7,40.7,0,0,1,30.94,13.18,45,45,0,0,1,12.39,31.86c0,14.58-4,30.82-11.47,39.83a39.59,39.59,0,0,1-31.86,13.62A41.62,41.62,0,0,1,567.46,236c-8-9.24-12.19-25.37-12.19-39.43A44.64,44.64,0,0,1,567.66,164.52Z" style="fill:#00678c"/><path d="M728.16,3.74H716.93V34h-4V3.74H701.66V0h26.5Z" style="fill:#6d6e71"/><path d="M732.91,0h6l11.52,26.64h.1L762.14,0H768V
 34h-4V5.47h-.1L751.68,34h-2.45L737,5.47h-.09V34h-4Z" style="fill:#6d6e71"/></svg>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/site-conversion.html
----------------------------------------------------------------------
diff --git a/site-conversion.html b/site-conversion.html
new file mode 100644
index 0000000..4198179
--- /dev/null
+++ b/site-conversion.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Site conversion in progress - excuse our mess...</h1></header><p>The Sling website was recently converted to use the Apache CMS for content management, and we still have to check a number of pages for correct conversion.</p>
+<p>During this transition phase, old versions of a number of pages are still present under /site, along with their converted versions at other, more specific paths.</p>
+<p>To find the new pages, you can use the site navigation or search the Web for phrases that are present in the old pages, and select results that do not contain /site/ in their URLs.</p>
+<p>If you see new pages that look good and match the contents of the corresponding old pages, feel free to let us know, via the Sling users mailing list or the <a href="https://issues.apache.org/jira/browse/SLING-2002">SLING-2002</a> issue.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[31/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/news.html
----------------------------------------------------------------------
diff --git a/news.html b/news.html
new file mode 100644
index 0000000..e734a5e
--- /dev/null
+++ b/news.html
@@ -0,0 +1,515 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>News</h1></header><ul>
+  <li>New Releases: <a href="/news/sling-launchpad-9-released.html">Apache Sling 9</a>, Apache Sling Launchpad Testing 9, Apache Sling Launchpad Testing WAR version 9, Apache Sling Launchpad Testing Fragment Bundle 2.0.12, Apache Sling Launchpad Testing Services 2.0.12, Apache Sling Launchpad Test Bundles 0.0.2, Apache Sling Launchpad Testing Services WAR 2.0.12, Apache Sling Integration Tests 1.0.4 ( June 12S , 2017 )</li>
+  <li>New Releases: Apache Sling JUnit Core 1.0.26, Testing Clients 1.1.0, JUnit Remote Test Runners 1.0.12, Tooling Support Install 1.0.4, and Tooling Support Source 1.0.4 (June 6th, 2017)</li>
+  <li>New Releases: Apache Sling Resource Inventory 1.0.8, Content Distribution Core 0.2.8, Testing Sling Mock 2.2.12, Log Tracer 1.0.4, and Commons Metrics 1.2.2 (June 6th, 2017)</li>
+  <li>New Releases: Apache Sling JCR Content Parser 1.2.2, JCR ContentLoader 2.2.4, File System Resource Provider 2.1.4, File System Resource Provider 1.4.4, Maven Sling Plugin 2.3.0 (June 2nd, 2017)</li>
+  <li>New Release: Apache Sling SLF4J Implementation (Logback) 5.0.2 (June 1st, 2017)</li>
+  <li>New Release: Apache Sling JCR Resource 3.0.2 (May 31st, 2017)</li>
+  <li>New Releases: Apache Sling JCR Content Parser 1.2.0, File System Resource Provider 2.1.2, File System Resource Provider 1.4.2, Maven Sling Plugin 2.2.2, Context-Aware Configuration SPI 1.3.2, Context-Aware Configuration Impl 1.4.2, Context-Aware Configuration Mock Plugin 1.3.0, Launchpad Content 2.0.12 (May 29th, 2017)</li>
+  <li>New Releases: Apache Sling Servlet Post 2.3.20, JCR Contentloader 2.2.2, Launchpad Base 5.6.4-2.6.18 (May 28th, 2017)</li>
+  <li>New Releases: Apache Sling Service User Mapper 1.3.2, Apache Sling JCR Base Bundle 3.0.2, Apache Sling Web Console Branding 1.0.2 and Apache Sling Engine Implementation 2.6.8 (May 22nd, 2017)</li>
+  <li>New Releases: Apache Sling Servlets Get 2.1.26 and Apache Sling Servlets Post 2.3.18 (May 19th, 2017)</li>
+  <li>New Releases: Apache Sling Commons Scheduler 2.6.2 and Apache Sling Installer Core 3.8.10 (May 18th, 2017)</li>
+  <li>New Releases: Apache Sling Models Impl 1.4.2, Testing OSGi Mock 2.3.2, OSGi Mock 1.9.6, Sling Mock 2.2.10, Sling Mock 1.9.8, Apache Sling Auth Core 1.3.24 (May 15th, 2017)</li>
+  <li>New Release: Apache Sling JUnit Scriptable Tests Provider 1.0.12 (May 12th, 2017)</li>
+  <li>New Release: Apache Sling XSS Protection Compat Bundle 1.1.0 (May 11th, 2017)</li>
+  <li>New Release: Apache Sling Scripting JavaScript 3.0.0 (May 11th, 2017)</li>
+  <li>New Releases: Apache Sling Junit Core 1.0.24, Junit Teleporter 1.0.14, and Testing Tools 1.0.16 (May 11th, 2017)</li>
+  <li>New Release: Apache Sling Adapter 2.1.10 (May 11th, 2017)</li>
+  <li>New Releases: Apache Sling Servlets Get 2.1.24, Servlets Post 2.3.16, and JCR Jackrabbit Access Manager 3.0.0 (May 11th, 2017)</li>
+  <li>New Releases: Apache Sling Healthcheck API 1.0.0 and Core 1.2.8 (May 11th, 2017)</li>
+  <li>New Releases: Apache Sling Discovery Commons 1.0.20, Base 2.0.0, Impl 1.2.12, and Oak 1.2.18 (May 11th, 2017)</li>
+  <li>New Releases: Apache Sling Scripting HTL Java Compiler 1.0.10, Apache Sling Scripting HTL Engine 1.0.34, Apache Sling Scripting HTL JS Use Provider 1.0.22 , Apache Sling Servlets Resolver 2.4.12 (May 9th, 2017)</li>
+  <li>New Release: Apache Sling Installer Core 3.8.8 (May 8th, 2017)</li>
+  <li>New Releases: Apache Sling JCR ContentLoader 2.2.0, Pax Exam Utilities 1.0.4, Apache Sling File System Resource Provider 2.1.0, File System Resource Provider 1.4.0, JCR Content Parser 1.1.0 (May 8th, 2017)</li>
+  <li>New Releases: Apache Sling XSS Protection Bundle 2.0.0, XSS Protection Compat Bundle 1.0.0, Sling Resource Resolver 1.5.24, Context-Aware Configuration Impl 1.4.0, Context-Aware Configuration Mock Plugin 1.2.0, Testing JCR Mock 1.3.0, OSGi Mock 2.3.0, Sling Mock 2.2.8 (May 5th, 2017)</li>
+  <li>New Releases: Apache Sling Models API 1.3.4 and Models Implementation 1.4.0 (May 1st, 2017)</li>
+  <li>New Release: Apache Sling JCR Installer Provider 3.1.26 (May 1st, 2017)</li>
+  <li>New Release: Apache Sling JCR Resource 3.0.0 (May 1st, 2017)</li>
+  <li>New Release: Apache Sling Sling Slingstart Maven Plugin 1.7.4, Apache Sling Service User Mapper 1.3.0, Apache Sling Scripting API 2.2.0 and Tooling Support Source 1.0.2 (May 1th, 2017)</li>
+  <li>New Release: Apache Sling Commons Johnzon 1.0.0 (April 29th, 2017)</li>
+  <li>New Release: Apache Sling Event API 1.0.0 (April 19th, 2017)</li>
+  <li>New Releases: Apache Sling Validation API and Core 1.0.0 (April 12th, 2017)</li>
+  <li>New Release: Apache Sling Testing ResourceResolver Mock 1.1.18 (April 4th, 2017)</li>
+  <li>New Release: Apache Sling JCR Jackrabbit User Manager 2.2.6 (April 3rd, 2017)</li>
+  <li>New Releases: Apache Sling Resource Resolver 1.5.22 and Apache Sling Service User Mapper 1.2.6, Apache Sling Testing Sling Mock 2.2.6, Sling Mock 1.9.6, Sling Mock Oak 1.0.2, Context-Aware Configuration Implementation 1.3.2, File System Resource Provider 2.0.0, File System Resource Provider 1.3.0 (March 30th, 2017)</li>
+  <li>New Releases: Apache Sling CAConfig SPI 1.3.0, CAConfig Impl 1.3.0, CAConfig Mock Plugin 1.1.0, Apache Sling Maven Sling Plugin 2.2.0 (March 24th, 2017)</li>
+  <li>New Releases: Apache Sling JCR Content Parser 1.0.0, Testing OSGi Mock 2.2.4, Testing OSGi Mock 1.9.4 (March 23th, 2017)</li>
+  <li>New Releases: Apache Sling Commons JSON 2.0.20, Apache Sling Karaf repoinit 0.2.0, Apache Sling Scripting JSP API Wrapper 1.0.0, Apache Sling Scripting JSP EL Wrapper 1.0.0, Apache Sling Scripting JSP 2.3.0, Apache Sling Testing PaxExam 0.0.4, Apache Sling JCR Oak Server 1.1.4, Apache Sling Scripting Thymeleaf 1.1.0, Apache Sling Resource Presence 0.0.2 (March 20th, 2017)</li>
+  <li>New Releases: Apache Sling Resource Resolver 1.5.20, Apache Sling JCR Repoinit 1.1.4 (March 13th, 2017)</li>
+  <li>New Releases: Apache Sling i18n 2.5.8, Apache Sling JCR Installer 3.1.24, Apache Sling XSS 1.0.18, Apache Sling HTL JavaScript Use Provider 1.0.20, Apache Sling Scripting Core 2.0.46, Apache Sling Health Check Core 1.2.6, Apache Sling Event 4.2.2, Apache Sling Distributed Event Admin 1.1.2 (March 8th, 2017)</li>
+  <li>New Releases: Apache Sling Content Distribution Core 0.2.6, Apache Sling Installer Health Checks 1.0.0, Apache Sling Parent 30 (Mar 6th, 2017)</li>
+  <li>New Releases: Apache Sling Scripting HTL Compiler 1.0.8, Apache Sling Scripting HTL Engine 1.0.32 (March 2nd, 2017)</li>
+  <li>New Release: Apache Sling Commons Classloader 1.4.0, Apache Sling Commons File System Classloader 1.0.6 (Mar 1st, 2017)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.5.14 (Feb 28th, 2017)</li>
+  <li>New Release: Apache Sling JUnit Tests Teleporter 1.0.12 (Feb 28th, 2017)</li>
+  <li>New Release: Apache Slingstart Maven Plugin 1.7.2 (Feb 28th, 2017)</li>
+  <li>New Release: Apache Sling Installer Core 3.8.6 (Feb 20th, 2017)</li>
+  <li>New Release: Apache Sling Content Distribution Core 0.2.4 (Feb 20th, 2017)</li>
+  <li>New Release: Apache Sling Content Distribution Core 0.2.0 (Feb 14th, 2017)</li>
+  <li>New Release: Apache Sling Servlets GET 2.1.22 (Feb 12th, 2017)</li>
+  <li>New Release: Apache Sling Resource Merger 1.3.2 (Feb 8th, 2017)</li>
+  <li>New Releases: Apache Sling DavEx Access to repositories 1.3.8, Apache Sling Simple WebDAV Access to repositories 2.3.8 (Feb 8th, 2017)</li>
+  <li>New Release: Apache Sling Launchpad Base 2.6.16 (Feb 5th, 2017)</li>
+  <li>New Release: Apache Sling Servlets GET 2.1.20 (Feb 3rd, 2017)</li>
+  <li>New Release: Apache Sling Commons ClassLoader 1.3.8 (Feb 3rd, 2017)</li>
+  <li>New Releases: Apache Sling Resource Inventory 1.0.6, Apache Sling Installer Core 3.8.2 (Jan 31st, 2017)</li>
+  <li>New Releases: Apache Sling JSP 2.2.6, Apache Sling Auth Core 1.3.24 (Jan 30th, 2017)</li>
+  <li>New Releases: Apache Sling File System Resource Provider 1.2.2, Maven Sling Plugin 2.1.10, and Apache Sling Resource Resolver 1.5.12 (Jan 23th, 2017)</li>
+  <li>New Releases: Apache Sling Tenant 1.1.0, Apache Sling Scripting HTL Compiler 1.0.6, Apache Sling Scripting HTL Java Compiler 1.0.8, Apache Sling Scripting HTL Engine 1.0.30, Apache Sling HTL Maven Plugin 1.0.6 (Jan 17th, 2017)</li>
+  <li>New Release: Apache Sling JSP 2.2.4 (Jan 16th, 2017)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.5.10 (Jan 13th, 2017)</li>
+  <li>New Releases: JUnit Core 1.0.23, JUnit Tests Teleporter 1.0.10, Testing Clients 1.0.1, Server Setup Tools 1.0.1, Testing Rules 1.0.1 (Jan 11th, 2017)</li>
+  <li>New Releases: Apache Sling Scripting HTL Compiler 1.0.4, Apache Sling Scripting HTL Java Compiler 1.0.6, Apache Sling Scripting HTL Engine 1.0.28, Apache Sling Scripting HTL Models Use Provider 1.0.6, Apache Sling Scripting HTL JS Use Provider 1.0.18, Apache Sling HTL Maven Plugin 1.0.4 (January 9th, 2017)</li>
+  <li>New Release: Apache Sling Testing Hamcrest 1.0.2 (January 7th, 2017)</li>
+  <li>New Release: Apache Sling Testing ResourceResolver Mock 1.1.16 (December 27th, 2016)</li>
+  <li>New Releases: Apache Sling Servlets Resolver 2.4.10, Apache Sling File System Classloader 1.0.4 and Apache Sling Installer Console 1.0.2 (December 24th, 2016)</li>
+  <li>New Releases: Apache Sling Resource Resolver 1.5.8, Apache Sling JCR Resource 2.9.2 and Apache Sling Slingshot Sample 0.8.0 (December 23rd, 2016)</li>
+  <li>New Releases: Apache Sling Mock 2.2.4, Sling Mock 1.9.4, JUnit Core 1.0.22, Sling Models API 1.3.2, Models Impl 1.3.8 and Apache Sling Service User Mapper 1.2.4 (December 22th, 2016)</li>
+  <li>New Releases: Apache Sling JCR Base 3.0.0 (December 20th, 2016)</li>
+  <li>New Releases: Apache Sling Dynamic Include 3.0.0 (December 20th, 2016)</li>
+  <li>New Releases: Apache Sling i18n 2.5.6, Apache Sling JCR RepoInit module 1.1.2 (December 19th, 2016)</li>
+  <li>New Releases: Apache Sling API 2.16.2 and Slingstart Maven Plugin 1.7.0 (December 18th, 2016)</li>
+  <li>New Releases: Apache Sling JCR Resource 2.9.0, Apache Sling Scripting JSP 2.2.2, Apache Sling Scripting Java 2.1.2, Apache Sling Provisioning Model 1.8.0, Apache Sling Testing JCR Mock 1.2.0, OSGi Mock 2.2.2, OSGi Mock 1.9.2, Sling Mock 2.2.2, Sling Mock 1.9.2, JUnit Core 1.0.20, Apache Sling Context-Aware Configuration API 1.1.0, Context-Aware Configuration SPI 1.2.0, Context-Aware Configuration Impl 1.2.0, Context-Aware Configuration bnd Plugin 1.0.2, Context-Aware Configuration Mock Plugin 1.0.0 (December 16th, 2016)</li>
+  <li>New Releases: Apache Sling Scripting API 2.1.12, Apache Sling Scripting Core 2.0.44 (December 15th, 2016)</li>
+  <li>New Release: Apache Sling JCR Installer 3.1.22 (December 13th, 2016)</li>
+  <li>New Release: Apache Sling Commons Metrics 1.2.0 (December 13th, 2016)</li>
+  <li>New Releases: Apache Sling OSGi Mock 2.2.0, OSGi Mock 1.9.0, Sling Mock 2.2.0, Sling Mock 1.9.0 (December 8th, 2016)</li>
+  <li>New Releases: Apache Sling API 2.16.0, Apache Sling Resource Resolver 1.5.6, Apache Sling Servlets Resolver 2.4.8, Apache Sling JCR Resource 2.8.4 (December 6th, 2016)</li>
+  <li>New Releases: Apache Sling Models bnd Plugin 1.0.0, Apache Sling Commons ClassLoader 1.3.6 (November 24th, 2016)</li>
+  <li>New Release: Apache Sling JCR Resource 2.8.2, Security 1.1.2, Models Implementation 1.3.4 and Models Jackson Exporter 1.0.4 (November 22th, 2016)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.5.4, Apache Sling Discovery Base 1.1.6, Apache Sling Discovery Commons 1.0.18, Apache Sling Discovery Impl 1.2.10 and Discovery Oak 1.2.16 (November 21st, 2016)</li>
+  <li>New Releases: Apache Sling Auth Core 1.3.22 (November 15th, 2016)</li>
+  <li>New Releases: Apache Sling JCR Base 2.4.2 (November 14th, 2016)</li>
+  <li>New Releases: Apache Sling Provisioning Model 1.7.0 and Apache Sling Slingstart Maven Plugin 1.6.0 (November 13th, 2016)</li>
+  <li>New Releases: Apache Sling JCR Repoinit 1.1.0 and Apache Sling Repoinit Parser 1.1.0 (November 12th, 2016)</li>
+  <li>New Release: Apache Sling Slingstart Maven Plugin 1.5.0 (November 11th, 2016)</li>
+  <li>New Release: Apache Sling Installer Core 3.8.0, Apache Sling Context-Aware Configuration SPI 1.1.0 and Impl 1.1.0 (November 10th, 2016)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.5.2, Apache Sling Provisioning Model 1.6.0, and Apache Sling HTL Maven Plugin 1.0.2 (November 8th, 2016)</li>
+  <li>New Release: Apache Sling Commons Mime 2.1.10 (November 7th, 2016)</li>
+  <li>New Release: Apache Sling Web Console Security Provider 1.2.0 (November 6th, 2016)</li>
+  <li>New Releases: Apache Sling Models API 1.3.0, Models Implementation 1.3.0 and Models Jackson Exporter 1.0.0 (November 3th, 2016)</li>
+  <li>New Releases: Apache Sling Launchpad Base 2.6.14, Apache Sling Provisioning Model 1.5.0, Apache Sling XSS Protection API 1.0.16 (October 31st, 2016)</li>
+  <li>New Release: Apache Sling Commons Scheduler 2.5.2 (October 27th, 2016)</li>
+  <li>New Releases: Apache Sling API 2.15.0, Apache Sling Resource Resolver 1.5.0, Apache Sling Installer Core 3.7.0 (October 25st, 2016)</li>
+  <li>New Release: Apache Sling Scripting HTL Engine 1.0.26, Apache Sling Commons Log 5.0.0, Log WebConsole 1.0.0, Apache Sling DataSource Provider 1.0.2 and Apache Sling Log Tracer 1.0.2 (October 24th, 2016)</li>
+  <li>New Release: Apache Sling Servlets Resolver 2.4.6 (October 22nd, 2016)</li>
+  <li>New Releases: Apache Sling Scripting JSP 2.2.0, Apache Sling Engine 2.6.6, Apache Sling Scripting Java 2.1.0, Apache Sling Scripting HTL JS Use Provider 1.0.16 (October 20th, 2016)</li>
+  <li>New Releases: Apache Sling Context-Aware Configuration API 1.0.0, SPI 1.0.0, Impl 1.0.0, bnd Plugin 1.0.0, Resource Builder 1.0.2, Testing Hamcrest 1.0.0 (October 18th, 2016)</li>
+  <li>New Releases: Apache Sling Scripting Core 2.0.40, Apache Sling Scripting HTL Java Compiler 1.0.4, Apache Sling Scripting HTL Engine 1.0.24 (October 17th, 2016)</li>
+  <li>New Release: Apache Sling Launchpad Base 2.6.12 (October 16th, 2016)</li>
+  <li>New Releases: Apache Sling Event 3.4.0, Apache Sling Distributed Eventing 1.1.0, and Apache Sling Rewriter 1.2.0 (October 15th, 2016)</li>
+  <li>New Release: Apache Sling Pipes 0.0.10 (October 14th, 2016)</li>
+  <li>New Releases: Apache Sling Scripting HTL Compiler 1.0.2, Apache Sling Scripting HTL Java Compiler 1.0.2, Apache Sling Scripting HTL Engine 1.0.22, Apache Sling Scripting HTL JS Use Provider 1.0.14, Apache Sling Scripting HTL Models Use Provider 1.0.4 (October 13th, 2016)</li>
+  <li>New Release: Apache Sling Testing Sling Mock 2.1.2 (October 10th, 2016)</li>
+  <li>New Release: Apache Sling i18n 2.5.4 (October 8th, 2016)</li>
+  <li>New Release: Apache Sling Oak Restrictions 1.0.0 (October 3rd, 2016)</li>
+  <li>New Releases: Apache Sling Discovery Commons 1.0.16 and Discovery Oak 1.2.14 (Sep 29th, 2016)</li>
+  <li>New Release: Apache Sling Testing Clients 1.0.0, Apache Sling Server Setup Tools 1.0.0, Apache Sling Testing Rules 1.0.0 (Sep 16th, 2016)</li>
+  <li>New Release: Apache Sling Auth Core 1.3.20, JUnit Core 1.0.18, JUnit Tests Teleporter 1.0.8, Testing Logging Mock 2.0.0, JCR Mock 1.1.16, OSGi Mock 1.8.0, OSGi Mock 2.1.0, Sling Mock 1.8.0, Sling Mock 2.1.0, Sling Mock Oak 2.0.2, Resource Builder 1.0.0, Servlet Helpers 1.1.0 (Sep 19th, 2016)</li>
+  <li>New Releases: Apache Sling Scripting HTL Compiler 1.0.0, Apache Sling Scripting HTL Java Compiler 1.0.0, Apache Sling Scripting HTL Engine 1.0.20, Apache Sling Scripting HTL JS Use Provider 1.0.12, Apache Sling Scripting HTL Models Use Provider 1.0.2, Apache Sling Scripting HTL REPL 1.0.4, Apache Sling HTL Maven Plugin 1.0.0 (Sep 8th, 2016)</li>
+  <li>New Release: Apache Sling Discovery Oak 1.2.10 (Sep 5th, 2016)</li>
+  <li>New Releases: Apache Sling RepoInit Parser 1.0.4, Apache Sling RepoInit JCR module 1.0.2, Apache Sling XSS Protection API 1.0.14 (August 29th, 2016)</li>
+  <li>New Releases: Apache Sling Auth Core 1.3.18 and Apache Sling Testing Tools 1.0.14 (August 29th, 2016)</li>
+  <li>New Releases: Apache Sling Engine 2.6.2, Apache Sling Commons Testing 2.1.0, Apache Sling API 2.14.2, Apache Sling Resource Resolver 1.4.18 (August 26th, 2016)</li>
+  <li>New Release: Apache Sling Servlets Get 2.1.18 (August 25th, 2016)</li>
+  <li>New Release: Apache Sling Engine 2.6.0, Apache Sling Feature Flags 1.2.0 (August 22nd, 2016)</li>
+  <li>New Releases: Apache Sling Background Servlets 1.0.8, Apache Sling XSS Protection API 1.0.12 (August 19th, 2016)</li>
+  <li>New Releases: Apache Sling I18n 2.5.2 and Apache Sling Hypermedia API client-side tools 1.0.0 (August 18th, 2016)</li>
+  <li>New Releases: Apache Sling Testing PaxExam 0.0.2, Apache Sling JCR Oak Server 1.1.0 (August 17th, 2016)</li>
+  <li>New Release: Apache Sling Security 1.1.0 (August 15th, 2016)</li>
+  <li>New Releases: Apache Sling i18n 2.5.0 and Apache Sling i18n 2.4.10 (August 8th, 2016)</li>
+  <li>New Releases: Apache Sling Engine 2.5.0, Apache Sling i18n 2.4.8, and Apache Sling Feature Flags 1.1.0 (August 5th, 2016)</li>
+  <li>New Release: Apache Sling Event Support 4.1.0 (August 1st, 2016)</li>
+  <li>New Releases: Apache Sling Resource Resolver 1.4.16, Apache Sling Launchpad Testing Services 2.0.10, Testing Services WAR 2.0.10, Apache Sling Integration Tests 1.0.2, Apache Sling API 2.14.0 (July 25th, 2016)</li>
+  <li>New Release: Apache Sling Commons Scheduler 2.5.0 (July 24th, 2016)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.4.14 (July 21st, 2016)</li>
+  <li>New Releases: Apache Sling Discovery Base 1.1.4, Apache Sling Discovery Impl 1.2.8, Apache Sling Discovery Oak 1.2.8 (July 17th, 2016)</li>
+  <li>New Releases: Apache Sling Testing Sling Mock 1.7.0, Sling Mock 2.0.0, Sling Mock Oak 2.0.0 (July 15th, 2016)</li>
+  <li>New Releases: Apache Sling Commons Testing 2.0.26, Apache Sling Scripting Core 2.0.38, Apache Sling Servlets Resolver 2.4.4 (July 13th, 2016)</li>
+  <li>New Releases: Apache Sling Repoinit Parser 1.0.2, Repoinit JCR 1.0.0 (July 11th, 2016)</li>
+  <li>New Release: Apache Sling API 2.12.0 (July 9th, 2016)</li>
+  <li>New Release: Apache Sling Scripting Thymeleaf 1.0.0 (July 4th, 2016)</li>
+  <li>New Release: Apache Sling Auth Core 1.3.16 (June 29th, 2016)</li>
+  <li>New Releases: Apache Sling Adapter Manager 2.1.8 (June 28th, 2016)</li>
+  <li>New Releases: Apache Sling Repository API Bundle 2.4.0, Apache Sling JCR Base Bundle 2.4.0 (June 27th, 2016)</li>
+  <li>New Release: Apache Sling Rewriter 1.1.4 (June 26th, 2016)</li>
+  <li>New Releases: Apache Sling JCR Resource 2.8.0 and Apache Sling Scripting JavaScript 2.0.30 (June 22nd, 2016)</li>
+  <li>New Releases: Apache Sling Testing JCR Mock 1.1.14, OSGi Mock 2.0.4, ResourceResolver Mock 1.1.14 (June 13th, 2016)</li>
+  <li>New Releases: Apache Sling Provisioning Model 1.4.4, and Slingstart Maven Plugin 1.4.4 (June 10th, 2016)</li>
+  <li>New Release: Apache Sling Servlets Post 2.3.12 (June 1st, 2016)</li>
+  <li>New Release: Apache Sling JSON Library 2.0.16 (May 27th, 2016)</li>
+  <li>New Release: Apache Sling Discovery API 1.0.4 (April 29th, 2016)</li>
+  <li>New Release: Apache Sling Log Tracer version 1.0.0, Apache Sling Resource Resolver 1.4.12 (April 25th, 2016)</li>
+  <li>New Release: Apache Sling Scripting JSP-Taglib version 2.2.6 (April 21st, 2016)</li>
+  <li>New Release: Apache Sling Auth Core 1.3.14 (April 12th, 2016)</li>
+  <li>New Release: Apache Sling Servlets Post (April 10th, 2016)</li>
+  <li>New Release: Apache Sling Resource Resolver (April 7th, 2016)</li>
+  <li>New Release: Apache Sling Event 4.0.2 (April 4th, 2016)</li>
+  <li>New Release: Apache Sling Discovery Commons 1.0.12 (March 29th, 2016)</li>
+  <li>New Release: Apache Sling Scripting Sightly Engine 1.0.18 (March 18th, 2016)</li>
+  <li>New Release: Apache Maven Sling Plugin 2.1.8 (March 16th, 2016)</li>
+  <li>New Release: <a href="/news/sling-ide-tooling-11-released.html">Apache Sling IDE Tooling for Eclipse 1.1.0</a> (March 14th, 2016)</li>
+  <li>New Releases: Apache Sling Resource Resolver 1.4.8, Apache Sling JCR Resource 2.7.4, and Apache Sling Installer Core 3.6.8 (March 11th, 2016)</li>
+  <li>New Releases: Apache Sling Health Check Core 1.2.4, Apache Sling Health Checks Annotations 1.0.4, Apache Sling JCR Davex 1.3.2, and Apache Sling JCR Webdav 2.3.4 (March 8th, 2016)</li>
+  <li>New Release: Apache Sling Scripting Sightly Engine 1.0.16 (March 5th, 2016)</li>
+  <li>New Release: Apache Sling Tooling Support Source 1.0.0 (March 3rd, 2016)</li>
+  <li>New Releases: Apache Sling Background Servlets Engine 1.0.6, Apache Sling Background Servlets Integration Test 1.0.0 (March 2nd, 2016)</li>
+  <li>New Releases: Apache Sling NoSQL Generic Resource Provider 1.1.0, Couchbase Client 1.0.2, Couchbase Resource Provider 1.1.0, MongoDB Resource Provider 1.1.0 (February 27th, 2016)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.4.4, Apache Sling Scripting Sightly Engine 1.0.14 (February 26th, 2016)</li>
+  <li>New Release: Apache Sling JCR Base 2.3.2 (February 23rd, 2016)</li>
+  <li>New Release: Apache Sling Internationalization Support (I18N) 2.4.6 (February 22nd, 2016)</li>
+  <li>New Releases: Apache Sling Resource Resolver 1.4.2, Apache Sling JCR Resource 2.7.2, and Apache Sling Servlets Resolver 2.4.2 (February 19th, 2016)</li>
+  <li>New Release: Apache Sling JCR Installer 3.1.18 (February 15th, 2016)</li>
+  <li>New Release: Apache Sling Resource Merger 1.3.0 (February 14th, 2016)</li>
+  <li>New Release: Apache Sling Scripting Core 2.0.36 (February 12th, 2016)</li>
+  <li>New Release: Apache Sling Slingstart Maven Plugin 1.4.2 (February 11th, 2016)</li>
+  <li>New Releases: Apache Sling API 2.11.0, Apache Sling Resource Resolver 1.4.0, Apache Sling JCR Resource 2.7.0, Apache Sling Servlets Resolver 2.4.0, Apache Sling Testing OSGi Mock 1.7.2, OSGi Mock 2.0.2, JCR Mock 1.1.12, Sling Mock 1.6.2, ResourceResolver Mock 1.1.12, Servlet Helpers 1.0.0 (February 8th, 2016)</li>
+  <li>New Release: Apache Sling Discovery Oak 1.2.6 (February 8th, 2016)</li>
+  <li>New Release: Apache Sling HApi 1.0.0 (February 5th, 2016)</li>
+  <li>New Releases: Apache Sling XSS Protection API 1.0.8, Apache Sling Scripting Sightly Engine 1.0.12 (February 2nd, 2016)</li>
+  <li>New Releases: Apache Sling Discovery Commons 1.0.10, Apache Sling Discovery Oak 1.2.4 and Apache Sling Testing Tools 1.0.12 (February 1st, 2016)</li>
+  <li>New Release: Apache Sling Thread Support 3.2.6 (January 25th, 2016)</li>
+  <li>New Release: Apache Sling Models Impl 1.2.6 (January 23st, 2016)</li>
+  <li>New Release: Apache Sling Testing Utilities 2.0.24 (January 21st, 2016)</li>
+  <li>New Releases: Apache Sling Commons Metrics 1.0.0 (January 15th, 2016)</li>
+  <li>New Releases: Apache Sling Scripting Sightly Engine 1.0.10, Apache Sling Scripting Groovy 1.0.2 (January 12th, 2016)</li>
+  <li>New Releases: Apache Sling Slingstart Maven Plugin 1.4.0, and Apache Sling Commons OSGi 2.4.0, Apache Sling Engine Implementation 2.4.6 (January 8th, 2016)</li>
+  <li>New Releases: Apache Sling Scripting JavaScript 2.0.28 (January 8th, 2016)</li>
+  <li>New Releases: Apache Sling JUnit Tests Teleporter 1.0.6, Apache Sling JUnit Core 1.0.16 (January 3rd, 2016)</li>
+  <li>New Releases: Apache Sling Settings 1.3.8, Apache Sling Launchpad Base 2.6.10, Apache Sling Scripting JSP 2.1.8, Apache Sling Commons Threads 3.2.4, Apache Sling Discovery Standalone 1.0.2, and Apache Sling Parent POM 26 (January 3rd, 2016)</li>
+  <li>New Release: Apache Sling Provisioning Model 1.4.2 (December 28th, 2015)</li>
+  <li>New Release: Apache Sling Commons Scheduler 2.4.14, Apache Sling Servlets GET 2.1.14 (December 21st, 2015)</li>
+  <li>New Release: Apache Sling Scripting Java 2.0.14 (December 20th, 2015)</li>
+  <li>New Releases: Apache Sling Models Impl 1.2.4, Sling Testing OSGi Mock 2.0.0, Apache Sling Commons Scheduler 2.4.12 (December 14th, 2015)</li>
+  <li>New Release: Apache Sling Launchpad Base 2.6.8 (December 11th, 2015)</li>
+  <li>New Release: Apache Sling Event 4.0.0 (December 1st, 2015)</li>
+  <li>New Releases: Apache Sling Discovery Commons 1.0.6, Apache Sling Discovery Base 1.1.2, Apache Sling Discovery Oak 1.2.0, and Apache Sling Discovery Impl 1.2.6 (November 30th, 2015)</li>
+  <li>New Releases: Apache Sling Thread Support 3.2.2 (November 29th, 2015)</li>
+  <li>New Releases: Apache Sling Background Servlets Engine 1.0.2, Apache Sling JUnit Core 1.0.14, Apache Sling JUnit Tests Teleporter 1.0.4 (November 23rd, 2015)</li>
+  <li>New Release: Apache Sling Security 1.0.18 (November 20th, 2015)</li>
+  <li>New Releases: Apache Sling Discovery Commons 1.0.4, Apache Sling Discovery Base 1.1.0, Apache Sling Discovery Oak 1.1.0, Apache Sling Discovery Impl 1.2.2 (November 16th, 2015)</li>
+  <li>New Releases: Apache Sling Commons Testing 2.0.22, Commons JSON 2.0.16, Maven Sling Plugin 2.1.6 (November 12th, 2015)</li>
+  <li>New Release: Apache Sling Testing OSGi Mock 1.7.0 (November 9th, 2015)</li>
+  <li>New Releases: Apache Sling Discovery Commons 1.0.2, Apache Sling Discovery Base 1.0.2, Apache Sling Discovery Oak 1.0.2, Apache Sling Discovery Impl 1.2.0 (November 5th, 2015)</li>
+  <li>New Release: Apache Sling IDE Tooling 1.0.10 (November 9th, 2015)</li>
+  <li>New Releases: Apache Sling Discovery Commons 1.0.0, Apache Sling Discovery Base 1.0.0, Apache Sling Discovery Oak 1.0.0 (November 2nd, 2015)</li>
+  <li>New Releases: Apache Sling Rewriter 1.1.2 (October 27th, 2015)</li>
+  <li>New Releases: Apache Sling Launchpad Base 2.6.6, Apache Sling Event 3.7.6, Apache Sling Provisioning Model 1.4.0, and Apache Sling Maven Launchpad Plugin 2.3.4 (October 26th, 2015)</li>
+  <li>New Releases: Apache Sling Archetype Parent version 4, Apache Sling Bundle Archetype version 1.0.4, Apache Sling JCRInstall Bundle Archetype 1.0.4, Apache Sling Initial Content Archetype 1.0.4, Apache Sling Servlet Archetype 1.0.4, Apache Sling Slingstart Archetype 1.0.0 (October 19th, 2015)</li>
+  <li>New Release: Apache Sling Auth Core 1.3.12 (October 18th, 2015)</li>
+  <li>New Release: <a href="/news/sling-launchpad-8-released.html">Apache Sling 8</a> (October 16th, 2015)</li>
+  <li>New Release: Apache Sling Maven Plugin for Supporting Bundle Development 2.1.2 (October 15th, 2015)</li>
+  <li>New Release: Apache Sling Auth Forms 1.0.8 (October 13, 2015)</li>
+  <li>New Releases: Apache Sling Scripting Sightly Engine 1.0.6, Apache Sling Scripting Sightly Models Use Provider 1.0.0, Apache Sling Scripting Sightly REPL 1.0.2, Apache Sling Scripting JavaScript 2.0.26, Apache Sling XSS Protection API 1.0.6 (October 12th, 2015)</li>
+  <li>New Releases: Apache Sling Oak Repository Server 1.0.0, Apache Sling Adapter Manager Implementation 2.1.6, Apache Sling Jackrabbit UserManager Support 2.2.4, Apache Sling Simple WebDAV Access to repositories 2.3.2, Apache Sling OSGi LogService Implementation 1.0.6, Apache Sling Engine Implementation 2.4.4, Apache Sling JSON Library 2.0.12 ( October 12th, 2015)</li>
+  <li>New Releases: Apache Sling Testing OSGi Mock 1.6.0, Sling Mock 1.6.0, Sling Mock Jackrabbit 1.0.0, Sling Mock Oak 1.0.0 (October 9th, 2015)</li>
+  <li>New Release: Apache Sling Eclipse IDE 1.0.8 (October 8th, 2015)</li>
+  <li>New Release: Apache Sling Servlets Resolver 2.3.8, and Apache Sling Parent 25 (October 5th, 2015)</li>
+  <li>New Release: Apache Sling Discovery Impl 1.1.8, and Apache Sling Distributed Event Admin 1.0.4 (September 30th, 2015)</li>
+  <li>New Releases: Apache Sling JUnit Core 1.0.12, Apache Sling JUnit Tests Teleporter 1.0.2 (September 28th, 2015)</li>
+  <li>New Releases: Apache Sling NoSQL Generic Resource Provider 1.0.0, NoSQL Couchbase Client 1.0.0, NoSQL Couchbase Resource Provider 1.0.0, NoSQL MongoDB Resource Provider 1.0.0 (September 21th, 2015)</li>
+  <li>New Releases: Apache Sling Testing ResourceResolver Mock 1.1.10, Apache Sling Rewriter 1.1.0, Apache Sling Models API 1.2.2, Apache Sling Models Impl 1.2.2 (September 15th, 2015)</li>
+  <li>New Releases: Apache Sling Testing Sling Mock 1.5.0, JCR Mock 1.1.10 (September 10th, 2015)</li>
+  <li>New Releases: Apache Sling Scripting Sightly JS Use Provider 1.0.10, Apache Sling Scripting Sightly Engine 1.0.4, Apache Sling Scripting JavaScript 2.0.24 (September 7th, 2015)</li>
+  <li>New Release: Apache Sling Slingstart Maven Plugin 1.3.6 (September 7th, 2015)</li>
+  <li>New Release: Apache Sling Launchpad Base 5.2.0-2.6.4 (September 6th, 2015)</li>
+  <li>New Release: Apache Sling Security 1.0.16 (September 4th, 2015)</li>
+  <li>New Releases: Apache Sling JCR Resource 2.5.6, and Apache Sling Slingstart Maven Plugin 1.3.4, Apache Sling Security 1.0.14 (August 31st, 2015)</li>
+  <li>New Release: Apache Sling Security 1.0.12 (August 25th, 2015)</li>
+  <li>New Releases: Apache Sling Testing OSGi Mock 1.5.0, ResourceResolver Mock 1.1.8 (August 24th, 2015)</li>
+  <li>New Release: Apache Sling Web Console Security Provider 1.1.6 (August 21st, 2015)</li>
+  <li>New Release: Apache Sling Slingstart Maven Plugin 1.3.2 (August 20th, 2015)</li>
+  <li>New Releases: Apache Sling JCR API 2.3.0, Apache Sling JCR Base 2.3.0, Apache Sling JCR Jackrabbit Server 2.3.0, Apache Sling JCR Davex 1.3.0 and Apache Sling JCR Webdav 2.3.0 (August 17th, 2015)</li>
+  <li>New Release: Apache Sling Commons Scheduler 2.4.10 (August 14th, 2015)</li>
+  <li>New Releases: Apache Sling i18n 2.4.4, Apache Sling Scripting Core 2.0.34, Apache Sling Scripting JavaScript 2.0.22, Apache Sling Scripting Sightly JS Use Provider 1.0.8 (August 13th, 2015)</li>
+  <li>New Releases: Apache Sling Commons Log 4.0.6 (August 11th, 2015)</li>
+  <li>New Releases: Apache Sling Slingstart Maven Plugin 1.3.0, and Apache Sling Provisioning Model 1.3.0 (August 7th, 2015)</li>
+  <li>New Release: Apache Sling XSS Protection Bundle 1.0.4 (August 3rd, 2015)</li>
+  <li>New Release: Apache Sling Scripting Core 2.0.32 (July 26th, 2015)</li>
+  <li>New Releases: Apache Sling Event 3.7.4 and Apache Sling Distributed Event Admin 1.0.2 (July 24th, 2015)</li>
+  <li>New Releases: Apache Sling Scripting API 2.1.8, Apache Sling Scripting Core 2.0.30, Apache Sling Scripting JavaScript 2.0.20, Apache Sling Scripting Sightly JS Use Provider 1.0.6, Apache Sling Resource Merger 1.2.10 (July 21st, 2015)</li>
+  <li>New Release: Apache Sling JCR Resource 2.5.4 (July 17th, 2015)</li>
+  <li>New Release: Apache Sling Servlets GET 2.1.12 (July 17th, 2015)</li>
+  <li>New Release: Apache Sling Event 3.7.2 (July 13th, 2015)</li>
+  <li>New Release: Apache Sling Authentication Service 1.3.10 (July 13th, 2015)</li>
+  <li>New Release: Apache Sling Scripting Thymeleaf 0.0.6 (July 10th, 2015)</li>
+  <li>New Release: Apache Sling Content Detection Support 1.0.2 (July 9th, 2015)</li>
+  <li>New Releases: Apache Sling Parent 24, Apache Sling Authentication Service 1.3.8 (July 6th, 2015)</li>
+  <li>New Release: Apache Sling Scripting JavaScript Support 2.0.18 (July 2nd, 2015)</li>
+  <li>New Release: Apache Sling Feature Flags 1.0.2 (July 1st, 2015)</li>
+  <li>New Release: Apache Sling Event 3.7.0 (June 30, 2015)</li>
+  <li>New Releases: Apache Sling Models API 1.2.0, Models Impl 1.2.0, Testing Sling Mock 1.4.0, OSGi Mock 1.4.0, JCR Mock 1.1.8 (June 27th, 2015)</li>
+  <li>New Release: Apache Sling JCR Resource Resolver 2.5.2 (June 26th, 2015)</li>
+  <li>New Release: Apache Sling Parent 23 (June 25th, 2015)</li>
+  <li>New Release: Apache Sling Log Tracer 1.0.2 (June 22th, 2015)</li>
+  <li>New Release: Apache Sling Commons FileSystem ClassLoader 1.0.2 (June 19th, 2015)</li>
+  <li>New Release: Apache Sling Default POST Servlets 2.3.8 (June 15th, 2015)</li>
+  <li>New Releases: Apache Sling Provisioning Model 1.2.0, Apache Sling Installer Core 3.6.6, Apache Sling Commons Scheduler 2.4.8, and Apache Sling Slingstart Maven Plugin 1.2.0 (June 13th, 2015)</li>
+  <li>New Release: Apache Sling Background Servlets Engine 1.0.0 (June 2nd, 2015)</li>
+  <li>New Releases: Apache Sling Testing Sling Mock 1.3.0, OSGi Mock 1.3.0, JCR Mock 1.1.6, ResourceResolver Mock 1.1.6, Logging Mock 1.0.0, Commons OSGi 2.3.0 (May 26th, 2015)</li>
+  <li>New Release: Apache Sling Installer Core 3.6.4 (May 2nd, 2015)</li>
+  <li>New Releases: Apache Sling Health Check Core 1.2.2 and Apache Sling Launchpad Base 5.0.0-2.6.0 (April 30th, 2015)</li>
+  <li>New Release: Apache Sling Discovery Impl 1.1.2 (April 28th, 2015)</li>
+  <li>New Release: Apache Sling Testing Tools 1.0.10 (April 24th, 2015)</li>
+  <li>New Releases Apache Sling i18n 2.4.2, and Apache Sling Slingstart Maven Plugin 1.1.0 (April 23rd, 2015)</li>
+  <li>New Release: Apache Sling Scripting JavaScript Support 2.0.16 (April 20th, 2015)</li>
+  <li>New Releases: Apache Sling Engine Implementation 2.4.2, Apache Sling File Installer 1.1.0 and Apache Sling Resource Inventory 1.0.4 (April 20th, 2015)</li>
+  <li>New Releases: Apache Sling Scripting Sightly JS Provider 1.0.4, Apache Sling Scripting Sightly Testing Content 1.0.4, Apache Sling Scripting Sightly Testing 1.0.4 (April 16th, 2015)</li>
+  <li>New Releases: Apache Sling JCR Installer 3.1.16 and Apache Sling Commons Testing 2.0.18 (April 13th, 2015)</li>
+  <li>New Releases: Apache Sling Security 1.0.10 (April 8th, 2015)</li>
+  <li>New Releases: Apache Sling Scripting Sightly 1.0.2, Apache Sling Scripting Sightly Testing Content 1.0.2, Apache Sling Scripting Sightly Testing 1.0.2 (April 7th, 2015)</li>
+  <li>New Releases: Apache Sling Event 3.6.0, Apache Sling Commons Log 4.0.2, and Apache Sling Commons Log Service 1.0.4 (April 7th, 2015)</li>
+  <li>New Release: Apache Sling Performance Test Utilities 1.0.2 (April 2nd, 2015)</li>
+  <li>New Releases: Apache Sling Scripting Sightly 1.0.0, Apache Sling Scripting Sightly JavaScript Use Provider 1.0.0, Apache Sling Scripting Sightly REPL 1.0.0, Apache Sling Scripting Sightly Testing Content 1.0.0 (March 30th, 2015)</li>
+  <li>New Release: Apache Sling XSS Protection Bundle 1.0.2 (March 30th, 2015)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.2.4 (March 24th, 2015)</li>
+  <li>New Release: Apache Sling XSS Protection Bundle 1.0.0 (March 20th, 2015)</li>
+  <li>New Releases: Apache Sling JCR Installer 3.1.14, Apache Sling Resource Resolver 1.2.2, and Apache Sling Service User Mapper 1.2.0 (March 16th, 2015)</li>
+  <li>New Releases: Apache Sling Launchpad Base 4.6.1-2.5.8, Apache Sling Event 3.5.4, Apache Sling Settings 1.3.6, Apache Sling Resource Merger 1.2.8, Apache Sling Slingstart Maven Plugin 1.0.4, and Apache Sling Provisioning Model 1.1.0 (March 12th, 2015)</li>
+  <li>New Release: Apache Sling Query 3.0.0 (March 11th, 2015)</li>
+  <li>New Releases: Apache Sling JCR Resource 2.5.0, and Apache Sling Resource Resolver 1.2.0 (March 5th, 2015)</li>
+  <li>New Release: Apache Sling Commons Scheduler 2.4.6 (March 4th, 2015)</li>
+  <li>New Releases: Apache Sling IDE Tooling 1.0.6, Apache Sling Service User Mapper 1.1.0, Apache Sling Health Check Core 1.2.0, and Apache Sling Health Check Web Console 1.1.2 (March 2nd, 2015)</li>
+  <li>New Release: Apache Sling URL Rewriter 0.0.2 (February 27th, 2015)</li>
+  <li>New Release: Apache Sling Security 1.0.8, Testing Sling Mock 1.2.0, OSGi Mock 1.2.0, JCR Mock 1.1.4, ResourceResolver Mock 1.1.4 (February 26th, 2015)</li>
+  <li>New Release: Apache Sling API 2.9.0 (February 24th, 2015)</li>
+  <li>New Release: Apache Sling Tooling Support Install 1.0.2 (February 23, 2015)</li>
+  <li>New Release: Apache Sling Engine Implementation 2.4.0 (February 19th, 2015)</li>
+  <li>New Releases: Apache Sling Auth Core 1.3.6, Apache Sling Resource Resolver 1.1.14, Apache Sling Eventing 3.5.2, Apache Sling Resource Merger 1.2.6, and Apache Sling Installer Factory Configuration 1.1.2 (February 16th, 2015)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.1.12 (February 2nd, 2015)</li>
+  <li>New Releases: Apache Sling Testing JCR Mock 1.1.2, ResourceResolver Mock 1.1.2, Sling Mock 1.1.2, Sling Mock Jackrabbit 0.1.2 (January 28th, 2015)</li>
+  <li>New Releases: Apache Sling JCR Resource 2.4.4, Apache Sling Launchpad Base 4.6.0-2.5.6 (January 26th, 2015)</li>
+  <li>New Release: Apache Sling JCR Resource 2.4.2 (January 23rd, 2015)</li>
+  <li>New Releases: Apache Sling Resource Resolver 1.1.10 , Apache Sling DataSource 1.0.0, and Apache Sling Launchpad Base 4.6.0-2.5.4 (January 19th, 2015)</li>
+  <li>New Release: Apache Sling Commons JSON 2.0.10 (January 17th, 2015)</li>
+  <li>New Releases: Apache Sling Installer Core 3.6.2, Apache Sling i18n 2.3.2 (January 16th, 2015)</li>
+  <li>New Release: Apache Sling JCR Resource Security 1.0.2 (January 13th, 2015)</li>
+  <li>New Releases: Apache Sling Installer Core 3.6.0, Apache Sling Installer Factory Configuration 1.1.0, and Apache Sling Launchpad Installer 1.2.2 (January 12th)</li>
+  <li>New Release: Apache Sling Eventing 3.5.0 (January 10th, 2015)</li>
+  <li>New Releases: Apache Sling JCR Resource Security 1.0.0, and Apache Sling Installer Factory Subsystems 1.0.0 (January 9th, 2015)</li>
+  <li>New Releases: Release Apache Sling JUnit Core 1.0.10, JUnit Scriptable Tests Provider 1.0.10, JUnit Remote Tests Runners 1.0.10 (December 15th, 2014)</li>
+  <li>New Releases: Apache Sling Testing Sling Mock 1.1.0, OSGi Mock 1.1.0, JCR Mock 1.1.0, ResourceResolver Mock 1.1.0, Adapter Manager 2.1.4 (December 15th, 2014)</li>
+  <li>New Releases: Apache Sling Auth Core 1.3.4 (December 2nd, 2014)</li>
+  <li>New Release: Apache Sling Resource Merger 1.2.0 (November 29th, 2014)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.1.8 (November 27th, 2014)</li>
+  <li>New Release: Apache Sling Servlets Resolver 2.3.6, and Apache Sling Engine 2.3.10 (November 18th, 2014)</li>
+  <li>New Release: Apache Sling Servlets Resolver 2.3.4 (November 14th, 2014)</li>
+  <li>New Release: Apache Sling Eventing 3.4.4 (November 7th, 2014)</li>
+  <li>New Release: Apache Sling Scripting JSP 2.1.6 (November 6th, 2014)</li>
+  <li>New Release: Apache Sling Slingstart Maven Plugin 1.0.2 (November 5th, 2014)</li>
+  <li>New Release: Apache Sling Event 3.4.2 (November 1st, 2014)</li>
+  <li>New Releases: Apache Sling Engine 2.3.8, Apache Sling Provisioning Model 1.0.0, and Apache Slingstart Maven Plugin 1.0.0 (October 27th, 2014)</li>
+  <li>New Release: Apache Sling JCR Resource Resolver 2.3.12 (October 26th, 2014)</li>
+  <li>New Releases: Apache Sling Eventing 3.4.0 and Apache Sling Distributed Event Admin 1.0.0 (October 24th, 2014)</li>
+  <li>New Release: Apache Sling JCR Resource Resolver 2.3.10 (October 22nd, 2014)</li>
+  <li>New Releases: Apache Sling Auth Core 1.3.2, Resource Resolver Mock 1.0.0, JCR Mock 1.0.0, OSGi Mock 1.0.0, Sling Mock 1.0.0, Sling Mock Jackrabbit 0.1.0 (October 21st, 2014)</li>
+  <li>New Release: Apache Sling IDE Tooling 1.0.4 ( October 18th, 2014)</li>
+  <li>New Releases: Apache Sling Settings 1.3.4, Apache Sling Discovery API 1.0.2, and Apache Sling Discovery Impl 1.0.12 (October 10th, 2014)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.1.6 (October 4th, 2014)</li>
+  <li>New Release: Apache Sling Superimposing Resource Provider 0.2.0, Apache Sling 7 (October 3th, 2014)</li>
+  <li>New Release: Apache Sling Scripting Java 2.0.12 (September 30th, 2014)</li>
+  <li>New Release: Apache Sling Resource Resolver Mock 0.3.0 (September 29th, 2014)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.1.4 (September 26, 2014)</li>
+  <li>New Releases: Apache Sling JSP Taglib 2.2.4 (September 25, 2014)</li>
+  <li>New Releases: Apache Sling DavEx Access to repositories 1.2.2, Apache Sling Adapter Manager Implementation 2.1.2, Apache Sling Scripting Core implementation 2.0.28 (September 22, 2014)</li>
+  <li>New Releases: Apache Sling JCR ContentLoader 2.1.0, and Apache Sling Web Console Security Provider 1.1.4 (September 21st, 2014)</li>
+  <li>New Releases: Apache Sling Resource Access Security 1.0.0, and Apache Sling Auth Core 1.3.0 (September 20th, 2014)</li>
+  <li>New Releases: Apache Sling Engine 2.3.6, Apache Sling JCR ClassLoader 3.2.2, Apache Sling JCR Jackrabbit Access Manager 2.1.2, Apache Sling JCR Jackrabbit Server 2.2.0, Apache Sling JCR Jackrabbit User Manager 2.2.2, Apache Sling JCR Registration 1.0.2, Apache Sling JCR Web Console 1.0.2 (September 19th, 2014)</li>
+  <li>New Release: Apache Sling Scripting Thymeleaf 0.0.4 (September 17th, 2014)</li>
+  <li>New Release: Apache Sling Resource Resolver 1.1.2 (September 16th, 2014)</li>
+  <li>New Release: Apache Sling Maven Launchpad Plugin 2.3.2 (September 15th, 2014)</li>
+  <li>New Releases: Apache Sling Filesystem Resource Provider 1.1.4, Apache Sling Launchpad Content 2.0.8, Apache Sling JSP Tag Library 2.2.2, Apache Sling Scripting Groovy Support 1.0.0 (September 12th, 2014)</li>
+  <li>New Release: Apache Sling Auth Core 1.2.0 (September 8th, 2014)</li>
+  <li>New Releases: Apache Sling Models API 1.1.0 and Apache Sling Models Impl 1.1.0 (September 5th, 2014)</li>
+  <li>New Releases: Apache Sling Crankstart Launcher (initial release), Apache Sling Health Check Annotations 1.0.2, Apache Sling Health Check Core 1.1.2, Apache Sling Health Check JUnit Bridge 1.0.2, Apache Sling Health Check Samples 1.0.6 (September 5th, 2014)</li>
+  <li>New Releases: Apache Sling Default GET Servlets 2.1.10, Apache Sling Explorer 1.0.4 (September 1st, 2014)</li>
+  <li>New Releases: Apache Sling API 2.8.0, Apache Sling JCR Resource 2.3.8, Apache Sling i18n 2.2.10, Apache Sling Installer Core 3.5.4, Apache Sling JCR Installer 3.1.8, and Apache Sling File Installer 1.0.4 (August 31st, 2014)</li>
+  <li>New Releases: Apache Sling JSON Library 2.0.8, and Apache Sling Default POST Servlets 2.3.6 (August 28th, 2014)</li>
+  <li>New Releases: Apache Sling Eventing 3.3.14, Apache Sling Commons Mime 2.1.8, and Apache Sling Commons Scheduler 2.4.4 (August 25th, 2014)</li>
+  <li>New Releases: Apache Sling Commons Mime 2.1.6, and Apache Sling Commons OSGi 2.2.2 (August 19th, 2014)</li>
+  <li>New Release: Apache Sling Tenant 1.0.2 (August 18th, 2014)</li>
+  <li>New Release: Apache Sling Query 2.0.0 (August 11th, 2014)</li>
+  <li>New Releases: Apache Sling Auth Core 1.1.8, Apache Sling Auth Selector 1.0.6, Apache Sling Form Based Authentication 1.0.6, and Apache Sling OpenID Authentication 1.0.4 (August 11th, 2014)</li>
+  <li>New Releases: Apache Sling Eventing 3.3.12 (August 8st, 2014)</li>
+  <li>New Releases: Apache Sling Parent 20 (August 1st, 2014)</li>
+  <li>New Releases: Apache Sling Discovery Impl 1.0.10 (July 29th, 2014)</li>
+  <li>New Releases: Apache Sling Engine 2.3.4 and Apache Sling Launchpad Base 4.4.1-2.5.2 (July 26th, 2014)</li>
+  <li>New Release: Apache Sling Testing Tools 1.0.8 (July 22nd, 2014)</li>
+  <li>New Release: Apache Sling Compat Servlets 1.0.2 (July 14th, 2014)</li>
+  <li>New Release: Apache Sling Service User Mapper 1.0.4 (July 14th, 2014)</li>
+  <li>New Releases: Apache Sling Settings 1.3.2, Apache Sling Scripting JSP 2.1.4, and Apache Sling Scripting Java 2.0.10 (July 13th, 2014)</li>
+  <li>New Releases: Apache Sling Authentication XING API 0.0.2, Apache Sling Authentication XING Login 0.0.2, Apache Sling Authentication XING OAuth 0.0.2 (July 11th, 2014)</li>
+  <li>New Release: Apache Sling Scripting Thymeleaf 0.0.2 (July 11th, 2014)</li>
+  <li>New Releases: Apache Sling Models API 1.0.2 and Apache Sling Models Impl 1.0.6 (July 2nd, 2014)</li>
+  <li>New Releases: Apache Sling Installer Core 3.5.2, and Apache Sling Installer Configuration Factory 1.0.14 (July 2nd, 2014)</li>
+  <li>New Release: Apache Sling Eclipse IDE 1.0.0 (July 1st, 2014)</li>
+  <li>New Release: Apache Sling Scripting JavaScript Support 2.0.14 (June 23rd, 2014)</li>
+  <li>New Releases: Apache Sling SLF4J MDC Filter 1.0.0 and Apache Sling Classloader Leak Detector 1.0.0 (June 9th, 2014)</li>
+  <li>New Release: Apache Sling Bundle JCR Install Archetype 1.0.2 (June 4th, 2014)</li>
+  <li>New Release: Apache Sling Tooling Support Install 1.0.0 (June 4th, 2014)</li>
+  <li>New Release: Apache Sling Bundle Archetype 1.0.2 (June 4th, 2014)</li>
+  <li>New Release: Apache Sling Servlet Archetype 1.0.2 (June 4th, 2014)</li>
+  <li>New Release: Apache Sling Service User Mapper 1.0.2 (June 2nd, 2014)</li>
+  <li>New Release: Apache Sling JCR ContentLoader 2.1.8 (May 23th, 2014)</li>
+  <li>New Releases: Apache Sling Commons Compiler 2.2.0, and Apache Sling Scripting JSP 2.1.0 (May 20th, 2014)</li>
+  <li>New Release: Apache Sling Archetype Parent 1 (May 14th, 2014)</li>
+  <li>New Release: Apache Sling Models Impl 1.0.4 (May 7th, 2014)</li>
+  <li>New Releases: Apache Sling Discovery Impl 1.0.8, Apache Sling Resource Inventory 1.0.2 and Apache Sling Eventing 3.3.10 (April 30th, 2014)</li>
+  <li>New Release: Apache Sling Commons ClassLoader 1.3.2 (April 17th, 2014)</li>
+  <li>New Releases: Apache Sling Resource Resolver 1.1.0, Apache Sling Featureflags 1.0.0, Apache Sling Resource-Based Discovery Service (discovery.impl) 1.0.6 (April 4th, 2014)</li>
+  <li>New Releases: Apache Sling Servlets Resolver 2.3.2, Apache Sling Servlets Get 2.1.8, Apache Sling Installer Configuration Factory 1.0.12, and Apache Sling Parent POM 19 (March 31st, 2014)</li>
+  <li>New Releases: Apache Sling API 2.7.0, Apache Sling JCR Resource 2.3.6, Apache Sling JMX Resource Provider 1.0.2, and Apache Sling Resource Merger 1.1.2 (March 24th 2014)</li>
+  <li>New Release: Apache Sling Model Implementation 1.0.2 (March 18th 2014)</li>
+  <li>New Release: Apache Sling JCR Resource 2.3.4 (March 17th, 2014)</li>
+  <li>New Release: Apache Sling Engine 2.3.2 (March 16th, 2014)</li>
+  <li>New Releases: Apache Sling i18n 2.2.8, Apache Sling JCR Resource 2.3.2, Apache Sling Discovery Impl 1.0.4, Apache Sling JCR Webdav 2.2.2, Apache Sling Resource Collection 1.0.0, Apache Sling Resource Inventory 1.0.0, Apache Sling JMX Provider 1.0.0, and Apache Sling Resource Merger 1.1.0 (March 8th, 2014)</li>
+  <li>New Releases: Apache Sling Commons Log 4.0.0, Apache Sling Security 1.0.0, Apache Sling JCR Registration 1.0.0, Apache Sling Bundle Resource 2.2.20, Apache Sling JCR Base 2.2.2, Apache Sling Eventing 3.3.6, Apache Sling Scripting API 2.1.6, Apache Sling Scripting Core 2.0.26, Apache Sling Servlets Get 2.1.6, and Apache Sling Servlets Post 2.3.4 (March 7th, 2014)</li>
+  <li>New Release: Apache Sling Maven Launchpad Plugin 2.3.0 (March 6th, 2014)</li>
+  <li>New Releases: Apache Sling API 2.6.0, and Apache Sling Engine 2.3.0 (March 3rd, 2014)</li>
+  <li>New Releases: Apache Sling Servlets Resolver 2.3.0, and Apache Sling Resource Merger 1.0.0 (February 24th, 2014)</li>
+  <li>New Releases: Apache Sling JCR API 2.2.0, Apache Sling JCR Base 2.2.0, and Apache Sling JCR Resource 2.3.0 (February 17th, 2014)</li>
+  <li>New Releases: Apache Sling Service User Mapper 1.0.0, and Apache Sling Resource Resolver Mock 0.2.0 (February 6th, 2014)</li>
+  <li>New Releases: Apache Sling Health Check Core 1.1.0, Apache Sling Health Check Webconsole 1.1.0, and Apache Sling Auth Core 1.1.6 (January 31th, 2014)</li>
+  <li>New Release: Apache Sling Pax Exam Utilities 1.0.2 (January 28th, 2014)</li>
+  <li>New Releases: Apache Sling API 2.5.0, and Apache Sling Eventing 3.3.4 (January 24th, 2014)</li>
+  <li>New Releases: Apache Sling Installer Core 3.5.0, and Apache Sling Eventing 3.3.2 (January 19th, 2014)</li>
+  <li>New Release: Apache Sling Web Console Security Provider 1.1.2 (December 17th, 2013)</li>
+  <li>New Release: Apache Sling Maven JSPC Plugin 2.0.8 (December 14th, 2013)</li>
+  <li>New Release: Apache Sling Resource-Based Discovery Service 1.0.2 (December 3rd, 2013)</li>
+  <li>New Release: Apache Sling Testing Utilities 2.0.16 (November 27th, 2013)</li>
+  <li>New Release: Apache Sling Web Console Security Provider 1.1.0 (October 28th, 2013)</li>
+  <li>New Release: Apache Sling Event 3.3.0, Apache Sling Commons Scheduler 2.4.2, Apache Sling Commons Threads 3.2.0, Apache Sling Health Check Core 1.0.6, Apache Sling Health Check JMX 1.0.6, Apache Sling JMX Resource Provider 0.6.0 (October 24th, 2013)</li>
+  <li>New Release: Apache Sling Engine 2.2.10 (October 12th, 2013)</li>
+  <li>New Release: Apache Sling Auth Core 1.1.4, Apache Sling Commons Scheduler 2.4.0, Apache Sling Resource Inventory 0.5.0, Apache Sling JMX Resource Provider 0.5.0 (October 7th, 2013)</li>
+  <li>New Releases: Apache Sling Health Check Tools: org.apache.sling.hc.core-1.0.4,org.apache.sling.hc.it-1.0.4,org.apache.sling.hc.jmx-1.0.4,org.apache.sling.hc.samples-1.0.4,org.apache.sling.hc.support-1.0.4,org.apache.sling.hc.webconsole-1.0.4,org.apache.sling.junit.healthcheck-1.0.6 (September 30th, 2013)</li>
+  <li>New Releases: Apache Sling Commons Log 3.0.2 (September 12th, 2013)</li>
+  <li>New Releases: Apache Sling Discovery Impl 1.0.0, Apache Sling Discovery Standalone 1.0.0, Apache Sling Discovery Support 1.0.0, Apache Sling Settings 1.3.0, and Apache Sling Event 3.2.0 (August 12th, 2013)</li>
+  <li>New Release: Apache Sling JCR Jackrabbit Server 2.1.2, Apache Sling Scripting JSP Taglib 2.2.0 (August 8th, 2013)</li>
+  <li>New Releases: Apache Sling JCR DavEx 1.2.0, Apache Sling JCR Webdav 2.2.0 (July 31st, 2013)</li>
+  <li>New Releases: Apache Sling Servlets Post 2.3.2, Apache Sling I18n 2.2.6, Apache Sling Commons FileSystem ClassLoader 1.0.0, Apache Sling JCR ClassLoader 3.2.0, and Apache Sling Parent POM 17 (July 18th, 2013)</li>
+  <li>New Release: Apache Sling Form Based Authentication Handler 1.0.4 (May 27th, 2013)</li>
+  <li>New Release: Apache Sling Scripting JSP 2.0.28 (May 16th, 2013)</li>
+  <li>New Releases: Apache Sling Servlets Post 2.3.0, Apache Sling JCR Resource 2.2.8 (May 10th, 2013)</li>
+  <li>New Releases: Apache Sling API 2.4.2, Apache Parent POM 16 (May 3rd, 2013)</li>
+  <li>New Releases: Apache Sling Tenant 1.0.0, Apache Sling Security 1.0.4, and Apache Sling javax.activation 0.1.0 (April 26th, 2013)</li>
+  <li>New Releases: Apache Sling API 2.4.0, Apache Sling Bundle Resource Provider 2.1.2, Apache Sling File System Resource Provider 1.1.2, Apache Sling JCR Resource 2.2.6, Apache Sling Resource Resolver 1.0.6, Apache Sling Servlets Resolver 2.2.4, Apache Sling Engine 2.2.8, and Apache Sling Auth Core 1.1.2 (April 18th, 2013)</li>
+  <li>New Releases: Apache Sling Launchpad Base 2.5.0, and Apache Sling Script Console 1.0.0 (March 4th, 2013)</li>
+  <li>New Releases: Apache Sling JCR Classloader 3.1.2, Apache Sling Commons Testing 2.0.14, Apache Sling JUnit Core 1.0.8, Apache Sling JUnit Remote 1.0.8, Apache Sling JUnit Scriptable 1.0.8, Apache Sling Testing Tools 1.0.6 (February 18th, 2013)</li>
+  <li>New Releases: Apache Sling Installer Core 3.4.6, Apache Sling Installer Configuration Factory 1.0.10, Apache Sling JCR Instaler 3.1.6, Apache Sling Parent 15, Apache Sling Fragment Extension XML 1.0.2, Apache Sling Fragment Extension WS 1.0.2, Apache Sling Fragment Extension Activation 1.0.2 (February 18th, 2013)</li>
+  <li>New Releases: Apache Sling Resource Resolver 1.0.4, Apache Sling JCR Resource 2.2.4 (February 14, 2013)</li>
+  <li>New Releases: Apache Sling Installer Core 3.4.4, Apache Sling JCR Resource 2.2.2, Apache Sling Resource Resolver 1.0.2, Apache Sling Security 1.0.2, Apache Sling Parent POM 14 (December 20th, 2012)</li>
+  <li>New Release: Apache Sling Servlet Resolver 2.2.2 (December 10th, 2012)</li>
+  <li>New Releases: Apache Sling Settings 1.2.2, Apache Sling Auth Core 1.1.0, Apache Sling Commons Logservice 1.0.2, Apache Sling Installer Core 3.4.2, Apache Sling Scripting JSP 2.0.26, Apache Sling Commons Compiler 2.1.0, Apache Sling JCR Compiler 2.1.0, Apache Sling I18n 2.2.4, Apache Sling JCR Classloader 3.1.10, Apache Sling JCR Webdav 2.1.2, Apache Sling JCR Davex 1.1.0 (November 30th, 2012)</li>
+  <li>New Releases: Apache Sling Maven Launchpad Plugin 2.2.0, Apache Sling Commons OSGi 2.2.0, Apache Sling Launchpad Installer 1.2.0, Apache Sling Rewriter 1.0.4, Apache Sling Settings 1.2.0 (November 19th, 2012)</li>
+  <li>New Releases: Apache Sling API 2.3.0, Apache Sling Bundle Resource Provider 2.1.0, Apache Sling File System Resource Provider 1.1.0, Apache Sling JCR Resource 2.2.0, Apache Sling Resource Resolver 1.0.0, Apache Sling Servlets Get 2.1.4, Apache Sling Servlets Post 2.2.0, Apache Sling Servlets Resolver 2.2.0, Apache Sling Adapter 2.1.0, Apache Sling Commons Testing 2.0.12 (November 15th, 2012)</li>
+  <li>New Release: Apache Sling JSP Taglib 2.1.8, Apache Sling Installer Core 3.4.0, Apache Sling Installer API 1.0.0, Apache Sling Installer Console 1.0.0, Apache Sling JCR Wrapper 2.0.0 (October 29th, 2012)</li>
+  <li>New Releases: Apache Sling Installer Core 3.3.8, Apache Sling Launchpad Installer 1.1.4, and Apache Sling Maven Launchpad Plugin 2.1.2 (August 19th, 2012)</li>
+  <li>New Release: Apache Sling Scripting JST 2.0.6 (August 17th, 2012)</li>
+  <li>New Releases: Apache Sling Adapter 2.0.16, Apache Sling JCR ContentLoader 2.1.6, and Apache Sling Parent POM 13 (July 9th, 2012)</li>
+  <li>Vulnerability report and fix: CVE-2012-2138 Apache Sling denial of service vulnerability (July 6th, 2012), see <a href="http://s.apache.org/CVE-2012-2138">http://s.apache.org/CVE-2012-2138</a></li>
+  <li>New Releases: Apache Sling Commons Compiler 2.0.6, Apache Sling Adapter 2.0.14, Apache Sling JCR ClassLoader 3.1.8, Apache Sling JCR Compiler 2.0.4, Apache Sling Scripting Core 2.0.24, Apache Sling Scripting Java 2.0.4, Apache Sling Scripting JSP 2.0.24, Apache Sling POST Servlets 2.1.2 (June 28th, 2012)</li>
+  <li>New Releases: Apache Sling Installer Factory Configuration 1.0.8, Apache Sling Engine 2.2.6, Apache Sling i18n 2.2.2, Apache Sling Scripting Core 2.0.22 (May 26th, 2012)</li>
+  <li>New Releases: Apache Sling Commons ClassLoader 1.3.0, Apache Sling Commons Compiler 2.0.4, Apache Sling Eventing 3.1.4, Apache Sling Installer Core 3.3.6, Apache Sling JCR Installer 3.1.4, Apache Sling JCR ClassLoader 3.1.6, Apache Sling JCR Resource 2.1.0, Apache Sling Launchpad Installer 1.1.2, Apache Sling Scripting Java 2.0.4, and Apache Sling Scripting JSP 2.0.22 (May 18th, 2012)</li>
+  <li>New Releases: Apache Sling Commons Testing 2.0.10, Apache Sling Commons Scheduler 2.3.4, Apache Sling Commons Log 3.0.0, Apache Sling Commons Log Service 1.0.0, Apache Sling Adapter 2.0.12, Apache Sling Installer Core 3.3.4, Apache Sling Launchpad API 1.1.0, Apache Sling Launchpad Installer 1.1.0, and Apache Sling Maven JSPC Plugin 2.0.6 (February 7th, 2012)</li>
+  <li>New Releases: Apache Sling API 2.2.4, Apache Sling Adapter 2.0.10, Apache Sling Scripting JSP Taglib 2.1.6, Apache Sling Rewriter 1.0.2, Apache Sling JCR ContentLoader 2.1.4, Apache Sling JCR Base 2.1.2, Apache Sling Servlet Resolver 2.1.2, and Apache Sling Security 1.0.0 (January 30th, 2012)</li>
+  <li>New Releases: Apache Sling Scripting API 2.1.4, Apache Sling Scripting Core 2.0.20, Apache Sling i18n 2.2.0, Apache Sling Installer Core 3.3.2, Apache Sling Scripting Java 2.0.2, and Apache Sling Scripting JSP 2.0.20 (January 16th, 2012)</li>
+  <li>New Releases: Apache Adapter Annotations 1.0.0 and Apache Sling Maven Sling Plugin 2.1.0 (January 14th, 2012)</li>
+  <li>New Releases: Apache Sling Settings 1.1.0, Apache Sling Commons ClassLoader 1.2.4, Apache Sling Commons Scheduler 2.3.2, Apache Sling 3.1.2, Apache Sling Installer Core 3.3.0, Apache Sling Installer Configuration Factory 1.0.4, Apache Sling Launchpad Installer 1.0.6, Apache Sling JCR Installer 3.1.2, and Apache Sling Thread Dumper 0.2.2 (January 6th, 2012)</li>
+  <li>New Release: Apache Sling Jackrabbit User Manager 2.2.0 (November 15th, 2011)</li>
+  <li>New Release: Apache Sling Maven Sling Plugin 2.0.6 (October 21st, 2011)</li>
+  <li>New Release: Apache Sling Maven Launchpad Plugin 2.1.0 (September 9th, 2011)</li>
+  <li>New Releases: Apache Sling Resource Bundle 1.0.0 and Parent POM 12</li>
+  <li>New Releases: Apache Sling API 2.2.2, Apache Sling Commons Scheduler 2.3.0, Apache Sling Commons OSGi 2.1.0, Apache Sling Scripting Core 2.0.18, Apache Sling Installer Core 3.2.2, Apache Sling Installer Configuration Factory 1.0.2, Apache Sling Launchpad Installer 1.0.4, Apache Sling File Installer 1.0.2 (August 16th, 2011)</li>
+  <li>New Release: Apache Sling Scripting JSP Support 2.0.18 (August 15th, 2011)</li>
+  <li>Released new Apache Sling Parent POM 11 (August 8, 2011)</li>
+  <li>New Release: Apache Sling Internationalization 2.1.2 (July 15, 2011)</li>
+  <li>New Releases: Apache Sling Event 3.1.0, Apache Sling OSGi Installer 3.2.0, Apache Sling JCR Installer 3.1.0, Apache Sling Installer Configuration Factory 1.0.0, Apache Sling Launchpad Installer 1.0.2 (July 13th, 2011)</li>
+  <li>New Release: Apache Sling Engine 2.2.4 (June 22nd, 2011)</li>
+  <li>New Releases: Apache Sling Launchpad Standalone Archetype 1.0.0, Launchpad Webapp Archetype 1.0.0 (May 13th, 2011)</li>
+  <li>New Releases: Apache Sling Scripting JSP Support 2.0.16, JSP Taglib 2.1.2 (May 3rd, 2011)</li>
+  <li>New releases: Apache Sling Test Tools 1.0.2, JUnit Core 1.0.6, JUnit Remote Tests Runners 1.0.6, JUnit Scriptable Tests Provider 1.0.6, Sample Integration Tests 1.0.6, Sample Server-Side Tests 1.0.6, Failing Server-Side Tests 1.0.6 (April 26th, 2011)</li>
+  <li>New releases: Apache Sling I18N 2.1.0 (April 12, 2011)</li>
+  <li>New releases: <a href="http://markmail.org/thread/hv5vd5774ofwqu6j">Apache Sling 6</a>, Apache Sling Launchpad Content 2.0.6 (March 28, 2011)</li>
+  <li>New releases: Apache Sling Launchpad Integration Tests 1.0.0, Apache Sling Launchpad Testing Services 2.0.8, Apache Sling Launchpad Testing Services WAR 2.0.8 (March 04, 2011)</li>
+  <li>New releases: Apache Sling Javascript 2.0.12 (February 26, 2011)</li>
+  <li>New releases: Apache Sling Explorer 1.0.2, Apache Sling JCR Resource 2.0.10, Apache Sling Engine 2.2.2, Apache Sling Installer IT Testing 3.1.2 (February 24, 2011)</li>
+  <li>New releases: Apache Sling Launchpad API 1.0.0, Launchpad Installer 1.0.0 Launchpad Base 2.3.0, Maven Launchpad Plugin 2.0.10, Apache Sling Commons Testing 2.0.8 (February 20, 2011)</li>
+  <li>New release: Apache Sling Servlets Get 2.1.2 (February 18, 2011)</li>
+  <li>Carl Hall added as a committer (February 18, 2011)</li>
+  <li>New releases: Apache Sling Installer Core 3.1.2, Apache Sling JCR Installer 3.0.4, and Apache Sling Event 3.0.2 (February 4, 2011)</li>
+  <li>New release: Apache Sling Scripting Core 2.0.16 (January 29, 2011)</li>
+  <li>New releases: Apache Sling JCR Resource 2.0.8, Apache Sling Engine 2.2.0, Apache Sling Bundle Resource Provider 2.0.6, Apache Sling File Resource Provider 1.0.2, Apache Sling Auth Core 1.0.6, Apache Sling Auth Selector 1.0.4 (January 28, 2011)</li>
+  <li>New releases: Apache Sling Commons Compiler 2.0.2, Apache Sling JCR Compiler 2.0.2, Apache Sling Commons Log 2.1.2, Apache Sling Event 3.0.0, Apache Sling Scripting JSP 2.0.14, Apache Sling Installer Core 3.1.0, Apache Sling JCR Installer 3.0.2 (January 21, 2011)</li>
+  <li>New release: Apache Sling Maven Launchpad Plugin 2.0.8 (December 20, 2010)</li>
+  <li>New releases: Apache Sling Commons Compiler 2.0.0, Apache Sling i18n 2.0.4, Apache Sling Commons Json 2.0.6, Apache Sling Commons Log 2.1.0, Apache Sling Scripting Java 2.0.0, Apache Sling Scripting JST 2.0.4, Apache Sling Scripting API 2.1.2, Apache Sling Scripting JSP 2.0.12, Apache Sling Scripting Javascript 2.0.10, Apache Sling JCR Compiler 2.0.0, Apache Sling Auth Core 1.0.4, Apache Sling Auth Selector 1.0.2, Apache Sling Auth Form 1.0.2, Apache Sling Auth OpenId 1.0.2, Apache Sling JCR ContentLoader 2.1.2 (December 20, 2010)</li>
+  <li>New releases: Apache Sling API 2.20, Apache Sling Adapter 2.0.8, Apache Sling Commons ClassLoader 1.2.2, Apache Sling JCR ClassLoader 3.1.4, Apache Sling Parent POM 10 (December 13, 2010)</li>
+  <li>New release: Apache Sling JCR Web Console Plugin 1.0.0 (November 16, 2010)</li>
+  <li>New releases: Apache Sling JCR Access Manager 2.1.0, JCR User Manager 2.1.0, JCR WebDAV support 2.1.0, and JCR DavEX support 1.0.0 (November 8, 2010)</li>
+  <li>New release: Apache Sling Explorer 1.0.0 (November 1, 2010)</li>
+  <li>New release: Apache Sling Scripting Core 2.0.14 (October 25, 2010)</li>
+  <li>New releases: Apache Sling Commons Threads 3.1.0, Apache Sling Event 2.4.2, Apache Sling I18N 2.0.2, Apache Sling Rewriter 1.0.0, and Apache Sling Settings 1.0.2 (October 15, 2010)</li>
+  <li>New releases: Apache Sling Installer Core 3.0.0, Apache Sling Installer File Provider 1.0.0, and Apache Sling Installer JCR Provider 3.0.0 (September 24, 2010)</li>
+  <li>New release: Apache Sling Commons Testing 2.0.6 (September 20, 2010)</li>
+  <li>New releases: Apache Sling JCR API 2.1.0, Apache Sling JCR Base 2.1.0, Apache Sling JCR Content Loader 2.1.0, Apache Sling Jackrabbit Server 2.1.0 (September 10, 2010)</li>
+  <li>New releases: Apache Sling Commons Threads 3.0.2, Apache Sling Event 2.4.0 (September 06, 2010)</li>
+  <li>New releases: Apache Sling Commons ClassLoader 1.2.0, Apache Sling JCR ClassLoader 3.1.2 (August 30, 2010)</li>
+  <li>New release: Apache Sling Web Console Branding 1.0.0, Apache Sling Web Console Security Provider 1.0.0 (August 25, 2010)</li>
+  <li>New release: Apache Sling API 2.1.0 (August 21, 2010)</li>
+  <li>New release: Apache Sling GWT Integration 3.0.0 (July 30, 2010)</li>
+  <li>New releases: Apache Sling Commons OSGi 2.0.6, Launchpad Base 2.2.0 and Maven Launchpad Plugin 2.0.6 (April 27, 2010)</li>
+  <li>New releases: Apache Sling Event 2.3.0, Apache Sling Scripting Core 2.1.0, Apache Commons MIME 2.1.4, and Apache Sling FileResource Provider 1.0.0 (March 1, 2010)</li>
+  <li>Eric Norman added as a committer (February 17, 2010)</li>
+  <li>New release: Apache Sling Sample Path Based Resource Type Provider 2.0.4 (February 22, 2010)</li>
+  <li>New releases: Apache Sling Event 2.2.0, Apache Sling Scripting API 2.1.0, and Apache Sling Thread Dumper 0.2.0 (Feburary 19, 2010)</li>
+  <li>New releases: Apache Sling JCR WebDav 2.0.8, Apache Sling JCR ContentLoader 2.0.6, Apache Sling JCR UserManager 2.0.4, Apache Sling JCR Server 2.0.6, Apache Sling JCR AccessManager 2.0.4, Apache Sling JCR Base 2.0.6 (February 17, 2010)</li>
+  <li>New releases: Apache Sling Commons ClassLoader 1.1.4, and Apache Sling JCR ClassLoader 3.1.0 (February 8, 2010)</li>
+  <li>New release: Apache Sling JCR API 2.0.6 (January 29, 2010)</li>
+  <li>New releases: Apache Sling Commons ClassLoader 1.1.2, Apache Sling Commons Scheduler 2.2.0, Apache Sling Commons Threads 3.0.0, Apache Sling Event 2.1.0, and Apache Sling Servlets Get 2.0.8 (December 21, 2009)</li>
+  <li>Apache Sling MIME type mapping support, Version 2.1.2, is released (December 15, 2009)</li>
+  <li>Justin Edelson added as a committer (December 7, 2009)</li>
+  <li>New releases: Apache Sling Commons HTML 1.0.0, Apache Sling Commons Compiler 1.0.0, Apache Sling JCR Compiler 1.0.0, Apache Sling JCR Prefs 1.0.0, and Apache Sling Scripting Java 1.0.0 (December 2, 2009)</li>
+  <li>New releases: Apache Sling Parent POM 8, Apache Sling Launchpad Base 2.1.0, Apache Sling Commons ClassLoader 1.1.0, Apache Sling JCR ClassLoader 3.0.0, Apache Sling Scripting Core 2.0.8, Apache Sling Scripting JSP 2.0.8, Apache Sling Scripting JSP Taglib 2.0.6, and Apache Sling Scripting JavaScript 2.0.6 (November 28, 2009)</li>
+  <li>New releases: Apache Sling Engine 2.0.6, Apache Sling Adapter 2.0.4, Apache Sling JCR Resource 2.0.6, Apache Sling Commons ClassLoader 1.0.0, Apache Sling Event 2.0.6, Apache Sling JCR ClassLoader 2.0.6, Apache Sling Scripting Core 2.0.6, Apache Sling Servlets Resolver 2.0.8 (October 13, 2009)</li>
+  <li>New releases: Apache Sling API 2.0.8, Apache Sling Commons HTML 0.9.0, Apache Sling Commons ClassLoader 0.9.0, Apache Sling Commons Scheduler 2.1.0, and Apache Sling Servlets Get 2.0.6 (October 02, 2009)</li>
+  <li>New releases: Apache Sling API 2.0.6 and Apache Sling JCR API 2.0.4 (August 17, 2009)</li>
+  <li>Apache Sling OSGi LogService Implementation, Version 2.0.6, is released (August 5, 2009)</li>
+  <li>Ian Boston added as a member of the PMC (July 25, 2009)</li>
+  <li>Ian Boston added as a committer (July 9, 2009)</li>
+  <li>Sling site at http://sling.apache.org live (June 29, 2009)</li>
+  <li>Mailing lists moved to dev(a)sling.apache.org and commits(a)sling.apache.org (June 29, 2009)</li>
+  <li>SVN moved to http://svn.apache.org/repos/asf/sling (June 18, 2009)</li>
+  <li>Apache Sling has graduated into a top level project! (June 17, 2009)</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/news/sling-ide-tooling-11-released.html
----------------------------------------------------------------------
diff --git a/news/sling-ide-tooling-11-released.html b/news/sling-ide-tooling-11-released.html
new file mode 100644
index 0000000..f677681
--- /dev/null
+++ b/news/sling-ide-tooling-11-released.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling IDE Tooling 1.1 released</h1></header><p>Here are some of the more noteworthy things available in this release.</p>
+<p>Sightly support ==</p>
+<p>Sightly support has been added through an additional, optional, feature named <em>Sling IDE Tools - Sightly Integration</em>.</p>
+<p>This feature provides the following enhancements:</p>
+<ul>
+  <li>auto-completion of tag named and attributes names in the HTML Editor</li>
+  <li>wizards for creating new Sightly scripts and Use Classes ( Java and Javascript )</li>
+  <li>Sightly-aware validation for HTML files</li>
+</ul>
+<p><img src="../documentation/development/ide-tooling/sightly-editor.png" alt="Sightly Editor" /></p>
+<p>These enhancements are enabled once the Sightly facet is added to a project. This is done automatically when converting a project to content project, but can also be done manually via the project properties, under the <em>Project Facets</em> page.</p>
+<p>Automatic configuration of debug classpath based on the bundles deployed on the server ==</p>
+<p>When first connecting to a Sling instance, the IDE tooling tries to bind all the sources associated with the bundles deployed on the server and retrieves the associated source artifacts using Maven. Therefore, the debug classpath is as close as possible to sources used to build the bundles deployed on the server.</p>
+<p><img src="../documentation/development/ide-tooling/debug.png" alt="Debugging" /></p>
+<p>Since a first source bundle resolution can potentially take a long time, this behaviour can be disabled from the server configuration page.</p>
+<p>Maven configurator for content-package projects ==</p>
+<p>Maven projects configured using the <code>com.day.jcr.vault:content-package-maven-plugin</code> are now automatically configured as content projects, removing the need to manually add the needed facets after importing them into Eclipse for the first time.</p>
+<p>Other minor improvements ==</p>
+<ul>
+  <li>Keyboard shortcuts now work in the content navigator</li>
+  <li>When creating a new server in the project creation wizard, sensible defaults are filled in</li>
+  <li>When connecting to a server, all support bundles are automatically installed</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/news/sling-launchpad-8-released.html
----------------------------------------------------------------------
diff --git a/news/sling-launchpad-8-released.html b/news/sling-launchpad-8-released.html
new file mode 100644
index 0000000..7ccec8e
--- /dev/null
+++ b/news/sling-launchpad-8-released.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling Launchpad 8 released</h1></header><p>Here are some of the more noteworthy things available in this release.</p>
+<h2>Switched to Apache Jackrabbit Oak</h2>
+<p>The Sling launchpad has switched from Apache Jackrabbit 2.7.5 to Apache Jackrabbit Oak 1.3.7 as a persistence engine. Apache Jackrabbit Oak is now supported in Sling with two persistence modes: SegmentNodeStore ( file-based ) and DocumentNodeStore ( MongoDB-based ). See <a href="http://jackrabbit.apache.org/oak/docs/index.html">the Oak documentation</a> for more details about the Oak persistence modes and <a href="https://sling.apache.org/documentation/the-sling-engine/the-sling-launchpad.html#launchpad-app-and-launchpad-webapp">the Sling Launchpad documentation</a> for details about configuring the persistence mode.</p>
+<h2>Provisioning model</h2>
+<p>Sling is now provisioned using a simple, text-based, model. See See <a href="http://sling.apache.org/documentation/development/slingstart.html">the Sling Provisioning Model documentation</a> for details.</p>
+<h2>Sightly</h2>
+<p>Sightly is an HTML templating language, similar to JSP (Java Server Pages) and ESP (ECMAScript Server Pages). The name “Sightly” (meaning “pleasing to the eye”) highlights its focus on keeping your markup beautiful, and thus maintainable, once made dynamic.</p>
+<p>The cornerstones of Sightly are:</p>
+<ul>
+  <li>Secure by default: Sightly automatically filters and escapes all variables being output to the presentation layer to prevent cross-site-scripting (XSS) vulnerabilities</li>
+  <li>Supports separation of concerns: The expressiveness of the Sightly template language is purposely limited, in order to make sure that a real programming language is used to express the corresponding presentation logic</li>
+  <li>Built on HTML 5: A Sightly file is itself a valid HTML5 file. All Sightly-specific syntax is expressed either within a data attribute, or within HTML text.</li>
+</ul>
+<p>See <a href="https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/master/SPECIFICATION.md">the Sightly HTML Templating Language Specification</a> for details.</p>
+<h2>Versioning support in the Resource API</h2>
+<p>The Java Resource API and the HTTP API are now able to work with versioned resources. See <a href="https://issues.apache.org/jira/browse/SLING-848">SLING-848 - Support getting versioned resources by using uri path parameters</a> for more details.</p>
+<h2>Improved testing tools</h2>
+<p>The Sling testing tools have seen numerous additions since the last release, including a family of Mock libraries known as the Sling Mocks and a Teleporter JUnit module for running Sling tests in provisioned Sling instances. For more details, see the documentation on <a href="https://sling.apache.org/documentation/bundles/org-apache-sling-junit-bundles.html">JUnit server-side testing support bundles</a> and <a href="https://sling.apache.org/documentation/development/sling-mock.html">Sling Mocks</a> .</p>
+<h2>Servlet API 3.0</h2>
+<p>Sling now uses and requires Servlet API 3.0. See <a href="https://jcp.org/en/jsr/detail?id=315">JSR 315: JavaTM Servlet 3.0 Specification</a> for details.</p>
+<h2>Performance</h2>
+<p>Various performance and concurrency improvements were added to the Engine and JCR Resource bundles.</p>
+<h2>Dependency updates</h2>
+<p>Some of the notable dependency updates are:</p>
+<ul>
+  <li>Apache Felix has been upgraded to version 5.2.0</li>
+  <li>Apache Tika has been updated to version 1.10</li>
+  <li>Apache HttpClient 4.4 has been added</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[28/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
asf-site branch created for published content


Project: http://git-wip-us.apache.org/repos/asf/sling-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/sling-site/commit/7b703652
Tree: http://git-wip-us.apache.org/repos/asf/sling-site/tree/7b703652
Diff: http://git-wip-us.apache.org/repos/asf/sling-site/diff/7b703652

Branch: refs/heads/asf-site
Commit: 7b70365281b7fc1e7e18cf7663fd9a0a4e8b104f
Parents: 0f30d49
Author: Bertrand Delacretaz <bd...@apache.org>
Authored: Mon Jun 19 14:40:27 2017 +0200
Committer: Bertrand Delacretaz <bd...@apache.org>
Committed: Mon Jun 19 14:40:27 2017 +0200

----------------------------------------------------------------------
 .gitignore                                      |     3 -
 LICENSE                                         |   201 -
 .../assets/docs/ApacheConEU08_FFT_Sling.pdf     |   Bin 1335098 -> 0 bytes
 ...cheConEU08_JCR_Meetup_Sling_Architecture.pdf |   Bin 1313207 -> 0 bytes
 .../assets/docs/ApacheConUS07_FFT_Sling.pdf     |   Bin 697022 -> 0 bytes
 OLD-from-apache-cms/assets/favicon.ico          |   Bin 1150 -> 0 bytes
 OLD-from-apache-cms/assets/icons/check.gif      |   Bin 604 -> 0 bytes
 OLD-from-apache-cms/assets/icons/forbidden.gif  |   Bin 613 -> 0 bytes
 .../assets/icons/information.gif                |   Bin 1005 -> 0 bytes
 OLD-from-apache-cms/assets/icons/warning.gif    |   Bin 569 -> 0 bytes
 OLD-from-apache-cms/assets/jquery.js            |     2 -
 OLD-from-apache-cms/lib/path.pm                 |    39 -
 OLD-from-apache-cms/lib/view.pm                 |   434 -
 OLD-from-apache-cms/templates/downloads.html    |    93 -
 OLD-from-apache-cms/templates/force-site-build  |     1 -
 OLD-from-apache-cms/templates/sidenav.mdtext    |    51 -
 .../templates/single_narrative.html             |     3 -
 OLD-from-apache-cms/templates/skeleton.html     |    69 -
 OLD-from-apache-cms/update-obr.sh               |    51 -
 README.md                                       |    41 -
 UNUSED-from-tamaya-example/bake-jenkins.sh      |     7 -
 UNUSED-from-tamaya-example/copysite.sh          |     7 -
 WEBSITE-HOWTO.txt                               |     3 -
 assets/res/css/codehilite.css                   |   429 -
 assets/res/css/site.css                         |   263 -
 assets/res/logos/apache.png                     |   Bin 12022 -> 0 bytes
 assets/res/logos/sling.png                      |   Bin 2957 -> 0 bytes
 assets/res/logos/sling.svg                      |    19 -
 bake.sh                                         |     8 -
 bin/README.md                                   |    22 -
 bin/jbake-2.5.1/LICENSE                         |    17 -
 bin/jbake-2.5.1/bin/jbake                       |    21 -
 bin/jbake-2.5.1/bin/jbake.bat                   |     2 -
 bin/jbake-2.5.1/jbake-core.jar                  |   Bin 121670 -> 0 bytes
 bin/jbake-2.5.1/lib/args4j-2.33.jar             |   Bin 155379 -> 0 bytes
 bin/jbake-2.5.1/lib/asciidoctorj-1.5.4.1.jar    |   Bin 723493 -> 0 bytes
 bin/jbake-2.5.1/lib/asm-5.0.3.jar               |   Bin 53231 -> 0 bytes
 bin/jbake-2.5.1/lib/asm-analysis-5.0.3.jar      |   Bin 20443 -> 0 bytes
 bin/jbake-2.5.1/lib/asm-tree-5.0.3.jar          |   Bin 29036 -> 0 bytes
 bin/jbake-2.5.1/lib/asm-util-5.0.3.jar          |   Bin 43296 -> 0 bytes
 .../lib/attoparser-2.0.2.RELEASE.jar            |   Bin 232783 -> 0 bytes
 .../lib/commons-collections-3.2.2.jar           |   Bin 588337 -> 0 bytes
 .../lib/commons-configuration-1.10.jar          |   Bin 362679 -> 0 bytes
 bin/jbake-2.5.1/lib/commons-io-2.5.jar          |   Bin 208700 -> 0 bytes
 bin/jbake-2.5.1/lib/commons-jexl-2.1.1.jar      |   Bin 267634 -> 0 bytes
 bin/jbake-2.5.1/lib/commons-lang-2.6.jar        |   Bin 284220 -> 0 bytes
 bin/jbake-2.5.1/lib/commons-lang3-3.4.jar       |   Bin 434678 -> 0 bytes
 bin/jbake-2.5.1/lib/commons-logging-1.1.1.jar   |   Bin 60686 -> 0 bytes
 bin/jbake-2.5.1/lib/commons-vfs2-2.1.jar        |   Bin 441849 -> 0 bytes
 .../lib/concurrentlinkedhashmap-lru-1.4.jar     |   Bin 116575 -> 0 bytes
 .../lib/freemarker-2.3.25-incubating.jar        |   Bin 1493680 -> 0 bytes
 bin/jbake-2.5.1/lib/groovy-2.4.8.jar            |   Bin 4553989 -> 0 bytes
 bin/jbake-2.5.1/lib/groovy-templates-2.4.8.jar  |   Bin 97973 -> 0 bytes
 bin/jbake-2.5.1/lib/groovy-xml-2.4.8.jar        |   Bin 215270 -> 0 bytes
 bin/jbake-2.5.1/lib/jade4j-1.2.5.jar            |   Bin 158193 -> 0 bytes
 bin/jbake-2.5.1/lib/javassist-3.20.0-GA.jar     |   Bin 750581 -> 0 bytes
 .../lib/javax.servlet-3.0.0.v201112011016.jar   |   Bin 200387 -> 0 bytes
 bin/jbake-2.5.1/lib/jcommander-1.35.jar         |   Bin 60550 -> 0 bytes
 .../lib/jetty-continuation-8.1.19.v20160209.jar |   Bin 21163 -> 0 bytes
 .../lib/jetty-http-8.1.19.v20160209.jar         |   Bin 96382 -> 0 bytes
 .../lib/jetty-io-8.1.19.v20160209.jar           |   Bin 106036 -> 0 bytes
 .../lib/jetty-server-8.1.19.v20160209.jar       |   Bin 360317 -> 0 bytes
 .../lib/jetty-util-8.1.19.v20160209.jar         |   Bin 288218 -> 0 bytes
 bin/jbake-2.5.1/lib/jna-4.0.0.jar               |   Bin 914639 -> 0 bytes
 bin/jbake-2.5.1/lib/jna-platform-4.0.0.jar      |   Bin 1218171 -> 0 bytes
 bin/jbake-2.5.1/lib/jruby-complete-1.7.25.jar   |   Bin 24365922 -> 0 bytes
 bin/jbake-2.5.1/lib/json-simple-1.1.1.jar       |   Bin 23931 -> 0 bytes
 bin/jbake-2.5.1/lib/jul-to-slf4j-1.7.22.jar     |   Bin 4596 -> 0 bytes
 bin/jbake-2.5.1/lib/logback-classic-1.1.9.jar   |   Bin 305150 -> 0 bytes
 bin/jbake-2.5.1/lib/logback-core-1.1.9.jar      |   Bin 472639 -> 0 bytes
 bin/jbake-2.5.1/lib/logback.xml                 |    21 -
 bin/jbake-2.5.1/lib/ognl-3.1.12.jar             |   Bin 235656 -> 0 bytes
 bin/jbake-2.5.1/lib/orient-commons-1.7.10.jar   |   Bin 219907 -> 0 bytes
 bin/jbake-2.5.1/lib/orientdb-core-1.7.10.jar    |   Bin 2428446 -> 0 bytes
 .../lib/orientdb-nativeos-1.7.10.jar            |   Bin 9915 -> 0 bytes
 bin/jbake-2.5.1/lib/parboiled-core-1.1.7.jar    |   Bin 186607 -> 0 bytes
 bin/jbake-2.5.1/lib/parboiled-java-1.1.7.jar    |   Bin 73350 -> 0 bytes
 bin/jbake-2.5.1/lib/pegdown-1.6.0.jar           |   Bin 80022 -> 0 bytes
 bin/jbake-2.5.1/lib/slf4j-api-1.7.22.jar        |   Bin 41077 -> 0 bytes
 bin/jbake-2.5.1/lib/snappy-java-1.1.0.1.jar     |   Bin 430239 -> 0 bytes
 bin/jbake-2.5.1/lib/thymeleaf-3.0.3.RELEASE.jar |   Bin 852367 -> 0 bytes
 bin/jbake-2.5.1/lib/unbescape-1.1.4.RELEASE.jar |   Bin 164695 -> 0 bytes
 content/.htaccess                               |     8 -
 content/apidocs/TODO.md                         |     5 -
 content/components/TODO.md                      |     5 -
 content/contributing.md                         |    20 -
 content/documentation.md                        |   202 -
 content/documentation/bundles.md                |    72 -
 .../documentation/bundles/2010-07-01_1036.png   |   Bin 35073 -> 0 bytes
 content/documentation/bundles/Slide14.jpg       |   Bin 76316 -> 0 bytes
 ...ilesystem-resources-extensions-fsresource.md |   125 -
 .../bundles/apache-sling-commons-thread-pool.md |    12 -
 .../apache-sling-eventing-and-job-handling.md   |   205 -
 ...undle-resources-extensions-bundleresource.md |    49 -
 .../documentation/bundles/caching-services.md   |    11 -
 .../bundles/commons-html-utilities.md           |     6 -
 .../bundles/configuration-installer-factory.md  |    83 -
 .../bundles/content-distribution.md             |   174 -
 .../content-loading-jcr-contentloader.md        |   281 -
 .../config-resource-lookup.png                  |   Bin 38694 -> 0 bytes
 .../context-and-config-reference.png            |   Bin 27362 -> 0 bytes
 .../context-aware-config-example.png            |   Bin 21149 -> 0 bytes
 ...ware-configuration-default-implementation.md |   100 -
 .../context-aware-configuration-override.md     |    70 -
 .../context-aware-configuration-spi.md          |    61 -
 .../context-aware-configuration.md              |   255 -
 .../illustration-sources.pptx                   |   Bin 32227 -> 0 bytes
 .../resource-inheritance.png                    |   Bin 28057 -> 0 bytes
 .../bundles/datasource-providers.md             |   123 -
 .../bundles/discovery-api-and-impl.md           |   413 -
 .../bundles/discovery-impl-split-brain.png      |   Bin 96082 -> 0 bytes
 .../documentation/bundles/dynamic-includes.md   |    27 -
 .../bundles/file-installer-provider.md          |    42 -
 .../internationalization-support-i18n.md        |   177 -
 content/documentation/bundles/jconsole-hc.jpg   |   Bin 148619 -> 0 bytes
 .../bundles/jcr-installer-provider.md           |   149 -
 content/documentation/bundles/log-tracers.md    |   243 -
 ...ging-permissions-jackrabbit-accessmanager.md |   111 -
 ...g-users-and-groups-jackrabbit-usermanager.md |   312 -
 ...ontent-the-slingpostservlet-servlets-post.md |   892 -
 .../documentation/bundles/mdc-filter-config.png |   Bin 35715 -> 0 bytes
 .../bundles/metric-web-console.png              |   Bin 97296 -> 0 bytes
 content/documentation/bundles/metrics.md        |   140 -
 .../bundles/mime-type-support-commons-mime.md   |    83 -
 content/documentation/bundles/mimetypes.png     |   Bin 78378 -> 0 bytes
 content/documentation/bundles/models.md         |   522 -
 .../bundles/nosql-resource-providers.md         |    77 -
 .../bundles/org-apache-sling-junit-bundles.md   |   213 -
 content/documentation/bundles/osgi-installer.md |    96 -
 ...iting-pipelines-org-apache-sling-rewriter.md |    99 -
 .../rendering-content-default-get-servlets.md   |    76 -
 .../bundles/repository-initialization.md        |   151 -
 .../documentation/bundles/request-analysis.md   |    62 -
 .../bundles/requesttracker-details.png          |   Bin 116868 -> 0 bytes
 .../documentation/bundles/requesttracker.png    |   Bin 121842 -> 0 bytes
 .../bundles/resource-access-security.md         |    85 -
 .../bundles/resource-editor-screenshot.png      |   Bin 525087 -> 0 bytes
 .../documentation/bundles/resource-editor.md    |    46 -
 .../documentation/bundles/resource-merger.md    |   146 -
 .../scheduler-service-commons-scheduler.md      |   236 -
 content/documentation/bundles/scripting.md      |    26 -
 .../Scripting-Thymeleaf-Class-Diagram.png       |   Bin 64028 -> 0 bytes
 ...g-Thymeleaf-Pattern-TemplateModeProvider.png |   Bin 325263 -> 0 bytes
 ...Thymeleaf-ResourceBundle-MessageResolver.png |   Bin 148700 -> 0 bytes
 .../Scripting-Thymeleaf-ScriptEngineFactory.png |   Bin 346546 -> 0 bytes
 ...hymeleaf-Sling-Resource-TemplateResolver.png |   Bin 133754 -> 0 bytes
 .../bundles/scripting/scripting-htl.md          |   462 -
 .../bundles/scripting/scripting-jsp.md          |   344 -
 .../bundles/scripting/scripting-thymeleaf.md    |    86 -
 .../bundles/scripting/sling-fling-sample.png    |   Bin 227987 -> 0 bytes
 .../documentation/bundles/servlet-helpers.md    |    83 -
 .../documentation/bundles/sling-hc-plugin.jpg   |   Bin 113760 -> 0 bytes
 .../bundles/sling-health-check-tool.md          |   224 -
 .../bundles/sling-main-servlet-config.png       |   Bin 225507 -> 0 bytes
 .../bundles/sling-oak-restrictions.md           |   103 -
 content/documentation/bundles/sling-pipes.md    |   363 -
 content/documentation/bundles/sling-query.md    |    68 -
 .../sling-settings-org-apache-sling-settings.md |    81 -
 .../bundles/subsystem-installer-factory.md      |    15 -
 content/documentation/bundles/tracer-config.png |   Bin 68924 -> 0 bytes
 content/documentation/bundles/validation.md     |   144 -
 .../bundles/web-console-extensions.md           |    41 -
 content/documentation/bundles/xml-support.md    |    11 -
 content/documentation/configuration.md          |   183 -
 content/documentation/development.md            |    57 -
 .../development/client-request-logging.md       |   119 -
 .../development/dependency-management.md        |    65 -
 .../eclipse-settings-null-analysis.png          |   Bin 189331 -> 0 bytes
 .../development/embedding-sling.md              |   136 -
 .../development/getting-and-building-sling.md   |   229 -
 content/documentation/development/hamcrest.md   |    45 -
 .../development/htl-maven-plugin.md             |     6 -
 .../documentation/development/ide-tooling.md    |   254 -
 .../ide-tooling/add-remove-projects.png         |   Bin 42031 -> 0 bytes
 .../ide-tooling/content-navigator.png           |   Bin 12498 -> 0 bytes
 .../ide-tooling/convert-to-bundle-projects.png  |   Bin 41976 -> 0 bytes
 .../development/ide-tooling/debug.png           |   Bin 83280 -> 0 bytes
 .../ide-tooling-incremental-build.md            |    35 -
 .../development/ide-tooling/jcr-properties.png  |   Bin 20510 -> 0 bytes
 .../ide-tooling/launchpad-models-directory.png  |   Bin 7214 -> 0 bytes
 .../ide-tooling/missing-scr-descriptor.png      |   Bin 33122 -> 0 bytes
 .../ide-tooling/new-bundle-project-step-1.png   |   Bin 29861 -> 0 bytes
 .../ide-tooling/new-bundle-project-step-2.png   |   Bin 28009 -> 0 bytes
 .../ide-tooling/new-bundle-project-step-3.png   |   Bin 30317 -> 0 bytes
 .../ide-tooling/new-bundle-project-step-4.png   |   Bin 37535 -> 0 bytes
 .../ide-tooling/new-content-project-step-1.png  |   Bin 28649 -> 0 bytes
 .../ide-tooling/new-content-project-step-2.png  |   Bin 23603 -> 0 bytes
 .../ide-tooling/new-content-project-step-3.png  |   Bin 37535 -> 0 bytes
 .../development/ide-tooling/new-server-2.png    |   Bin 51234 -> 0 bytes
 .../development/ide-tooling/new-server.png      |   Bin 42477 -> 0 bytes
 .../ide-tooling/repository-export.png           |   Bin 21165 -> 0 bytes
 .../ide-tooling/repository-import.png           |   Bin 27492 -> 0 bytes
 .../ide-tooling/server-definition.png           |   Bin 76595 -> 0 bytes
 .../development/ide-tooling/servers-view.png    |   Bin 11728 -> 0 bytes
 .../development/ide-tooling/sightly-editor.png  |   Bin 40387 -> 0 bytes
 .../development/ide-tooling/sling-console.png   |   Bin 29372 -> 0 bytes
 .../development/ide-tooling/tracing.png         |   Bin 46963 -> 0 bytes
 .../documentation/development/issue-tracker.md  |    70 -
 content/documentation/development/jcr-mock.md   |    76 -
 content/documentation/development/jspc.md       |     6 -
 content/documentation/development/jsr-305.md    |   115 -
 content/documentation/development/logging.md    |   566 -
 .../development/maven-archetypes.md             |    32 -
 .../development/maven-launchpad-plugin.md       |   161 -
 .../documentation/development/maven-usage.md    |    34 -
 .../development/maventipsandtricks.md           |    61 -
 .../development/monitoring-requests.md          |    14 -
 content/documentation/development/osgi-mock.md  |   189 -
 .../development/release-management.md           |   461 -
 .../development/repository-based-development.md |    81 -
 .../development/resourceresolver-mock.md        |    51 -
 .../development/sling-datasource-config.png     |   Bin 69485 -> 0 bytes
 .../development/sling-log-support.png           |   Bin 92565 -> 0 bytes
 content/documentation/development/sling-mock.md |   451 -
 .../development/sling-requests-plugin.jpg       |   Bin 142155 -> 0 bytes
 .../development/sling-testing-tools.md          |   165 -
 content/documentation/development/sling.md      |     6 -
 content/documentation/development/slingstart.md |   346 -
 .../documentation/development/version-policy.md |   211 -
 content/documentation/getting-started.md        |    23 -
 .../discover-sling-in-15-minutes.md             |   213 -
 content/documentation/legacy/logging.md         |   112 -
 content/documentation/pax-exam-utils.md         |    14 -
 content/documentation/the-sling-engine.md       |    33 -
 .../documentation/the-sling-engine/adapters.md  |   157 -
 .../the-sling-engine/architecture.md            |    98 -
 .../the-sling-engine/authentication.md          |    29 -
 .../the-sling-engine/authentication.png         |   Bin 27987 -> 0 bytes
 .../authentication/authentication-actors.md     |    63 -
 .../authentication-authenticationhandler.md     |    56 -
 .../form-based-authenticationhandler.md         |   121 -
 .../openid-authenticationhandler.md             |   134 -
 .../authentication/authentication-framework.md  |   122 -
 .../authentication/authentication-tasks.md      |    24 -
 .../default-mapping-and-rendering.md            |     7 -
 .../the-sling-engine/dispatching-requests.md    |    77 -
 .../the-sling-engine/errorhandling.md           |    69 -
 .../the-sling-engine/featureflags.md            |    27 -
 .../documentation/the-sling-engine/filters.md   |   122 -
 .../mappings-for-resource-resolution.md         |   223 -
 .../the-sling-engine/request-listeners.md       |    35 -
 .../the-sling-engine/request-parameters.md      |    84 -
 .../documentation/the-sling-engine/resources.md |   180 -
 .../the-sling-engine/service-authentication.md  |   255 -
 .../documentation/the-sling-engine/servlets.md  |   193 -
 .../the-sling-engine/sling-api-crud-support.md  |   172 -
 .../the-sling-engine/sling-properties.md        |    51 -
 .../the-sling-engine/the-sling-launchpad.md     |   190 -
 .../the-sling-engine/url-decomposition.md       |    49 -
 .../url-to-script-resolution.md                 |   108 -
 .../wrap-or-decorate-resources.md               |    39 -
 content/documentation/tutorials-how-tos.md      |     7 -
 .../tutorials-how-tos/46-line-blog.md           |   159 -
 .../tutorials-how-tos/DropBoxEventHandler.java  |    82 -
 .../tutorials-how-tos/DropBoxService.java       |    53 -
 ...getting-resources-and-properties-in-sling.md |    98 -
 .../how-to-manage-events-in-sling.md            |   208 -
 .../installing-and-upgrading-bundles.md         |    76 -
 .../tutorials-how-tos/jackrabbit-persistence.md |   112 -
 .../testing-sling-based-applications.md         |   119 -
 content/downloads.cgi                           |     6 -
 content/downloads.md                            |    37 -
 content/errors/403.md                           |    27 -
 content/errors/404.md                           |    28 -
 content/favicon.ico                             |   Bin 1150 -> 0 bytes
 content/guides.md                               |    23 -
 content/index.md                                |   148 -
 content/javadoc-io.md                           |    10 -
 content/links.md                                |    51 -
 content/media.md                                |    11 -
 content/news.md                                 |   490 -
 content/news/sling-ide-tooling-11-released.md   |    42 -
 content/news/sling-launchpad-8-released.md      |    59 -
 content/news/sling-launchpad-9-released.md      |    88 -
 content/obr/obr2html.xsl                        |   119 -
 content/obr/repository.xml                      |     7 -
 content/obr/sling.xml                           | 18233 -----------------
 content/obr/thirdparty.xml                      |   673 -
 content/old-stuff.md                            |    10 -
 content/plugins.md                              |    10 -
 content/project-information.md                  |   129 -
 ...pache-sling-community-roles-and-processes.md |    56 -
 content/project-information/project-license.md  |     9 -
 content/project-information/project-team.md     |    86 -
 content/project-information/security.md         |    33 -
 content/site-conversion.md                      |    17 -
 content/xsd/bundle-list-1.0.0.xsd               |    86 -
 conversion-scripts/fix-front-matter.sh          |    27 -
 conversion-scripts/refs-conversion-script.sh    |    10 -
 conversion-scripts/replace-refs.sh              |   143 -
 jbake.properties                                |    20 -
 .../AI/Sling Logo - All Styles.ai               |   802 -
 .../PDF/Sling Logo - All Styles.pdf             |   881 -
 .../PNG/Sling Logo - Close Crop@1x.png          |   Bin 9992 -> 0 bytes
 .../PNG/Sling Logo - Close Crop@2x.png          |   Bin 21038 -> 0 bytes
 .../PNG/Sling Logo - Close Crop@3x.png          |   Bin 47967 -> 0 bytes
 .../PNG/Sling Logo - With URL@1x.png            |   Bin 15575 -> 0 bytes
 .../PNG/Sling Logo - With URL@2x.png            |   Bin 34834 -> 0 bytes
 .../PNG/Sling Logo - With URL@3x.png            |   Bin 79153 -> 0 bytes
 .../PNG/Sling Logo@1x.png                       |   Bin 11401 -> 0 bytes
 .../PNG/Sling Logo@2x.png                       |   Bin 25989 -> 0 bytes
 .../PNG/Sling Logo@3x.png                       |   Bin 60660 -> 0 bytes
 .../SVG/Sling Logo - Close Crop.svg             |     1 -
 .../SVG/Sling Logo - With URL.svg               |     1 -
 .../SVG/Sling Logo.svg                          |     1 -
 .../favicon.ico                                 |   Bin 1150 -> 0 bytes
 .../microsling-bw.svg                           |  1032 -
 .../microsling.svg                              |  1799 --
 .../sling-bw.svg                                |  1020 -
 .../sling.svg                                   |  1774 --
 templates/archive.tpl                           |    36 -
 templates/date-brick.tpl                        |     7 -
 templates/downloads.tpl                         |   364 -
 templates/feed.tpl                              |    40 -
 templates/footer.tpl                            |    10 -
 templates/header.tpl                            |    21 -
 templates/index.tpl                             |    19 -
 templates/layout/main.tpl                       |    21 -
 templates/menu.tpl                              |    53 -
 templates/page.tpl                              |    16 -
 templates/post-brick.tpl                        |    30 -
 templates/post.tpl                              |     7 -
 templates/project.tpl                           |    55 -
 templates/sitemap.tpl                           |     9 -
 templates/tags-brick.tpl                        |    10 -
 templates/tags.tpl                              |     5 -
 326 files changed, 47044 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index cb3364f..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# JBake folders
-output
-cache

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 8dada3e..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed 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.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/assets/docs/ApacheConEU08_FFT_Sling.pdf
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/assets/docs/ApacheConEU08_FFT_Sling.pdf b/OLD-from-apache-cms/assets/docs/ApacheConEU08_FFT_Sling.pdf
deleted file mode 100644
index 1fb56b1..0000000
Binary files a/OLD-from-apache-cms/assets/docs/ApacheConEU08_FFT_Sling.pdf and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/assets/docs/ApacheConEU08_JCR_Meetup_Sling_Architecture.pdf
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/assets/docs/ApacheConEU08_JCR_Meetup_Sling_Architecture.pdf b/OLD-from-apache-cms/assets/docs/ApacheConEU08_JCR_Meetup_Sling_Architecture.pdf
deleted file mode 100644
index 103671a..0000000
Binary files a/OLD-from-apache-cms/assets/docs/ApacheConEU08_JCR_Meetup_Sling_Architecture.pdf and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/assets/docs/ApacheConUS07_FFT_Sling.pdf
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/assets/docs/ApacheConUS07_FFT_Sling.pdf b/OLD-from-apache-cms/assets/docs/ApacheConUS07_FFT_Sling.pdf
deleted file mode 100644
index d9a5f38..0000000
Binary files a/OLD-from-apache-cms/assets/docs/ApacheConUS07_FFT_Sling.pdf and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/assets/favicon.ico
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/assets/favicon.ico b/OLD-from-apache-cms/assets/favicon.ico
deleted file mode 100644
index a36e242..0000000
Binary files a/OLD-from-apache-cms/assets/favicon.ico and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/assets/icons/check.gif
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/assets/icons/check.gif b/OLD-from-apache-cms/assets/icons/check.gif
deleted file mode 100644
index 28bb999..0000000
Binary files a/OLD-from-apache-cms/assets/icons/check.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/assets/icons/forbidden.gif
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/assets/icons/forbidden.gif b/OLD-from-apache-cms/assets/icons/forbidden.gif
deleted file mode 100644
index c6acdec..0000000
Binary files a/OLD-from-apache-cms/assets/icons/forbidden.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/assets/icons/information.gif
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/assets/icons/information.gif b/OLD-from-apache-cms/assets/icons/information.gif
deleted file mode 100644
index 072ab66..0000000
Binary files a/OLD-from-apache-cms/assets/icons/information.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/assets/icons/warning.gif
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/assets/icons/warning.gif b/OLD-from-apache-cms/assets/icons/warning.gif
deleted file mode 100644
index 1c9883b..0000000
Binary files a/OLD-from-apache-cms/assets/icons/warning.gif and /dev/null differ


[19/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/client-request-logging.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/client-request-logging.md b/content/documentation/development/client-request-logging.md
deleted file mode 100644
index 341fd41..0000000
--- a/content/documentation/development/client-request-logging.md
+++ /dev/null
@@ -1,119 +0,0 @@
-title=Client Request Logging		
-type=page
-status=published
-~~~~~~
-
-Sling provides extensive support to log various information at the before and after processing client requests. Out of the box, there are two loggers configured to write traditional `access.log` and `request.log` files. In addition more logging can be configured by providing OSGi Configuration Admin configuration.
-
-## Traditional access.log and request.log Files
-
-In the Web Console configure the *Apache Sling Request Logger* (PID=`org.apache.sling.engine.impl.log.RequestLogger`) configuration.
-
-In the Sling Web Console locate the Configuration page (`/system/console/configMgr`) and click on the pencil (edit) symbol on the *Apache Sling Request Logger* line. This opens a dialog to enter the configuration whose properties can be configured as follows:
-
-| Parameter | Name | Default | Description |
-|--|--|--|--|
-| Request Log Name | `request.log.output` | logs/request.log | Name of the destination for the request log. The request log logs the entry and exit of each request into and out of the system together with the entry time, exit time, time to process the request, a request counter as well as the final status code and response content type. In terms of Request Logger Service formats, request entry is logged with the format `%t [%R] -> %m %U%q %H` and request exit is logged with the format `%{end}t [%R] <- %s %{Content-Type}o %Dms` (See [Log Format Specification](#log-format-specification) below for the specification of the format). |
-| Request Log Type | `request.log.outputtype` | Logger Name | Type of Logger named with the Logger Name parameter. See [Log Output](#log-output) below |
-| Enable Request Log | `request.log.enabled` | true | Whether to enable Request logging or not. |
-| Access Log Name | `access.log.output` | logs/access.log | Name of the destination for the access log. The access log writes an entry for each request as the request terminates using the NCSA extended/combined log format. In terms of Request Logger Service formats the access log is written with the format `%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"` (See [Log Format Specification](#log-format-specification) below for the specification of the format). |
-| Access Log Type | `access.log.outputtype` | Logger Name | Type of Logger named with the Logger Name parameter. See [Log Output](#log-output) below |
-| Enable Access Log | `access.log.enabled` | true | Whether to enable Access logging or not. |
-
-
-#### Log Output
-
-Output of client request logging is defined by the Logger Type and and Logger Name where the use of the Logger Name property value depends on the Logger Type:
-
-| Type Code | Type Name | Description and Logger Name interpretation |
-|--|--|--|
-| 0 | Logger Name | Writes the logging information to a named SLF4J Logger. The name of the Logger is defined in the Logger Name property. The actual destination of the log messages is defined the SLF4J configuration for the named logger |
-| 1 | File Name | Writes the logging information to a file, on message per line. The file name is an absolute or relative path name. If the name is relative, it is resolved against the `sling.home` framework property. |
-| 2 | RequestLog Service | Sends the logging information to a `org.apache.sling.engine.RequestLog` service whose `requestlog.name` service registration property must the same as the value of the Logger Name property. If more than one such service is registered, all services are called. If no such service is registered, the logging information is discarded. Using RequestLog Services is deprecated. |
-
-**Note:** If logging to a file, this file is not rotated and/or limited by size. To get log file rotation use the *Logger Name* logging type. See [Rotating Logger Files](#rotating-logger-files) below for information on how logging information can be written to rotated and/or size limited files.
-
-
-### Additional per-request Loggers
-
-In the Web Console create *Apache Sling Customizable Request Data Logger* (Factory PID=`org.apache.sling.engine.impl.log.RequestLoggerService`) configuration.
-
-In the Sling Web Console locate the Configuration page (`/system/console/configMgr`) and click on the `+` (plus) symbol on the *Apache Sling Customizable Request Data Logger* line. This opens a dialog to enter the configuration whose properties can be configured as follows:
-
-| Parameter | Name | Default | Description |
-|--|--|--|--|
-| Log Format | `request.log.service.format` | &nbsp; | Specify a [Log Format Specification](#log-format-specification) as described below |
-| Logger Type | `request.log.service.outputtype` | Logger Name/`0` | Type of Logger named with the Logger Name parameter. See [Log Output](#log-output) above |
-| Logger Name | `request.log.service.output` | `request.log` | Name of the Logger to be used. See [Log Output](#log-output) above |
-| Request Entry | `request.log.service.onentry` | unchecked/`false` | Whether logger is called at the start of request processing or after processing the request |
-
-
-
-#### Log Format Specification
-
-The log format specification generally follows the [definition of the `format` argument for the `LogFormat` and `CustomLog` directives of Apache httpd](http://httpd.apache.org/docs/current/mod/mod_log_config.html). Please see the below table for details and exceptions.
-
-The characteristics of the request itself are logged by placing "%" directives in the format string, which are replaced in the log file by the values as follows:
-
-| Format String | Description |
-|--|--|
-| `%%`  | The percent sign |
-| `%a`  | Remote IP-address |
-| `%A`  | Local IP-address |
-| `%B`  | Size of response in bytes, excluding HTTP headers. |
-| `%b`  | Size of response in bytes, excluding HTTP headers. In CLF format, i.e. a '-' rather than a 0 when no bytes are sent. |
-| `%{Foobar}C`  | The contents of cookie Foobar in the request sent to the server. |
-| `%D`  | The time taken to serve the request, in milliseconds. Please note that this deviates from the Apache httpd format. |
-| `%{FOOBAR}e`  |Not supported in Sling; prints nothing. |
-| `%f`  | The absolute path of the resolved resource |
-| `%h`  | Remote host |
-| `%H`  | The request protocol |
-| `%{Foobar}i`  | The contents of Foobar: header line(s) in the request sent to the server. |
-| `%k`  | Not supported in Sling; prints nothing. |
-| `%l`  | Not supported in Sling; prints nothing. |
-| `%m`  | The request method |
-| `%{Foobar}n`  | Not supported in Sling; prints nothing. |
-| `%{Foobar}o`  | The contents of Foobar: header line(s) in the reply. |
-| `%p`  | The canonical port of the server serving the request |
-| `%{format}p`  | The canonical port of the server serving the request or the server's actual port or the client's actual port. Valid formats are canonical, local, or remote. |
-| `%P`  | The *name of the thread* ~~process ID of the child~~ that serviced the request. |
-| `%{format}P`  | Same as `%P`; the `format` parameter is ignored. |
-| `%q`  | The query string (prepended with a ? if a query string exists, otherwise an empty string) |
-| `%r`  | First line of request |
-| `%R`  | The number of requests processed by Sling since the last start. |
-| `%s`  | Status. |
-| `%t`  | Time the request was received (standard english format) |
-| `%{format}t`  | Same as `%t`; the `format` parameter is ignored unless it is the literal value *end* indicating to use the time of request terminating (instead of the time of request receipt). |
-| `%T`  | The time taken to serve the request, in seconds. |
-| `%u`  | Remote user (from auth; may be bogus if return status (%s) is 401) |
-| `%U`  | The URL path requested, not including any query string. |
-| `%v`  | The canonical ServerName of the server serving the request. |
-| `%V`  | Same as `%v`. |
-| `%X`  | Not supported in Sling; prints nothing. |
-| `%I`  | Not supported in Sling; prints nothing. |
-| `%O`  | Not supported in Sling; prints nothing. |
-
-
-**Modifiers**
-
-Particular items can be restricted to print only for responses with specific HTTP status codes by placing a comma-separated list of status codes immediately following the "%". For example, "%400,501{User-agent}i" logs User-agent on 400 errors and 501 errors only. For other status codes, the literal string "-" will be logged. The status code list may be preceded by a "!" to indicate negation: "%!200,304,302{Referer}i" logs Referer on all requests that do not return one of the three specified codes.
-
-The Apache httpd modifiers "<" and ">"  are not supported by Sling and currently ignored.
-
-
-**Some Notes**
-
-For security reasons non-printable and other special characters in %C, %i and %o are escaped using uhhhh sequences, where hhhh stands for the hexadecimal representation of the character's unicode value. Exceptions from this rule are " and , which are escaped by prepending a backslash, and all whitespace characters, which are written in their Java-style notation (n, t, etc).
-
-
-#### Rotating Logger Files
-
-If you want to write the request (and access) logging information into a rotated file, you should configure as follows:
-
-1. Configure the Log Type to be a *Logger Name* and some usefull Logger name. For example `clientlog.request`.
-1. Create an *Apache Sling Logging Logger Configuration* for this Logger name according to [Logging Configuration]({{ refs.logging-logger-configuration.path }}) with the following setup:
-* Allow message at INFO (Information) level to be logged which is the level used by the request loggers
-* Define the appropriate log file name, for example `logs/client.request.log`
-* Use only `{5`} as the message format because request logger messages are generally already fully formated with required timestamp etc.
-* Add any Logger names used for the client request log configuration, `clientlog.request` in the example above, to the Logger field. By clicking on the `+` (plus) button you may add more than a single logger name whose messages are written to this file.
-1. Optionally, you may create an *Apache Sling Logging Writer Configuration* for the log file defined in the previous step to better control rotation setup. See [Log Writer Configuration]({{ refs.logging-log-writer-configuration.path }}) for full details.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/dependency-management.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/dependency-management.md b/content/documentation/development/dependency-management.md
deleted file mode 100644
index 88b9e1d..0000000
--- a/content/documentation/development/dependency-management.md
+++ /dev/null
@@ -1,65 +0,0 @@
-title=Dependency Management		
-type=page
-status=published
-~~~~~~
-Excerpt: This page is about how we do and don't do dependency management in the Sling project.
-
-This page is about how we do and don't do dependency management in the Sling project.
-
-[TOC]
-
-## Introduction
-
-Maven provides projects with a nice feature called dependency management. In Sling we currently use this feature to declare the non-Sling dependencies of modules in the parent POM.
-
-After working with this some time and trying to upgrade various dependencies we came to the conclusion, that using Maven dependency management is not going to work out in the Sling scenario.
-
-Why ? Maven's dependency management is aimed at traditional applicaitons, which are glued together statically during the build process. For this environment, dependency management is a great thing, since it guarantees a consistent application setup.
-
-In a dynamic application setup as provided by an OSGi framework the static dependency management of Maven does not help. Actually it even causes problematic results with respect to backwards compatibility when using the Maven Bundle Plugin.
-
-Why's that ? The Maven Bundle Plugin constructs the bundle manifest and will generally automatically create the Import-Package header. If the providing library (from Maven's dependency list) has `Export-Package` headers with version numbers, the Maven Bundle Plugin will insert the respective version numbers for the `Import-Package` header. This makes perfect sense, because it is expected, that the artifact required at least the given package version.
-
-When using Maven dependency management, upgrading any dependencies in the parent POM may automatically increase the version numbers in the `Import-Package` headers and hence may cause any such bundle to fail resolution if deployed - even though the bundle did not change and does not really require a new version of the dependency.
-
-So, in the case of OSGi deployment, Maven's dependency management actually interferes with the OSGi framework dependency management.
-
-As a consequence, I suggest we drop dependency management in the parent POM (almost) completely and state the following.
-
-
-## Dependency Management
-
-
-The parent POM only does dependency management for build time dependencies and a very limited number of API dependencies used Sling wide. These dependencies are:
-
-* All plugin dependencies. That is `pluginManagement` is still used. Maven plugins are actually build time dependencies and therefore have no influence on the actual deployment.
-* Dependencies on commonly used testing environment helpers. Test helper classes are also build time dependencies used to run the unit and integration tests. As such, they may well be managed.
-* Sling makes a small number of assumptions about the environment, which we codify in the dependency management: The minimum version number of the OSGi specificaiton used, the Servlet API version and the JCR API version.
-
-The `<dependencyManagement>` element currently contains the following managed dependencies:
-
-| Group ID | Artifact ID | Version | Scope |
-|--|--|--|--|
-| org.osgi | org.osgi.core | 4.1.0 | provided |
-| org.osgi | org.osgi.compendium | 4.1.0 | provided |
-| javax.servlet | servlet-api | 2.4 | provided |
-| javax.jcr | jcr | 1.0 | provided |
-| org.slf4j | slf4j-api | 1.5.2 | provided |
-| org.apache.felix | org.apache.felix.scr.annotations | 1.9.8 | provided |
-| biz.aQute | bndlib | 1.50.0 | provided |
-| junit | junit | 4.11 | test |
-| org.jmock | jmock-junit4 | 2.5.1 | test |
-| org.slf4j | slf4j-simple | 1.5.2 | test |
-
-
-All dependencies per module are fully described in terms of version, scope, and classifier by the respective project.
-
-The version of the module dependency should be selected according to the following rule: The lowest version providing the functionality required by the module (or bundle). By required functionality we bascially mean provided API.
-
-Generally there is a constant flow of releases of dependent libraries. In general this should not cause the dependency version number of a using module to be increased. There is one exception though: If the fixed library version contains a bug fix, which has an influence on the operation of the module, an increase in the version number is indicated and should also be applied.
-
-
-## References
-
-* [Dependency Management](http://markmail.org/message/5qpmsukdk4mdacdy) -- Discussion thread about reducing Maven Dependency Management
-* [SLING-811](https://issues.apache.org/jira/browse/SLING-811) -- The actual issue governing the changes to the project descriptors

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/eclipse-settings-null-analysis.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/eclipse-settings-null-analysis.png b/content/documentation/development/eclipse-settings-null-analysis.png
deleted file mode 100644
index 036c5ad..0000000
Binary files a/content/documentation/development/eclipse-settings-null-analysis.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/embedding-sling.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/embedding-sling.md b/content/documentation/development/embedding-sling.md
deleted file mode 100644
index e07672b..0000000
--- a/content/documentation/development/embedding-sling.md
+++ /dev/null
@@ -1,136 +0,0 @@
-title=Embedding Sling		
-type=page
-status=published
-~~~~~~
-translation_pending: true
-
-The Sling Launchpad Launcher can be used to embed the OSGi Framework startup in your own Java application. This functionality is implemented in the [Sling Launchpad Base project](http://svn.apache.org/repos/asf/sling/trunk/launchpad/base). This project has the following features:
-
-* Builds three artifacts:
-* A standalone Java Application with the artifact qualifier *app*; e.g. `org.apache.sling.launchpad.base-2.3.1-SNAPSHOT-app.jar`
-* A Web Application with the artifact qualifier *webapp*; e.g `org.apache.sling.launchpad.base-2.3.1-SNAPSHOT-wepabb.war`
-* The primary artifact without an artifact qualifier; e.g. `org.apache.sling.launchpad.base-2.3.1-SNAPSHOT.jar`
-* Embeds the OSGi Framework (Apache Felix) in the primary artifact
-* Encapsulates the OSGi Framework in its own `URLClassLoader`
-* Supports Framework restart
-* Allows propagation of core setup functionality depending on the environment
-
-This page is about the internal details of the Sling Launchpad Base module. To get an outside overview of the Sling Launchpad you might want to refer to [The Sling Launchpad](/documentation/the-sling-engine/the-sling-launchpad.html) page.
-
-# Structure
-
-The Launcher is based on three parts:
-
-1. The external part which is for example the standalone Java application's main class or the servlet deployed into the servlet container
-1. The internal part which is the OSGi framework plus helper classes to control the framework and run initial installations
-1. The bridging part, which contains API common to the external and internal part.
-
-The external part uses the bridging part to create the class loader into which the internal part is loaded. The bidirectional communication between the external and internal part is implement based on two interfaces:
-
-* The `Launcher` interface is implemented by a class in the internal part which is loaded through the bridge class loader. This interface allows setting, starting and stopping of the framework.
-* The `Notifiable` interface is implemented by a class in the external part which instance is handed to the `Launcher` instance. This interface allows the internal part to communicate back to the external part, most notably to indicate that the framework has been stopped from within or that the framework has been updated and must be restarted.
-
-
-# The Bridging Part
-
-The bridging part is provided in the `org.apache.sling.launchpad.base.shared` package:
-
-| Class | Description |
-|--|--|
-| Launcher | The interface implemented by the internal class matching the external class being called to start/stop the framework. |
-| LauncherClassLoader | `URLClassLoader` implementing the class loader to load the internal part (along with the OSGi framework). This class loader only delegates to the parent class loader any packages not contained in the launchpad library (primary artifact of the Launchpad Base project). |
-| Loader | Helper class to find the launchpad library and to create the `LauncherClassLoader` with that library. This class is also used to actually load the `Launcher` implementation to be called from the external launcher class. |
-| Notifiable | The interface implemented in the external part and handed over to the internal part. |
-| SharedConstants | Constants naming various properties and classes. |
-
-
-# The Internal Part
-
-The main class from the internal class directly used is [`Sling`](http://svn.apache.org/repos/asf/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/Sling.java) which instantiated to start the OSGi Framework. This class is responsible for setting up the environment to finally start the OSGi Framework:
-
-* Read the `sling.properties` file
-* Ensure the presence of the JMX MBeanServer service
-* Execute the bootstrap installations, updates and uninstallations
-
-The [`SlingFelix`](http://svn.apache.org/repos/asf/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/base/impl/SlingFelix.java) class extends the Apache Felix `Felix` class which is the actual OSGi framework implementation. We extend the class to be able to notify the `Notifiable` implementation and update the OSGi framework from within the OSGi framework by updating the system bundle.
-
-
-## The External Part
-
-The external part is comprised of a main class started from the environment -- main class of the Java applicaction or the servlet deployed in the servlet container -- and a corresponding delegate class located inside of the launchpad base library. This delegate class is instantiated by the `Loader` loading from the `LauncherClassLoader`.
-
-
-### Standalone Java Application
-
-The standalone Java Application makes use of three classes:
-
-| Class | Description |
-|--|--|
-| Main | This is the main class whose `main` method is called by the Java VM. This class is itself the `Notifiable` and finds the `sling.home` location from the environment (command line parameter, system property, or environment variable). |
-| MainDelegate | This class is loaded by the `Loader` from the `LauncherClassLoader` to actually complete the initial setup before creating the `Sling` class to start the framework. |
-| ControlListener | This class is used by the `Main` class to open a server socket to be able to start and stop Sling as a server. This class allows for starting (opening the server socket), status check (connecting to the socket asking for status), and shutdown (connecting to the socket asking for shutdown). |
-
-At the moment these classes are not directly suitable to be embedded in an existing application (or custom application launcher framework) unless that embedding prepares command line arguments in a `String[]({{ refs..path }})` and calls the `Main.main` method. To allow for custom embeddings or extensions, the work distributions between the three classes should be refactored.
-
-### Embedding the Standalone Java Application
-
-<div class="info">
-This work is being done as part of [SLING-2225](https://issues.apache.org/jira/browse/SLING-2225) and will be officially available with the Sling Launchpad Base release 2.4.0. If you want to use the embedding before the release, you have to checkout the source from [SVN|http://svn.apache.org/repos/asf/sling/trunk/launchpad/base] and build yourself.
-</div>
-
-To embedd the Sling Launcher in an application, the `Main` class is extended from. To manage the launcher, the following API is available:
-
-| Method | Description |
-|--|--|
-| `Main(Map<String, String> properties)` | Instantiates the Main class with the given configuration properties. These are properties which are used directly as overwrites to the configurations in the `sling.properties` file. There is no more conversion applied. |
-| `doControlCommand()` | Before starting the application for the first time, this method can be called to handle any control command action. |
-| `doStart()` | Starts the Sling Application using the provided configuration properties as overwrites. Also these properties (or the `sling.home` system property or the `SLING_HOME` environment variable are analyzed to get the value for the `sling.home` setting. |
-| `doStop()` | Stops the application started by the `doStart()` method. |
-
-
-#### External Control of the Sling Application
-
-By using control actions, the Sling Launcher may open or connect to a control port to communicate. The `doControlAction()` method together with the `sling.control.action` and `sling.control.socket` properties is able to setup this communication.
-
-The `sling.control.socket` is either a normal port number, in which case the connection is opened on the `localhost` interface (usually 127.0.0.1). Otheriwse, it may also be a value of the form *host:port* where *host* is the name or IP address of the interface to connect to and port is the port number. For security reasons it is suggested to not use an interface which is available remotely. So the default of `localhost` is usually the best choice.
-
-The `sling.control.action` takes either of three values:
-
-| Value | Description |
-|--|--|
-| `start` | Starts a server socket as specified by the `sling.control.socket` property. If the socket cannot be bound to (because the port is in use) an error message is printed. Using the `start` action only makes sense when starting the application. |
-| `stop` | The `stop` action is used to stop a running application. For that a connection is opened to the server running on the socket specified by the `sling.control.socket` property. On this connection the server is instructed to shut down. After executing the `stop` action, the Java application should be terminated. |
-| `status` | The `status` action is used to check the status of a running application. For that a connection is opened to the server running on the socket specified by the `sling.control.socket` property. On this connection the server is queried on its status. After executing the `stop` action, the Java application should be terminated. |
-
-
-#### Conversion of Commandline Arguments to Properties
-
-When calling the Main class through the JVM startup the `Main.main(String[]({{ refs..path }}) args)` methods is called which reads the command line arguments and converts them into a `Map<String, String>` suitable for the constructore as follows:
-
-| Command Line Argument | Properties Entry |
-|--|--|
-| start | sling.control.action = "start" |
-| status | sling.control.action = "status" |
-| stop | sling.control.action = "stop" |
-| -c slinghome | sling.home = slinghome |
-| -l loglevel | org.apache.sling.commons.log.level = loglevel |
-| -f logfile | org.apache.sling.commons.log.file = logfile |
-| -a address | This command line argument is not supported yet and thus ignored |
-| -p port | org.osgi.service.http.port = port |
-| -j [ host ":" ] port | sling.control.socket = [ host ":" ] port |
-| -h | This command line option is handled directly and not converted into the map |
-
-
-### Web Application
-
-The web application makes use of 5 classes:
-
-| Class | Description |
-|--|--|
-| SlingServlet | This is the servlet registered in the `web.xml` descriptor and loaded by the servlet container into which Sling is deplyoed. This class locates the `sling.home` folder and loads the `SlingServletDelagate` to actually launch the framework. |
-| SlingSessionListener | This -- somewhat inappropriately named -- class is registered as a listener by the Sling `web.xml` descriptor. It is called by the servlet container and forwards events to the `SlingHttpSessionListenerDelegate` which in turn forwards the events to the respective Servlet API listener services registered in the OSGi Framework. |
-| SlingBridge | Simple extension of the `Sling` class which registers the system bundle's `BundleContext` as a servlet context attribute of the Sling web application. This allows Servlet Container bridging to properly work. |
-| SlingHttpSessionListenerDelegate | This class is loaded by the `LauncherClassLoader` called from the `SlingSessionListener`. It is called by the `SlingSessionListener` to forward servlet container events to registered Servlet API listener services. |
-| SlingServletDelegate | This class is loaded by the `Loader` from the `LauncherClassLoader` to actually complete the initial setup before creating the `SlingBridge` class to start the framework. |
-
-At the moment these classes, particularly the `SlingServlet` class, are not particularly well suited to be extended by a servlet slightly modifying the launcher.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/getting-and-building-sling.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/getting-and-building-sling.md b/content/documentation/development/getting-and-building-sling.md
deleted file mode 100644
index 331c7d4..0000000
--- a/content/documentation/development/getting-and-building-sling.md
+++ /dev/null
@@ -1,229 +0,0 @@
-title=Getting and Building Sling		
-type=page
-status=published
-~~~~~~
-Excerpt: A quick guide for getting the Sling source, then building and running the resulting Sling instance; either without or with Eclipse.
-
-A quick guide for getting the Sling source, then building and running the resulting Sling instance; either without or with Eclipse.
-
-Note that you don't *have* to build Sling yourself, if you don't need the bleeding-edge stuff you can get prebuilt
-binaries from the [Downloads](/downloads.cgi) page. But those, especially the launchpad runnable jar, are not released often
-and can be outdated. In case of doubt, build it yourself as shown below or ask on the Sling users mailing list.
-
-Rather than performing a full build of Sling, which can take 5-10 minutes on a recent computer once your local Maven
-repository is up to date, it's recommended to build only the launchpad and the modules you're interested in.
-
-## tl:dr - Short form build + run instructions
-If you already have the required svn (or Git, see below) client, JDK and Maven installed, here's the short form recipe:
-
-$ svn co http://svn.apache.org/repos/asf/sling/trunk sling
-$ cd sling  # you are now in the Sling SVN checkout
-$ cd launchpad/builder
-$ mvn --update-snapshots clean install
-$ export DBG="-Xmx384M -agentlib:jdwp..." # (see below)
-$ java $DBG -jar target/org.apache.sling.launchpad... # (see below)
-
-With this, Sling should be running at http://localhost:8080 with remote debugging active as per the $DBG variable.
-
-## Prerequisites
-
-Before you begin, you need to have the following tools installed on your system:
-
-* Java 7 or higher
-* [Maven](http://maven.apache.org) 3.0.4 or later; enforced by the Sling parent pom
-
-If you want to set up Eclipse (not required to build Sling) you'll also need the following installed:
-
-* Eclipse (tested with 3.4.2 and 3.5.x on Win XP, SP3, 3.6.x on Win7, 3.7 on MacOS X 10.6); just a plain installation of the platform runtime binary and the JDT will be adequate (you can install the IDE for Java Developers for convenience)
-* M2Eclipse plugin for Eclipse (sonatype) -> [instructions](http://m2eclipse.sonatype.org/installing-m2eclipse.html)
-* [Subversive plugin](http://www.polarion.com/products/svn/subversive.php) or [Subclipse-plugin](http://subclipse.tigris.org) for Eclipse
-
-## Environment Setup
-
-The full build process requires quite a lot of resources, so you may run into limits. The following hints should show you what to setup before building Sling.
-
-### Environment Variable Space
-
-* *Problem* - Build aborts when trying to launch the integration tests with the message
-
-[INFO] Error while executing forked tests.; nested exception is org.apache.maven.surefire.booter.shade.org.codehaus.plexus.util.cli.CommandLineException: Error setting up environmental variables
-
-error=12, Not enough space
-
-This problem is caused by insufficient swap space. When running the integration tests in the `launchpad/testing` modules, a process is launched by calling the `exec` system call. This copies the process (copy-on-write, though) and thus allocates as much virtual memory as is owned by the parent process. This may fail if swap space is exhausted.
-
-* *Platform* - OpenSolaris
-* *Fix* - If this issue persists you will need to check your system requirements and configuration with regard to swap, before taking action - if necessary.
-
-## Configuring Maven
-
-See [MavenTipsAndTricks](/documentation/development/maventipsandtricks.html).
-
-## Getting the Sling Source
-
-### From the Apache Sling Subversion repository
-
-0. Install an svn client if needed.
-
-1. Checkout Sling from the Subversion repository
-
-$ svn checkout http://svn.apache.org/repos/asf/sling/trunk sling
-
-### From the Sling GitHub mirror
-
-0. Install a Git client if needed
-
-1. Checkout Sling from the GitHub mirror
-
-$ git clone https://github.com/apache/sling.git
-
-### With Eclipse Subversive or Subclipse
-First note how simple the above SVN instructions are...but if you *really* want to do this, read on.
-
-If you use the Subversive plugin make sure you have installed the "Subversive Integration for M2Eclipse Project" which can be found under the following Eclipse update site: [http://community.polarion.com/projects/subversive/download/integrations/update-site/](http://community.polarion.com/projects/subversive/download/integrations/update-site/).
-
-Also, make sure that you have installed either the "Maven SCM handler for Subclipse" or the "Maven SCM handler for Subversive".
-
-#### Create a new workspace
-
-It's best to create a new workspace for the sling project:
-
-1. List item
-1. Menu: File->Switch Workspace->Other...
-1. Enter a path for the new workspace and click OK
-1. When Eclipse has restarted it's time to adjust some configs
-1. Turn off automatic build (Menu: Project->Build Automatically)
-1. Go to menu: Eclipse->Preferences, in the preferences dialog select Java -> Compiler -> Errors/Warnings
-1. Expand the "Deprecated and restricted API" and change "Forbidden references (access rules)" from "Error" to "Warning"
-1. Click OK
-
-#### Checkout the Sling source
-
-1. Menu: File->Import
-1. In the Import wizard select Maven->"Check out Maven Projects from SCM"
-1. Click next
-1. In the "SCM URL" field pick "SVN" and enter the url "http://svn.apache.org/repos/asf/sling/trunk"
-1. Click Finish
-
-Eclipse will now start to download the source and import the Maven projects. You might encounter some "Problem Occured" dialogs about "An internal error...", but just click OK on those and let Eclipse continue with the import. Be warned: This could take some time (it was 30 minutes on my laptop)!
-
-Possibly something in sling-builder might get a bit messed up (I didn't experience that problem, but Pontus reported it) then you can simply fix it with revert:
-
-1. In the Project Explorer right-click on the "sling-builder" project and select the Team->Revert... menu
-1. A couple of changes will be displayed
-1. Click OK
-
-## Building Sling
-
-Note that while it's possible to build the full Sling reactor, using the pom.xml file in the root of the SVN checkout, this should
-rarely be needed and it's almost always too slow to consider. Instead, it's recommended to build the Sling launchpad and the module
-you're working on at the moment.
-
-### With the Maven command line tool
-
-1. Enter the directory, then do a build and local install of the launchpad (below are unix/linux commands, slightly different under windows)
-
-$ cd sling
-$ cd launchpad/builder # you are now in the Sling SVN checkout
-$ mvn --update-snapshots clean install
-$ java -jar target/org.apache.sling.launchpad-*.jar -c test -f -
-
-<div class="note">
-When starting Sling inside the `launchpad/builder` folder you should not use the default Sling Home folder name `sling` because this folder is removed when running `mvn clean`.
-</div>
-
-Messages should now be printed to the console which is being used as the "log file";
-
-* the `-f` command line option is set to `-`, indicating the use of standard output as the log file.
-* the `-c sling` command line option instructs Sling to use the `sling` directory in the current directory for its data store, which is the Apache Felix bundle archive, the Jackrabbit repository data and configuration. You may also specify another directory here, either a relative or absolute path name (See also [Configuration](/documentation/configuration.html) for more information).
-* Use the `-h` option to see the list of flags and options.
-
-After all messages have been printed you should be able to open the Sling Management Console by pointing your web browser at [http://localhost:8080/system/console](http://localhost:8080/system/console). You will be prompted for a user name and password. Enter `admin` for both the user name and the password (this may be set on the *Configuration* page later). From this console, you can manage the installed bundles, modify configuration objects, dump a configuration status and see some system information.
-
-To stop Sling, just hit `Ctrl-C` in the console or click the *Stop* button on the *System Information* page of the Sling Management Console.
-
-2. Enter the directory of the bundle you're working on, then do a build and deploy the bundle to the running launchpad instance
-
-$ cd sling
-$ cd bundles/servlets/get
-$ mvn clean install sling:install
-
-The Maven build command ensure that:
-
-* the bundle is installed in the local repository so future builds of the launchpad module will pick it up ( `install` goal )
-* the bundle is deployed in the running launchpad instance ( `sling:install` goal )
-
-### With M2Eclipse
-
-1. Make sure you're in the Java perspective (Menu: Window->Open Perspective)
-1. Menu: Run->Run Configurations...
-1. In the Run Configurationa dialog right-click on "Maven Build" and select "New"
-1. Change Name to "Build Sling"
-1. Click "Browse Workspace..." and select "sling-builder"
-1. Enter "clean install" in Goals
-1. Click on the JRE tab
-1. Enter "-Xmx256m -XX:MaxPermSize=128m" in "VM arguments"
-1. Click Apply
-1. Click Run
-
-### Alternative setup in Eclipse without M2Eclipse plugin
-
-In the case that you do not want to use the M2Eclipse plugin there's another setup that lets you have the automatic build turned on:
-
-1. Checkout the whole sling trunk (with subversive or the subclipse plugin) from SVN to a single project
-1. Then manually add all `src/main/java` and `src/test/java` of the bundles to the project as source folders
-1. Add all required libraries to the build path
-1. Now you can build either in Eclipse or even better use "mvn clean install" on the command line
-
-If you use "mvn clean install" to build Sling be sure you have set MAVEN_OPTS to "-Xmx384m -XX:PermSize=256m" otherwise you will probably get OutOfmemory errors.
-
-Congratulations ! You should now have a running Sling instance, that you can start playing around with.
-
-## Further Tips and Tricks
-
-
-### Debug Sling in Eclipse
-
-You can use remote debugging to debug Sling in Eclipse, here's a little How-To
-
-1. start Sling from the command line with
-
-java -Xmx384M -agentlib:jdwp=transport=dt_socket,address=30303,server=y,suspend=n -jar org.apache.sling.launchpad.app-6-SNAPSHOT.jar
-
-1. Open Menu Run-> Debug configurations
-1. Right-click on "Remote Java Applications"
-1. Choose "New"
-1. In the "Connect" tab choose the Eclipse Sling Project for the field "Project" with the browse button
-1. Let the Connection type be "Standard (Socket Attach)"
-1. The host should be localhost
-1. Set the Port to 30303
-1. On the source tab click the "Add" button
-1. Select "Java Project"
-1. Select all Sling projects and click OK
-1. Click "Debug"
-
-Now you should be able to set breakpoints, evaluate properties, and so on as usual.
-
-### Debug Maven Tests in Eclipse
-
-In the same way as you can debug the sling app, you are also able to debug a maven test. Just run the maven tests like this
-
-mvn -Dmaven.surefire.debug test
-
-
-The tests will automatically pause and await a remote debugger on port 5005. You can then attach to the running tests using Eclipse. You can setup a "Remote Java Application" launch configuration via the menu command "Run" > "Open Debug Dialog..." (see above).
-For more information on this see the [Maven Surefire Docu](http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html).
-
-
-### Simple way to develop new bundle in Eclipse for Sling
-
-The easiest way that I found is to create a new folder in the existing Eclipse workspace. After that you can follow these steps:
-
-* Start by copying and adapting an existing Sling pom.xml (eg. the pom.xml from the espblog sample)
-* Generate the Eclipse project files using mvn eclipse:eclipse
-* Choose File/Import in Eclipse and select "Existing projects into workspace"
-* Now you can create, edit and compile the files in Eclipse
-* To create the bundle jar and install it, just use the command line "mvn clean install" in the project directory
-* If you have a running Sling app you can install the bundle from the command line with "mvn -P autoInstallBundle clean install -Dsling.url=http://localhost:8080/system/console"
-
-If adding dependencies to the poms, run mvn eclipse:eclipse again and refresh the project in Eclipse. Debugging works as described above.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/hamcrest.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/hamcrest.md b/content/documentation/development/hamcrest.md
deleted file mode 100644
index d8e9bf9..0000000
--- a/content/documentation/development/hamcrest.md
+++ /dev/null
@@ -1,45 +0,0 @@
-title=Hamcrest Integration		
-type=page
-status=published
-~~~~~~
-
-Deeper integration with the [Hamcrest matcher library](http://hamcrest.org/).
-
-## Maven Dependency
-
-<div class="warning">
-This module has not yet been officially released.
-</div>
-
-#!xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.testing.hamcrest</artifactId>
-</dependency>
-
-Note that to keep the classpath consistent this module has all its dependencies marked as `provided`. It relies on your own project to define the needed dependencies, such as `org.hamcrest:hamcrest-core` and `org.apache.sling:org.apache.sling.api` .
-
-See latest version on the [downloads page](/downloads.cgi).
-
-## Usage
-
-The class `org.apache.sling.testing.hamcrest.ResourceMatchers` is the main entry point. It contains static methods that can be used to create assertions.
-
-#!java
-import static org.apache.sling.hamcrest.ResourceMatchers.resourceOfType;
-
-public void MyServiceTest {
-
-@Test
-public void loadResources() {
-Map<String, Object> expectedProperties = /* define properties */;
-Resource resource = /* load resource */ null;
-
-assertThat(resource, resourceOfType("my/app"));
-assertThat(resource, hasChildren("header", "body"));
-assertThat(resource, resourceWithProps(expectedProperties));
-}
-
-}
-
-The Slingshot sample application uses these matchers, see [SetupServiceTest.java](http://svn.apache.org/repos/asf/sling/trunk/samples/slingshot/src/test/java/org/apache/sling/sample/slingshot/impl/SetupServiceTest.java) for an example.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/htl-maven-plugin.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/htl-maven-plugin.md b/content/documentation/development/htl-maven-plugin.md
deleted file mode 100644
index 1a95313..0000000
--- a/content/documentation/development/htl-maven-plugin.md
+++ /dev/null
@@ -1,6 +0,0 @@
-title=HTL Maven Plugin		
-type=page
-status=published
-~~~~~~
-
-See [Apache Sling HTL Maven Plugin documentation](http://sling.apache.org/components/htl-maven-plugin/).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling.md b/content/documentation/development/ide-tooling.md
deleted file mode 100644
index d50807c..0000000
--- a/content/documentation/development/ide-tooling.md
+++ /dev/null
@@ -1,254 +0,0 @@
-title=Sling IDE tooling for Eclipse User Guide		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-## Installation
-
-### Prerequisites
-
-The Sling IDE tooling is known to work on Eclipse versions starting with Kepler. There is a hard dependency on the faceted project framework, which is included in the 'Eclipse IDE for Java EE Developers' package. If you're running a different package, you can always install it from the main Eclipse update site.
-
-There is an optional feature which relies on m2eclipse. For now it only provides project creation wizards, so if you don't use Maven you don't have to install it.
-
-### Update site installation
-
-The links to the latest update site, including a permanent URL which stays up to date, are listed on the [Download page, IDE tooling section](/downloads.cgi#ide-tooling). There are also zipped update sites available from download for the latest version.
-
-### Building from source
-
-The update sites are provided as a convenience for users that do not wish to build the project themselves. Building the project only requires a recent Maven installation. The project can be checked out, either [from trunk for the latest development version](https://svn.apache.org/repos/asf/sling/trunk/tooling/ide/) or [from a tag for released versions](https://svn.apache.org/repos/asf/sling/tags/), where the tags names have the format sling-ide-tooling-$VERSION. Once you have obtained the source code, it is enough to run
-
-mvn package
-
-and you will find a p2 update site in p2update/target/repository .
-
-## Overall concepts
-
-The Sling IDE tooling is centered around the Server and Module concepts. A Server is an instance of a Sling launchpad - or derivatives such as Adobe CQ - on which you deploy your content. A Module is a collection of resources grouped into a single Eclipse project which can be deployed onto one or multiple Servers.
-
-The tooling supports content and bundle modules. Content modules typically hold Sling scripts - like JSP and ESP files, client-side resources like CSS and JSS file, but also arbitrary repository content. Content modules support support setting JCR properties for nodes other than nodes and files, based on the FileVault serialization format. You can read mode about FileVault at the [Apache Jackkrabit FileVault docs](https://jackrabbit.apache.org/filevault/). Bundle modules represent a single OSGi bundle.
-
-### Server definition
-
-To create a new Sling launchpad server you will need to start a Sling launchpad outside of Eclipse. We do not yet support starting Sling Launchpad instances from Eclipse.
-
-To kick off, create a new Sling Server using the File -> New -> Other... menu entry.
-
-![New Server](ide-tooling/new-server.png)
-
-In the resulting wizard, select the Sling Server (External) entry and enter the host name.
-
-![New Server Step 2](ide-tooling/new-server-2.png)
-
-Once that is done, press finish.
-
-## Server configuration
-
-The server will appear in the servers view. You can double-click on it to review the settings which were automatically provided.
-
-![Servers View](ide-tooling/servers-view.png)
-
-There are a couple of important settings in the server definition page:
-
-* port: used for connecting to the server
-* username, password, context path: controls the connection details to the Sling instance.
-* debug port: used for connecting in debug mode
-
-For working with OSGi bundles there are two options as to how they are installed to the Sling launchpad instance:
-
-* Install via bundle upload: this is the normal way which creates a bundle (jar) locally and uploads that to the server. It thus works locally or remotely.
-* Install directly from local directory: this is a faster bundle redeployment variant which does not build a bundle (jar) locally but instead instructs the server to install a bundle based on an exploded directory. (See [SLING-3019](https://issues.apache.org/jira/browse/SLING-3019) for details). This requires a special support bundle to be present on the server. If it is not present, you can install it using the hyperlink from the Install section. Note that this only works locally since the server will directly read from the exploded directory.
-
-![Servers Definition](ide-tooling/server-definition.png)
-
-You can now connect to the server.
-
-## Content sync
-
-Content projects are required to have at least
-
-* a jcr_root directory, which contains the serialized content of the repository
-* a META-INF/vault/filter.xml file, which contains the workspace filter definition
-
-All changes performed in the local workspace are synchronized to the repository, given that they are included in the workspace filter definition.
-
-### Creating a new content project
-
-Creating a new Sling content project is easily done by using the new Sling Content Project Wizard. To kick off, start by selected File -> New -> Project and select Sling Content Project under the Sling category.
-
-![New content project step 1](ide-tooling/new-content-project-step-1.png)
-
-You will then be asked to name the project and select its location.
-
-![New content project step 2](ide-tooling/new-content-project-step-2.png)
-
-Finally, you can select whether to add the project to an existing server, create a new one, or leave it undeployed.
-
-![New content project step 3](ide-tooling/new-content-project-step-3.png)
-
-Once you press finish, the project will be created and deployed to the server if needed.
-
-Note that deploying a project on the server publishes all the resources from the project if the server is started. If the server is stopped, you need to manually publish the changes after startup.
-
-### Converting existing projects
-
-#### Automatic conversion
-
-Maven projects configured using the `com.day.jcr.vault:content-package-maven-plugin` are now automatically configured as content projects, removing the need to manually add the needed facets after importing them into Eclipse for the first time.
-
-The following pom properties can be used to tweak how the project is configured
-
-| Property name | Effect |
-|--|--|
-| `sling.ide.m2e.contentpackage.active` | When set to `false`, the configuration is disabled |
-| `sling.ide.m2e.contentpackage.javaFacetVersion` | Controls the version of the Java Facet which is added to the project, e.g. `8` |
-| `sling.ide.m2e.contentpackage.webFacetVersion` | Controls the version of the Web Facet which is added to the project, e.g. `3.0` |
-
-#### Manual conversion
-
-To mark a project as being a Sling content module, click it in the Project Explorer and Select Configure -> Convert to Sling Content Project... . A dialog will pop up and will ask you to confirm the inferred location of the jcr_root directory. You can also change this from the project properties, the Sling page.
-
-### Content navigator
-
-In the Project Explorer view there is an additional 'jcr_root' contribution to the project. It is denoted by a folder icon with a small web overlay. This contribution provides a logical view over the repository content, taking into account JCR metadata. As such, .content.xml files will be folded into the corresponding node.
-
-![Content navigator](ide-tooling/content-navigator.png)
-
-Node properties can be edited in a distinct JCR properties view.
-
-![JCR properties](ide-tooling/jcr-properties.png)
-
-### filter.xml - workspace filter definition
-
-A content project does not synchronize all its contents to the workspace. Instead, it looks for a filter.xml file which defines which content is included in synchronization operations. More information about the filter.xml file format and semantics can be found at [FileVault docs - Workspace Filter](https://jackrabbit.apache.org/filevault/filter.html).
-
-### Deploying projects on the server
-
-To deploy a project on the server, open the Servers view and use the Add and Remove... dialog to add one or more modules.
-
-![Add and Remove projects from server](ide-tooling/add-remove-projects.png)
-
-After content projects are deployed, each change will cause the changed resources to be updated in the repository.
-
-### Manual content sync
-
-It is possible to manually import/export content from/to the repository. The precondition is that the content project must be associated with a started Sling launchpad server. The actions are available on the project root, or on any child resource under the jcr_root folder.
-
-The export wizard is available under the Sling -> Export Content ... action.
-
-![Repository export](ide-tooling/repository-export.png)
-
-The import wizard is available under the Sling -> Import Content ... action.
-
-![Repository import](ide-tooling/repository-import.png)
-
-## Bundle sync
-
-The only requirement for bundle projects is that they are Java projects which generate an exploded OSGi bundle in their output directory. That requires at least a valid OSGi Manifest located in META-INF/MANIFEST.MF, but typically one of more Java classes. Other auxiliary files, such as Declarative Service descriptors, must also be placed under the project's output directory.
-
-### Creating a new bundle project
-
-Creating a new Sling bundle project is easily done by using the new Sling Bundle Project Wizard. This wizard is only available when the Maven-based integration is installed. To kick off, start by selected File -> New -> Project and select Sling Bundle Project under the Sling category.
-
-![New bundle project step 1](ide-tooling/new-bundle-project-step-1.png)
-
-The next page allows you to select the archetype to use. It's recommended to select the latest version of the archetype.
-
-![New bundle project step 2](ide-tooling/new-bundle-project-step-2.png)
-
-You will be asked to configure the archetype's properties.
-
-![New bundle project step 3](ide-tooling/new-bundle-project-step-3.png)
-
-Finally, you can select whether to add the project to an existing server, create a new one, or leave it undeployed.
-
-![New bundle project step 4](ide-tooling/new-bundle-project-step-4.png)
-
-Once you press finish, the project will be created and deployed to the server if needed.
-
-### Converting existing projects
-
-To mark a project as being a Sling bundle module, right click it in the Project Explorer and Select Configure -> Convert to Sling Bundle Project... . A dialog will appear with all the candidate Sling bundle project from the workspace so that you can quickly select multiple projects.
-
-### Deploying projects on the server
-
-To deploy a project on the server, open the Servers view and use the Add and Remove... dialog to add one or more modules.
-
-![Add and Remove projects from server](ide-tooling/add-remove-projects.png)
-
-After OSGi bundle projects are deployed, each change will cause the bundle to be redeployed on the server.
-
-## HTL support
-
-_Available with Sling IDE Tooling for Eclipse 1.1 or newer_
-
-Support for HTL (formerly known as Sightly) has been added through an additional, optional, feature named _Sling IDE Tools - Sightly Integration_.
-
-This feature provides the following enhancements:
-
-* auto-completion of tag named and attributes names in the HTML Editor
-* wizards for creating new HTL scripts and Use Classes ( Java and Javascript )
-* HTL-aware validation for HTML files
-
-![HTL Editor](ide-tooling/sightly-editor.png)
-
-These enhancements are enabled once the HTL facet is added to a project. This is done automatically when converting a project to content project, but can also be done manually via the project properties, under the _Project Facets_ page.
-
-## Debugging
-
-_Available with Sling IDE Tooling for Eclipse 1.1 or newer_
-
-When first connecting to a Sling instance in debug mode, the IDE tooling tries to bind all the sources associated with the bundles deployed on the server and retrieves the associated source artifacts using Maven. Therefore, the debug classpath is as close as possible to sources used to build the bundles deployed on the server.
-
-![Debugging](ide-tooling/debug.png)
-
-Since a first source bundle resolution can potentially take a long time, this behaviour can be disabled from the server configuration page.
-
-## Launchpad project support
-
-_Available with Sling IDE Tooling for Eclipse 1.2 or newer_
-
-Maven projects configured with the `slingstart-maven-plugin` will automatically have their models directory configured as a top-level entry in the project tree. By default, the models directory is `src/main/provisioning`. This contribution is only available in the _Project Explorer_ view.
-
-The configuration is done automatically on import, and you can also do it manually by right-clicking on the project and then selecting _Maven_ → _Update Project..._.
-
-![Launchpad project](ide-tooling/launchpad-models-directory.png)
-
-## Troubleshooting
-
-### Gathering debug information
-
-All operations that are performed on the Sling launchpad are logged in the Sling console. To view these operations, open the Eclipse console view and select Open Console -> Sling Console.
-
-![Sling Console](ide-tooling/sling-console.png)
-
-Additional information can be obtained by enabling the Eclipse platform tracing facility. To do so, open the Eclipse preferences and navigate to General -> Tracing. Make sure that 'Enable tracing' is checked and all options under 'Sling IDE Tooling' are enabled.
-
-![Tracing](ide-tooling/tracing.png)
-
-### Why do I get an error about "No DS descriptor found at..."?
-
-![Missing SCR descriptors](ide-tooling/missing-scr-descriptor.png)
-
-Bundle deployment assumes that the OSGi bundle is packaged into the project's output directory. This includes:
-
-* the manifest
-* compiled class files
-* resources
-* Declarative Services descriptors
-
-One often-occuring situation is that a Maven project using the maven-scr-plugin generates the descriptors outside of target/classes, typically in target/scr-plugin-generated. To fix this, make sure that you're using the maven-scr-plugin 1.15.0 or newer and that you have not set a custom outputDirectory.
-
-### How do I fix the error "Missing m2e incremental build support for generating the bundle manifest, component descriptions and metatype resources"?
-
-For further information on how to fix and configure the according maven plugins look at [Incremental Builds in Sling IDE tooling for Eclipse](/documentation/development/ide-tooling/ide-tooling-incremental-build.html).
-
-## Known issues
-
-The content sync implementation tries to mimic the FileVault semantics as closely as possible. However, it is possible that some more exotic content structures will not be handled properly. Some of the problems we're are of are:
-
-* [SLING-3591 - Unable to delete all nodes of a full coverage aggregate](https://issues.apache.org/jira/browse/SLING-3591) . The workaround is to manually delete the child nodes .
-* [SLING-3644 - Improve handling of binary properties outside nt:file file nodes](https://issues.apache.org/jira/browse/SLING-3644) . Currently there is no workaround, but in practice this is not an often-encountered situation.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/add-remove-projects.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/add-remove-projects.png b/content/documentation/development/ide-tooling/add-remove-projects.png
deleted file mode 100644
index 1c775f3..0000000
Binary files a/content/documentation/development/ide-tooling/add-remove-projects.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/content-navigator.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/content-navigator.png b/content/documentation/development/ide-tooling/content-navigator.png
deleted file mode 100644
index be2468f..0000000
Binary files a/content/documentation/development/ide-tooling/content-navigator.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/convert-to-bundle-projects.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/convert-to-bundle-projects.png b/content/documentation/development/ide-tooling/convert-to-bundle-projects.png
deleted file mode 100644
index f879737..0000000
Binary files a/content/documentation/development/ide-tooling/convert-to-bundle-projects.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/debug.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/debug.png b/content/documentation/development/ide-tooling/debug.png
deleted file mode 100644
index abb6609..0000000
Binary files a/content/documentation/development/ide-tooling/debug.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/ide-tooling-incremental-build.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/ide-tooling-incremental-build.md b/content/documentation/development/ide-tooling/ide-tooling-incremental-build.md
deleted file mode 100644
index 5322669..0000000
--- a/content/documentation/development/ide-tooling/ide-tooling-incremental-build.md
+++ /dev/null
@@ -1,35 +0,0 @@
-title=Incremental Builds in Sling IDE tooling for Eclipse		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-## Overview
-
-The Sling IDE Tooling relies on the [m2e incremental build support](https://wiki.eclipse.org/M2E_compatible_maven_plugins) for the generation of the bundle's manifest, the component descriptions as well as the metatype resources (the latter two being generated through OSGi 6 [component annotations](https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/annotations/package-summary.html) and [metatype annotations](https://osgi.org/javadoc/r6/cmpn/org/osgi/service/metatype/annotations/package-summary.html) or through [Apache Felix SCR annotations](http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html)). That means whenever at least one java class is touched and the auto-build in Eclipse is enabled the annotations on that class should be reevaluated. This may lead to a modification of the bundle's manifest and/or generation/modification of service description XMLs and/or Metatype resource files.
-Depending on which maven plugins you use you must adjust their configuration accordingly to properly support incremental builds.
-
-## Manifest Generation
-
-### maven-bundle-plugin
-
-The [maven-bundle-plugin](http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html) is based on the [bnd library](http://bnd.bndtools.org/). It uses bnd to generate the bundle's manifest.
-
-#### maven-bundle-plugin prior to version 3.2.0
-
-This version needs [m2eclipse-tycho](https://github.com/tesla/m2eclipse-tycho) (an Eclipse plugin) to generate the manifest and service descriptions during the incremental build. This plugin can be installed through the Maven Discovery feature of m2e.
-
-#### maven-bundle-plugin since version 3.2.0
-
-Natively supports incremental builds for the `manifest` goal ([FELIX-4009](https://issues.apache.org/jira/browse/FELIX-4009)) which needs to be explicitly configured as outlined in the [maven-bundle-plugin FAQ](http://felix.apache.org/documentation/faqs/apache-felix-bundle-plugin-faq.html#use-scr-metadata-generated-by-bnd-in-unit-tests). m2e-tycho is incompatible with that version, because it leads to errors like `Duplicate bundle executions found. Please remove any explicitly defined bundle executions in your pom.xml.` and `Duplicate manifest executions found. Please remove any explicitly defined manifest executions in your pom.xml.` (compare with [issue 31](https://github.com/tesla/m2eclipse-tycho/issues/31)). Therefore uninstall m2eclipse-tycho if you want to use newer versions of the `maven-bundle-plugin`.
-
-### bnd-maven-plugin
-
-The [bnd-maven-plugin](https://github.com/bndtools/bnd/tree/master/maven/bnd-maven-plugin) is developed from the bnd team and is based on bnd as well. It is versioned in parallel with bnd and bndtools. It natively supports incremental builds since version 3.1.0 ([issue 1180](https://github.com/bndtools/bnd/issues/1180)).
-
-## Service Description and Metatype Resources
-
-OSGi component and metatype annotations (for OSGi 6) are natively supported through bnd (and therefore automatically generated through both maven-bundle-plugin and bnd-maven-plugin). You don't need to configure anything explicitly since version 3.0.0 of bnd ([issue 1041](https://github.com/bndtools/bnd/issues/1041)).
-
-The maven-bundle-plugin can be optionally coupled with the [maven-scr-plugin](http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.html). Both maven-bundle-plugin as well as bnd-maven-plugin can be optionally coupled with the [scr-bnd-plugin](http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/apache-felix-scr-bndtools-use.html). Both approaches can be used to generate components descriptions and metatype resources out of the [Felix SCR annotations](http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html). The recommended way for new projects though is to rely on OSGi 6 annotations. However if you need to rely on Felix SCR annotations though it is recommended to rather use the scr-bnd-plugin over the maven-scr-plugin, as the former is nicely integrated into bnd and therefore means less overhead during the build.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/jcr-properties.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/jcr-properties.png b/content/documentation/development/ide-tooling/jcr-properties.png
deleted file mode 100644
index 1a92157..0000000
Binary files a/content/documentation/development/ide-tooling/jcr-properties.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/launchpad-models-directory.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/launchpad-models-directory.png b/content/documentation/development/ide-tooling/launchpad-models-directory.png
deleted file mode 100644
index a16030e..0000000
Binary files a/content/documentation/development/ide-tooling/launchpad-models-directory.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/missing-scr-descriptor.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/missing-scr-descriptor.png b/content/documentation/development/ide-tooling/missing-scr-descriptor.png
deleted file mode 100644
index 5feab27..0000000
Binary files a/content/documentation/development/ide-tooling/missing-scr-descriptor.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/new-bundle-project-step-1.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/new-bundle-project-step-1.png b/content/documentation/development/ide-tooling/new-bundle-project-step-1.png
deleted file mode 100644
index 35c7a8f..0000000
Binary files a/content/documentation/development/ide-tooling/new-bundle-project-step-1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/new-bundle-project-step-2.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/new-bundle-project-step-2.png b/content/documentation/development/ide-tooling/new-bundle-project-step-2.png
deleted file mode 100644
index 84f1f3a..0000000
Binary files a/content/documentation/development/ide-tooling/new-bundle-project-step-2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/new-bundle-project-step-3.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/new-bundle-project-step-3.png b/content/documentation/development/ide-tooling/new-bundle-project-step-3.png
deleted file mode 100644
index 8fb1700..0000000
Binary files a/content/documentation/development/ide-tooling/new-bundle-project-step-3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/new-bundle-project-step-4.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/new-bundle-project-step-4.png b/content/documentation/development/ide-tooling/new-bundle-project-step-4.png
deleted file mode 100644
index 9a45505..0000000
Binary files a/content/documentation/development/ide-tooling/new-bundle-project-step-4.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/new-content-project-step-1.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/new-content-project-step-1.png b/content/documentation/development/ide-tooling/new-content-project-step-1.png
deleted file mode 100644
index 38da77e..0000000
Binary files a/content/documentation/development/ide-tooling/new-content-project-step-1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/new-content-project-step-2.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/new-content-project-step-2.png b/content/documentation/development/ide-tooling/new-content-project-step-2.png
deleted file mode 100644
index a800e32..0000000
Binary files a/content/documentation/development/ide-tooling/new-content-project-step-2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/new-content-project-step-3.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/new-content-project-step-3.png b/content/documentation/development/ide-tooling/new-content-project-step-3.png
deleted file mode 100644
index 17bb6f4..0000000
Binary files a/content/documentation/development/ide-tooling/new-content-project-step-3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/new-server-2.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/new-server-2.png b/content/documentation/development/ide-tooling/new-server-2.png
deleted file mode 100644
index 1030aeb..0000000
Binary files a/content/documentation/development/ide-tooling/new-server-2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/new-server.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/new-server.png b/content/documentation/development/ide-tooling/new-server.png
deleted file mode 100644
index a24a2ca..0000000
Binary files a/content/documentation/development/ide-tooling/new-server.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/repository-export.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/repository-export.png b/content/documentation/development/ide-tooling/repository-export.png
deleted file mode 100644
index bef7623..0000000
Binary files a/content/documentation/development/ide-tooling/repository-export.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/repository-import.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/repository-import.png b/content/documentation/development/ide-tooling/repository-import.png
deleted file mode 100644
index 8833daa..0000000
Binary files a/content/documentation/development/ide-tooling/repository-import.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/server-definition.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/server-definition.png b/content/documentation/development/ide-tooling/server-definition.png
deleted file mode 100644
index 914e5f7..0000000
Binary files a/content/documentation/development/ide-tooling/server-definition.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/servers-view.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/servers-view.png b/content/documentation/development/ide-tooling/servers-view.png
deleted file mode 100644
index 69581ab..0000000
Binary files a/content/documentation/development/ide-tooling/servers-view.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/sightly-editor.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/sightly-editor.png b/content/documentation/development/ide-tooling/sightly-editor.png
deleted file mode 100644
index 89ddc84..0000000
Binary files a/content/documentation/development/ide-tooling/sightly-editor.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/sling-console.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/sling-console.png b/content/documentation/development/ide-tooling/sling-console.png
deleted file mode 100644
index bd6727e..0000000
Binary files a/content/documentation/development/ide-tooling/sling-console.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/ide-tooling/tracing.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/ide-tooling/tracing.png b/content/documentation/development/ide-tooling/tracing.png
deleted file mode 100644
index be56784..0000000
Binary files a/content/documentation/development/ide-tooling/tracing.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/issue-tracker.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/issue-tracker.md b/content/documentation/development/issue-tracker.md
deleted file mode 100644
index e1d0d03..0000000
--- a/content/documentation/development/issue-tracker.md
+++ /dev/null
@@ -1,70 +0,0 @@
-title=Issue Tracker		
-type=page
-status=published
-~~~~~~
-
-Apache Sling uses Jira for tracking bug reports and requests for improvements, new features, and other changes.
-
-The issue tracker is available at [https://issues.apache.org/jira/browse/SLING](https://issues.apache.org/jira/browse/SLING) and is readable by everyone. A Jira account is needed to create new issues and to comment on existing issues. Use the [registration form](https://issues.apache.org/jira/secure/Signup!default.jspa) to request an account if you do not already have one.
-
-See below for guidelines on creating and managing issues.
-
-
-## Issue type
-
-When creating a new issue, select the issue type based as follows:
-
-| Issue type     | Description |
-|--|--|
-|  *Bug*          |  Bug reports are used for cases where Sling fails not function as it should (as defined by some documentation). If you are not certain whether the issue you've found is actually a bug, please ask the [Sling mailing lists](/project-information.html#mailing-lists) first for help. |
-|  *New Feature*  |  Use a feature request when Sling does not have some functionality you need. |
-|  *Improvement*  |  Use an improvement request to suggest improvements to existing features. Typical improvement requests are about updating documentation, increasing stability and performance, simplifying the implementation, or other such changes that make Sling better without introducing new features or fixing existing bugs. |
-|  *Test*         |  Use this type when contributing test cases for existing features. Normally test cases should be contributed as a part of the original feature request or as regression tests associated with bug reports, but sometimes you just want to extend test coverage by introducing new test cases. This issue type is for such cases. |
-|  *Task*         |  Used only for issues related to project infrastructure. |
-
-
-## Summary
-
-The issue summary should be a short and clear statement that indicates the scope of the issue. You are probably being too verbose if you exceed the length of the text field. Use the Environment and Description fields to provide more detailed information.
-
-
-## Issue priority
-
-Issue priority should be set according to the following:
-
-| Issue priority | Description |
-|--|
-|  *Blocker*      |  Legal or other fundamental issue that makes it impossible to release Jackrabbit code |
-|  *Critical*     |  Major loss of functionality that affects many Slingusers |
-|  *Major*        |  Important issue that should be resolved soon |
-|  *Minor*        |  Nice to have issues |
-|  *Trivial*      |  Trivial changes that can be applied whenever someone has extra time |
-
-
-
-## Issue States
-
-Sling issues can transition through a number of states while being processed:
-
-| State | Description | Next States in Workflow |
-|--|--|--|
-| *Open* | The issue has just been created | *In Pogress* |
-| *In Progress* | Work has started on the issue | *Documentation Required*, *Testcase Required*, *Documentation/Testcase required*, *Resolved*, *Open* |
-| *Documentation Required* | Implementation work has finished for this issue. To complete it documentation must be created and/or updated. | *Resolved* |
-| *Testcase Required* | Implementation work has finished for this issue. To complete it test cases must be created and/or updated. | *Resolved* |
-| *Documentation/Testcase Required* | Implementation work has finished for this issue. To complete it documentation and test cases must be created and/or updated. | *Resolved*, *Documentation Required*, *Testcase Required* |
-| *Resolved* | The issue has been resolved from the developers point of view. Documentation and Testcases have been created and updated as required. Issue is ready for release. | *Reopened*, *Closed* |
-| *Reopened* | A resolved issue has been recognized to contain bugs or to be incomplete and thus has been reopened. | *In Progress*, *Resolved* |
-| *Closed* | Work on this issue has finished and it is included in the release. | -- |
-
-Users generally create issues and provide feedback while work on the issue is in progress. When the developer thinks the issue has been resolved, he resolves the issue. At this point, the user may test the resolution and reopen the issue if it has not really be solved. Otherwise the user may just acknowledge the fix.
-
-Developers transition the issue through the workflow while working on it. When done with the issue, they mark the issue resolved with the appropriate resolution and ask the reporting user to confirm.
-
-Issues are closed once the project against which it has been reported has been released. Issues once closed cannot be opened again. Rather new issues should be created against the new release to have broken implementations fixed or extended.
-
-
-
-## Patches
-
-When reporting a bug, requesting a feature or propose an improvement, it is a good thing to attach a patch to the issue. This may speed up issue processing and helps you being recognized as a good community member leading to closer involvement with Sling.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/jcr-mock.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/jcr-mock.md b/content/documentation/development/jcr-mock.md
deleted file mode 100644
index 5d1a8db..0000000
--- a/content/documentation/development/jcr-mock.md
+++ /dev/null
@@ -1,76 +0,0 @@
-title=JCR Mocks		
-type=page
-status=published
-~~~~~~
-
-Mock implementation of selected JCR APIs for easier testing. It stores all data in-memory in a HashMap to ensure instantly creating and destroying of the JCR repository.
-
-[TOC]
-
-
-## Maven Dependency
-
-#!xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.testing.jcr-mock</artifactId>
-</dependency>
-
-See latest version on the [downloads page](/downloads.cgi).
-
-
-## Implemented mock features
-
-The mock implementation supports:
-
-* Reading and writing all data (primitive values, arrays, binary data) via the JCR API
-* Creating any number of nodes and properties (stored in-memory in a hash map)
-* Register namespaces
-* Queries are supported by setting expected results for a given query
-
-The following features are *not supported*:
-
-* Node types are supported in the API, but their definitions and constraints are not applied
-* Versioning not supported
-* Transactions not supported
-* Observation events can be registered but are ignored
-* Access control always grants access
-* Exporting/Importing data via document and system views not supported
-* Workspace management methods not supported
-
-
-## Usage
-
-### Getting JCR mock objects
-
-The factory class `MockJcr` allows to instantiate the different mock implementations.
-
-Example:
-
-#!java
-// get session
-Session session = MockJcr.newSession();
-
-// get repository
-Repository repository = MockJcr.newRepository();
-
-The repository is empty and contains only the root node. You can use the JCR API to read or write content.
-
-
-### Mocking queries
-
-If you want to test code that contains a JCR query you can simulate a query execution and set the result to return during setting up your unit test.
-
-Example:
-
-#!java
-// prepare mocked search result
-List<Node> resultNodes = ImmutableList.of(node1, node2, node3);
-
-// return this result for all queries
-MockJcr.setQueryResult(session, resultNodes);
-
-// return this result for a specific query
-MockJcr.setQueryResult(session, "your query statement", Query.JCR_SQL2, resultNodes);
-
-Alternatively you can use the `MockJcr.addQueryResultHandler` method to pass a callback object that allows you to return a query result after inspecting the given query object.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/jspc.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/jspc.md b/content/documentation/development/jspc.md
deleted file mode 100644
index e1a3ab8..0000000
--- a/content/documentation/development/jspc.md
+++ /dev/null
@@ -1,6 +0,0 @@
-title=HTL Maven Plugin		
-type=page
-status=published
-~~~~~~
-
-See [Apache Sling JspC Maven Plugin documentation](http://sling.apache.org/components/jspc-maven-plugin/).


[09/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/conversion-scripts/replace-refs.sh
----------------------------------------------------------------------
diff --git a/conversion-scripts/replace-refs.sh b/conversion-scripts/replace-refs.sh
deleted file mode 100755
index d6cd0c5..0000000
--- a/conversion-scripts/replace-refs.sh
+++ /dev/null
@@ -1,143 +0,0 @@
-sed s'/{{ *refs\.TODO.path *}}/\/apidocs\/TODO.html/g' | \
-sed s'/{{ *refs\.TODO.path *}}/\/components\/TODO.html/g' | \
-sed s'/{{ *refs\.contributing.path *}}/\/contributing.html/g' | \
-sed s'/{{ *refs\.accessing-filesystem-resources-extensions-fsresource.path *}}/\/documentation\/bundles\/accessing-filesystem-resources-extensions-fsresource.html/g' | \
-sed s'/{{ *refs\.apache-sling-commons-thread-pool.path *}}/\/documentation\/bundles\/apache-sling-commons-thread-pool.html/g' | \
-sed s'/{{ *refs\.apache-sling-eventing-and-job-handling.path *}}/\/documentation\/bundles\/apache-sling-eventing-and-job-handling.html/g' | \
-sed s'/{{ *refs\.bundle-resources-extensions-bundleresource.path *}}/\/documentation\/bundles\/bundle-resources-extensions-bundleresource.html/g' | \
-sed s'/{{ *refs\.caching-services.path *}}/\/documentation\/bundles\/caching-services.html/g' | \
-sed s'/{{ *refs\.commons-html-utilities.path *}}/\/documentation\/bundles\/commons-html-utilities.html/g' | \
-sed s'/{{ *refs\.configuration-installer-factory.path *}}/\/documentation\/bundles\/configuration-installer-factory.html/g' | \
-sed s'/{{ *refs\.content-distribution.path *}}/\/documentation\/bundles\/content-distribution.html/g' | \
-sed s'/{{ *refs\.content-loading-jcr-contentloader.path *}}/\/documentation\/bundles\/content-loading-jcr-contentloader.html/g' | \
-sed s'/{{ *refs\.context-aware-configuration-default-implementation.path *}}/\/documentation\/bundles\/context-aware-configuration\/context-aware-configuration-default-implementation.html/g' | \
-sed s'/{{ *refs\.context-aware-configuration-override.path *}}/\/documentation\/bundles\/context-aware-configuration\/context-aware-configuration-override.html/g' | \
-sed s'/{{ *refs\.context-aware-configuration-spi.path *}}/\/documentation\/bundles\/context-aware-configuration\/context-aware-configuration-spi.html/g' | \
-sed s'/{{ *refs\.context-aware-configuration.path *}}/\/documentation\/bundles\/context-aware-configuration\/context-aware-configuration.html/g' | \
-sed s'/{{ *refs\.datasource-providers.path *}}/\/documentation\/bundles\/datasource-providers.html/g' | \
-sed s'/{{ *refs\.discovery-api-and-impl.path *}}/\/documentation\/bundles\/discovery-api-and-impl.html/g' | \
-sed s'/{{ *refs\.dynamic-includes.path *}}/\/documentation\/bundles\/dynamic-includes.html/g' | \
-sed s'/{{ *refs\.file-installer-provider.path *}}/\/documentation\/bundles\/file-installer-provider.html/g' | \
-sed s'/{{ *refs\.internationalization-support-i18n.path *}}/\/documentation\/bundles\/internationalization-support-i18n.html/g' | \
-sed s'/{{ *refs\.jcr-installer-provider.path *}}/\/documentation\/bundles\/jcr-installer-provider.html/g' | \
-sed s'/{{ *refs\.log-tracers.path *}}/\/documentation\/bundles\/log-tracers.html/g' | \
-sed s'/{{ *refs\.managing-permissions-jackrabbit-accessmanager.path *}}/\/documentation\/bundles\/managing-permissions-jackrabbit-accessmanager.html/g' | \
-sed s'/{{ *refs\.managing-users-and-groups-jackrabbit-usermanager.path *}}/\/documentation\/bundles\/managing-users-and-groups-jackrabbit-usermanager.html/g' | \
-sed s'/{{ *refs\.manipulating-content-the-slingpostservlet-servlets-post.path *}}/\/documentation\/bundles\/manipulating-content-the-slingpostservlet-servlets-post.html/g' | \
-sed s'/{{ *refs\.metrics.path *}}/\/documentation\/bundles\/metrics.html/g' | \
-sed s'/{{ *refs\.mime-type-support-commons-mime.path *}}/\/documentation\/bundles\/mime-type-support-commons-mime.html/g' | \
-sed s'/{{ *refs\.models.path *}}/\/documentation\/bundles\/models.html/g' | \
-sed s'/{{ *refs\.nosql-resource-providers.path *}}/\/documentation\/bundles\/nosql-resource-providers.html/g' | \
-sed s'/{{ *refs\.org-apache-sling-junit-bundles.path *}}/\/documentation\/bundles\/org-apache-sling-junit-bundles.html/g' | \
-sed s'/{{ *refs\.osgi-installer.path *}}/\/documentation\/bundles\/osgi-installer.html/g' | \
-sed s'/{{ *refs\.output-rewriting-pipelines-org-apache-sling-rewriter.path *}}/\/documentation\/bundles\/output-rewriting-pipelines-org-apache-sling-rewriter.html/g' | \
-sed s'/{{ *refs\.rendering-content-default-get-servlets.path *}}/\/documentation\/bundles\/rendering-content-default-get-servlets.html/g' | \
-sed s'/{{ *refs\.repository-initialization.path *}}/\/documentation\/bundles\/repository-initialization.html/g' | \
-sed s'/{{ *refs\.request-analysis.path *}}/\/documentation\/bundles\/request-analysis.html/g' | \
-sed s'/{{ *refs\.resource-access-security.path *}}/\/documentation\/bundles\/resource-access-security.html/g' | \
-sed s'/{{ *refs\.resource-editor.path *}}/\/documentation\/bundles\/resource-editor.html/g' | \
-sed s'/{{ *refs\.resource-merger.path *}}/\/documentation\/bundles\/resource-merger.html/g' | \
-sed s'/{{ *refs\.scheduler-service-commons-scheduler.path *}}/\/documentation\/bundles\/scheduler-service-commons-scheduler.html/g' | \
-sed s'/{{ *refs\.scripting-htl.path *}}/\/documentation\/bundles\/scripting\/scripting-htl.html/g' | \
-sed s'/{{ *refs\.scripting-jsp.path *}}/\/documentation\/bundles\/scripting\/scripting-jsp.html/g' | \
-sed s'/{{ *refs\.scripting-thymeleaf.path *}}/\/documentation\/bundles\/scripting\/scripting-thymeleaf.html/g' | \
-sed s'/{{ *refs\.scripting.path *}}/\/documentation\/bundles\/scripting.html/g' | \
-sed s'/{{ *refs\.servlet-helpers.path *}}/\/documentation\/bundles\/servlet-helpers.html/g' | \
-sed s'/{{ *refs\.sling-health-check-tool.path *}}/\/documentation\/bundles\/sling-health-check-tool.html/g' | \
-sed s'/{{ *refs\.sling-oak-restrictions.path *}}/\/documentation\/bundles\/sling-oak-restrictions.html/g' | \
-sed s'/{{ *refs\.sling-pipes.path *}}/\/documentation\/bundles\/sling-pipes.html/g' | \
-sed s'/{{ *refs\.sling-query.path *}}/\/documentation\/bundles\/sling-query.html/g' | \
-sed s'/{{ *refs\.sling-settings-org-apache-sling-settings.path *}}/\/documentation\/bundles\/sling-settings-org-apache-sling-settings.html/g' | \
-sed s'/{{ *refs\.subsystem-installer-factory.path *}}/\/documentation\/bundles\/subsystem-installer-factory.html/g' | \
-sed s'/{{ *refs\.validation.path *}}/\/documentation\/bundles\/validation.html/g' | \
-sed s'/{{ *refs\.web-console-extensions.path *}}/\/documentation\/bundles\/web-console-extensions.html/g' | \
-sed s'/{{ *refs\.xml-support.path *}}/\/documentation\/bundles\/xml-support.html/g' | \
-sed s'/{{ *refs\.bundles.path *}}/\/documentation\/bundles.html/g' | \
-sed s'/{{ *refs\.configuration.path *}}/\/documentation\/configuration.html/g' | \
-sed s'/{{ *refs\.client-request-logging.path *}}/\/documentation\/development\/client-request-logging.html/g' | \
-sed s'/{{ *refs\.dependency-management.path *}}/\/documentation\/development\/dependency-management.html/g' | \
-sed s'/{{ *refs\.embedding-sling.path *}}/\/documentation\/development\/embedding-sling.html/g' | \
-sed s'/{{ *refs\.getting-and-building-sling.path *}}/\/documentation\/development\/getting-and-building-sling.html/g' | \
-sed s'/{{ *refs\.hamcrest.path *}}/\/documentation\/development\/hamcrest.html/g' | \
-sed s'/{{ *refs\.htl-maven-plugin.path *}}/\/documentation\/development\/htl-maven-plugin.html/g' | \
-sed s'/{{ *refs\.ide-tooling-incremental-build.path *}}/\/documentation\/development\/ide-tooling\/ide-tooling-incremental-build.html/g' | \
-sed s'/{{ *refs\.ide-tooling.path *}}/\/documentation\/development\/ide-tooling.html/g' | \
-sed s'/{{ *refs\.issue-tracker.path *}}/\/documentation\/development\/issue-tracker.html/g' | \
-sed s'/{{ *refs\.jcr-mock.path *}}/\/documentation\/development\/jcr-mock.html/g' | \
-sed s'/{{ *refs\.jspc.path *}}/\/documentation\/development\/jspc.html/g' | \
-sed s'/{{ *refs\.jsr-305.path *}}/\/documentation\/development\/jsr-305.html/g' | \
-sed s'/{{ *refs\.logging.path *}}/\/documentation\/development\/logging.html/g' | \
-sed s'/{{ *refs\.maven-archetypes.path *}}/\/documentation\/development\/maven-archetypes.html/g' | \
-sed s'/{{ *refs\.maven-launchpad-plugin.path *}}/\/documentation\/development\/maven-launchpad-plugin.html/g' | \
-sed s'/{{ *refs\.maven-usage.path *}}/\/documentation\/development\/maven-usage.html/g' | \
-sed s'/{{ *refs\.maventipsandtricks.path *}}/\/documentation\/development\/maventipsandtricks.html/g' | \
-sed s'/{{ *refs\.monitoring-requests.path *}}/\/documentation\/development\/monitoring-requests.html/g' | \
-sed s'/{{ *refs\.osgi-mock.path *}}/\/documentation\/development\/osgi-mock.html/g' | \
-sed s'/{{ *refs\.release-management.path *}}/\/documentation\/development\/release-management.html/g' | \
-sed s'/{{ *refs\.repository-based-development.path *}}/\/documentation\/development\/repository-based-development.html/g' | \
-sed s'/{{ *refs\.resourceresolver-mock.path *}}/\/documentation\/development\/resourceresolver-mock.html/g' | \
-sed s'/{{ *refs\.sling-mock.path *}}/\/documentation\/development\/sling-mock.html/g' | \
-sed s'/{{ *refs\.sling-testing-tools.path *}}/\/documentation\/development\/sling-testing-tools.html/g' | \
-sed s'/{{ *refs\.sling.path *}}/\/documentation\/development\/sling.html/g' | \
-sed s'/{{ *refs\.slingstart.path *}}/\/documentation\/development\/slingstart.html/g' | \
-sed s'/{{ *refs\.version-policy.path *}}/\/documentation\/development\/version-policy.html/g' | \
-sed s'/{{ *refs\.development.path *}}/\/documentation\/development.html/g' | \
-sed s'/{{ *refs\.discover-sling-in-15-minutes.path *}}/\/documentation\/getting-started\/discover-sling-in-15-minutes.html/g' | \
-sed s'/{{ *refs\.getting-started.path *}}/\/documentation\/getting-started.html/g' | \
-sed s'/{{ *refs\.logging.path *}}/\/documentation\/legacy\/logging.html/g' | \
-sed s'/{{ *refs\.pax-exam-utils.path *}}/\/documentation\/pax-exam-utils.html/g' | \
-sed s'/{{ *refs\.adapters.path *}}/\/documentation\/the-sling-engine\/adapters.html/g' | \
-sed s'/{{ *refs\.architecture.path *}}/\/documentation\/the-sling-engine\/architecture.html/g' | \
-sed s'/{{ *refs\.authentication-actors.path *}}/\/documentation\/the-sling-engine\/authentication\/authentication-actors.html/g' | \
-sed s'/{{ *refs\.form-based-authenticationhandler.path *}}/\/documentation\/the-sling-engine\/authentication\/authentication-authenticationhandler\/form-based-authenticationhandler.html/g' | \
-sed s'/{{ *refs\.openid-authenticationhandler.path *}}/\/documentation\/the-sling-engine\/authentication\/authentication-authenticationhandler\/openid-authenticationhandler.html/g' | \
-sed s'/{{ *refs\.authentication-authenticationhandler.path *}}/\/documentation\/the-sling-engine\/authentication\/authentication-authenticationhandler.html/g' | \
-sed s'/{{ *refs\.authentication-framework.path *}}/\/documentation\/the-sling-engine\/authentication\/authentication-framework.html/g' | \
-sed s'/{{ *refs\.authentication-tasks.path *}}/\/documentation\/the-sling-engine\/authentication\/authentication-tasks.html/g' | \
-sed s'/{{ *refs\.authentication.path *}}/\/documentation\/the-sling-engine\/authentication.html/g' | \
-sed s'/{{ *refs\.default-mapping-and-rendering.path *}}/\/documentation\/the-sling-engine\/default-mapping-and-rendering.html/g' | \
-sed s'/{{ *refs\.dispatching-requests.path *}}/\/documentation\/the-sling-engine\/dispatching-requests.html/g' | \
-sed s'/{{ *refs\.errorhandling.path *}}/\/documentation\/the-sling-engine\/errorhandling.html/g' | \
-sed s'/{{ *refs\.featureflags.path *}}/\/documentation\/the-sling-engine\/featureflags.html/g' | \
-sed s'/{{ *refs\.filters.path *}}/\/documentation\/the-sling-engine\/filters.html/g' | \
-sed s'/{{ *refs\.mappings-for-resource-resolution.path *}}/\/documentation\/the-sling-engine\/mappings-for-resource-resolution.html/g' | \
-sed s'/{{ *refs\.request-listeners.path *}}/\/documentation\/the-sling-engine\/request-listeners.html/g' | \
-sed s'/{{ *refs\.request-parameters.path *}}/\/documentation\/the-sling-engine\/request-parameters.html/g' | \
-sed s'/{{ *refs\.resources.path *}}/\/documentation\/the-sling-engine\/resources.html/g' | \
-sed s'/{{ *refs\.service-authentication.path *}}/\/documentation\/the-sling-engine\/service-authentication.html/g' | \
-sed s'/{{ *refs\.servlets.path *}}/\/documentation\/the-sling-engine\/servlets.html/g' | \
-sed s'/{{ *refs\.sling-api-crud-support.path *}}/\/documentation\/the-sling-engine\/sling-api-crud-support.html/g' | \
-sed s'/{{ *refs\.sling-properties.path *}}/\/documentation\/the-sling-engine\/sling-properties.html/g' | \
-sed s'/{{ *refs\.the-sling-launchpad.path *}}/\/documentation\/the-sling-engine\/the-sling-launchpad.html/g' | \
-sed s'/{{ *refs\.url-decomposition.path *}}/\/documentation\/the-sling-engine\/url-decomposition.html/g' | \
-sed s'/{{ *refs\.url-to-script-resolution.path *}}/\/documentation\/the-sling-engine\/url-to-script-resolution.html/g' | \
-sed s'/{{ *refs\.wrap-or-decorate-resources.path *}}/\/documentation\/the-sling-engine\/wrap-or-decorate-resources.html/g' | \
-sed s'/{{ *refs\.the-sling-engine.path *}}/\/documentation\/the-sling-engine.html/g' | \
-sed s'/{{ *refs\.46-line-blog.path *}}/\/documentation\/tutorials-how-tos\/46-line-blog.html/g' | \
-sed s'/{{ *refs\.getting-resources-and-properties-in-sling.path *}}/\/documentation\/tutorials-how-tos\/getting-resources-and-properties-in-sling.html/g' | \
-sed s'/{{ *refs\.how-to-manage-events-in-sling.path *}}/\/documentation\/tutorials-how-tos\/how-to-manage-events-in-sling.html/g' | \
-sed s'/{{ *refs\.installing-and-upgrading-bundles.path *}}/\/documentation\/tutorials-how-tos\/installing-and-upgrading-bundles.html/g' | \
-sed s'/{{ *refs\.jackrabbit-persistence.path *}}/\/documentation\/tutorials-how-tos\/jackrabbit-persistence.html/g' | \
-sed s'/{{ *refs\.testing-sling-based-applications.path *}}/\/documentation\/tutorials-how-tos\/testing-sling-based-applications.html/g' | \
-sed s'/{{ *refs\.tutorials-how-tos.path *}}/\/documentation\/tutorials-how-tos.html/g' | \
-sed s'/{{ *refs\.documentation.path *}}/\/documentation.html/g' | \
-sed s'/{{ *refs\.403.path *}}/\/errors\/403.html/g' | \
-sed s'/{{ *refs\.404.path *}}/\/errors\/404.html/g' | \
-sed s'/{{ *refs\.guides.path *}}/\/guides.html/g' | \
-sed s'/{{ *refs\.index.path *}}/\/index.html/g' | \
-sed s'/{{ *refs\.javadoc-io.path *}}/\/javadoc-io.html/g' | \
-sed s'/{{ *refs\.links.path *}}/\/links.html/g' | \
-sed s'/{{ *refs\.media.path *}}/\/media.html/g' | \
-sed s'/{{ *refs\.sling-ide-tooling-11-released.path *}}/\/news\/sling-ide-tooling-11-released.html/g' | \
-sed s'/{{ *refs\.sling-launchpad-8-released.path *}}/\/news\/sling-launchpad-8-released.html/g' | \
-sed s'/{{ *refs\.sling-launchpad-9-released.path *}}/\/news\/sling-launchpad-9-released.html/g' | \
-sed s'/{{ *refs\.news.path *}}/\/news.html/g' | \
-sed s'/{{ *refs\.old-stuff.path *}}/\/old-stuff.html/g' | \
-sed s'/{{ *refs\.plugins.path *}}/\/plugins.html/g' | \
-sed s'/{{ *refs\.apache-sling-community-roles-and-processes.path *}}/\/project-information\/apache-sling-community-roles-and-processes.html/g' | \
-sed s'/{{ *refs\.project-license.path *}}/\/project-information\/project-license.html/g' | \
-sed s'/{{ *refs\.project-team.path *}}/\/project-information\/project-team.html/g' | \
-sed s'/{{ *refs\.security.path *}}/\/project-information\/security.html/g' | \
-sed s'/{{ *refs\.project-information.path *}}/\/project-information.html/g' | \
-sed s'/{{ *refs\.site-conversion.path *}}/\/site-conversion.html/g' | \
-cat

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/jbake.properties
----------------------------------------------------------------------
diff --git a/jbake.properties b/jbake.properties
deleted file mode 100644
index 35ac780..0000000
--- a/jbake.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-feed.id=localhost
-site.host=http://localhost
-site.contextPath=/
-foundation.version=5.5.1
-blog.title=Apache Sling on JBake
-blog.subtitle=Work in progress...
-render.tags=true
-render.sitemap=true
-template.masterindex.file=index.tpl
-template.archive.file=archive.tpl
-template.tag.file=tags.tpl
-template.sitemap.file=sitemap.tpl
-template.post.file=post.tpl
-template.page.file=page.tpl
-template.feed.file=feed.tpl
-template.project.file=project.tpl
-render.index=false
-index.paginate=false
-markdown.extensions=WIKILINKS,TABLES
-template.downloads.file=downloads.tpl


[15/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/authentication/authentication-framework.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/authentication/authentication-framework.md b/content/documentation/the-sling-engine/authentication/authentication-framework.md
deleted file mode 100644
index c5a3b2c..0000000
--- a/content/documentation/the-sling-engine/authentication/authentication-framework.md
+++ /dev/null
@@ -1,122 +0,0 @@
-title=Authentication - Framework		
-type=page
-status=published
-~~~~~~
-Excerpt: The core piece of functionality with respect to authentication in Sling is contained in the Sling Auth Core bundle. This bundle provides the API for Sling and Sling applications to make use of authentication.
-
-The core piece of functionality with respect to authentication in Sling is contained in the Sling Auth Core bundle. This bundle provides the API for Sling and Sling applications to make use of authentication.
-
-This support encompasses three parts:
-
-* The `AuthenticationSupport` service provided by the `SlingAuthenticator` class. This service can be used by implementations of the OSGi `HttpContext` interface to delegate authentication.
-* The `Authenticator` service also provided by the `SlingAuthenticator` class. This service may be used by Sling applications to help clients login and logout.
-* The `AuthenticationHandler` service interface. These services may be implemented by extensions to support various ways for transporting credentials from clients to the Sling server.
-
-This page describes how the `SlingAuthenticator` class provides the `AuthenticationSupport` and  `Authenticator` services. For a description of the `AuthenticationHandler` service interface and the interaction between the `SlingAuthenticator` and the `AuthenticationHandler` services refer to the [AuthenticationHandler](/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html) page.
-
-The `SlingAuthenticator` class is an internal class of the `org.apache.sling.auth.core` bundle and implements the `Authenticator` and `AuthenticationSupport` services.
-
-
-## AuthenticationSupport
-
-The `AuthenticationSupport` service interface defines a single method: `handleSecurity`. This method is intended to be called by the `handleSecurity` method of any `HttpContext` implementation wishing to make use of the Sling Authentication Framework.
-
-The Sling Authenticator implementation selects an `AuthenticationHandler` service appropriate for the request and calls the `AuthenticationHandler.extractCredentials` method to extract the credentials from the request. If no credentials could be extracted, the Sling Authenticator either admits the request as an anonymous request or requests authentication from the client by calling its own `login` method.
-
-
-The implementation follows this algorithm:
-
-1. Select one or more `AuthenticationHandler` for the request according to the request URL's scheme and authorization part.
-1. Call the `extractCredentials` method of each authentication handler, where the order of handler call is defined by the length of the registered path: handlers registered with longer paths are called before handlers with shorter paths. The goal is to call the handlers in order from longest request path match to shortest match. Handlers not matching the request path at all are not called.
-1. The first handler returning a non-`null` `AuthenticationInfo` result "wins" and the result is used for authentication.
-1. If any `AuthenticationInfoPostProcessor` services are registered, the `AuthenticationInfo` object is passed to their `postProcess()` method.
-1. If no handler returns a non-`null` result, the request may be handled anonymously. In these cases, an empty `AuthenticationInfo` object is passed to any `AuthenticationInfoPostProcessor` services.
-1. (Try to) log into the repository either with the provided credentials or anonymously.
-1. If there were credentials provided and the login was successful, a login event is posted *if* the `AuthenticationInfo` object contains a non-null object with the key `$$auth.info.login$$` (`AuthConstants.AUTH_INFO_LOGIN`). This event is posted with the topic `org/apache/sling/auth/core/Authenticator/LOGIN`. (added in Sling Auth Core 1.1.0)
-1. Set request attributes listed below.
-
-Extracting the credentials and trying to login to the repository may yield the following results:
-
-| Credentials | Login | Consequence |
-|--|--|--|
-| present | successful | Continue with an authenticated request |
-| present | failed | Select `AuthenticationHandler` and call `requestCredentials` method |
-| missing | anonymous allowed | Continue with a non authenticated request using anonymous access to the repository |
-| missing | anonymous forbidden | Select `AuthenticationHandler` and call `requestCredentials` method |
-
-<div class="note">
-Only one <code>AuthenticationHandler</code> is able to provide credentials for a given request. If the credentials provided by the handler cannot be used to login to the repository, authentication fails and no further <code>AuthenticationHandler</code> is consulted.
-</div>
-
-
-#### Request Attributes on Successful Login
-
-The `handleSecurity` method gets credentials from the `AuthenticationHandler` and logs into the JCR repository using those credentials. If the login is successful, the `SlingAuthenticator` sets the following request attributes:
-
-| Attribute | Description |
-|--|--|
-| `org.osgi.service.http.authentication.remote.user` | The user ID of the JCR Session. This attribute is used by the HTTP Service implementation to implement the `HttpServletRequest.getRemoteUser` method. |
-| `org.osgi.service.http.authentication.type` | The authentication type defined by the `AuthenticationHandler`. This attribute is used by the HTTP Service implementation to implement the `HttpServletRequest.getAuthType` method. |
-| `org.apache.sling.auth.core.ResourceResolver` | The `ResourceResolver` created from the credentials and the logged in JCR Session. This attribute may be used by servlets to access the repository. Namely the `SlingMainServlet` uses this request attribute to provide the `ResourceResolver` to handle the request. |
-| `javax.jcr.Session` | The JCR Session. This attribute is for backwards compatibility only. *Its use is deprecated and the attribute will be removed in future versions*. |
-| `org.apache.sling.auth.core.spi.AuthenticationInfo` | The `AuthenticationInfo` object produced from the `AuthenticationHandler`. |
-
-**NOTE**: Do *NOT* use the `javax.jcr.Session` request attribute in your Sling applications. This attribute must be considered implementation specific to convey the JCR Session to the `SlingMainServlet`. In future versions of the Sling Auth Core bundle, this request attribute will not be present anymore. To get the JCR Session for the current request adapt the request's resource resolver to a JCR Session:
-
-
-Session session = request.getResourceResolver().adaptTo(Session.class);
-
-
-
-#### Anonymous Login
-
-The `SlingAuthenticator` provides high level of control with respect to allowing anonymous requests or requiring authentication up front:
-
-* Global setting of whether anonymous requests are allowed or not. This is the boolean value of the *Allow Anonymous Access* (`auth.annonymous`) property of the `SlingAuthenticator` configuration. This property is supported for backwards compatibility and defaults to `true` (allowing anonymous access). Setting it to `true` is a shortcut for setting `sling.auth.requirements` to `-/`.
-* Specific configuration per URL. The *Authentication Requirements* (`sling.auth.requirements`) property of the `SlingAuthenticator` configuration may provide a list of URLs for which authentication may be required or not: Any entry prefixed with a dash `-` defines a request path prefix for which authentication is not required. Any entry not prefixed with a dash or prefixed with a plus `+` defines a subtree for which authentication is required up front and thus anonymous access is not allowed. This list is empty by default.
-* Any OSGi service may provide a `sling.auth.requirements` registration property which is used to dynamically extend the authentication requirements from the *Authentication Requirements* configuration. This may for example be set by `AuthenticationHandler` implementations providing a login form to ensure access to the login form does not require authentication. The value of this property is a single string, an array of strings or a Collection of strings and is formatted in the same way as the *Authentication Requirements* configuration property.
-
-The values set on the *Authentication Requirements* configuration property or the `sling.auth.requirements` service registration property can be absolute paths or URLs like the `path` service registration property of `AuthenticationHandler` services. This allows the limitation of this setup to certain requests by scheme and/or virtual host address. The requests path (`HttpServletRequest.getServletPath()` + `HttpServletRequest.getPathInfo()`) is afterwards matched against the given paths. It matches if it starts with one of the given paths.
-
-
-**Examples**
-
-* The `LoginServlet` contained in the Sling Auth Core bundle registers itself with the service registration property `sling.auth.requirements = "-/system/sling/login"` to ensure the servlet can be accessed without requiring authentication (checks for `slash` or `dot` or `end of string`). The following request urls would work then without authentication:
-* /system/sling/login
-* /system/sling/login.html
-* /system/sling/login/somesuffix
-
-While the following request will still require authentication
-
-* /system/sling/login-test
-
-* An authentication handler may register itself with the service registration property `sling.auth.requirements = "-/apps/sample/loginform"` to ensure the login form can be rendered without requiring authentication.
-
-
-
-## Authenticator implementation
-
-The implementation of the `Authenticator` interface is similar for both methods:
-
-**`login`**
-
-1. Select one or more `AuthenticationHandler` for the request according to the request URL's scheme and authorization part.
-1. Call the `requestCredentials` method of each authentication handler, where the order of handler call is defined by the length of the registered path: handlers registered with longer paths are called before handlers with shorter paths. The goal is to call the handlers in order from longest request path match to shortest match. Handlers not matching the request path at all are not called.
-1. As soon as the first handlers returns `true`, the process ends and it is assumed credentials have been requested from the client.
-
-The `login` method has three possible exit states:
-
-| Exit State | Description |
-|--|--|
-| Normal | An `AuthenticationHandler` could be selected to which the login request could be forwarded. |
-| `NoAuthenticationHandlerException` | No `AuthenticationHandler` could be selected to forward the login request to. In this case, the caller can proceed as appropriate. For example a servlet, which should just login a user may send back a 403/FORBIDDEN status because login is not possible. Or a 404/NOT FOUND handler, which tried to login as a fallback, may continue and send back the regular 404/NOT FOUND response. |
-| `IllegalStateException` | The response has already been committed and the login request cannot be processed. Normally to request login, the current response must be reset and a new response has to be prepared. This is only possible if the request has not yet been committed. |
-
-
-**`logout`**
-
-1. Select one or more `AuthenticationHandler` for the request according to the request URL's scheme and authorization part.
-1. Call the `dropCredentials` method of each authentication handler, where the order of handler call is defined by the length of the registered path: handlers registered with longer paths are called before handlers with shorter paths. The goal is to call the handlers in order from longest request path match to shortest match. Handlers not matching the request path at all are not called.
-
-Unlike for the `login` method in the `logout` method case all `AuthenticationHandler` services selected in the first step are called. If none can be selected or none can actually handle the `dropCredentials` request, the `logout` silently returns.
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/authentication/authentication-tasks.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/authentication/authentication-tasks.md b/content/documentation/the-sling-engine/authentication/authentication-tasks.md
deleted file mode 100644
index ebf775e..0000000
--- a/content/documentation/the-sling-engine/authentication/authentication-tasks.md
+++ /dev/null
@@ -1,24 +0,0 @@
-title=Authentication - Tasks		
-type=page
-status=published
-~~~~~~
-Excerpt: Authentication of HTTP Requests is generally a two-step process: First the credentials must be extracted from the request and second the credentials must be validated. In the case of Sling this means acquiring a JCR Session.
-
-Authentication of HTTP Requests is generally a two-step process: First the credentials must be extracted from the request and second the credentials must be validated. In the case of Sling this means acquiring a JCR Session.
-
-## Extract Credentials from the Request
-
-* Implemented and controlled by the Sling Auth Core bundle
-* Takes `HttpServletRequest`
-* Provides credentials for futher processing (basically JCR `Credentials` and Workspace name)
-* Extensible with the help of `AuthenticationHandler` services
-
-
-## Login to the JCR Repository
-
-* Implemented and controlled by the JCR Repository
-* Takes JCR `Credentials` and Workspace name
-* Provides a JCR `Session`
-* Implementation dependent process. Jackrabbit provides extensibility based on `LoginModules`; Sling's Embedded Jackrabbit Repository bundle provides extensibility with `LoginModulePlugin` services.
-
-Currently the credentials are always verified by trying to login to the JCR repository. Once an [ResourceResolverFactory](http://cwiki.apache.org/SLING/add-resourceresolverfactory-service-interface.html) API has been added, the process of validating the credentials and logging in is actualy replaced by a process of requesting a `ResourceResolver` from the `ResourceResolverFactory`. Of course, the JCR Repository will still be the main underlying repository and as such be used to validate the credentials and get a JCR Session.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/default-mapping-and-rendering.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/default-mapping-and-rendering.md b/content/documentation/the-sling-engine/default-mapping-and-rendering.md
deleted file mode 100644
index fd88767..0000000
--- a/content/documentation/the-sling-engine/default-mapping-and-rendering.md
+++ /dev/null
@@ -1,7 +0,0 @@
-title=Default Mapping and Rendering		
-type=page
-status=published
-~~~~~~
-translation_pending: true
-
-This page contained obsolete content, moved it to http://cwiki.apache.org/confluence/display/SLING/Default+Mapping+and+Rendering+%28OBSOLETE%29 in case it is useful to someone.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/dispatching-requests.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/dispatching-requests.md b/content/documentation/the-sling-engine/dispatching-requests.md
deleted file mode 100644
index 7a9b465..0000000
--- a/content/documentation/the-sling-engine/dispatching-requests.md
+++ /dev/null
@@ -1,77 +0,0 @@
-title=Dispatching Requests		
-type=page
-status=published
-~~~~~~
-
-## Main process
-
-The following steps should give you an overview how a request is processed in Sling. Details can be found under provided links.
-
-1. The client sends the request
-
-1. This step applies only if a Servlet Container is installed and Sling is embedded: Servlet Container gets request and forwards to OSGi HttpService
-
-1. OSGi HttpService looks for responsible registered Servlet or resource (see 102.4 of the OSGi compendium)
-
-1. OSGi HttpService calls `handleSecurity` of the HttpContext associated with the servlet/resource. In case of Sling this calls into SlingMainServlet.handleSecurity and then into SlingAuthenticator.authenticate
-
-1. SlingAuthenticator selects an authentication handler for the request and forwards the authenticate call. On success a `javax.jcr.Session` is created, the request attributes required by the HTTP Service spec are set (like `org.osgi.service.http.authentication.remote.user` and `org.osgi.service.http.authentication.type`and also the `javax.jcr.Session` which is used later is set in the request attributes.
-On success, continue with step 5.
-
-1. If authentication fails either an anonymous session is acquired (if anonymous is allowed per configuration) or the login method is called.
-If anonymous is allowed, continue with step 5.
-
-1. The login method selects an AuthenticationHandler and forwards the login call to the AuthenticationHandler.requestAuthentication method to cause the client to authenticate. Request processing stops here (`SlingMainServlet.handleSecurity` returns false).
-
-1. After getting a response the HttpService either terminates the request (if authentication failed and `SlingMainServlet.handleSecurity` returned false) or continues by either spooling the resource or in the case of Sling calling the `SlingMainServlet.service` method.
-
-1. The `SlingMainServlet.service` method is the entry point into the Sling proper. This method sets up the request:
-
-* Wraps the `HttpServletRequest` and the `HttpServletResponse` into the `SlingHttpServletRequest` and the `SlingHttpServletResponse`
-* Checks if Sling is ready for processing the request (checks at the moment for an existing ResourceResolverFactory service, a ServletResolver service and a MimeTypeService)
-* Create the ResourceResolver based on the Session (by default creates a `JcrResourceResolver2`)
-* Locate the [Resource](/documentation/the-sling-engine/resources.html) on the basis of the request by calling `ResourceResovler.resolve` through `RequestData.initResource` (see also [URL decomposition](/documentation/the-sling-engine/url-decomposition.html))
-* Locate the servlet or script (see [Servlets](/documentation/the-sling-engine/servlets.html)) by calling `ServletResolver.resolveServlet` through `RequestData.initServlet`
-
-1. After this setup, the request level filters are called (the ones registered as `javax.servlet.Filter` with the property `filter.scope=request`, see [Filters](/documentation/the-sling-engine/filters.html) for details).
-If any called filter doesn't call `FilterChain.doFilter` at the end of the `Filter.doFilter` method request processing stops here.
-
-1. After having called all request level filters, the component level filters (registered with the property `filter.scope=component`, see [Filters](/documentation/the-sling-engine/filters.html) for details) are called.
-
-1. After having called the component level filters, the request servlet or script is finally called to process the request.
-
-## Include/Forward
-
-If a servlet or script is including another resource for processing through the `RequestDispatcher.include` or `RequestDispatcher.forward` (or any JSP or feature of another scripting language which relies on one of this two methods) the following processing takes place:
-
-1. Code in the processing servlet or script calls `RequestDispatcher.include` or `RequestDispatcher.forward`.
-
-1. The resource is resolved though ResourceResolver.getResource (if the RequestDispatcher has not been created with a resource already)
-
-1. The servlet or script to handle the resource is resolved calling the `ServletResolver.resolverServlet` method.
-
-1. The component level filters (registered with the property `filter.scope=component`) are called again (see [Filters](/documentation/the-sling-engine/filters.html) for details).
-
-1. The servlet or script is called to process the request.
-
-Note that these steps are processed for every include or forward call.
-
-
-## Included Request Attributes
-
-When servlet or script is called as a result of `RequestDispatcher.include` the following request attributes are set:
-
-| Attribute Name <br> Attribute Type | Description |
-|-|-|
-| `org.apache.sling.api.include.servlet` <br> `javax.servlet.Servlet` | The name of the request attribute containing the `Servlet` which included the servlet currently being active. |
-| `org.apache.sling.api.include.resource` <br>`org.apache.sling.api.resource.Resource` | The name of the request attribute containing the `Resource` underlying the `Servlet` which included the servlet currently being active. |
-| `org.apache.sling.api.include.request_path_info` <br> `org.apache.sling.api.request.RequestPathInfo` | The name of the request attribute containing the `RequestPathInfo` underlying the `Servlet` which included the servlet currently being active |
-| `javax.servlet.include.request_uri` <br> `String` | The name of the request attribute containing the `HttpServletRequest.getRequestURI()` of the request which included the servlet currently being active underlying the `Servlet` which included the servlet currently being active.<br>**Note:** In Sling, the `HttpServletRequest.getRequestURI()` method will always return the same result regardless of whether it is called from the client request processing servlet or script or from an included servlet or script. This request attribute is set for compatibility with the Servlet API specification. |
-| `javax.servlet.include.context_path` <br> `String` | The name of the request attribute containing the `HttpServletRequest.getContextPath()` of the request which included the servlet currently being active underlying the `Servlet` which included the servlet currently being active.<br>**Note:** In Sling, the `HttpServletRequest.getContextPath()` method will always return the same result regardless of whether it is called from the client request processing servlet or script or from an included servlet or script. This request attribute is set for compatibility with the Servlet API specification. |
-| `javax.servlet.include.servlet_path` <br> `String` | The name of the request attribute containing the `HttpServletRequest.getServletPath()` of the request which included the servlet currently being active underlying the `Servlet` which included the servlet currently being active.<br>**Note:** In Sling, the `HttpServletRequest.getServletPath()` method will always return the same result regardless of whether it is called from the client request processing servlet or script or from an included servlet or script. This request attribute is set for compatibility with the Servlet API specification. |
-| `javax.servlet.include.path_info` <br> `String` | The name of the request attribute containing the `HttpServletRequest.getPathInfo()` of the request which included the servlet currently being active underlying the `Servlet` which included the servlet currently being active.<br>**Note:** In Sling, the `HttpServletRequest.getPathInfo()` method will always return the same result regardless of whether it is called from the client request processing servlet or script or from an included servlet or script. This request attribute is set for compatibility with the Servlet API specification.
-| `javax.servlet.include.query_string` <br> `String` | The name of the request attribute containing the `HttpServletRequest.getQueryString()` of the request which included the servlet currently being active underlying the `Servlet` which included the servlet currently being active.<br>**Note:** In Sling, the `HttpServletRequest.getQueryString()` method will always return the same result regardless of whether it is called from the client request processing servlet or script or from an included servlet or script. This request attribute is set for compatibility with the Servlet API specification. |
-
-Constants are defined in the `org.apache.sling.api.SlingConstants` class for these request attributes.
-
-**Note:** These request attributes are not set if the servlet or script is called to handle the request or as a result of `RequestDispatcher.forward`.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/errorhandling.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/errorhandling.md b/content/documentation/the-sling-engine/errorhandling.md
deleted file mode 100644
index 74e65b9..0000000
--- a/content/documentation/the-sling-engine/errorhandling.md
+++ /dev/null
@@ -1,69 +0,0 @@
-title=Errorhandling		
-type=page
-status=published
-~~~~~~
-
-The Sling Engine includes support for handling uncaught `Throwable` as well as rendering custom HTTP status code pages. This is implemented by expecting a (single) `org.apache.sling.engine.servlets.ErrorHandler` service to which handling of uncaught `Throwable` and HTTP status responses are delegated.
-
-The Sling Servlet Resolver bundle implements this interface by providing an elaborate mechanism to find the correct error handling script or servlet using the same algorithms as are used to select the scripts or servlets to handle regular requests.
-
-This page provides more information on how error handler scripts are selected and what is provided out of the box.
-
-The [ErrorHandlingTest][1] in our integration tests suite provides
-working examples of various error handling scenarios.
-
-[TOC]
-
-## Resetting the Response
-
-Errorhandler scripts and servlets are script with the current response. Before setting
-the status and writing to the response such handlers should do the following:
-
-* Check whether the response has been committed or not
-* If the response has not been committed:
-* Reset the response
-* Set the status code (use `HttpServletResponse.setStatus`)
-* Set the response content type and character encoding (provided text data is sent back)
-* If the response has already been committed:
-* Do not try to reset since this would cause an `IllegalStateException`. Also the writer may not be available.
-* The best that might be done in this case is just log a message at warning or error level along with information about the failure.
-
-
-## HTTP Status Codes
-
-The Sling engine implements the `HttpServletResponse.sendError` methods by calling the `ErrorHandler.handleError(int status, String message, SlingHttpServletRequest request, SlingHttpServletResponse response)` method.
-
-The Servlet Resolver bundle implementation looks up a script to handle the status code as follows:
-
-* The status code is converted to a string and used as the request extension. Any request extensions, selectors or suffixes from the actual request are ignored.
-* The same resource type hierarchy is followed to find the script as for regular script resolution. The difference is that for error handler scripts `sling/servlet/errorhandler` is used as the implied base resource type (as opposed to `sling/servlet/default` for regular script resolution.
-
-**Examples:**
-
-* An application provider my provide a default handler for the 404/NOT FOUND status. This script might be located in `/libs/sling/servlet/errorhandler/404.jsp`.
-* An programmer might provide a handler for the 403/FORBIDDEN status in `/apps/sling/servlet/errorhandler/403.esp`.
-
-
-## Uncaught Throwables
-
-To handle uncaught Throwables the simple name (`Class.getSimpleName()`) of the `Throwable` class is used as request extension. Similarly to the Java try-catch clauses the class hierarchy is supported. That is to handle an uncaught `FileNotFoundException`, the names `FileNotFoundException`, `IOException`, `Exception`, `Throwable` are checked for a Servlet and the first one found is then used. Again, the Serlvet may be a Servlet registered as an OSGi service or may be a plain script stored in the JCR repository or provided through some custom Resource provider.
-
-**Example:**
-To register a catch-all handler for any uncaught Throwables you might create a script `/apps/sling/servlet/errorhandler/Throwable.esp`.
-
-**Note:** If no script or servlet to handle an uncaught `Throwable` is registered, the default handler kicks in, which sends back a 500/INTERNAL SERVER ERROR response containing the `Throwable` and the stack trace. This response is **not** handled by the HTTP Status Code handling described above because the response status is sent using `HttpServletResponse.setStatus(int, String)`. To prevent this default response you have to implement a catch-all handler for the `Throwable` class as shown in the example.
-
-## Default Handler
-
-The Sling Servlet Resolver bundle provides a default error handler servlet which is used if the algorithms described above do not resolve to a handler script or servlet. The provided error handler servlet does the following:
-
-* Print a descriptive message, which is the `javax.servlet.error.message` request attribute by default
-* Print a stacktrace if the `javax.servlet.error.exception` is set
-* Dump the request progress tracker
-
-Starting with Sling Servlet Resolver version 2.0.10 the default error handler servlet is looked up using the string `default` as the request extension and the provided default servlet is registered as `<prefix>/sling/servlet/errorhandler/default.servlet` where <prefix> is the last entry in the resource resolver search path, `/libs` by default.
-
-Thus to overwrite the default error handler servlet provide a servlet or script for the `default` extension, for example `/apps/sling/servlet/errorhandler/default.groovy`.
-
-
-[1]: https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolver/errorhandler/ErrorHandlingTest.java

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/featureflags.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/featureflags.md b/content/documentation/the-sling-engine/featureflags.md
deleted file mode 100644
index 180368c..0000000
--- a/content/documentation/the-sling-engine/featureflags.md
+++ /dev/null
@@ -1,27 +0,0 @@
-title=Feature Flags		
-type=page
-status=published
-~~~~~~
-
-Feature Flags are used to select whether a particular feature is enabled or not. This allows to
-continuosly deploy new features of an application without making them globally available yet.
-
-Features may be enabled based on various contextual data:
-
-* Time of Day
-* Segmentation Data (gender, age, etc.), if available
-* Request Parameter
-* Request Header
-* Cookie Value
-* Static Configuration
-
-Feature flags can be provided by registering `org.apache.sling.featureflags.Feature` services.
-Alternatively feature flags can be provided by factory configuration with factory PID
-`org.apache.sling.featureflags.Feature` as follows:
-
-| Property | Description |
-|--|--|
-| `name` | Short name of this feature. This name is used to refer to this feature when checking for it to be enabled or not. This property is required and defaults to a name derived from the feature's class name and object identity. It is strongly recommended to define a useful and unique for the feature|
-| `description` | Description for the feature. The intent is to descibe the behaviour of the application if this feature would be enabled. It is recommended to define this property. The default value is the value of the name property. |
-| `enabled` | Boolean flag indicating whether the feature is enabled or not by this configuration|
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/filters.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/filters.md b/content/documentation/the-sling-engine/filters.md
deleted file mode 100644
index 1d42d90..0000000
--- a/content/documentation/the-sling-engine/filters.md
+++ /dev/null
@@ -1,122 +0,0 @@
-title=Servlet Filter Support		
-type=page
-status=published
-~~~~~~
-
-Sling supports filter processing by applying filter chains to the requests before actually dispatching to the servlet or script for processing. Filters to be used in such filter processing are plain OSGi services of type `javax.servlet.Filter` which of course means that the services implement this interface.
-
-<div class="note">
-See <a href="https://issues.apache.org/jira/browse/SLING-1213">SLING-1213</a>,
-<a href="https://issues.apache.org/jira/browse/SLING-1734">SLING-1734</a>, and
-<a href="http://markmail.org/message/quxhm7d5s6u66crr">Registering filters with Sling</a>
-for more details. The
-<a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/filters/NoPropertyFilter.java">NoPropertyFilter</a>
-from our integration tests shows an example Sling Filter.
-</div>
-
-For Sling to pick up a `javax.servlet.Filter` service for filter processing two service registration properties are inspected:
-
-| Property | Type | Default Value | Valid Values | Description |
-|--|--|--|--|--|
-| `sling.filter.scope` | `String`, `String[]({{ refs..path }})` or `Vector<String>` | `request` | `REQUEST`, `INCLUDE`, `FORWARD`, `ERROR`, `COMPONENT` | Indication of which chain the filter should be added to. This property is required. If it is missing from the service, the service is ignored because it is assumed another consumer will be interested in using the service. Any unknown values of this property are also ignored causing the service to be completely ignored if none of the values provided by the property are valid. See below for the description of the filter chains. |
-| `sling.filter.pattern` | `String`| `` | Any `String` value | Restrict the filter to paths that match the supplied regular expression. Requires Sling Engine 2.4.0. |
-| `service.ranking` | `Integer` | `0` | Any `Integer` value | Indication of where to place the filter in the filter chain. The higher the number the earlier in the filter chain. This value may span the whole range of integer values. Two filters with equal `service.ranking` property value (explicitly set or default value of zero) will be ordered according to their `service.id` service property as described in section 5.2.5, Service Properties, of the OSGi Core Specification R 4.2. |
-
-
-## Filter Chains
-
-Sling maintains five filter chains: request level, component level, include filters, forward filters and error filters. Except for the component level filter these filter chains correspond to the filter `<dispatcher>` configurations as defined for Servlet API 2.5 web applications (see section SRV.6.2.5 Filters and the RequestDispatcher).
-
-The following table summarizes when each of the filter chains is called and what value must be defined in the `sling.filter.scope` property to have a filter added to the respective chain:
-
-| `sling.filter.scope` | Servlet API Correspondence | Description |
-|--|--|--|
-| `REQUEST` | `REQUEST` | Filters are called once per request hitting Sling from the outside. These filters are called after the resource addressed by the request URL and the Servlet or script to process the request has been resolved before the `COMPONENT` filters (if any) and the Servlet or script are called. |
-| `INCLUDE` | `INCLUDE` | Filters are called upon calling the `RequestDispatcher.include` method after the included resource and the Servlet or script to process the include have been resolved before the Servlet or script is called. |
-| `FORWARD` | `FORWARD` | Filters are called upon calling the `RequestDispatcher.forward` method after the included resource and the Servlet or script to process the include have been resolved before the Servlet or script is called. |
-| `ERROR` | `ERROR` | Filters are called upon `HttpServletResponse.sendError` or any uncaught `Throwable` before resolving the error handler Servlet or script. |
-| `COMPONENT` | `REQUEST,INCLUDE,FORWARD` | The `COMPONENT` scoped filters are present for backwards compatibility with earlier Sling Engine releases. These filters will be called among the `INCLUDE` and `FORWARD` filters upon `RequestDispatcher.include` or `RequestDispatcher.forward` as well as before calling the request level Servlet or script after the `REQUEST` filters. |
-
-Note on `INCLUDE` and `FORWARD` with respect to JSP tags: These filters are also called if the respective including (e.g. `<jsp:include>` or `<sling:include>`) or forwarding (e.g. `<jsp:forward>` or `<sling:forward>`) ultimately calls the `RequestDispatcher`.
-
-
-## Filter Processing
-
-Filter processing is part of the Sling request processing, which may be sketched as follows:
-
-* *Request Level*:
-* Authentication
-* Resource Resolution
-* Servlet/Script Resolution
-* Request Level Filter Processing
-
-The first step of request processing is the *Request Level* processing which is concerned with resolving the resource, finding the appropriate servlet and calling into the request level filter chain. The next step is the *Component Level* processing, calling into the component level filters before finally calling the servlet or script:
-
-* *Component Level*:
-* Component Level Filter Processing
-* Call Servlet or Script
-
-When a servlet or script is including or forwarding to another resource for processing through the `RequestDispatcher` (or any JSP tag or other language feature ultimately using a `RequestDispatcher`) the following *Dispatch* processing takes place:
-
-* *Dispatch*:
-* Resolve the resource to dispatch to if not already defined when getting the `RequestDispatcher`
-* Servlet/Script resolution
-* Call include or forward filters depending on the kind of dispatch
-* Call Servlet or Script
-
-As a consequence, request level filters will be called at most once during request processing (they may not be called at all if a filter earlier in the filter chain decides to terminate the request) while the component level, include, and forward filters may be called multiple times while processing a request.
-
-## Troubleshooting
-Apart form the logs which tell you when filters are executed, two Sling plugins provide information about filters in the OSGi console.
-
-### Recent Requests plugin
-The request traces provided at `/system/console/requests` contain information about filter execution, as in this example:
-
-0 (2010-09-08 15:22:38) TIMER_START{Request Processing}
-...
-0 (2010-09-08 15:22:38) LOG Method=GET, PathInfo=/some/path.html
-3 (2010-09-08 15:22:38) LOG Applying request filters
-3 (2010-09-08 15:22:38) LOG Calling filter: org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter
-3 (2010-09-08 15:22:38) LOG Calling filter: org.apache.sling.portal.container.internal.request.PortalFilter
-3 (2010-09-08 15:22:38) LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter
-3 (2010-09-08 15:22:38) LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
-3 (2010-09-08 15:22:38) LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter
-3 (2010-09-08 15:22:38) LOG Applying inner filters
-3 (2010-09-08 15:22:38) TIMER_START{/some/script.jsp#0}
-...
-8 (2010-09-08 15:22:38) TIMER_END{8,Request Processing} Request Processing
-
-### Config Status plugin
-The configuration status page at `/system/console/config` includes the current list of active filters in its *Servlet Filters* category, as in this example:
-
-Current Apache Sling Servlet Filter Configuration
-
-Request Filters:
--2147483648 : class org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter (2547)
--3000 : class org.apache.sling.portal.container.internal.request.PortalFilter (2562)
--2500 : class org.apache.sling.rewriter.impl.RewriterFilter (3365)
--700 : class org.apache.sling.i18n.impl.I18NFilter (2334)
-0 : class org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter (2402)
-
-Error Filters:
----
-
-Include Filters:
-
-Forward Filters:
-1000 : class some.package.DebugFilter (2449)
-
-Component Filters:
--200 : class some.package.SomeComponentFilter (2583)
-
-
-The first numbers on those lines are the filter priorities, and the last number in parentheses is the OSGi service ID.
-
-
-## Support in Sling Engine 2.1.0
-
-Up to and including Sling Engine 2.1.0 support for Servlet Filters has been as follows:
-
-* Any `javax.servlet.Filter` service is accepted as a filter for Sling unless the `pattern` property used by the [Apache Felix HttpService whiteboard support](http://felix.apache.org/site/apache-felix-http-service.html#ApacheFelixHTTPService-UsingtheWhiteboard) is set in the service registration properties.
-* The `filter.scope` property is optional and supports the case-sensitive values `request` and `component`.
-* Filter ordering is defined by the `filter.order` property whose default value is `Integer.MAX_VALUE` where smaller values have higher priority over higher values.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/mappings-for-resource-resolution.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/mappings-for-resource-resolution.md b/content/documentation/the-sling-engine/mappings-for-resource-resolution.md
deleted file mode 100644
index 34e009f..0000000
--- a/content/documentation/the-sling-engine/mappings-for-resource-resolution.md
+++ /dev/null
@@ -1,223 +0,0 @@
-title=Mappings for Resource Resolution		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-## Configuration
-
-
-### Properties
-
-The mapping of request URLs to resources is mainly configured in a configuration tree which is (by default) located below `/etc/map`. The actual location can be configured with the `resource.resolver.map.location` property of the `org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl` configuration.
-That way you can even make it [run mode specific](/documentation/bundles/sling-settings-org-apache-sling-settings.html) by having a unique path per [run mode specific OSGi configuration]({{ refs./jcr-installer-provider.path }}).
-
-
-When dealing with the new resource resolution we have a number of properties influencing the process:
-
-* `sling:match` &ndash; This property when set on a node in the `/etc/map` tree (see below) defines a partial regular expression which is used instead of the node's name to match the incoming request. This property is only needed if the regular expression includes characters which are not valid JCR name characters. The list of invalid characters for JCR names is: `/, :, [, ], *, ', ", , |` and any whitespace except blank space. In addition a name without a name space may not be `.` or `..` and a blank space is only allowed inside the name.
-* `sling:redirect` &ndash; This property when set on a node in the `/etc/map` tree (see below) causes a redirect response to be sent to the client, which causes the client to send in a new request with the modified location. The value of this property is applied to the actual request and sent back as the value of `Location` response header.
-* `sling:status` &ndash; This property defines the HTTP status code sent to the client with the `sling:redirect` response. If this property is not set, it defaults to 302 (Found). Other status codes supported are 300 (Multiple Choices), 301 (Moved Permanently), 303 (See Other), and 307 (Temporary Redirect).
-* `sling:internalRedirect` &ndash; This property when set on a node in the `/etc/map` tree (see below) causes the current path to be modified internally to continue with resource resolution. This is a multi-value property, i.e. multiple paths can be given here, which are tried one after another until one resolved to a resource.
-* `sling:alias` &ndash; The property may be set on any resource to indicate an alias name for the resource. For example the resource `/content/visitors` may have the `sling:alias` property set to `besucher` allowing the resource to be addressed in an URL as `/content/besucher`.
-
-#### Limitation of `sling:alias` for Principal with a limited access
-
-Assuming there is
-
-* An User named `testuser`
-* An ACE with deny `jcr:all` in `/` for `everyone`
-* An ACE with allow `jcr:read` in `/content` for `testuser`
-
-If the `sling:alias` property (e.g. `myalias`) is set directly in `/content`, the User `testuser` will not be able to address the resource `/content` in an URL as `/myalias`.
-Instead if the `sling:alias` property is set in any resource under `/content` (e.g. `/content/visitors`) the `sling:alias` feature will work as usual.
-
-### Node Types
-
-To ease with the definition of redirects and aliases, the following node types are defined:
-
-* `sling:ResourceAlias` &ndash; This mixin node type defines the `sling:alias` property and may be attached to any node, which does not otherwise allow setting a property named `sling:alias`
-* `sling:MappingSpec` &ndash; This mixin node type defines the `sling:match`, `sling:redirect`, `sling:status`, and `sling:internaleRedirect` properties to define a matching and redirection inside the `/etc/map` hierarchy.
-* `sling:Mapping` &ndash; Primary node type which may be used to easily construct entries in the `/etc/map` tree. The node type extends the `sling:MappingSpec` mixin node type to allow setting the required matching and redirection. In addition the `sling:Resource` mixin node type is extended to allow setting a resource type and the `nt:hierarchyNode` node type is extended to allow locating nodes of this node type below `nt:folder` nodes.
-
-Note, that these node types only help setting the properties. The implementation itself only cares for the properties and their values and not for any of these node types.
-
-## Namespace Mangling
-
-There are systems accessing Sling, which have a hard time handling URLs containing colons &ndash; `:` &ndash; in the path part correctly. Since URLs produced and supported by Sling may contain colons because JCR Item based resources may be namespaced (e.g. `jcr:content`), a special namespace mangling feature is built into the `ResourceResolver.resolve` and `ResourceResolver(map)` methods.
-
-Namespace mangling operates such, that any namespace prefix identified in resource path to be mapped as an URL in the `map` methods is modified such that the prefix is enclosed in underscores and the colon removed.
-
-*Example*: The path `/content/*a*sample/jcr:content/jcr:data.png` is modified by namespace mangling in the `map` method to get at `/content/*a*sample/*jcr*content/*jcr*data.png`.
-
-Conversely the `resolve` methods must undo such namespace mangling to get back at the resource path. This is simple done by modifying any path such that segments starting with an underscore enclosed prefix are changed by removing the underscores and adding a colon after the prefix. There is one catch, tough: Due to the way the SlingPostServlets automatically generates names, there may be cases where the actual name would be matching this mechanism. Therefore only prefixes are modified which are actually namespace prefixes.
-
-*Example*: The path `/content/*a*sample/*jcr*content/*jcr*data.png{*`} *is modified by namespace mangling in the* `{*}resolve{*`} *method to get* `*/content/*a*sample/jcr:content/jcr:data.png{*}{`}*. The prefix* `**a{*}{`}`{`} is not modified because there is no registered namespace with prefix `a`. On the other hand the prefix `{*}jcr{*`} is modified because there is of course a registered namespace with prefix `jcr`.
-
-## Root Level Mappings
-
-Root Level Mappings apply to the request at large including the scheme, host, port and uri path. To accomplish this a path is constructed from the request lik this `{scheme}/{host}.{port}/{uri_path}`. This string is then matched against mapping entries below `/etc/map` which are structured in the content analogously. The longest matching entry string is used and the replacement, that is the redirection property, is applied.
-
-### Mapping Entry Specification
-
-Each entry in the mapping table is a regular expression, which is constructed from the resource path below `/etc/map`. If any resource along the path has a `sling:match` property, the respective value is used in the corresponding segment instead of the resource name. Only resources either having a `sling:redirect` or `sling:internalRedirect` property are used as table entries. Other resources in the tree are just used to build the mapping structure.
-
-*Example*
-
-Consider the following content
-
-/etc/map
-+-- http
-+-- example.com.80
-|    +-- sling:redirect = "http://www.example.com/"
-+-- www.example.com.80
-|    +-- sling:internalRedirect = "/example"
-+-- any_example.com.80
-|    +-- sling:match = ".+.example.com.80"
-|    +-- sling:redirect = "http://www.example.com/"
-+-- localhost_any
-|    +-- sling:match = "localhost.d*"
-|    +-- sling:internalRedirect = "/content"
-|    +-- cgi-bin
-|    |    +-- sling:internalRedirect = "/scripts"
-|    +-- gateway
-|    |    +-- sling:internalRedirect = "http://gbiv.com"
-|    +-- (stories)
-|         +-- sling:internalRedirect = "/anecdotes/$1"
-+-- regexmap
-+-- sling:match = "$1.example.com/$2"
-+-- sling:internalRedirect = "/content/([^/]+)/(.*)"
-
-This would define the following mapping entries:
-
-| Regular Expression | Redirect | Internal | Description |
-|--|--|--|--|
-| http/example.com.80 | http://www.example.com | no | Redirect all requests to the Second Level Domain to www |
-| http/www.example.com.80 | /example | yes | Prefix the URI paths of the requests sent to this domain with the string `/example` |
-| http/.+.example.com.80 | http://www.example.com | no | Redirect all requests to sub domains to www. The actual regular expression for the host.port segment is taken from the `sling:match` property. |
-| http/localhost.d* | /content | yes | Prefix the URI paths with `/content` for requests to localhost, regardless of actual port the request was received on. This entry only applies if the URI path does not start with `/cgi-bin`, `gateway` or `stories` because there are longer match entries. The actual regular expression for the host.port segment is taken from the `sling:match` property. |
-| http/localhost.d*/cgi-bin | /scripts | yes | Replace the `/cgi-bin` prefix in the URI path with `/scripts` for requests to localhost, regardless of actual port the request was received on. |
-| http/localhost.d*/gateway | http://gbiv.com | yes | Replace the `/gateway` prefix in the URI path with `http://gbiv.com` for requests to localhost, regardless of actual port the request was received on. |
-| http/localhost.d*/(stories) | /anecdotes/stories | yes | Prepend the URI paths starting with `/stories` with `/anecdotes` for requests to localhost, regardless of actual port the request was received on. |
-
-### Regular Expression Matching
-
-As said above the mapping entries are regular expressions which are matched against path. As such these regular expressions may also contain capturing groups as shown in the example above: `http/localhost.d*/(stories)`. After matching the path against the regular expression, the replacement pattern is applied which allows references back to the capturing groups.
-
-To illustrate the matching and replacement is applied according to the following pseudo code:
-
-#!java
-String path = request.getScheme + "/" + request.getServerName()
-+ "." + request.getServerPort() + "/" + request.getPathInfo();
-String result = null;
-for (MapEntry entry: mapEntries) {
-Matcher matcher = entry.pattern.matcher(path);
-if (matcher.find()) {
-StringBuffer buf = new StringBuffer();
-matcher.appendReplacement(buf, entry.getRedirect());
-matcher.appendTail(buf);
-result = buf.toString();
-break;
-}
-}
-
-At the end of the loop, `result` contains the mapped path or `null` if no entry matches the request `path`.
-
-**NOTE:** Since the entries in the `/etc/map` are also used to reverse map any resource paths to URLs, using regular expressions with wildcards in the Root Level Mappings prevent the respective entries from being used for reverse mappings. Therefor, it is strongly recommended to not use regular expression matching, unless you have a strong need.
-
-#### Regular Expressions for Reverse Mappings
-
-By default using regular expressions with wildcards will prevent to use the mapping entry for reverse mappings (see above).
-
-There is one exception though: If there is a `sling:internalRedirect` property containing a regular expression the map entry will be *exclusively used for reverse mappings* (i.e. used only for `ResourceResolver.map(...)`) (see also [SLING-2560](https://issues.apache.org/jira/browse/SLING-2560)). The same resource may carry a `sling:match` property with wildcards and groups referring to the groups being defined in the `sling:internalRedirect` property.
-
-This example
-
-/etc/map
-+-- http
-+-- example.com.80
-|    +-- sling:internalRedirect = "/content/([^/]+)/home/(.*)"
-|    +-- sling:match = "$1/index/$2"
-
-leads to the following entry being used in the reverse mapping table:
-
-| Pattern | Replacement |
-| ------- | ----------- |
-| /content/([^/]+)/home/(.*) | http://example.com/$1/index/$2 |
-
-
-### Redirection Values
-
-The result of matching the request path and getting the redirection is either a path into the resource tree or another URL. If the result is an URL, it is converted into a path again and matched against the mapping entries. This may be taking place repeatedly until an absolute or relative path into the resource tree results.
-
-The following pseudo code summarizes this behaviour:
-
-#!java
-String path = ....;
-String result = path;
-do {
-result = applyMapEntries(result);
-} while (isURL(result));
-
-As soon as the result of applying the map entries is an absolute or relative path (or no more map entries match), Root Level Mapping terminates and the next step in resource resolution, resource tree access, takes place.
-
-## Resource Tree Access
-
-The result of Root Level Mapping is an absolute or relative path to a resource. If the path is relative &ndash; e.g. `myproject/docroot/sample.gif` &ndash; the resource resolver search path (`ResourceResolver.getSearchPath()` is used to build absolute paths and resolve the resource. In this case the first resource found is used. If the result of Root Level Mapping is an absolute path, the path is used as is.
-
-Accessing the resource tree after applying the Root Level Mappings has four options:
-
-* Check whether the path addresses a so called Star Resource. A Star Resource is a resource whose path ends with or contains `/*`. Such resources are used by the `SlingPostServlet` to create new content below an existing resource. If the path after Root Level Mapping is absolute, it is made absolute by prepending the first search path entry.
-* Check whether the path exists in the repository. if the path is absolute, it is tried directly. Otherwise the search path entries are prepended  to the path until a resource is found or the search path is exhausted without finding a resource.
-* Drill down the resource tree starting from the root, optionally using the search path until a resource is found.
-* If no resource can be resolved, a Missing Resource is returned.
-
-### Drilling Down the Resource Tree
-
-Drilling down the resource tree starts at the root and for each segment in the path checks whether a child resource of the given name exists or not. If not, a child resource is looked up, which has a `sling:alias` property whose value matches the given name. If neither exists, the search is terminated and the resource cannot be resolved.
-
-The following pseudo code shows this algorithm assuming the path is absolute:
-
-#!java
-String path = ...; // the absolute path
-Resource current = getResource("/");
-String[] segments = path.split("/");
-for (String segment: segments) {
-Resource child = getResource(current, segment);
-if (child == null) {
-Iterator<Resource> children = listChildren(current);
-current = null;
-while (children.hasNext()) {
-child = children.next();
-if (segment.equals(getSlingAlias(child))) {
-current = child;
-break;
-}
-}
-if (current == null) {
-// fail
-break;
-}
-} else {
-current = child;
-}
-}
-
-## Rebuild The Vanity Bloom Filter
-
-[SLING-4216](https://issues.apache.org/jira/browse/SLING-4216) introduced the usage of a bloom filter in order to resolve long startup time with many vanityPath entries.
-The bloom filter is handled automatically by the Sling framework. In some cases though, as changing the maximum number of vanity bloom filter bytes, a rebuild of the vanity bloom filter is needed.
-
-In order to rebuild vanity bloom filter:
-
-* stop Apache Sling
-* locate the org.apache.sling.resourceresolver bundle in the file system (e.g. $SLING_HOME/felix/bundleXX)
-* locate the vanityBloomFilter.txt file in the file system (e.g. $SLING_HOME/felix/bundleXX/data/vanityBloomFilter.txt)
-* delete the vanityBloomFilter.txt file
-* start Apache Sling (this might take few minutes, depending on how many vanity path entries are present)
-
-## Debugging Issues
-
-Use the Felix Web Console Plugin provided at `/system/console/jcrresolver` to inspect both the mapping and the resolver map entries. Also you can check what either `ResourceResolver.map(...)` or `ResourceResolver.resolve(...)` would return for a given URL/path.
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/request-listeners.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/request-listeners.md b/content/documentation/the-sling-engine/request-listeners.md
deleted file mode 100644
index d661e70..0000000
--- a/content/documentation/the-sling-engine/request-listeners.md
+++ /dev/null
@@ -1,35 +0,0 @@
-title=Request Listeners		
-type=page
-status=published
-~~~~~~
-
-Sling provides the possibility to "listen" to a request processed by the Sling Engine (`SlingMainServlet`). To get notified you implement the service interface `org.apache.sling.api.request.SlingRequestListener`.
-
-#!java
-public interface SlingRequestListener {
-
-static final String SERVICE_NAME = "org.apache.sling.api.request.SlingRequestListener";
-
-/**
-* This method is called from the Sling application for every
-* <code>EventType</code> appearing during the dispatching of
-* a Sling request
-*
-* @param sre the object representing the event
-*
-* @see org.apache.sling.api.request.SlingRequestEvent.EventType
-*/
-public void onEvent( SlingRequestEvent sre );
-}
-
-
-There are no special properties to set.
-
-## Supported types of events
-
-At the moment you will get two different types of `SlingRequestEvent`:
-
-| events types (`SlingRequestEvent.EventType`) | point in time |
-|--|--|
-| EVENT_INIT | after entering the `service` method in `SlingMainServlet`. Note that this will be **after** the `handleSecurity` call. |
-| EVENT_DESTROY | at the end of the `service` method in `SlingMainServlet` |

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/request-parameters.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/request-parameters.md b/content/documentation/the-sling-engine/request-parameters.md
deleted file mode 100644
index 2fdea31..0000000
--- a/content/documentation/the-sling-engine/request-parameters.md
+++ /dev/null
@@ -1,84 +0,0 @@
-title=Request Parameter Handling in Sling		
-type=page
-status=published
-~~~~~~
-Excerpt: Explains how Sling provides request parameters to the `Component`.
-
-## Servlet API
-
-The Servlet API specification provides the following methods to access the parameters of a request
-
-| Method | Description |
-|-|-|
-| `HttpServletRequest.getQueryString()` | Returns the query part of the request URL |
-| `ServletRequest.getParameter(String)` | Returns the (first) named parameter |
-| `ServletRequest.getParameterValues(String)` | Returns all parameters of that name |
-| `ServletRequest.getParameterMap()` | Returns all parameters as a map of `String[]({{ refs..path }})` |
-| `ServletRequest.getParameterNames()` | Returns an enumeration of the names of the parameters |
-| `ServletRequest.getParts()` | Returns all parts of the multipart request (since v3.0) |
-| `ServletRequest.getPart(String)` | Returns the request part with that name in case of multipart requests (since v3.0) |
-
-The actual encoding of the parameters is all but safe because the encoding of URLs is not very well defined and browsers do not set the character encoding when sending post data. Fortunately, they use the same character encoding for sending back form content as was used by the server to send the form.
-
-
-## Sling API
-
-To overcome the restrictions and to provide uniform access to request parameters the Sling API in addition to the Servlet API methods to access parameters provides an abstraction of parameters which is applicable to all parameters sent by clients, the `RequestParameter` interface. Through this interface, each parameter may be analyzed for these topics:
-
-| Type | Description |
-|-|-|
-| Raw Content | Byte array and `InputStream` representation of the request parameter values. You will generally use the `InputStream` to handle uploaded files. |
-| String Content | Access the values as strings is some given encoding (see below) or by requesting the conversion using an explicit encoding. |
-| File Uploads | Find out whether a parameter is a file upload, get the size in bytes of the parameter value and client side file name as sent by the browser. |
-
-To accomodate this new interface as well as to provide easy access in the traditional way the `SlingHttpServletRequest` interface adds following methods to the standard Servlet API parameter access methods:
-
-| Method | Description |
-|-|-|
-| `getRequestParameter(String)` | Returns the (first) named parameter as a `RequestParameter` instance |
-| `getRequestParameters(String)` | Returns the named parameter as an array of `RequestParameter` instances |
-| `getRequestParameterMap()` | Returns `RequestParameterMap` being a map of `RequestParameter` arrays indexed by parameter names |
-
-All parameters are handled the same, that is all methods give access to the same parameters regardless of whether the parameters were transmitted in the request query, as part of form encoded data or as part of a `multipart/form-data` request.
-
-As of Sling Engine 2.1.0 the order or request parameters in the `getRequestParameterMap()`, `getParameterMap()`, and `getParameterNams()` is preserved as follows:
-
-* The first entries are the parameters reported by the servlet container. The order of these parameters amongst each other is not defined. The `SlingHttpServletRequest` provides them in the same order as provided by the servlet container.
-* After the servlet container provided parameters are parameters extracted from the request in case `multipart/form-data` POST requests. The order of these parameters is preserved as they are submitted in the request. This conforms to HTML 4.01 spec on forms submitted with multipart/form-data encoding: *A "multipart/form-data" message contains a series of parts, each representing a successful control. The parts are sent to the processing agent in the same order the corresponding controls appear in the document stream. Part boundaries should not occur in any of the data; how this is done lies outside the scope of this specification* ([17.13.4 Form content types](http://www.w3.org/TR/html401/interact/forms.html))
-
-Be warned: Only rely on request parameter ordering `multipart/form-data` POST requests without a query part in the request URL.
-
-### Effects of Sling on Servlet API parameter methods
-
-From within Sling servlets/scripts you can no longer rely on the original semantics of the Servlet API methods for dealing with parameters as
-
-* `ServletRequest.getParameter(String)`
-* `ServletRequest.getParameterValues(String)`
-* `ServletRequest.getParameterMap()`
-* `ServletRequest.getParameterNames()`
-* `ServletRequest.getParts()` and
-* `ServletRequest.getPart(String)`
-
-internally use the Sling parameter support (and therefore have the same implications on e.g. encoding). You should preferably use the Sling methods `getRequestParameter*` instead.
-
-Calling `ServletRequest.getInputStream()` is not supported, nor relying on some 3rd party libraries which are internally using that method like [Apache Commons Fileupload](https://commons.apache.org/proper/commons-fileupload/). This is because the Sling parameter support needs exclusive access to the request's input stream.
-
-## Character Encoding
-
-Traditionally, the encoding of parameters, especially in text area input forms, has been a big issue. To solve this issue Sling introduces the following convention:
-
-* All forms should contain a hidden field of the name `_charset_` containing the actual encoding used to send the form from the server to the client
-* All forms should be sent with *UTF-8* character encoding
-
-The first rule is essential as it helps decoding the form input correctly. The second rule is not actually a very hard requirement but to enable support for all (or most) character sets used, using *UTF-8* is one of the best choices anyway.
-
-When Sling is now receiving a request and is asked for the parameters, the parameters are parsed in two phases: The first phase just parses the raw input data using an identity transformation of bytes to characters. This identity transformation happens to generate strings as the original data was generated with `ISO-8859-1` encoding. The second phase locates the `_charset_` parameter and fixes the character encodings of the parameters as follows:
-
-* All names of the parameters are re-encoded
-* The parameter values are re-encoded, unless the parameter value is an uploaded file. Actually the parameter (not the files of course) are internally as `byte[]({{ refs..path }})` where the conversion to a string is done on the fly (and yes, the conversion using the `_charset_` character encoding is of course cached for performance reasons)
-* If the parameter is an uploaded file, the file name is re-encoded on the fly when accessed
-
-<div class="info">
-Up to and including Sling Engine 2.2.2 request parameters are always decoded with ISO-8859-1 encoding if the <code>_charset_</code> request parameter is missing. As of Sling Engine 2.2.4 the <code>_charset_</code> request parameter is optional. As of this version the Sling Main Servlet supports a configuration setting which allows to change the default character encoding used if the <code>_charset_</code> request parameter is missing.
-To enable this functionality set the <code>sling.default.parameter.encoding</code> parameter of the Sling Main Servlet (PID <code>org.apache.sling.engine.impl.SlingMainServlet</code>) configuration (for Sling Engine < 2.3.0) or the same parameter of the Sling Request Parameter Handling (PID <code>org.apache.sling.engine.parameters</code>) configuration (for Sling Engine >= 2.3.0 ) to the desired encoding, which of course must be supported by the actual Java Platform.
-</div>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/resources.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/resources.md b/content/documentation/the-sling-engine/resources.md
deleted file mode 100644
index 387a192..0000000
--- a/content/documentation/the-sling-engine/resources.md
+++ /dev/null
@@ -1,180 +0,0 @@
-title=Resources		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-## What is a Resource
-
-The Resource is one of the central parts of Sling. Extending from JCR's *Everything is Content*, Sling assumes *Everthing is a Resource*. Thus Sling is maintaining a virtual tree of resources, which is a merger of the actual contents in the JCR Repository and resources provided by so called resource providers. By doing this Sling fits very well in the paradigma of the REST architecture.
-
-### Resource Properties
-
-Resources have a number of essentiall properties:
-
-| Property | Description |
-|--|--|
-| Path | Resources are part of a Resource Tree. As such each Resource has a path which is formed by concatenating the names of all Resources along the root to the Resource separated by a slash. Ok, really, this is much like a URL path or a file system path where the slash (`/`) is the separator character. |
-| Name | The name of the Resource is the last element (or segment) in the path. |
-| Resource Type | Each resource has a resource type which is used by the Servlet and Script resolver to find the appropriate Servlet or Script to handle the request for the Resource. |
-| Resource Super Type | The (optional explicit) super type of the Resource. See the section _Resource Types_ below for more details. |
-| Adapters | Resources are always `Adaptable` and therefore can be adapted to a different view. See the section _Resource Adapters_ below for more details. |
-| Metadata | Resources in general support [link text][1] providing access to values such as the length of a binary resource (which can be streamed) or the Resource's content type. |
-
-For a complete description of the `Resource` interface, please refer to the [link text][2] JavaDoc.
-
-### Resource Types
-
-The exact method of setting the resource type for a Resource depends on the actual Resource Provider. For the four main Resource Provider
-implementations provided by Sling, the assignments are as follows:
-
-| Provider | Resource Type | Resource Super Type |
-|--|--|--|
-| JCR | The value of the `sling:resourceType` property or the primary node type if the property is not set (a namespace separator colon is replaced by a slash, e.g. the `nt:file` primary node type is mapped to the `nt/file` resource type | The value of the `sling:resourceSuperType` of the Resource node or resource super type of the resource pointed to by the resource type (when accessed with `ResourceResolver.getResource(String)` |
-| File System | File based resources are of type `nt/file`; folder based resources are of type `nt/folder` corresponding to the respective JCR primary node type | none |
-| Bundle | File based resources are of type `nt/file`; folder based resources are of type `nt/folder` corresponding to the respective JCR primary node type | none |
-| Servlet | The absolute path of the resource appended with the suffix `.servlet` | `sling/bundle/resource` |
-
-Resource Types form a type hierarchy much like Java classes form a type hierarchy. Each resource type has a resource super type, either explicitly defined as for example for JCR or Servlet Resources or implicitly. The implicit Resource Super Type is at the same time the root Resource Type much like the `java.lang.Object` class is called `sling/servlet/default` (for historical reasons). The `sling/servlet/default` Resource Type is the only type without a super type.
-
-### Adapters
-
-The object types to which Resources may be adapted depend mostly depends on the Resource Provider providing the resource. For example all JCR node based resources always adapt to `javax.jcr.Node` objects.
-
-If the actual Resource object class implementation extends from the `SlingAdaptable` class, then in addition all `AdapterFactory` services adapting `Resource` objects are considered when trying to adapt the Resource. In general Resource Providers are recommended to have their Resource implementation extend from [link text][3] which guarantees the Resource implementation to extend from `SlingAdaptable` and thus supporting Adapter Factories.
-
-## How to get a Resource
-
-To get at Resources, you need a `ResourceResolver`. This interface defines four kinds of methods to access resources:
-
-* Absolute Path Mapping Resource Resolution: The `resolve(HttpServletRequest, String)` and `resolve(String)` methods are called to apply some implementation specific path matching algorithm to find a Resource. These methods are mainly used to map external paths - such as path components of request URLs - to Resources. To support creating external paths usable in an URL a third method `map(String)` is defined, which allows for round-tripping.
-* Absolute or Relative Path Resolution (including search path): The `getResource(String path)` and `getResource(Resource base, String path)` methods may be used to access a resource with an absolute path directly. If it can't be found the path is assumed to be relative and the search path retrieved from `getSearchPath()` is used to retrieve the resource. This mechanism is similar to resolving a programm with the `PATH` environment variable in your favourite operating system.
-* Resource Enumeration: To enumerate resources and thus iterate the resource tree, the `listChildren(Resource)` method may be used. This method returns an `Iterator<Resource>` listing all resources whose path prefix is the path of the given Resource. This method will of course also cross boundaries of registered `ResourceProvider` instances to enable iterating the complete resource tree.
-* Resource Querying: Querying resources is currently only supported for JCR Resources through the `findResources(String query, String language)` and `queryResources(String query, String language)` methods. For more information see the section on [Querying Resources](#querying-resources) below.
-
-### Absolute Path Mapping
-
-As has been said, the absolute path mapping methods `resolve(HttpServletRequest, String)` and `resolve(String)` apply some implementation specific path matching algorithm to find a Resource. The difference between the two methods is that the former may take more properties of the `HttpServletRequest` into account when resolving the Resoure, while the latter just has an absolute path to work on.
-
-The general algorithm of the two methods is as follows:
-
-1. Call `HttpServletRequest.getScheme(), .getServerName(), getServerPort` to get an absolute path out of the request URL: [scheme]({{ refs.scheme.path }})/[host].[port][path] (`resolve(HttpServletRequest, String)` method only, which)
-1. Check whether any virtual path matches the absolute path. If such a match exists, the next step is entered with the match.
-1. Apply a list of mappings in order to create a mapped path. The first mapped path resolving to a Resource is assumed success and the Resource found is returned.
-1. If no mapping created a mapped path addressing an existing Resource, the method fails and returns a `NonExistingResource` (for the
-`resolve(String)` and `resolve(HttpServletRequest,String)`) or null (for the `getResource(String path)`
-and `getResource(Resource base, String path)` methods).
-
-The virtual path mapping may be used to create shortcut URLs for otherwise long and complicated URLs. An example of such an URL might be the main administrative page of a CMS system. So, administrators may access the root of the web application and directed to the main administrative page.
-
-The path mapping functionality may be used to hide internal resource organization from the request URL space. For example to better control the structure of your repository, you might decide to store all accessible data inside a `/content` subtree. To hide this fact from the users, a mapping may be defined to prefix all incoming paths with `/content` to get at the actual Resource.
-
-The `map(String)` applies the path mapping algorithm in the reverse order. That is, first the path mappings are reversed and then any virtual mappings are checked. So, a path `/content/sample` might be mapped `/sample` to revers the `/content` prefixing. Or the main administrative page - say `/system/admin/main.html` - may be mapped to the virtual URL `/`.
-
-More details on mappings can be found at [Mappings for Resource Resolution](/documentation/the-sling-engine/mappings-for-resource-resolution.html).
-
-### Relative Path Resolution
-
-Sometimes it is required to resolve relative paths to Resources. An example of such a use case is Script and Servlet resolution which starts with a relative path consisting of the Resource type, optional selectors and the request extension or method name. By scanning a search path for these relative paths a system provided Resource may be overwritten with some user defined implementation.
-
-Consider for example, the system would provide a Servlet to render Resources of type `nt:file`. This Servlet would be registered under the path `/libs/nt/file/html`. For a certain web application, this default HTML rendering might not be appropriate, so a Script is created as `/apps/nt/file/html.jsp` with a customized HTML rendering. By defining the search path to be `[/apps,/libs]` the Servlet resolver would call the `ResourceResolver.getResource(String)` method with the relative path `nt/file/html` and be provided with the first matching resource - `/apps/nt/file/html.jsp` in this example.
-
-Of course the search path is not used for absolute path arguments.
-
-### Querying Resources
-
-For convenience the `ResourceResolver` provides two Resource querying methods `findResources` and `queryResources` both methods take as arguments a JCR query string and a query language name. These parameters match the parameter definition of the `QueryManager.createQuery(String statement, String language)` method of the JCR API.
-
-The return value of these two methods differ in the use case:
-
-* `findResources` returns an `Iteratory<Resource>` of all Resources matching the query. This method is comparable to calling `getNodes()` on the `QueryResult` returned from executing the JCR query.
-* `queryResources` returns an `Iterator<Map<String, Object>>`. Each entry in the iterator is a `Map<String, Object` representing a JCR result `Row` in the `RowIterator` returned from executing the JCR query. The map is indexed by the column name and the value of each entry is the value of the named column as a Java Object.
-
-These methods are convenience methods to more easily post queries to the repository and to handle results in very straight forward way using only standard Java functionality.
-
-Please note, that Resource querying is currently only supported for repository based Resources. These query methods are not reflected in the `ResourceProvider` interface used to inject non-repository Resources into the Resource tree.
-
-## Providing Resources
-
-The virtual Resource tree to which the the Resource accessor methods `resolve` and `getResource` provide access is implemented by a collection of registered `ResourceProvider` instances. The main Resource provider is of course the repository based `JcrResourceProvider` which supports Node and Property based resources. This Resource provider is always available in Sling. Further Resource providers may or may not exist.
-
-Each Resource provider is registered as an OSGi service with a required service registration property `provider.roots`. This is a multi-value String property listing the absolute paths Resource tree entries serving as roots to provided subtrees. For example, if a Resource provider is registered with the service registration property `provider.roots` set to */some/root*, all paths starting with `/some/root` are first looked up in the given Resource Provider.
-
-When looking up a Resource in the registered Resource providers, the `ResourceResolver` applies a longest prefix matching algorithm to find the best match. For example consider three Resource provider registered as follows:
-
-* JCR Resource provider as `/`
-* Resource provider R1 as `/some`
-* Resource provider R2 as `/some/path`
-
-When accessing a Resource with path `/some/path/resource` the Resource provider *R2* is first asked. If that cannot provide the resource, Resource provider *R1* is asked and finally the JCR Resource provider is asked. The first Resource provider having a Resource with the requested path will be used.
-
-### JCR-based Resources
-
-JCR-based Resources are provided with the default `JcrResourceProvider`. This Resource provider is always available and is always asked last. That is Resources provided by other Resource providers may never be overruled by repository based Resources.
-
-### Bundle-based Resources
-
-Resources may by provided by OSGi bundles. Providing bundles have a Bundle manifest header `Sling-Bundle-Resources` containing a list of absolute paths provided by the bundle. The path are separated by comma or whitespace (SP, TAB, VTAB, CR, LF).
-
-The `BundleResourceProvider` supporting bundle-based Resources provides directories as Resources of type `nt:folder` and files as Resources of type `nt:file`. This matches the default primary node types intended to be used for directories and files in JCR repositories.
-
-For details see [Bundle Resource.](/documentation/bundles/bundle-resources-extensions-bundleresource.html)
-
-### Servlet Resources
-
-Servlet Resources are registered by the Servlet Resolver bundle for Servlets registered as OSGi services. See [Servlet Resolution](/documentation/the-sling-engine/servlets.html) for information on how Servlet Resources are provided.
-
-### File System Resources
-
-The Filesystem Resource Provider provides access to the operating system's filesystem through the Sling ResourceResolver. Multiple locations may be mapped into the resource tree by configuring the filesystem location and the resource tree root path for each location to be mapped.
-
-For details see [File System Resources](/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html).
-
-### Merged Resources
-
-The merged resource provider exposes a view on merged resources from multiple locations.
-
-For details see [Resource Merger](/documentation/bundles/resource-merger.html).
-
-### Custom Resource providers
-Custom ResourceProvider services can be used to integrate your own custom resources in the Sling resource tree.
-
-For a simple example of that, see the [PlanetResourceProvider][4] used in our integration tests.
-
-##  Writeable Resources
-Sling now supports full CRUD functionality on Resources, without necessarily having to go through the JCR API.
-
-The advantage is that this works for any ResourceProvider that supports the required operations.
-
-See the testSimpleCRUD method in [WriteableResourcesTest][5] for a basic example of how that works.
-More details can be found at [Sling API CRUD Support](/documentation/the-sling-engine/sling-api-crud-support.html).
-
-## Resource Observation
-
-To be notified whenever certain resources or their properties have been modified/added/removed there are different possibilities
-
-### Resource Observation API (ResourceChangeListener)
-
-*This API is only available since Sling API 2.11.0 ([SLING-4751](https://issues.apache.org/jira/browse/SLING-4751)).*
-
-Register an OSGi service for [`org.apache.sling.api.resource.observation.ResourceChangeListener`][6] or [`org.apache.sling.api.resource.observation.ExternalResourceChangeListener`][7] to be notified about changes. Certain properties can be used to restrict subscription to only a subset of events.
-
-### OSGi Event Admin
-
-Resource events are sent out via the OSGi Event Admin. You can subscribe to those event by registering an OSGi service for [`org.osgi.service.event.EventHandler`][8]. Several properties should be used to restrict the subscription to only the relevant event. The event topics which are used for resources are listed as constants in [`org.apache.sling.api.SlingConstants`][9] starting with the prefix `TOPIC_`.
-
-## Wrap/Decorate Resources
-
-The Sling API provides an easy way to wrap or decorate a resource before returning. Details see [Wrap or Decorate Resources](/documentation/the-sling-engine/wrap-or-decorate-resources.html).
-
-
-[1]: http://sling.apache.org/apidocs/sling8/org/apache/sling/api/resource/ResourceMetadata.html "ResourceMetadata"
-[2]: http://sling.apache.org/apidocs/sling8/org/apache/sling/api/resource/Resource.html "Resource"
-[3]: http://sling.apache.org/apidocs/sling8/org/apache/sling/api/resource/AbstractResource.html "AbstractResource"
-[4]: https://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/
-[5]: https://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/WriteableResourcesTest.java
-[6]: https://svn.apache.org/repos/asf/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChangeListener.java
-[7]: https://svn.apache.org/repos/asf/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceChangeListener.java
-[8]: https://osgi.org/javadoc/r6/cmpn/org/osgi/service/event/EventHandler.html
-[9]: http://sling.apache.org/apidocs/sling8/org/apache/sling/api/SlingConstants.html


[05/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-original-logo-from-SLING-174/microsling-bw.svg
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-original-logo-from-SLING-174/microsling-bw.svg b/sling-archives/logo/sling-original-logo-from-SLING-174/microsling-bw.svg
deleted file mode 100644
index 48de559..0000000
--- a/sling-archives/logo/sling-original-logo-from-SLING-174/microsling-bw.svg
+++ /dev/null
@@ -1,1032 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="306px" height="214.441px" viewBox="0 0 306 214.441" enable-background="new 0 0 306 214.441" xml:space="preserve">
-<font horiz-adv-x="1000">
-<!-- Copyright 1989, 1995 , 2002Adobe Systems Incorporated. All Rights Reserved.  -->
-<font-face font-family="VAGRoundedStd-Black" units-per-em="1000" underline-position="-100" underline-thickness="50"/>
-<missing-glyph horiz-adv-x="500" d="M0,0l500,0l0,700l-500,0M250,395l-170,255l340,0M280,350l170,255l0,-510M80,50l170,255l170,-255M50,605l170,-255l-170,-255z"/>
-<glyph unicode="&#xB5;" horiz-adv-x="556" d="M36,-141C36,-186 68,-222 114,-222C160,-222 192,-186 192,-141l0,184l2,0C208,16 236,-6 280,-6C310,-6 339,7 369,44C380,20 404,-6 442,-6C488,-6 520,30 520,75l0,382C520,502 488,538 442,538C396,538 364,502 364,457l0,-233C364,170 332,130 278,130C237,130 192,157 192,216l0,241C192,502 160,538 114,538C68,538 36,502 36,457z"/>
-</font>
-
-	<g>
-	<g id="Sling_1_">
-		<path d="M34.152,53.241c-5.775,0-8.878,1.964-12.19,5.232c-3.314,3.267-4.971,7.464-4.971,12.587c0,3.155,0.594,6.029,1.785,8.617
-			c1.188,2.593,2.844,4.762,4.968,6.508s6.471,4.196,13.041,7.35l10.194,4.815c8.496,4,14.456,8.774,17.883,14.319
-			C68.287,118.22,70,125.272,70,133.834c0,9.295-3.75,17.181-11.256,23.658c-7.503,6.479-17.542,9.716-30.115,9.716
-			c-11.044,0-20.473-2.593-28.29-7.773l6.202-15.547c3.172,2.312,7.122,4.241,11.851,5.788C23.12,151.228,27.354,152,31.093,152
-			c6.625,0,11.948-1.801,15.97-5.404c4.021-3.606,6.032-8.199,6.032-13.773c0-4.167-1.119-8.04-3.355-11.617
-			c-2.239-3.577-7.857-7.479-16.863-11.702l-10.025-4.648c-8.495-3.94-14.428-8.615-17.797-14.022C1.685,85.423,0,78.917,0,71.314
-			c0-9.237,3.283-16.897,9.855-22.98c6.568-6.083,15.007-9.125,25.314-9.125"/>
-		<path d="M83,67.042l16.305,0.167v76.901c0,8.43,0.565,13.458,5.695,15.072c-2.521,4.687-4.825,7.026-10.912,7.026
-			c-7.393,0-11.088-5.022-11.088-15.07V67.042z"/>
-		<path d="M122.684,165.208v-55.363H116V96.74h22.674v68.469H122.684z M130.835,70.208c2.528,0,4.688,0.903,6.479,2.717
-			c1.791,1.812,2.686,3.995,2.686,6.552c0,2.559-0.895,4.74-2.686,6.554c-1.792,1.812-3.951,2.718-6.479,2.718
-			c-2.527,0-4.687-0.905-6.478-2.718c-1.793-1.813-2.688-3.995-2.688-6.554c0-2.557,0.895-4.74,2.688-6.552
-			C126.148,71.112,128.308,70.208,130.835,70.208z"/>
-		<path d="M202.025,164.208v-39.15c0-5.774-1.118-9.991-3.354-12.648c-2.237-2.653-5.892-3.984-10.96-3.984
-			c-2.343,0-4.847,0.654-7.509,1.962c-2.66,1.308-4.737,2.932-6.229,4.868v48.953H158V96.473h14.498l-0.059,6.324
-			c4.348-5.059,10.757-7.589,19.234-7.589c8.136,0,14.557,2.414,19.264,7.24c4.707,4.829,7.062,11.564,7.062,20.207v41.553H202.025z
-			"/>
-		<path d="M267.352,197.995c6.094,0,11.854-1.083,17.459-3.517c1.404-0.608,2.781-1.432,3.868-2.531
-			c1.985-2.011,2.836-5.396,0.919-7.751c-1.828-2.249-4.845-2.909-7.59-2.875c-1.643,0.02-3.238,0.323-4.867,0.475
-			c-3.93,0.367-7.871,0.688-11.758,1.394c-5.168,0.939-10.365,1.643-15.625,1.213c-5.727-0.468-12.57-2.209-14.697-8.338
-			c-2.119-6.109,2.02-11.507,6.372-14.805c1.649-1.249,3.347-2.485,5.084-3.608c-1.687-1.116-3.079-2.555-4.595-3.884
-			c-2.411-2.116-4.612-4.489-6.366-7.192c-1.816-2.801-3.123-6.916-3.847-10.179c-0.789-3.558-0.896-8.249-0.438-11.858
-			c0.494-3.91,1.364-8.014,3.045-11.569c1.721-3.642,3.883-6.737,6.656-9.648c3.229-3.393,7.596-6.233,11.956-7.942
-			c4.722-1.848,9.794-1.927,14.82-1.99c5.017-0.064,9.817,1.361,14.588,3.027c1.399,0.489,3.048,1.663,4.18,2.44
-			c0.996-1.117,8.609-8.254,8.974-8.646c0.951,1.005,8.51,8,8.51,8l-8.665,8.728c0,0,3.046,4.855,4.125,7.777
-			c0.792,2.144,1.742,5.392,1.997,9.722c0.206,3.505-0.055,8.044-0.731,11.486c-0.647,3.295-1.69,7.527-3.269,10.493
-			c-1.504,2.829-3.502,5.361-5.879,7.499c-2.396,2.156-5.13,3.917-8.01,5.344c-7.461,3.693-15.137,4.388-23.306,3.697
-			c-1.417-0.121-1.845-0.156-3.265-0.228c-0.238,0.242-3.925,1.862-5.709,3.177c-1.49,1.099-5.807,3.854-4.129,6.308
-			c1.118,1.634,3.545,1.383,5.23,1.159c5.688-0.75,11.336-1.891,17.004-2.776c2.551-0.397,5.104-0.807,7.668-1.102
-			c1.652-0.19,3.312-0.316,4.976-0.341c3.64-0.051,7.332,0.393,10.767,1.68c1.471,0.551,2.93,1.279,4.266,2.11
-			c1.574,0.982,3.101,2.18,4.424,3.487c1.181,1.167,2.212,2.538,3.017,3.997c2.296,4.161,1.698,9.258-0.175,13.455
-			c-0.504,1.129-1.111,2.247-1.794,3.28c-0.92,1.396-2.029,2.745-3.222,3.917c-1.279,1.259-2.718,2.411-4.192,3.43
-			c-7.427,5.135-16.403,7.7-27.776,7.7 M266.87,106.507c-5.91,0-10.737,1.956-14.469,5.864c-3.734,3.911-5.6,8.657-5.6,14.242
-			c0,6.256,1.807,13.436,5.423,17.539c3.611,4.106,8.494,6.16,14.646,6.16c6.034,0,10.753-1.996,14.157-5.99
-			c3.406-3.995,5.107-11.23,5.107-17.709c0-5.585-1.836-10.331-5.51-14.242C276.951,108.463,272.366,106.507,266.87,106.507z
-			 M234.994,170.028"/>
-	</g>
-	<g id="BL-Corner_1_">
-		<path id="B_1_" d="M29,212.208H0v-9.983c0.37,0,13.488-0.063,14-0.017"/>
-		<path id="L_1_" d="M14,173.075c0,0-7.577-1.631-14-5.866v36h14V173.075z"/>
-	</g>
-	<rect id="T-Border_1_" x="34" y="39.208" width="270" height="14"/>
-	<rect id="R-Border_1_" x="290" y="39.208" width="14" height="59"/>
-	<path id="G-tail_Stop_2_" d="M234,212.196c12.82,0.03,16.655-0.002,29.476-0.006c0.186,0,4.524-0.001,4.524-0.001
-		c0-0.014,0-13.971,0-13.973c0-0.012-1.975,0.02-2.04,0.02c-2.207-0.01-4.415-0.033-6.622-0.025
-		c-1.189,0.004-3.561,0.008-3.561,0.008h-1.227"/>
-	<ellipse id="_xB5_-Bubble_1_" fill="#FFFFFF" stroke="#000000" stroke-width="8" cx="221.25" cy="46.208" rx="39.5" ry="39"/>
-	<text transform="matrix(0.981 0.2352 -0.2407 0.9706 200.0615 53.4639)" font-family="'VAGRoundedStd-Black'" font-size="66.365">µ</text>
-	<g id="Feather_1_">
-		<g>
-			<path stroke="#000000" stroke-width="2" d="M24.735,196.95c39.997,0.477,80.017,2.72,119.979,0.4
-				c9.63-0.56,19.272-1.094,28.916-1.116c9.553-0.022,19.171-0.797,28.639-0.701c5.475,0.056,10.941,0.373,16.268,0.479
-				c7.293,0.146,14.045-0.715,20.766-2.03c3.271-0.641,6.341-1.493,9.172-2.929c-7.98,0.844-15.63,1.631-23.479,1.876
-				c-7.817,0.245-15.81-0.07-24.162-0.346c-8.479-0.279-17.149-0.265-25.439-0.648c-12.857-0.595-25.873-1.426-38.392-0.527
-				c-3.608,0.259-7.473,1.869-11.165,2.17c-7.879,0.643-13.926-0.245-21.828,0.021c-2.246,0.076-6.273,0.626-8.515,0.668
-				c-2.534,0.048-5.359-0.247-7.877-0.258c-12.557-0.056-25.036,0.69-37.511,1.439c-3.556,0.214-7.167,0.399-10.748,0.586
-				c-4.468,0.232-8.949,0.461-13.39,0.815C25.561,196.882,25.142,196.95,24.735,196.95z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M88.981,210.906L88.981,210.906c0.768,0.356,1.152,0.533,1.923,0.887
-				c0.784,0.148,1.177,0.225,1.964,0.37c0.816-0.039,1.225-0.062,2.042-0.104c0.847-0.227,1.27-0.339,2.118-0.569
-				c0.844-0.336,1.265-0.509,2.109-0.849c0.863-0.462,1.295-0.693,2.157-1.16c0.834-0.552,1.25-0.828,2.083-1.385
-				c0.836-0.601,1.254-0.901,2.088-1.507c0.794-0.628,1.19-0.945,1.981-1.577c0.75-0.638,1.123-0.956,1.869-1.597
-				c0.721-0.618,1.081-0.929,1.798-1.55c0.67-0.586,1.003-0.879,1.67-1.467c0.607-0.484,0.912-0.727,1.517-1.213
-				c0.55-0.383,0.825-0.573,1.373-0.956c0.464-0.246,0.695-0.371,1.158-0.618c0.401-0.101,0.602-0.151,1.003-0.252l0,0
-				c-0.325,0-0.487,0-0.812,0c-0.343-0.001-0.514-0.001-0.857-0.002c-0.39,0.018-0.586,0.025-0.977,0.043
-				c-0.389,0.016-0.584,0.022-0.974,0.038c-0.393,0.018-0.589,0.028-0.981,0.046c-0.391,0.017-0.585,0.025-0.976,0.041
-				c-0.386-0.004-0.58-0.01-0.966-0.014c-0.349,0.018-0.523,0.031-0.872,0.049l0,0c-0.601,0.443-0.901,0.662-1.504,1.104
-				c-0.58,0.421-0.871,0.633-1.453,1.052c-0.517,0.424-0.776,0.637-1.295,1.06c-0.475,0.428-0.712,0.639-1.188,1.065
-				c-0.473,0.401-0.71,0.601-1.184,1.001c-0.452,0.404-0.678,0.607-1.131,1.01c-0.43,0.383-0.646,0.575-1.077,0.957
-				c-0.45,0.36-0.675,0.536-1.125,0.895c-0.448,0.357-0.674,0.537-1.122,0.894c-0.466,0.312-0.699,0.469-1.165,0.78
-				c-0.486,0.311-0.73,0.466-1.216,0.774c-0.548,0.28-0.822,0.42-1.37,0.698c-0.566,0.259-0.848,0.387-1.414,0.643
-				c-0.627,0.228-0.941,0.338-1.568,0.563c-0.688,0.197-1.032,0.297-1.718,0.491C90.125,210.692,89.745,210.764,88.981,210.906z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M82.436,209.846L82.436,209.846c0.907,0.266,1.361,0.396,2.272,0.655
-				c0.865,0.128,1.3,0.188,2.168,0.312c0.823,0.016,1.234,0.026,2.06,0.038c0.797-0.097,1.197-0.148,1.996-0.249
-				c0.755-0.207,1.132-0.312,1.889-0.523c0.701-0.28,1.052-0.421,1.754-0.705c0.712-0.345,1.068-0.519,1.781-0.867
-				c0.658-0.415,0.986-0.623,1.644-1.041c0.66-0.439,0.991-0.661,1.65-1.104c0.623-0.487,0.932-0.729,1.554-1.22
-				c0.629-0.533,0.944-0.801,1.571-1.337c0.603-0.516,0.905-0.775,1.507-1.293c0.621-0.517,0.93-0.774,1.549-1.294
-				c0.622-0.52,0.932-0.782,1.551-1.304c0.612-0.479,0.917-0.719,1.526-1.2c0.625-0.439,0.935-0.659,1.557-1.101l0,0
-				c-0.215,0.006-0.322,0.007-0.537,0.013c-0.236-0.016-0.354-0.022-0.59-0.038c-0.217,0.007-0.327,0.01-0.544,0.017
-				c-0.237,0.004-0.356,0.006-0.593,0.01c-0.24,0.004-0.358,0.005-0.598,0.009c-0.24,0.026-0.36,0.038-0.6,0.063
-				c-0.238,0.003-0.357,0.005-0.595,0.008c-0.238,0.006-0.356,0.007-0.594,0.012c-0.237,0.003-0.357,0.007-0.594,0.01
-				c-0.26,0.002-0.389,0.003-0.649,0.005c-0.241,0.025-0.361,0.037-0.602,0.062c-0.259,0.001-0.387,0.001-0.646,0.001
-				c-0.259,0.001-0.39,0-0.648,0.001c-0.26,0-0.391,0.001-0.651,0.001c-0.256-0.021-0.384-0.031-0.641-0.052
-				c-0.258,0.001-0.388,0.001-0.646,0.002l0,0c-0.238,0.273-0.355,0.411-0.594,0.684c-0.289,0.332-0.433,0.498-0.722,0.829
-				c-0.365,0.387-0.547,0.579-0.913,0.965c-0.388,0.405-0.583,0.607-0.973,1.011c-0.461,0.439-0.692,0.659-1.154,1.097
-				c-0.484,0.434-0.725,0.65-1.209,1.082c-0.508,0.45-0.764,0.673-1.272,1.121c-0.528,0.426-0.791,0.64-1.319,1.062
-				c-0.545,0.402-0.817,0.602-1.362,1.001c-0.541,0.379-0.812,0.57-1.352,0.946c-0.556,0.332-0.834,0.495-1.39,0.825
-				c-0.523,0.272-0.786,0.409-1.309,0.68c-0.512,0.208-0.768,0.312-1.279,0.518c-0.498,0.126-0.747,0.189-1.244,0.313
-				c-0.461,0.046-0.692,0.064-1.152,0.109C83.07,209.925,82.859,209.902,82.436,209.846z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M78.129,209.312L78.129,209.312c0.511,0.13,0.764,0.197,1.278,0.331
-				c0.496,0.11,0.746,0.162,1.243,0.271c0.486,0.047,0.729,0.069,1.217,0.114c0.499-0.017,0.75-0.025,1.25-0.044
-				c0.503-0.037,0.753-0.056,1.257-0.095c0.497-0.123,0.746-0.188,1.243-0.313c0.502-0.166,0.754-0.247,1.258-0.415
-				c0.542-0.247,0.812-0.369,1.355-0.618c0.548-0.29,0.822-0.438,1.371-0.73c0.559-0.352,0.839-0.526,1.398-0.881
-				c0.572-0.438,0.859-0.657,1.432-1.098c0.603-0.479,0.905-0.719,1.507-1.2c0.639-0.582,0.957-0.873,1.595-1.459
-				c0.67-0.645,1.007-0.968,1.676-1.616c0.7-0.708,1.048-1.062,1.746-1.775c0.735-0.814,1.102-1.223,1.834-2.042l0,0
-				c-0.363-0.029-0.543-0.043-0.906-0.073c-0.343-0.007-0.516-0.011-0.859-0.018c-0.348,0.013-0.521,0.02-0.869,0.031
-				c-0.347,0.013-0.521,0.019-0.867,0.03s-0.52,0.019-0.866,0.03c-0.346,0.01-0.518,0.017-0.863,0.025
-				c-0.382-0.034-0.573-0.055-0.955-0.09c-0.402-0.037-0.605-0.055-1.007-0.093l0,0c-0.396,0.295-0.594,0.44-0.99,0.734
-				c-0.376,0.316-0.562,0.473-0.938,0.788c-0.375,0.296-0.562,0.444-0.938,0.739c-0.38,0.333-0.571,0.499-0.952,0.83
-				c-0.377,0.312-0.567,0.468-0.945,0.778c-0.358,0.336-0.536,0.504-0.895,0.838c-0.378,0.308-0.568,0.462-0.947,0.769
-				c-0.361,0.332-0.541,0.496-0.902,0.827c-0.376,0.308-0.565,0.461-0.94,0.768c-0.375,0.306-0.563,0.46-0.938,0.765
-				c-0.397,0.303-0.596,0.452-0.993,0.753c-0.374,0.284-0.561,0.425-0.934,0.707c-0.409,0.255-0.613,0.385-1.021,0.639
-				c-0.41,0.255-0.615,0.382-1.024,0.636c-0.406,0.254-0.609,0.379-1.012,0.632C78.791,208.996,78.569,209.101,78.129,209.312z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M73.632,208.547L73.632,208.547c0.362,0.249,0.543,0.375,0.906,0.626
-				c0.423,0.131,0.634,0.196,1.058,0.329c0.448-0.008,0.673-0.011,1.122-0.017c0.489-0.123,0.732-0.184,1.221-0.304
-				c0.502-0.203,0.754-0.305,1.256-0.504c0.54-0.297,0.812-0.441,1.357-0.739c0.551-0.338,0.826-0.508,1.379-0.848
-				c0.569-0.42,0.854-0.632,1.424-1.055c0.549-0.448,0.825-0.673,1.375-1.124c0.578-0.466,0.868-0.7,1.447-1.169
-				c0.534-0.476,0.801-0.714,1.335-1.192c0.534-0.458,0.8-0.688,1.334-1.149c0.512-0.461,0.768-0.691,1.279-1.155
-				c0.48-0.405,0.72-0.607,1.2-1.015c0.447-0.35,0.671-0.524,1.118-0.876c0.396-0.295,0.593-0.445,0.988-0.741
-				c-2.303-0.012-3.452-0.024-5.744-0.073l0,0c-0.312,0.297-0.467,0.447-0.779,0.743c-0.33,0.292-0.494,0.438-0.824,0.729
-				c-0.309,0.299-0.464,0.446-0.773,0.744c-0.31,0.291-0.465,0.436-0.774,0.726c-0.311,0.295-0.467,0.444-0.778,0.738
-				c-0.331,0.289-0.495,0.433-0.825,0.721c-0.31,0.291-0.465,0.438-0.775,0.728c-0.33,0.287-0.497,0.431-0.826,0.717
-				c-0.348,0.264-0.52,0.396-0.867,0.658c-0.35,0.282-0.527,0.422-0.877,0.703c-0.346,0.264-0.515,0.398-0.859,0.664
-				c-0.385,0.255-0.577,0.382-0.961,0.639c-0.384,0.261-0.577,0.394-0.961,0.655c-0.407,0.26-0.609,0.391-1.016,0.652
-				c-0.422,0.238-0.633,0.357-1.055,0.598C74.295,208.193,74.074,208.309,73.632,208.547z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M64.625,206.513L64.625,206.513c0.577,0.459,0.865,0.69,1.442,1.151
-				c0.559,0.315,0.838,0.471,1.397,0.789c0.583,0.176,0.875,0.268,1.458,0.446c0.583,0.054,0.875,0.08,1.458,0.137
-				c0.578-0.047,0.867-0.071,1.446-0.115c0.57-0.126,0.854-0.186,1.424-0.308c0.567-0.229,0.851-0.345,1.419-0.57
-				c0.582-0.303,0.874-0.452,1.456-0.751c0.574-0.383,0.86-0.573,1.436-0.952c0.581-0.4,0.872-0.6,1.454-0.995
-				c0.55-0.484,0.825-0.727,1.379-1.211c0.58-0.478,0.873-0.714,1.454-1.194c0.564-0.526,0.847-0.791,1.413-1.32
-				c0.57-0.547,0.855-0.821,1.426-1.371c0.549-0.555,0.824-0.832,1.373-1.39c0.547-0.537,0.819-0.806,1.366-1.346l0,0
-				c-0.39,0.019-0.586,0.026-0.976,0.044c-0.298-0.015-0.446-0.022-0.744-0.037c-0.213-0.005-0.322-0.008-0.536-0.014
-				c-0.194-0.002-0.29-0.002-0.483-0.005c-0.192-0.001-0.287-0.003-0.479-0.005c-0.188-0.024-0.283-0.035-0.471-0.06
-				c-0.278-0.015-0.417-0.022-0.695-0.038c-0.359-0.025-0.539-0.039-0.898-0.066l0,0c-0.496,0.494-0.745,0.74-1.241,1.231
-				c-0.488,0.451-0.73,0.676-1.217,1.125c-0.482,0.43-0.724,0.645-1.206,1.077c-0.513,0.365-0.77,0.549-1.282,0.918
-				c-0.483,0.332-0.726,0.5-1.209,0.835c-0.479,0.313-0.718,0.471-1.197,0.787c-0.494,0.273-0.74,0.411-1.233,0.688
-				c-0.465,0.238-0.698,0.357-1.163,0.598c-0.458,0.199-0.688,0.299-1.146,0.501c-0.454,0.182-0.68,0.271-1.133,0.455
-				c-0.423,0.123-0.634,0.188-1.057,0.312c-0.397,0.109-0.599,0.163-0.996,0.273c-0.396,0.089-0.592,0.133-0.988,0.223
-				c-0.346,0.052-0.517,0.079-0.863,0.132c-0.34,0.013-0.511,0.017-0.851,0.029C65.066,206.514,64.918,206.515,64.625,206.513z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M59.84,205.85L59.84,205.85c0.653,0.126,0.979,0.188,1.633,0.317
-				c0.637,0.089,0.957,0.136,1.594,0.227c0.63,0.005,0.945,0.006,1.575,0.014c0.617-0.033,0.924-0.049,1.541-0.08
-				c0.582-0.073,0.873-0.109,1.455-0.18c0.591-0.135,0.887-0.2,1.479-0.332c0.558-0.176,0.837-0.264,1.395-0.437
-				c0.547-0.235,0.822-0.355,1.37-0.588c0.551-0.252,0.827-0.374,1.378-0.623c0.518-0.295,0.778-0.444,1.296-0.736
-				c0.523-0.332,0.785-0.496,1.309-0.825c0.511-0.373,0.766-0.56,1.277-0.93c0.494-0.392,0.744-0.586,1.238-0.975
-				c0.482-0.432,0.722-0.648,1.205-1.077c0.487-0.451,0.733-0.673,1.222-1.125c0.471-0.474,0.707-0.712,1.178-1.188l0,0
-				c-0.423-0.034-0.635-0.053-1.058-0.089c-0.468-0.023-0.702-0.035-1.168-0.061c-0.443-0.022-0.665-0.033-1.108-0.053
-				c-0.442-0.038-0.664-0.055-1.106-0.09c-0.383-0.008-0.574-0.013-0.957-0.019c-0.315-0.02-0.474-0.028-0.789-0.047
-				c-0.233-0.006-0.35-0.007-0.583-0.013c-0.108,0.007-0.163,0.009-0.271,0.017l0,0c-0.047,0.037-0.071,0.055-0.118,0.092
-				c-0.123,0.088-0.184,0.134-0.307,0.222c-0.197,0.144-0.296,0.212-0.493,0.355c-0.243,0.181-0.365,0.273-0.608,0.455
-				c-0.272,0.218-0.408,0.327-0.68,0.546c-0.342,0.254-0.512,0.381-0.854,0.636c-0.367,0.272-0.551,0.409-0.917,0.683
-				c-0.409,0.29-0.614,0.435-1.023,0.727c-0.454,0.286-0.682,0.432-1.135,0.72c-0.476,0.308-0.712,0.462-1.187,0.771
-				c-0.473,0.291-0.708,0.438-1.18,0.73c-0.514,0.286-0.77,0.431-1.283,0.719c-0.528,0.268-0.794,0.399-1.322,0.668
-				c-0.527,0.248-0.79,0.373-1.316,0.623c-0.541,0.209-0.812,0.314-1.352,0.524C60.639,205.598,60.373,205.681,59.84,205.85z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M53.39,205.795L53.39,205.795c0.545,0.137,0.817,0.206,1.362,0.344
-				c0.536,0.075,0.804,0.113,1.339,0.188c0.571-0.025,0.856-0.036,1.428-0.061c0.578-0.065,0.867-0.102,1.445-0.166
-				c0.591-0.146,0.887-0.218,1.478-0.362c0.577-0.188,0.864-0.281,1.441-0.469c0.585-0.226,0.877-0.339,1.463-0.562
-				c0.596-0.284,0.893-0.425,1.489-0.707c0.556-0.306,0.833-0.459,1.39-0.763c0.562-0.325,0.844-0.487,1.407-0.811
-				c0.544-0.345,0.817-0.519,1.361-0.861c0.53-0.364,0.795-0.544,1.325-0.906c0.512-0.385,0.768-0.578,1.28-0.96
-				c0.487-0.364,0.731-0.545,1.218-0.907c0.448-0.366,0.671-0.549,1.119-0.913c0.426-0.366,0.638-0.549,1.064-0.913l0,0
-				c-0.25-0.029-0.375-0.043-0.625-0.071c-0.317-0.014-0.476-0.022-0.792-0.035c-0.336-0.018-0.505-0.025-0.842-0.042
-				c-0.355-0.037-0.532-0.056-0.888-0.091c-0.34,0.005-0.509,0.009-0.849,0.015c-0.337-0.011-0.507-0.017-0.844-0.026
-				c-0.275-0.005-0.413-0.009-0.688-0.014c-0.236,0.02-0.354,0.031-0.59,0.051l0,0c-0.008,0.04-0.012,0.062-0.02,0.102
-				c-0.102,0.093-0.151,0.137-0.253,0.23c-0.239,0.165-0.359,0.25-0.598,0.416c-0.332,0.198-0.498,0.298-0.83,0.497
-				c-0.404,0.254-0.606,0.38-1.01,0.635c-0.472,0.293-0.709,0.441-1.181,0.735c-0.519,0.312-0.778,0.468-1.296,0.781
-				c-0.539,0.308-0.809,0.46-1.348,0.77c-0.562,0.329-0.842,0.496-1.403,0.827c-0.561,0.333-0.841,0.5-1.401,0.835
-				c-0.536,0.315-0.804,0.474-1.34,0.79c-0.51,0.275-0.765,0.413-1.274,0.689c-0.462,0.259-0.693,0.389-1.154,0.648
-				c-0.412,0.201-0.617,0.304-1.028,0.505c-0.318,0.145-0.477,0.217-0.795,0.361C53.727,205.664,53.614,205.707,53.39,205.795z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M46.324,205.307L46.324,205.307c0.282,0.348,0.423,0.522,0.706,0.87
-				c0.416,0.17,0.623,0.256,1.038,0.426c0.541,0.034,0.812,0.052,1.354,0.085c0.625-0.105,0.938-0.159,1.563-0.265
-				c0.705-0.206,1.057-0.308,1.762-0.514c0.74-0.304,1.11-0.455,1.851-0.758c0.795-0.364,1.193-0.547,1.989-0.91
-				c0.78-0.403,1.17-0.604,1.951-1.006c0.789-0.443,1.184-0.664,1.975-1.105c0.748-0.442,1.122-0.664,1.872-1.104
-				c0.703-0.423,1.055-0.634,1.759-1.054c0.621-0.408,0.931-0.612,1.552-1.019c0.543-0.327,0.813-0.487,1.357-0.812
-				c0.407-0.275,0.611-0.415,1.019-0.689c0.265-0.182,0.397-0.271,0.662-0.452c0.119-0.073,0.178-0.11,0.297-0.184l0,0
-				c-0.274-0.004-0.41-0.006-0.684-0.01c-0.297-0.007-0.444-0.008-0.742-0.014c-0.316-0.007-0.477-0.009-0.793-0.016
-				c-0.315-0.004-0.472-0.008-0.787-0.011c-0.342,0.011-0.514,0.017-0.856,0.028c-0.338-0.006-0.506-0.009-0.845-0.014
-				c-0.336-0.004-0.506-0.005-0.842-0.008c-0.359-0.007-0.538-0.008-0.897-0.014l0,0c-0.414,0.195-0.62,0.291-1.034,0.487
-				c-0.413,0.198-0.62,0.3-1.033,0.499c-0.419,0.218-0.627,0.326-1.046,0.544c-0.393,0.203-0.59,0.305-0.983,0.509
-				c-0.415,0.218-0.623,0.326-1.037,0.545c-0.401,0.244-0.601,0.365-1.002,0.609c-0.416,0.221-0.624,0.333-1.039,0.555
-				c-0.395,0.223-0.593,0.335-0.988,0.558c-0.42,0.241-0.628,0.362-1.048,0.604c-0.394,0.225-0.59,0.337-0.984,0.562
-				c-0.414,0.222-0.621,0.333-1.034,0.555c-0.393,0.224-0.59,0.334-0.982,0.558c-0.411,0.202-0.616,0.304-1.027,0.506
-				c-0.412,0.202-0.619,0.304-1.031,0.506c-0.389,0.201-0.583,0.302-0.972,0.502C46.935,205.039,46.732,205.125,46.324,205.307z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M41.102,205.058L41.102,205.058c0.336,0.148,0.504,0.222,0.84,0.369
-				c0.344,0.086,0.517,0.131,0.861,0.217c0.351,0.044,0.525,0.064,0.875,0.107c0.364-0.036,0.548-0.054,0.912-0.09
-				c0.369-0.08,0.553-0.12,0.922-0.201c0.397-0.117,0.596-0.175,0.993-0.293c0.428-0.18,0.643-0.271,1.07-0.451
-				c0.455-0.219,0.682-0.327,1.137-0.547c0.504-0.257,0.757-0.387,1.261-0.645c0.532-0.299,0.798-0.446,1.331-0.745
-				c0.58-0.335,0.869-0.503,1.449-0.838c0.647-0.353,0.97-0.528,1.618-0.881c0.715-0.388,1.073-0.582,1.79-0.97
-				c0.767-0.428,1.15-0.64,1.918-1.065c0.833-0.44,1.249-0.661,2.083-1.1c0.923-0.453,1.384-0.682,2.308-1.131l0,0
-				c-0.359-0.005-0.539-0.006-0.898-0.01c-0.4-0.007-0.599-0.011-1-0.017c-0.354-0.025-0.532-0.037-0.886-0.062
-				c-0.358-0.004-0.538-0.006-0.896-0.009c-0.317,0-0.476,0-0.793,0c-0.254,0.004-0.381,0.006-0.636,0.01
-				c-0.172,0.011-0.258,0.015-0.43,0.025c-0.065,0.016-0.097,0.023-0.162,0.039l0,0c-0.053,0.06-0.079,0.09-0.132,0.149
-				c-0.146,0.115-0.22,0.171-0.366,0.286c-0.216,0.152-0.324,0.229-0.54,0.381c-0.287,0.208-0.431,0.311-0.718,0.52
-				c-0.356,0.244-0.534,0.366-0.89,0.61c-0.406,0.288-0.61,0.434-1.016,0.722c-0.428,0.281-0.641,0.422-1.068,0.703
-				c-0.491,0.301-0.734,0.451-1.225,0.752c-0.491,0.3-0.738,0.452-1.229,0.752c-0.511,0.298-0.767,0.446-1.277,0.744
-				c-0.503,0.257-0.754,0.385-1.257,0.642c-0.527,0.257-0.791,0.385-1.318,0.641c-0.496,0.215-0.745,0.323-1.24,0.537
-				c-0.489,0.174-0.734,0.258-1.224,0.431c-0.459,0.112-0.688,0.173-1.147,0.284C41.717,204.98,41.512,205.005,41.102,205.058z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M37.383,204.208L37.383,204.208c0.451,0.221,0.676,0.334,1.127,0.554
-				c0.509,0.122,0.764,0.182,1.272,0.303c0.549,0.001,0.824,0,1.374-0.001c0.584-0.103,0.876-0.152,1.46-0.256
-				c0.616-0.165,0.923-0.248,1.539-0.414c0.604-0.228,0.906-0.344,1.509-0.572c0.635-0.289,0.953-0.432,1.588-0.722
-				c0.6-0.334,0.9-0.501,1.5-0.835c0.58-0.335,0.87-0.504,1.45-0.839c0.564-0.357,0.847-0.534,1.411-0.892
-				c0.519-0.34,0.778-0.514,1.298-0.854c0.457-0.345,0.685-0.514,1.142-0.857c0.407-0.284,0.612-0.427,1.019-0.711
-				c0.313-0.249,0.469-0.374,0.782-0.623c0.24-0.169,0.359-0.255,0.599-0.424c0.148-0.117,0.222-0.175,0.37-0.292l0,0
-				c-0.338-0.001-0.508-0.002-0.846-0.002c-0.319,0.002-0.479,0.004-0.797,0.007c-0.315,0.001-0.473,0.003-0.789,0.004
-				c-0.32,0.021-0.48,0.03-0.8,0.051c-0.297,0.004-0.445,0.006-0.742,0.01c-0.317,0.001-0.475,0.001-0.792,0.002
-				c-0.341,0.02-0.513,0.029-0.854,0.049c-0.337,0-0.505,0.002-0.843,0.002l0,0c-0.288,0.21-0.434,0.313-0.722,0.523
-				c-0.311,0.207-0.465,0.312-0.775,0.52c-0.286,0.209-0.427,0.312-0.712,0.521c-0.312,0.229-0.468,0.345-0.779,0.574
-				c-0.314,0.248-0.471,0.373-0.785,0.621c-0.31,0.228-0.464,0.34-0.774,0.567c-0.331,0.227-0.497,0.34-0.828,0.566
-				c-0.332,0.226-0.497,0.34-0.829,0.564c-0.328,0.206-0.493,0.307-0.821,0.512c-0.326,0.205-0.489,0.309-0.814,0.513
-				c-0.347,0.182-0.52,0.27-0.866,0.45c-0.318,0.162-0.477,0.243-0.795,0.404c-0.361,0.141-0.542,0.214-0.903,0.354
-				c-0.334,0.118-0.502,0.175-0.836,0.292c-0.35,0.078-0.524,0.119-0.873,0.197C37.903,204.129,37.729,204.155,37.383,204.208z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M33.011,202.378L33.011,202.378c0.374,0.324,0.562,0.486,0.936,0.809
-				c0.388,0.221,0.581,0.331,0.969,0.551c0.406,0.119,0.609,0.178,1.015,0.296c0.415,0.057,0.623,0.085,1.038,0.14
-				c0.429-0.046,0.643-0.07,1.072-0.118c0.436-0.092,0.656-0.137,1.092-0.229c0.445-0.15,0.667-0.227,1.111-0.378
-				c0.455-0.213,0.683-0.319,1.137-0.533c0.438-0.237,0.657-0.357,1.095-0.596c0.468-0.296,0.702-0.443,1.171-0.74
-				c0.449-0.302,0.674-0.454,1.124-0.756c0.452-0.321,0.677-0.48,1.129-0.803c0.451-0.32,0.677-0.481,1.129-0.803
-				c0.435-0.345,0.652-0.516,1.088-0.86c0.433-0.324,0.65-0.486,1.083-0.811c0.43-0.306,0.644-0.458,1.073-0.764l0,0
-				c-0.233,0.009-0.351,0.013-0.584,0.021c-0.259,0.025-0.388,0.038-0.647,0.063c-0.273,0.003-0.411,0.004-0.685,0.007
-				c-0.295,0.003-0.443,0.002-0.739,0.005c-0.321,0.021-0.482,0.032-0.803,0.052c-0.338,0-0.506,0.001-0.844,0.001
-				c-0.363,0.017-0.544,0.024-0.907,0.04c-0.338-0.001-0.507-0.003-0.846-0.004l0,0c-0.144,0.238-0.214,0.357-0.358,0.596
-				c-0.185,0.235-0.277,0.353-0.462,0.588c-0.184,0.216-0.276,0.325-0.46,0.541c-0.223,0.212-0.334,0.315-0.557,0.527
-				c-0.24,0.189-0.359,0.287-0.599,0.477c-0.264,0.188-0.397,0.279-0.66,0.466c-0.261,0.187-0.391,0.277-0.651,0.463
-				c-0.295,0.144-0.443,0.218-0.738,0.361c-0.299,0.144-0.449,0.214-0.748,0.357c-0.315,0.12-0.472,0.182-0.788,0.301
-				c-0.334,0.118-0.502,0.178-0.836,0.295c-0.33,0.075-0.494,0.111-0.823,0.187c-0.346,0.055-0.52,0.083-0.866,0.137
-				c-0.345,0.051-0.517,0.074-0.862,0.124c-0.362,0.01-0.543,0.017-0.905,0.025C33.548,202.401,33.369,202.392,33.011,202.378z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M28.997,201.191L28.997,201.191c0.336,0.181,0.503,0.269,0.839,0.448
-				c0.36,0.144,0.541,0.214,0.901,0.356c0.387,0.101,0.581,0.153,0.968,0.253c0.439,0.045,0.659,0.066,1.098,0.109
-				c0.421,0.021,0.633,0.03,1.054,0.049c0.468-0.019,0.701-0.03,1.169-0.051c0.457-0.083,0.685-0.125,1.142-0.21
-				c0.457-0.084,0.686-0.128,1.143-0.213c0.446-0.149,0.669-0.225,1.115-0.375c0.429-0.173,0.643-0.26,1.071-0.434
-				c0.39-0.198,0.585-0.3,0.975-0.499c0.376-0.239,0.563-0.356,0.939-0.596c0.337-0.266,0.505-0.399,0.843-0.666
-				c0.3-0.288,0.449-0.431,0.749-0.719c0.242-0.334,0.362-0.503,0.604-0.837c0.18-0.34,0.271-0.507,0.452-0.847l0,0
-				c-0.254,0.005-0.381,0.008-0.635,0.013c-0.255,0.003-0.383,0.002-0.639,0.005c-0.277,0.022-0.416,0.034-0.692,0.056
-				c-0.277,0.001-0.415,0.001-0.691,0.002c-0.273,0.001-0.41,0.003-0.684,0.004c-0.296-0.001-0.445-0.004-0.741-0.006
-				c-0.318-0.003-0.477-0.004-0.795-0.008c-0.359-0.007-0.538-0.009-0.897-0.017l0,0c-0.179,0.192-0.269,0.286-0.447,0.479
-				c-0.199,0.191-0.298,0.286-0.497,0.477c-0.196,0.17-0.294,0.256-0.489,0.426c-0.192,0.149-0.289,0.223-0.48,0.372
-				c-0.193,0.148-0.289,0.223-0.481,0.371c-0.208,0.104-0.312,0.154-0.52,0.259c-0.209,0.128-0.314,0.193-0.523,0.32
-				c-0.208,0.104-0.312,0.156-0.52,0.26c-0.223,0.083-0.333,0.125-0.556,0.208c-0.247,0.079-0.369,0.12-0.616,0.199
-				c-0.246,0.08-0.37,0.119-0.615,0.198c-0.262,0.058-0.393,0.085-0.655,0.142c-0.265,0.055-0.396,0.083-0.661,0.138
-				c-0.282,0.053-0.423,0.081-0.705,0.133c-0.302,0.031-0.455,0.044-0.757,0.074C29.455,201.115,29.303,201.142,28.997,201.191z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M26.959,200.227L26.959,200.227c0.108,0.136,0.162,0.204,0.27,0.34
-				c0.178,0.104,0.267,0.155,0.445,0.259c0.223,0.067,0.335,0.103,0.558,0.17c0.25,0.029,0.375,0.045,0.625,0.073
-				c0.295,0.013,0.445,0.017,0.74,0.028c0.323-0.025,0.483-0.037,0.806-0.063c0.349-0.067,0.523-0.103,0.873-0.171
-				c0.35-0.066,0.523-0.098,0.873-0.166c0.357-0.109,0.538-0.166,0.895-0.276c0.36-0.131,0.539-0.198,0.899-0.33
-				c0.362-0.151,0.543-0.225,0.905-0.377c0.324-0.179,0.486-0.269,0.81-0.448c0.328-0.197,0.492-0.298,0.819-0.496
-				c0.288-0.224,0.43-0.333,0.718-0.558c0.227-0.229,0.342-0.345,0.569-0.574c0.208-0.252,0.313-0.375,0.521-0.627l0,0
-				c-0.19,0.007-0.286,0.009-0.477,0.016c-0.172,0.006-0.259,0.009-0.431,0.015c-0.212,0.004-0.318,0.005-0.53,0.008
-				c-0.193,0.004-0.288,0.008-0.48,0.012c-0.191,0.005-0.289,0.005-0.48,0.01c-0.169,0.005-0.254,0.009-0.424,0.014
-				c-0.148-0.013-0.222-0.02-0.37-0.032c-0.145-0.013-0.217-0.019-0.362-0.032l0,0c-0.013,0.082-0.02,0.122-0.032,0.204
-				c-0.212,0.145-0.319,0.218-0.532,0.362c-0.35,0.194-0.523,0.291-0.873,0.484c-0.459,0.226-0.688,0.34-1.147,0.563
-				c-0.541,0.214-0.813,0.32-1.354,0.531c-0.545,0.213-0.816,0.318-1.361,0.527c-0.53,0.146-0.795,0.218-1.325,0.36
-				C27.648,200.124,27.418,200.159,26.959,200.227z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M25.659,198.618L25.659,198.618c0,0.289,0,0.433,0,0.722
-				c0.078,0.195,0.118,0.294,0.196,0.489c0.153,0.103,0.231,0.152,0.385,0.255c0.224,0.069,0.335,0.105,0.559,0.174
-				c0.278-0.006,0.417-0.01,0.694-0.017c0.33-0.064,0.494-0.098,0.823-0.163c0.331-0.085,0.498-0.128,0.829-0.214
-				c0.36-0.125,0.54-0.188,0.9-0.315c0.362-0.146,0.543-0.222,0.905-0.369c0.344-0.17,0.516-0.255,0.859-0.426
-				c0.345-0.171,0.518-0.255,0.862-0.427c0.28-0.16,0.42-0.24,0.7-0.401c0.254-0.142,0.382-0.212,0.636-0.354
-				c0.186-0.105,0.278-0.16,0.464-0.267c0.117-0.072,0.175-0.108,0.292-0.181c0.028-0.039,0.042-0.055,0.07-0.094
-				c-1.662,0.037-2.493,0.048-4.153,0.059l0,0c-0.136,0.067-0.204,0.102-0.34,0.169c-0.228,0.08-0.342,0.12-0.569,0.199
-				c-0.268,0.095-0.402,0.14-0.67,0.233c-0.292,0.091-0.437,0.138-0.728,0.228c-0.314,0.107-0.471,0.161-0.785,0.268
-				c-0.286,0.068-0.429,0.104-0.715,0.171c-0.267,0.071-0.401,0.105-0.668,0.176C25.988,198.566,25.877,198.584,25.659,198.618z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M30.682,197.088L30.682,197.088c-0.358-0.017-0.537-0.023-0.895-0.041
-				c-0.317-0.013-0.476-0.022-0.793-0.036c-0.296-0.015-0.443-0.021-0.739-0.037c-0.276-0.013-0.414-0.019-0.689-0.032
-				c-0.254-0.008-0.382-0.011-0.636-0.02c-0.274-0.015-0.411-0.02-0.686-0.035c-0.279,0.007-0.417,0.008-0.696,0.014
-				c-0.325,0.021-0.488,0.03-0.812,0.049l0,0c0.006,0.394,0.011,0.589,0.017,0.982c0.159,0.207,0.237,0.311,0.396,0.518
-				c0.295,0.039,0.443,0.058,0.738,0.096c0.391-0.053,0.586-0.082,0.978-0.137c0.404-0.138,0.605-0.206,1.01-0.346
-				c0.428-0.155,0.643-0.231,1.072-0.389c0.384-0.143,0.576-0.216,0.96-0.36C30.217,197.224,30.371,197.179,30.682,197.088z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M30.603,196.571L30.603,196.571c-0.367,0.021-0.551,0.031-0.918,0.051
-				c-0.318,0.006-0.477,0.01-0.795,0.015c-0.281,0.03-0.421,0.046-0.702,0.075c-0.28,0.009-0.417,0.009-0.697,0.017
-				c-0.259,0.03-0.39,0.047-0.649,0.077c-0.261,0.03-0.392,0.048-0.653,0.077c-0.302,0.023-0.453,0.033-0.754,0.056
-				c-0.326,0.041-0.488,0.062-0.814,0.102l0,0c0.044-0.448,0.066-0.672,0.11-1.12c0.231-0.259,0.348-0.39,0.58-0.649
-				c0.309-0.062,0.463-0.096,0.772-0.159c0.4,0.032,0.6,0.05,1,0.08c0.406,0.131,0.609,0.196,1.016,0.325
-				c0.404,0.15,0.607,0.224,1.011,0.372c0.337,0.162,0.504,0.243,0.842,0.404C30.211,196.404,30.342,196.46,30.603,196.571z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M88.545,180.632L88.545,180.632c0.971-0.254,1.455-0.382,2.424-0.646
-				c0.908-0.142,1.362-0.217,2.27-0.366c0.816,0.008,1.224,0.011,2.041,0.014c0.76,0.101,1.139,0.151,1.899,0.249
-				c0.719,0.221,1.079,0.332,1.799,0.551c0.645,0.295,0.969,0.442,1.615,0.736c0.612,0.397,0.918,0.598,1.532,0.995
-				c0.585,0.436,0.878,0.655,1.466,1.091c0.556,0.497,0.833,0.742,1.392,1.24c0.535,0.537,0.804,0.806,1.341,1.344
-				c0.531,0.56,0.797,0.84,1.33,1.399c0.513,0.578,0.769,0.867,1.284,1.446c0.516,0.558,0.775,0.836,1.294,1.395
-				c0.521,0.539,0.781,0.81,1.304,1.349c0.529,0.518,0.794,0.774,1.325,1.293c0.556,0.479,0.834,0.719,1.392,1.198l0,0
-				c-0.219,0.027-0.327,0.041-0.546,0.068c-0.236,0.005-0.354,0.008-0.59,0.013c-0.236,0.006-0.355,0.01-0.592,0.016
-				c-0.218,0.028-0.327,0.041-0.545,0.069c-0.238,0.007-0.356,0.011-0.594,0.018c-0.237,0.005-0.356,0.006-0.593,0.011
-				c-0.257,0.003-0.385,0.004-0.642,0.007c-0.237,0.006-0.357,0.012-0.594,0.018c-0.238,0.002-0.356,0.003-0.594,0.005
-				c-0.257,0.006-0.386,0.01-0.644,0.016c-0.261,0.024-0.391,0.036-0.651,0.061c-0.237,0.004-0.357,0.005-0.595,0.009
-				c-0.258,0.004-0.387,0.006-0.646,0.01c-0.259,0.022-0.389,0.034-0.648,0.057c-0.28,0-0.418,0.003-0.698,0.003
-				c-0.261,0.024-0.392,0.035-0.653,0.059l0,0c-0.169-0.303-0.253-0.455-0.422-0.758c-0.221-0.373-0.331-0.561-0.552-0.934
-				c-0.256-0.438-0.384-0.655-0.639-1.093c-0.318-0.442-0.477-0.662-0.793-1.104c-0.33-0.484-0.494-0.728-0.822-1.212
-				c-0.372-0.486-0.558-0.729-0.929-1.216c-0.412-0.49-0.617-0.734-1.026-1.225c-0.413-0.47-0.62-0.706-1.031-1.176
-				c-0.458-0.451-0.687-0.677-1.144-1.128c-0.459-0.41-0.688-0.616-1.146-1.027c-0.467-0.371-0.7-0.558-1.166-0.93
-				c-0.499-0.311-0.748-0.469-1.246-0.78c-0.485-0.25-0.726-0.377-1.21-0.629c-0.499-0.169-0.748-0.25-1.246-0.421
-				c-0.515-0.069-0.774-0.105-1.29-0.178C89.278,180.583,89.034,180.599,88.545,180.632z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M84.502,181.057L84.502,181.057c0.552-0.119,0.829-0.18,1.381-0.302
-				c0.518-0.064,0.776-0.095,1.294-0.162c0.49-0.03,0.734-0.047,1.224-0.079c0.507,0.012,0.76,0.014,1.267,0.022
-				c0.469,0.087,0.704,0.134,1.173,0.219c0.48,0.148,0.721,0.222,1.202,0.369c0.453,0.186,0.68,0.279,1.133,0.464
-				c0.461,0.27,0.691,0.401,1.153,0.67c0.471,0.33,0.707,0.498,1.179,0.827c0.461,0.413,0.693,0.619,1.155,1.031
-				c0.473,0.474,0.71,0.71,1.185,1.184c0.482,0.559,0.723,0.838,1.207,1.396c0.512,0.644,0.769,0.964,1.283,1.607
-				c0.502,0.728,0.754,1.094,1.26,1.822c0.535,0.813,0.803,1.22,1.342,2.033c0.57,0.898,0.855,1.347,1.43,2.246l0,0
-				c-0.386-0.007-0.58-0.009-0.966-0.016c-0.345,0.015-0.518,0.021-0.862,0.036c-0.323-0.004-0.483-0.006-0.806-0.01
-				c-0.302,0.019-0.453,0.029-0.755,0.048s-0.455,0.026-0.757,0.044c-0.324,0.017-0.485,0.024-0.81,0.041
-				c-0.372,0.032-0.558,0.049-0.93,0.08c-0.434,0.028-0.651,0.043-1.084,0.07l0,0c-0.33-0.341-0.493-0.511-0.822-0.852
-				c-0.306-0.359-0.459-0.538-0.765-0.897c-0.323-0.383-0.484-0.573-0.806-0.956c-0.278-0.38-0.416-0.57-0.693-0.95
-				c-0.3-0.38-0.451-0.572-0.75-0.952c-0.297-0.381-0.445-0.569-0.741-0.95c-0.278-0.38-0.416-0.57-0.693-0.95
-				c-0.298-0.382-0.446-0.57-0.743-0.952c-0.299-0.36-0.449-0.543-0.747-0.903c-0.323-0.343-0.484-0.513-0.807-0.855
-				c-0.302-0.343-0.454-0.514-0.755-0.856c-0.322-0.344-0.482-0.517-0.803-0.861c-0.35-0.307-0.524-0.458-0.874-0.766
-				c-0.376-0.269-0.564-0.405-0.94-0.676c-0.377-0.27-0.567-0.404-0.944-0.676C85.11,181.412,84.908,181.293,84.502,181.057z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M79.95,181.597L79.95,181.597c0.453-0.268,0.678-0.401,1.128-0.669
-				c0.466-0.103,0.697-0.155,1.163-0.261c0.484,0.023,0.728,0.036,1.212,0.057c0.458,0.16,0.687,0.238,1.145,0.396
-				c0.484,0.266,0.728,0.4,1.212,0.663c0.47,0.346,0.704,0.518,1.175,0.86c0.476,0.424,0.716,0.635,1.192,1.057
-				c0.468,0.485,0.703,0.728,1.172,1.212c0.462,0.522,0.693,0.785,1.157,1.307c0.457,0.544,0.686,0.815,1.145,1.358
-				c0.438,0.541,0.657,0.811,1.097,1.351c0.417,0.559,0.627,0.838,1.047,1.396c0.383,0.512,0.575,0.765,0.96,1.276
-				c0.389,0.472,0.584,0.709,0.975,1.181c0.341,0.406,0.512,0.609,0.854,1.016c0.332,0.339,0.499,0.51,0.831,0.849
-				c-2.351,0.073-3.526,0.104-5.871,0.142l0,0c-0.24-0.356-0.36-0.533-0.6-0.89c-0.239-0.358-0.359-0.54-0.597-0.898
-				c-0.216-0.354-0.324-0.527-0.54-0.881c-0.236-0.356-0.354-0.535-0.59-0.892c-0.239-0.356-0.359-0.536-0.598-0.894
-				c-0.231-0.378-0.346-0.564-0.577-0.942c-0.256-0.359-0.383-0.54-0.638-0.9c-0.239-0.338-0.359-0.509-0.598-0.848
-				c-0.281-0.342-0.421-0.511-0.701-0.854c-0.279-0.343-0.419-0.514-0.698-0.856c-0.305-0.327-0.458-0.493-0.763-0.821
-				c-0.327-0.309-0.49-0.46-0.816-0.77c-0.35-0.312-0.524-0.471-0.874-0.784c-0.375-0.276-0.563-0.413-0.939-0.691
-				c-0.4-0.26-0.602-0.394-1.003-0.655C80.589,181.965,80.377,181.843,79.95,181.597z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M70.736,184.155L70.736,184.155c0.731-0.53,1.096-0.793,1.827-1.318
-				c0.684-0.363,1.026-0.546,1.71-0.905c0.636-0.219,0.954-0.325,1.59-0.539c0.616-0.096,0.924-0.143,1.54-0.233
-				c0.588,0.053,0.882,0.08,1.47,0.137c0.551,0.157,0.828,0.235,1.378,0.396c0.528,0.281,0.791,0.424,1.315,0.702
-				c0.494,0.335,0.74,0.502,1.234,0.834c0.477,0.435,0.715,0.65,1.192,1.082c0.443,0.489,0.665,0.734,1.109,1.222
-				c0.457,0.552,0.685,0.825,1.143,1.375c0.407,0.586,0.61,0.879,1.018,1.464c0.427,0.607,0.641,0.91,1.069,1.517
-				c0.397,0.645,0.597,0.968,0.997,1.611c0.401,0.645,0.602,0.965,1.004,1.608c0.402,0.643,0.604,0.965,1.009,1.607l0,0
-				c-0.405-0.019-0.608-0.026-1.013-0.046c-0.34-0.016-0.51-0.024-0.85-0.041c-0.276-0.008-0.413-0.016-0.689-0.024
-				c-0.261,0.014-0.393,0.021-0.653,0.035c-0.257,0.013-0.386,0.021-0.643,0.032c-0.281,0.01-0.423,0.014-0.704,0.022
-				c-0.321,0.006-0.48,0.009-0.801,0.014c-0.391,0.017-0.586,0.024-0.977,0.039l0,0c-0.343-0.601-0.513-0.902-0.854-1.504
-				c-0.331-0.539-0.497-0.809-0.827-1.349c-0.359-0.501-0.538-0.75-0.896-1.252c-0.349-0.439-0.522-0.661-0.87-1.103
-				c-0.377-0.382-0.565-0.573-0.941-0.956c-0.366-0.342-0.549-0.513-0.916-0.854c-0.353-0.299-0.53-0.445-0.884-0.742
-				c-0.382-0.257-0.572-0.387-0.954-0.642c-0.367-0.214-0.552-0.319-0.919-0.531c-0.355-0.168-0.532-0.252-0.887-0.418
-				c-0.38-0.149-0.57-0.223-0.951-0.37c-0.362-0.123-0.543-0.184-0.905-0.306c-0.347-0.081-0.52-0.121-0.868-0.2
-				c-0.351-0.077-0.526-0.116-0.877-0.192c-0.356-0.036-0.534-0.054-0.891-0.089C71.239,184.205,71.071,184.187,70.736,184.155z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M64.347,185.009L64.347,185.009c0.738-0.193,1.108-0.29,1.846-0.479
-				c0.683-0.131,1.024-0.195,1.707-0.322c0.668-0.046,1.002-0.065,1.67-0.107c0.616,0.015,0.923,0.021,1.539,0.039
-				c0.609,0.059,0.914,0.09,1.522,0.151c0.573,0.142,0.859,0.211,1.431,0.356c0.544,0.185,0.817,0.278,1.36,0.466
-				c0.512,0.247,0.767,0.371,1.278,0.621c0.504,0.286,0.756,0.432,1.26,0.722c0.45,0.349,0.676,0.522,1.125,0.874
-				c0.463,0.394,0.696,0.592,1.157,0.988c0.411,0.431,0.617,0.646,1.028,1.075c0.408,0.471,0.611,0.705,1.02,1.174
-				c0.377,0.505,0.567,0.757,0.944,1.26c0.353,0.544,0.529,0.813,0.884,1.356c0.343,0.581,0.515,0.873,0.859,1.453l0,0
-				c-0.449,0.009-0.673,0.013-1.122,0.02c-0.514-0.004-0.772-0.007-1.286-0.013c-0.514-0.005-0.77-0.01-1.283-0.017
-				c-0.513-0.007-0.769-0.01-1.282-0.019c-0.469-0.005-0.703-0.007-1.171-0.009c-0.362-0.006-0.544-0.008-0.906-0.012
-				c-0.274-0.017-0.412-0.025-0.686-0.041c-0.104-0.014-0.156-0.02-0.26-0.033l0,0c-0.033-0.046-0.049-0.067-0.083-0.113
-				c-0.089-0.093-0.135-0.14-0.224-0.232c-0.122-0.16-0.182-0.24-0.303-0.399c-0.154-0.205-0.232-0.31-0.386-0.515
-				c-0.191-0.25-0.285-0.374-0.476-0.624c-0.229-0.256-0.345-0.383-0.574-0.638c-0.267-0.299-0.4-0.449-0.667-0.747
-				c-0.304-0.325-0.455-0.486-0.759-0.81c-0.351-0.307-0.526-0.459-0.877-0.765c-0.367-0.328-0.548-0.494-0.916-0.82
-				c-0.414-0.311-0.621-0.464-1.036-0.772c-0.455-0.311-0.683-0.466-1.139-0.774c-0.464-0.271-0.697-0.405-1.161-0.674
-				c-0.51-0.251-0.765-0.377-1.275-0.626c-0.534-0.231-0.8-0.346-1.334-0.575C65.202,185.26,64.917,185.175,64.347,185.009z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M56.404,185.4L56.404,185.4c0.606-0.188,0.908-0.284,1.514-0.472
-				c0.597-0.127,0.896-0.188,1.493-0.313c0.621-0.021,0.931-0.035,1.552-0.055c0.591,0.04,0.886,0.061,1.477,0.103
-				c0.6,0.106,0.899,0.159,1.499,0.268c0.588,0.166,0.881,0.25,1.469,0.419c0.557,0.229,0.834,0.344,1.391,0.575
-				c0.57,0.274,0.856,0.412,1.425,0.689c0.521,0.312,0.781,0.471,1.3,0.786c0.515,0.337,0.773,0.506,1.287,0.846
-				c0.484,0.398,0.726,0.598,1.208,0.998c0.481,0.399,0.72,0.602,1.201,1.004c0.417,0.419,0.625,0.628,1.042,1.049
-				c0.411,0.438,0.617,0.659,1.027,1.1c0.368,0.437,0.552,0.654,0.919,1.093c0.326,0.434,0.488,0.648,0.814,1.084l0,0
-				c-0.272-0.015-0.407-0.021-0.679-0.035c-0.342,0.001-0.514,0.003-0.856,0.005c-0.382-0.004-0.571-0.007-0.953-0.01
-				c-0.404-0.005-0.607-0.004-1.012-0.007s-0.607-0.006-1.011-0.007c-0.362,0.003-0.543,0.005-0.905,0.01
-				c-0.316-0.012-0.474-0.016-0.79-0.026c-0.231-0.021-0.346-0.033-0.577-0.054l0,0c0.008-0.041,0.012-0.061,0.02-0.102
-				c-0.086-0.112-0.131-0.169-0.217-0.28c-0.183-0.161-0.273-0.242-0.456-0.403c-0.278-0.233-0.417-0.35-0.695-0.583
-				c-0.336-0.257-0.504-0.387-0.84-0.643c-0.393-0.305-0.591-0.455-0.984-0.759c-0.453-0.326-0.679-0.488-1.132-0.813
-				c-0.474-0.325-0.71-0.488-1.185-0.812c-0.473-0.328-0.709-0.492-1.183-0.819c-0.496-0.326-0.744-0.489-1.24-0.813
-				c-0.501-0.303-0.752-0.454-1.254-0.756c-0.462-0.277-0.696-0.416-1.159-0.692c-0.43-0.237-0.645-0.355-1.076-0.592
-				c-0.39-0.189-0.585-0.285-0.976-0.475c-0.321-0.124-0.482-0.185-0.804-0.309C56.796,185.518,56.666,185.478,56.404,185.4z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M48.781,186.433L48.781,186.433c0.367-0.431,0.55-0.646,0.917-1.077
-				c0.486-0.239,0.73-0.359,1.216-0.599c0.565-0.067,0.849-0.101,1.414-0.168c0.633,0.037,0.948,0.056,1.582,0.093
-				c0.673,0.186,1.011,0.278,1.684,0.464c0.722,0.271,1.082,0.407,1.803,0.68c0.749,0.357,1.123,0.534,1.87,0.894
-				c0.719,0.397,1.079,0.598,1.796,0.997c0.733,0.442,1.099,0.665,1.83,1.11c0.664,0.461,0.997,0.692,1.659,1.155
-				c0.625,0.442,0.938,0.665,1.562,1.109c0.561,0.437,0.839,0.654,1.399,1.094c0.464,0.371,0.695,0.559,1.159,0.932
-				c0.356,0.28,0.533,0.419,0.889,0.7c0.238,0.207,0.358,0.31,0.597,0.517c0.115,0.073,0.171,0.109,0.286,0.183l0,0
-				c-0.304,0.033-0.456,0.052-0.76,0.086c-0.339,0.011-0.508,0.015-0.847,0.026c-0.364,0.008-0.547,0.014-0.911,0.022
-				c-0.378-0.013-0.567-0.019-0.946-0.03c-0.404,0.009-0.606,0.012-1.01,0.021c-0.405,0.007-0.607,0.013-1.012,0.021
-				c-0.386,0.032-0.58,0.047-0.966,0.08c-0.388,0.032-0.583,0.05-0.971,0.083l0,0c-0.365-0.212-0.545-0.317-0.91-0.529
-				c-0.344-0.212-0.518-0.318-0.863-0.529c-0.365-0.23-0.547-0.346-0.913-0.575c-0.341-0.23-0.51-0.348-0.852-0.578
-				c-0.347-0.209-0.52-0.312-0.867-0.521c-0.34-0.229-0.511-0.343-0.852-0.57c-0.365-0.229-0.548-0.343-0.913-0.572
-				c-0.344-0.228-0.516-0.342-0.86-0.568c-0.347-0.21-0.521-0.315-0.868-0.525c-0.343-0.227-0.514-0.341-0.856-0.566
-				c-0.369-0.207-0.554-0.311-0.923-0.518c-0.353-0.187-0.53-0.281-0.883-0.468c-0.348-0.208-0.521-0.312-0.869-0.52
-				c-0.374-0.186-0.561-0.277-0.935-0.463c-0.373-0.189-0.56-0.285-0.933-0.475C49.346,186.683,49.158,186.599,48.781,186.433z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M38.96,188.242L38.96,188.242c0.515-0.289,0.773-0.431,1.289-0.722
-				c0.554-0.146,0.832-0.223,1.387-0.37c0.561-0.041,0.842-0.06,1.402-0.103c0.59,0.04,0.883,0.058,1.473,0.097
-				c0.597,0.141,0.896,0.213,1.492,0.352c0.602,0.226,0.902,0.336,1.503,0.561c0.575,0.263,0.862,0.393,1.436,0.654
-				c0.567,0.304,0.851,0.454,1.417,0.758c0.518,0.341,0.776,0.513,1.293,0.854s0.775,0.51,1.292,0.851
-				c0.449,0.358,0.673,0.538,1.121,0.897c0.394,0.312,0.589,0.468,0.982,0.779c0.354,0.29,0.531,0.438,0.884,0.729
-				c0.273,0.265,0.41,0.396,0.683,0.662c0.203,0.178,0.303,0.267,0.506,0.444c0.108,0.111,0.162,0.165,0.27,0.276l0,0
-				c-0.34,0.018-0.512,0.026-0.853,0.045c-0.321,0.021-0.481,0.032-0.803,0.055c-0.277,0.024-0.415,0.036-0.691,0.061
-				c-0.277,0.003-0.416,0.005-0.692,0.008c-0.298,0.002-0.446,0.005-0.744,0.007c-0.277,0.023-0.417,0.033-0.694,0.057
-				c-0.322,0.021-0.483,0.034-0.806,0.056c-0.339,0.02-0.509,0.028-0.849,0.048l0,0c-0.264-0.2-0.397-0.299-0.662-0.499
-				c-0.262-0.204-0.392-0.304-0.654-0.508c-0.278-0.242-0.418-0.365-0.696-0.607c-0.282-0.224-0.422-0.335-0.704-0.559
-				c-0.298-0.244-0.448-0.366-0.746-0.611c-0.301-0.245-0.451-0.368-0.752-0.613c-0.299-0.247-0.45-0.373-0.749-0.621
-				c-0.303-0.225-0.454-0.335-0.757-0.56c-0.305-0.227-0.457-0.341-0.761-0.567c-0.33-0.187-0.494-0.278-0.824-0.465
-				c-0.332-0.187-0.499-0.283-0.831-0.471c-0.317-0.147-0.477-0.22-0.793-0.367c-0.342-0.125-0.513-0.187-0.855-0.312
-				c-0.329-0.087-0.494-0.129-0.822-0.217c-0.335-0.023-0.503-0.034-0.839-0.059C39.47,188.253,39.301,188.249,38.96,188.242z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M42.667,187.023L42.667,187.023c0.396-0.2,0.593-0.304,0.989-0.505
-				c0.403-0.138,0.605-0.208,1.009-0.347c0.372-0.059,0.558-0.085,0.93-0.144c0.386-0.016,0.579-0.024,0.965-0.04
-				c0.377,0.043,0.566,0.064,0.943,0.107c0.387,0.106,0.582,0.157,0.968,0.263c0.422,0.172,0.631,0.259,1.053,0.43
-				c0.435,0.19,0.651,0.285,1.086,0.476c0.469,0.256,0.705,0.385,1.173,0.641c0.487,0.276,0.731,0.415,1.218,0.691
-				c0.536,0.343,0.805,0.514,1.341,0.856c0.576,0.365,0.864,0.549,1.439,0.915c0.636,0.39,0.954,0.585,1.589,0.976
-				c0.693,0.417,1.039,0.625,1.73,1.043c0.747,0.46,1.12,0.69,1.865,1.153c0.831,0.472,1.247,0.71,2.076,1.185l0,0
-				c-0.339-0.003-0.509-0.006-0.849-0.009c-0.382,0.013-0.574,0.019-0.956,0.032c-0.384,0.016-0.576,0.023-0.96,0.04
-				c-0.388,0.034-0.583,0.053-0.971,0.088c-0.342,0.02-0.512,0.029-0.854,0.049c-0.256,0.026-0.384,0.04-0.64,0.066
-				c-0.192,0.007-0.288,0.009-0.479,0.016c-0.082-0.024-0.123-0.034-0.204-0.059l0,0c-0.034-0.046-0.052-0.069-0.086-0.115
-				c-0.13-0.11-0.194-0.166-0.324-0.276c-0.161-0.177-0.24-0.264-0.401-0.44c-0.221-0.198-0.332-0.296-0.553-0.494
-				c-0.275-0.245-0.413-0.367-0.688-0.612c-0.337-0.268-0.506-0.404-0.844-0.672c-0.355-0.291-0.532-0.436-0.888-0.727
-				c-0.396-0.293-0.594-0.44-0.991-0.733c-0.438-0.294-0.657-0.44-1.096-0.734c-0.441-0.294-0.663-0.44-1.104-0.734
-				c-0.486-0.259-0.729-0.388-1.217-0.646c-0.493-0.236-0.741-0.355-1.234-0.592c-0.501-0.194-0.751-0.291-1.253-0.486
-				c-0.51-0.138-0.767-0.208-1.277-0.347c-0.496-0.091-0.745-0.139-1.241-0.23C43.426,187.072,43.173,187.059,42.667,187.023z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M34.351,190.489L34.351,190.489c0.441-0.372,0.663-0.559,1.104-0.933
-				c0.445-0.271,0.669-0.407,1.115-0.68c0.433-0.17,0.649-0.257,1.083-0.428c0.438-0.089,0.656-0.132,1.095-0.222
-				c0.425,0.013,0.637,0.021,1.062,0.032c0.436,0.073,0.655,0.107,1.091,0.18c0.448,0.136,0.671,0.203,1.118,0.338
-				c0.419,0.175,0.63,0.264,1.049,0.438c0.427,0.255,0.638,0.381,1.064,0.636c0.406,0.253,0.609,0.379,1.014,0.632
-				c0.416,0.315,0.625,0.476,1.04,0.79c0.417,0.317,0.626,0.475,1.042,0.791c0.416,0.313,0.624,0.472,1.04,0.785
-				c0.391,0.334,0.585,0.5,0.976,0.833c0.39,0.335,0.585,0.503,0.975,0.838c0.396,0.291,0.595,0.438,0.992,0.729l0,0
-				c-0.257,0.025-0.387,0.038-0.644,0.063c-0.277,0.004-0.414,0.005-0.691,0.009c-0.324,0.043-0.486,0.063-0.81,0.106
-				c-0.343,0.019-0.514,0.031-0.857,0.05c-0.362,0.021-0.543,0.027-0.905,0.047c-0.383,0.015-0.574,0.022-0.957,0.037
-				c-0.363,0.02-0.545,0.029-0.908,0.049c-0.364,0.018-0.546,0.025-0.91,0.042l0,0c-0.082-0.273-0.124-0.406-0.206-0.68
-				c-0.112-0.234-0.166-0.354-0.278-0.589c-0.131-0.235-0.198-0.353-0.329-0.588c-0.178-0.218-0.268-0.326-0.445-0.545
-				c-0.181-0.197-0.271-0.298-0.452-0.495c-0.208-0.159-0.312-0.238-0.52-0.397c-0.251-0.164-0.375-0.246-0.626-0.41
-				c-0.254-0.142-0.381-0.21-0.635-0.352c-0.278-0.123-0.42-0.186-0.698-0.309c-0.301-0.104-0.45-0.16-0.752-0.266
-				c-0.307-0.085-0.462-0.127-0.769-0.213c-0.329-0.067-0.492-0.1-0.821-0.167c-0.354-0.048-0.53-0.07-0.883-0.119
-				c-0.358-0.028-0.538-0.045-0.896-0.074c-0.364,0.009-0.545,0.012-0.909,0.02C34.928,190.476,34.734,190.482,34.351,190.489z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M27.388,193.158L27.388,193.158c0.13-0.149,0.194-0.225,0.324-0.374
-				c0.189-0.122,0.285-0.182,0.474-0.304c0.25-0.094,0.374-0.141,0.624-0.234c0.263-0.053,0.396-0.082,0.658-0.136
-				c0.302-0.028,0.452-0.042,0.754-0.071c0.339,0.017,0.508,0.025,0.847,0.041c0.336,0.035,0.504,0.052,0.84,0.086
-				c0.375,0.057,0.563,0.086,0.938,0.142c0.347,0.095,0.521,0.143,0.868,0.236c0.365,0.118,0.547,0.177,0.912,0.294
-				c0.339,0.152,0.509,0.229,0.848,0.38c0.312,0.171,0.47,0.255,0.782,0.426c0.29,0.19,0.434,0.286,0.724,0.476
-				c0.262,0.228,0.394,0.341,0.655,0.568c0.196,0.243,0.294,0.367,0.49,0.61c0.17,0.261,0.257,0.392,0.427,0.652l0,0
-				c-0.194,0.026-0.293,0.039-0.487,0.065c-0.237,0.022-0.355,0.031-0.592,0.053c-0.236,0.021-0.354,0.033-0.59,0.055
-				c-0.237,0.021-0.355,0.032-0.593,0.053c-0.212,0.003-0.318,0.004-0.53,0.006c-0.172,0.007-0.257,0.011-0.429,0.018
-				c-0.125-0.012-0.187-0.017-0.312-0.028c-0.042-0.004-0.064-0.004-0.107-0.008l0,0c-0.077-0.049-0.115-0.075-0.192-0.124
-				c-0.19-0.141-0.286-0.211-0.477-0.353c-0.331-0.196-0.498-0.295-0.829-0.492c-0.391-0.22-0.588-0.33-0.979-0.552
-				c-0.457-0.212-0.683-0.317-1.14-0.531c-0.524-0.197-0.787-0.299-1.311-0.499c-0.51-0.138-0.767-0.208-1.277-0.349
-				C28.181,193.222,27.917,193.202,27.388,193.158z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M25.821,195.076L25.821,195.076c0.028-0.324,0.041-0.484,0.069-0.809
-				c0.121-0.233,0.182-0.348,0.302-0.581c0.171-0.144,0.256-0.22,0.428-0.363c0.245-0.073,0.368-0.107,0.613-0.182
-				c0.278-0.008,0.416-0.013,0.694-0.021c0.312,0.059,0.47,0.086,0.783,0.144c0.328,0.078,0.493,0.116,0.821,0.193
-				c0.365,0.123,0.548,0.185,0.913,0.307c0.336,0.159,0.505,0.239,0.842,0.396c0.338,0.16,0.506,0.241,0.844,0.399
-				c0.317,0.155,0.477,0.229,0.794,0.384c0.273,0.15,0.41,0.227,0.683,0.376c0.234,0.146,0.352,0.22,0.586,0.365
-				c0.196,0.102,0.294,0.152,0.49,0.253c0.093,0.09,0.139,0.136,0.232,0.226c0.04,0.022,0.059,0.032,0.098,0.055
-				c-1.721,0.136-2.58,0.198-4.299,0.306l0,0c-0.137-0.074-0.207-0.11-0.344-0.185c-0.221-0.087-0.331-0.131-0.552-0.218
-				c-0.238-0.108-0.358-0.165-0.596-0.274c-0.281-0.114-0.42-0.171-0.702-0.286c-0.285-0.096-0.428-0.143-0.713-0.239
-				c-0.287-0.073-0.431-0.108-0.718-0.183c-0.271-0.033-0.406-0.05-0.678-0.084C26.176,195.064,26.057,195.066,25.821,195.076z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M29.792,192.096L29.792,192.096c0.375-0.229,0.563-0.345,0.938-0.574
-				c0.387-0.166,0.58-0.248,0.968-0.415c0.427-0.141,0.642-0.212,1.069-0.354c0.46-0.081,0.691-0.123,1.152-0.206
-				c0.455-0.041,0.681-0.061,1.135-0.103c0.45-0.02,0.674-0.031,1.124-0.053c0.463,0.04,0.695,0.062,1.159,0.1
-				c0.455,0.076,0.681,0.113,1.136,0.188c0.429,0.117,0.644,0.174,1.072,0.29c0.419,0.177,0.628,0.266,1.047,0.441
-				c0.375,0.192,0.562,0.288,0.937,0.479c0.346,0.23,0.518,0.346,0.864,0.576c0.317,0.27,0.474,0.402,0.791,0.672
-				c0.25,0.305,0.375,0.459,0.625,0.764c0.179,0.343,0.268,0.513,0.446,0.855c0.13,0.38,0.195,0.571,0.326,0.951l0,0
-				c-0.278,0.003-0.416,0.004-0.694,0.007c-0.256,0.024-0.385,0.036-0.641,0.061c-0.276,0-0.413,0.001-0.689,0.001
-				c-0.3,0.021-0.451,0.027-0.751,0.048c-0.299,0.021-0.45,0.035-0.749,0.057c-0.317-0.004-0.475-0.007-0.792-0.011
-				c-0.345,0.038-0.517,0.056-0.862,0.093c-0.361,0.012-0.542,0.018-0.903,0.028l0,0c-0.1-0.191-0.149-0.284-0.25-0.476
-				c-0.121-0.176-0.182-0.265-0.303-0.44c-0.145-0.155-0.219-0.234-0.364-0.39c-0.166-0.158-0.248-0.237-0.413-0.396
-				c-0.19-0.14-0.285-0.209-0.476-0.349c-0.212-0.142-0.316-0.213-0.528-0.354c-0.217-0.122-0.327-0.184-0.543-0.306
-				c-0.239-0.103-0.358-0.154-0.597-0.257c-0.238-0.104-0.358-0.156-0.596-0.262c-0.264-0.086-0.396-0.128-0.659-0.214
-				c-0.245-0.063-0.368-0.097-0.613-0.161c-0.271-0.047-0.406-0.07-0.677-0.117c-0.269-0.046-0.404-0.068-0.673-0.115
-				c-0.271-0.028-0.407-0.043-0.678-0.071c-0.277-0.009-0.415-0.014-0.692-0.022C30.178,192.076,30.049,192.083,29.792,192.096z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M220.044,196.106L220.044,196.106c0.031,0.053,0.047,0.077,0.078,0.13
-				c0.078,0.135,0.114,0.203,0.192,0.338c0.1,0.212,0.15,0.318,0.25,0.529c0.134,0.263,0.2,0.394,0.334,0.656
-				c0.146,0.308,0.218,0.462,0.363,0.771c0.137,0.336,0.204,0.506,0.341,0.843c0.107,0.37,0.163,0.556,0.271,0.928
-				c0.086,0.366,0.129,0.55,0.215,0.919c0.042,0.371,0.062,0.558,0.104,0.933c-0.035,0.338-0.052,0.507-0.087,0.85
-				c-0.1,0.324-0.149,0.488-0.249,0.816c-0.174,0.277-0.26,0.419-0.434,0.7c-0.291,0.218-0.438,0.326-0.73,0.547
-				c-0.411,0.153-0.614,0.231-1.025,0.388c-0.54,0.057-0.811,0.084-1.351,0.143c-0.675-0.043-1.015-0.064-1.69-0.105l0,0
-				c0.153-0.19,0.231-0.285,0.385-0.474c0.116-0.213,0.174-0.321,0.29-0.531c0.112-0.211,0.171-0.313,0.283-0.521
-				c0.102-0.243,0.147-0.363,0.249-0.603c0.08-0.245,0.122-0.369,0.202-0.611c0.062-0.263,0.092-0.392,0.154-0.651
-				c0.039-0.251,0.06-0.378,0.099-0.627c0.042-0.263,0.062-0.394,0.104-0.654c0.021-0.268,0.03-0.4,0.051-0.666
-				c0.021-0.264,0.033-0.393,0.054-0.654c-0.002-0.256-0.004-0.387-0.006-0.642c-0.026-0.248-0.038-0.372-0.064-0.619
-				c-0.005-0.241-0.012-0.359-0.017-0.601c-0.033-0.221-0.048-0.332-0.081-0.553c-0.054-0.227-0.08-0.337-0.134-0.563
-				c-0.04-0.194-0.059-0.294-0.099-0.488l0,0c0.109,0.003,0.162,0.004,0.271,0.007c0.086,0.008,0.129,0.013,0.215,0.021
-				c0.108,0.002,0.163,0.002,0.271,0.004c0.086,0.011,0.13,0.015,0.216,0.025c0.089-0.004,0.131-0.007,0.22-0.011
-				c0.084,0.009,0.126,0.013,0.21,0.021c0.109,0.001,0.166,0.001,0.275,0.002C219.882,196.102,219.936,196.104,220.044,196.106z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M218.187,196.09L218.187,196.09c0.106,0.807,0.162,1.21,0.269,2.015
-				c0.042,0.717,0.062,1.074,0.104,1.797c-0.038,0.601-0.056,0.902-0.094,1.513c-0.104,0.52-0.159,0.782-0.263,1.312
-				c-0.149,0.443-0.224,0.668-0.373,1.121c-0.217,0.359-0.323,0.539-0.54,0.906c-0.244,0.298-0.367,0.446-0.611,0.75
-				c-0.252,0.237-0.379,0.358-0.631,0.601c-0.301,0.166-0.45,0.25-0.751,0.42c-0.313,0.116-0.47,0.173-0.783,0.291
-				c-0.299,0.06-0.447,0.092-0.746,0.152c-0.291,0.028-0.438,0.042-0.729,0.071c-0.309-0.007-0.461-0.009-0.77-0.016
-				c-0.257-0.041-0.385-0.062-0.642-0.103c-0.23-0.051-0.347-0.074-0.577-0.125c-0.209-0.059-0.313-0.09-0.522-0.148l0,0
-				c0.179-0.214,0.268-0.319,0.446-0.529c0.177-0.208,0.267-0.31,0.443-0.514c0.164-0.241,0.244-0.36,0.408-0.598
-				c0.145-0.242,0.216-0.365,0.36-0.604c0.148-0.268,0.223-0.397,0.371-0.66c0.131-0.268,0.196-0.401,0.327-0.665
-				c0.129-0.265,0.192-0.399,0.321-0.66c0.11-0.279,0.168-0.413,0.278-0.688c0.092-0.283,0.137-0.424,0.229-0.703
-				c0.074-0.298,0.11-0.446,0.185-0.741c0.048-0.288,0.072-0.432,0.12-0.717c0.033-0.304,0.049-0.455,0.082-0.757
-				c0.009-0.293,0.014-0.44,0.022-0.732c-0.012-0.312-0.019-0.468-0.03-0.779c-0.034-0.29-0.05-0.437-0.084-0.726
-				c-0.054-0.309-0.083-0.462-0.137-0.771l0,0c0.259,0.012,0.39,0.02,0.648,0.032c0.263,0.014,0.395,0.02,0.657,0.034
-				c0.239,0.008,0.357,0.013,0.597,0.021c0.234,0.021,0.354,0.033,0.588,0.055c0.196,0.012,0.293,0.015,0.488,0.026
-				c0.215,0.016,0.322,0.025,0.537,0.041c0.17,0.019,0.254,0.025,0.424,0.044C217.96,196.071,218.035,196.078,218.187,196.09z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M213.814,195.792L213.814,195.792
-				c0.059,0.296,0.089,0.443,0.147,0.738c0.038,0.36,0.058,0.537,0.096,0.898c-0.01,0.391-0.016,0.588-0.025,0.98
-				c-0.064,0.418-0.095,0.628-0.159,1.049c-0.089,0.459-0.134,0.688-0.223,1.152c-0.115,0.457-0.174,0.69-0.289,1.156
-				c-0.175,0.449-0.263,0.674-0.438,1.133c-0.214,0.436-0.321,0.657-0.535,1.104c-0.25,0.404-0.375,0.607-0.625,1.023
-				c-0.283,0.376-0.424,0.567-0.707,0.955c-0.354,0.304-0.531,0.456-0.885,0.77c-0.377,0.224-0.566,0.337-0.943,0.567
-				c-0.447,0.128-0.671,0.193-1.118,0.326c-0.482,0.002-0.724,0.004-1.206,0.01c-0.526-0.123-0.788-0.186-1.314-0.304
-				c-0.578-0.285-0.869-0.425-1.447-0.702l0,0c0.29-0.232,0.436-0.343,0.726-0.569c0.293-0.239,0.441-0.361,0.734-0.595
-				c0.255-0.26,0.381-0.388,0.636-0.642c0.231-0.243,0.346-0.362,0.577-0.601c0.195-0.279,0.293-0.416,0.488-0.689
-				c0.192-0.259,0.288-0.385,0.481-0.639c0.154-0.279,0.232-0.419,0.387-0.693s0.229-0.409,0.383-0.679
-				c0.112-0.28,0.169-0.419,0.281-0.695c0.094-0.295,0.141-0.442,0.234-0.733c0.071-0.283,0.107-0.425,0.179-0.705
-				c0.035-0.305,0.053-0.455,0.088-0.758c0.032-0.302,0.049-0.454,0.081-0.754c-0.013-0.298-0.02-0.449-0.032-0.746
-				c-0.008-0.311-0.011-0.465-0.019-0.775c-0.054-0.306-0.079-0.457-0.133-0.763l0,0c0.222,0,0.328,0,0.55,0.001
-				c0.261,0.011,0.393,0.017,0.653,0.027c0.264,0.012,0.395,0.019,0.658,0.031c0.262,0.011,0.393,0.017,0.653,0.028
-				c0.262,0.013,0.392,0.021,0.653,0.033c0.219,0.001,0.329,0,0.548,0.002c0.196,0.009,0.294,0.014,0.49,0.022
-				C213.591,195.772,213.664,195.78,213.814,195.792z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M197.093,207.451L197.093,207.451
-				c0.562,0.144,0.843,0.216,1.403,0.367c0.56,0.043,0.841,0.066,1.399,0.117c0.513-0.063,0.766-0.095,1.278-0.151
-				c0.485-0.134,0.729-0.199,1.215-0.325c0.48-0.216,0.724-0.321,1.204-0.527c0.433-0.284,0.647-0.421,1.08-0.694
-				c0.379-0.336,0.569-0.501,0.948-0.825c0.368-0.376,0.549-0.562,0.917-0.925c0.312-0.409,0.47-0.61,0.782-1.007
-				c0.278-0.437,0.419-0.65,0.697-1.074c0.219-0.452,0.327-0.674,0.546-1.114c0.157-0.458,0.236-0.687,0.394-1.136
-				c0.114-0.46,0.169-0.685,0.283-1.138c0.053-0.469,0.08-0.703,0.133-1.167c-0.013-0.467-0.021-0.701-0.033-1.166
-				c-0.079-0.453-0.119-0.678-0.198-1.131l0,0c-0.243-0.005-0.366-0.008-0.609-0.013s-0.364-0.007-0.607-0.011
-				c-0.259-0.022-0.39-0.033-0.648-0.055c-0.264-0.01-0.395-0.014-0.659-0.022c-0.264-0.008-0.396-0.01-0.659-0.017
-				c-0.284-0.012-0.429-0.02-0.714-0.031c-0.265-0.007-0.396-0.01-0.66-0.016c-0.285-0.011-0.428-0.017-0.713-0.027l0,0
-				c-0.072,0.276-0.105,0.413-0.178,0.689c-0.078,0.303-0.121,0.456-0.199,0.76c-0.11,0.341-0.163,0.513-0.273,0.855
-				c-0.112,0.354-0.17,0.532-0.282,0.891s-0.167,0.538-0.279,0.902c-0.116,0.379-0.177,0.57-0.293,0.956
-				c-0.161,0.389-0.242,0.586-0.403,0.983c-0.153,0.369-0.23,0.554-0.383,0.932c-0.176,0.375-0.264,0.562-0.438,0.947
-				c-0.167,0.354-0.249,0.533-0.416,0.896c-0.208,0.339-0.312,0.51-0.521,0.857c-0.216,0.297-0.325,0.449-0.541,0.755
-				c-0.228,0.252-0.338,0.381-0.565,0.639c-0.261,0.202-0.391,0.3-0.65,0.507c-0.266,0.136-0.401,0.206-0.667,0.346
-				C197.506,207.345,197.368,207.38,197.093,207.451z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M203.811,195.382L203.811,195.382
-				c-0.223,0.005-0.334,0.008-0.557,0.014c-0.22-0.009-0.332-0.013-0.552-0.021c-0.198-0.002-0.295-0.003-0.493-0.005
-				c-0.219-0.021-0.331-0.032-0.55-0.052c-0.221-0.006-0.33-0.006-0.551-0.011c-0.201-0.003-0.304-0.005-0.505-0.007
-				c-0.221-0.005-0.329-0.007-0.551-0.011c-0.224,0.01-0.336,0.015-0.56,0.024l0,0c-0.11,0.258-0.164,0.386-0.274,0.645
-				c-0.097,0.289-0.145,0.436-0.241,0.726c-0.104,0.318-0.156,0.478-0.26,0.799c-0.104,0.335-0.156,0.503-0.261,0.842
-				c-0.086,0.343-0.13,0.516-0.216,0.863c-0.091,0.375-0.135,0.562-0.226,0.943c-0.113,0.379-0.17,0.571-0.283,0.958
-				c-0.108,0.371-0.163,0.557-0.271,0.936c-0.128,0.376-0.19,0.567-0.317,0.953c-0.15,0.381-0.226,0.572-0.375,0.964
-				c-0.185,0.353-0.277,0.529-0.461,0.893c-0.177,0.332-0.266,0.502-0.442,0.843c-0.236,0.312-0.355,0.473-0.591,0.794
-				c-0.251,0.285-0.375,0.427-0.625,0.721c-0.283,0.237-0.427,0.358-0.71,0.604c-0.335,0.181-0.502,0.273-0.837,0.461l0,0
-				c0.631-0.035,0.947-0.051,1.577-0.073c0.537-0.093,0.804-0.137,1.341-0.22c0.464-0.166,0.694-0.249,1.158-0.406
-				c0.409-0.204,0.617-0.303,1.026-0.498c0.356-0.259,0.536-0.385,0.893-0.635c0.303-0.311,0.453-0.464,0.757-0.765
-				c0.245-0.347,0.367-0.519,0.613-0.854c0.211-0.36,0.317-0.538,0.529-0.889c0.181-0.404,0.271-0.603,0.451-0.996
-				c0.157-0.414,0.235-0.62,0.394-1.023c0.123-0.427,0.185-0.638,0.308-1.055c0.129-0.444,0.194-0.661,0.323-1.096
-				c0.131-0.435,0.195-0.651,0.326-1.078c0.134-0.441,0.201-0.66,0.335-1.096c0.112-0.439,0.167-0.656,0.279-1.092
-				C203.572,196.042,203.652,195.821,203.811,195.382z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M186.421,209.163L186.421,209.163c0.829,0.079,1.243,0.12,2.075,0.197
-				c0.729-0.052,1.094-0.079,1.826-0.132c0.619-0.161,0.929-0.243,1.551-0.404c0.532-0.247,0.803-0.366,1.341-0.597
-				c0.449-0.334,0.67-0.5,1.12-0.818c0.354-0.387,0.532-0.573,0.888-0.944c0.321-0.43,0.483-0.644,0.806-1.056
-				c0.249-0.476,0.374-0.705,0.624-1.163c0.19-0.485,0.283-0.726,0.475-1.195c0.172-0.486,0.26-0.725,0.432-1.196
-				c0.136-0.496,0.204-0.74,0.341-1.223c0.111-0.471,0.165-0.702,0.276-1.162c0.114-0.477,0.173-0.712,0.287-1.18
-				c0.109-0.438,0.163-0.652,0.272-1.084c0.144-0.397,0.214-0.597,0.357-0.99c0.138-0.366,0.207-0.549,0.346-0.912l0,0
-				c-0.242-0.008-0.362-0.014-0.605-0.021c-0.222-0.003-0.332-0.004-0.554-0.007c-0.2,0.003-0.3,0.005-0.5,0.009
-				c-0.225-0.002-0.338-0.002-0.562-0.003c-0.223-0.001-0.337-0.001-0.56-0.001c-0.2,0.005-0.3,0.006-0.5,0.012
-				c-0.222-0.013-0.33-0.019-0.552-0.03c-0.244-0.002-0.369-0.002-0.614-0.003l0,0c0.012,0.045,0.018,0.065,0.029,0.11
-				c0.019,0.103,0.029,0.154,0.048,0.257c0.007,0.158,0.008,0.236,0.015,0.395c0.018,0.202,0.027,0.305,0.045,0.508
-				c-0.019,0.253-0.03,0.38-0.049,0.634c-0.023,0.283-0.035,0.427-0.059,0.713c-0.055,0.323-0.085,0.483-0.14,0.811
-				c-0.108,0.362-0.161,0.544-0.269,0.913c-0.153,0.376-0.229,0.568-0.381,0.952c-0.207,0.419-0.309,0.632-0.515,1.062
-				c-0.295,0.436-0.444,0.655-0.738,1.106c-0.336,0.46-0.501,0.696-0.829,1.179c-0.438,0.485-0.657,0.731-1.094,1.234
-				c-0.524,0.525-0.786,0.792-1.309,1.339c-0.604,0.518-0.904,0.783-1.506,1.32C187.511,208.331,187.147,208.604,186.421,209.163z"
-				/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M179.142,210.183L179.142,210.183
-				c0.533,0.177,0.801,0.264,1.335,0.441c0.557,0.043,0.835,0.064,1.393,0.107c0.558-0.097,0.836-0.144,1.395-0.239
-				c0.575-0.191,0.865-0.285,1.441-0.475c0.569-0.283,0.854-0.427,1.425-0.704c0.564-0.357,0.848-0.534,1.413-0.884
-				c0.541-0.444,0.811-0.662,1.354-1.093c0.51-0.488,0.766-0.729,1.277-1.201c0.456-0.517,0.685-0.769,1.142-1.267
-				c0.425-0.551,0.637-0.821,1.062-1.352c0.373-0.57,0.565-0.841,0.947-1.38c0.298-0.565,0.447-0.844,0.746-1.388
-				c0.235-0.556,0.354-0.828,0.59-1.367c0.154-0.565,0.233-0.844,0.389-1.396c0.042-0.543,0.062-0.812,0.104-1.347
-				c-0.044-0.551-0.064-0.825-0.108-1.372c-2.131,0.047-3.175,0.117-5.241,0.205l0,0c-0.033,0.229-0.051,0.344-0.083,0.573
-				c-0.039,0.273-0.06,0.409-0.099,0.684c-0.088,0.294-0.133,0.443-0.221,0.74c-0.12,0.338-0.178,0.509-0.298,0.852
-				c-0.142,0.355-0.213,0.534-0.354,0.896c-0.189,0.384-0.282,0.578-0.472,0.971c-0.191,0.407-0.289,0.612-0.48,1.028
-				c-0.257,0.423-0.384,0.634-0.64,1.067c-0.278,0.431-0.416,0.65-0.693,1.093c-0.313,0.422-0.47,0.637-0.782,1.071
-				c-0.335,0.43-0.502,0.645-0.836,1.087c-0.392,0.418-0.587,0.634-0.978,1.063c-0.408,0.41-0.615,0.616-1.022,1.038
-				c-0.462,0.376-0.691,0.566-1.152,0.952c-0.495,0.342-0.742,0.516-1.236,0.865C179.931,209.743,179.668,209.888,179.142,210.183z"
-				/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M189.918,195.418L189.918,195.418
-				c-0.326,0.017-0.489,0.027-0.815,0.044c-0.409,0.004-0.614,0.006-1.022,0.009c-0.46,0.022-0.688,0.032-1.148,0.055
-				c-0.473,0.005-0.71,0.009-1.182,0.013c-0.459,0.023-0.688,0.034-1.146,0.057c-0.451,0.007-0.678,0.01-1.129,0.016
-				c-0.389,0.005-0.582,0.008-0.971,0.012c-0.299-0.01-0.447-0.017-0.746-0.026l0,0c-0.111,0.337-0.168,0.507-0.278,0.847
-				c-0.1,0.372-0.147,0.559-0.246,0.936c-0.117,0.376-0.179,0.566-0.296,0.947c-0.1,0.397-0.149,0.6-0.249,1.003
-				c-0.142,0.396-0.211,0.596-0.352,1c-0.124,0.425-0.188,0.639-0.311,1.071c-0.139,0.413-0.205,0.622-0.344,1.043
-				c-0.161,0.417-0.244,0.629-0.405,1.055c-0.177,0.406-0.264,0.61-0.439,1.025c-0.196,0.396-0.293,0.597-0.488,1.001
-				c-0.235,0.396-0.354,0.594-0.589,0.998c-0.249,0.367-0.373,0.552-0.622,0.927c-0.286,0.352-0.427,0.529-0.713,0.889
-				c-0.316,0.296-0.477,0.445-0.793,0.747c-0.334,0.279-0.5,0.418-0.834,0.702c-0.389,0.238-0.582,0.361-0.971,0.604l0,0
-				c0.396,0.117,0.593,0.176,0.988,0.293c0.428,0.043,0.642,0.061,1.069,0.104c0.439-0.035,0.66-0.049,1.1-0.083
-				c0.452-0.11,0.68-0.169,1.133-0.278c0.464-0.188,0.695-0.282,1.16-0.468c0.477-0.242,0.719-0.362,1.196-0.601
-				c0.469-0.313,0.702-0.466,1.172-0.772c0.483-0.402,0.725-0.604,1.209-0.995c0.452-0.432,0.678-0.643,1.131-1.062
-				c0.425-0.516,0.637-0.771,1.063-1.27c0.419-0.549,0.631-0.816,1.051-1.346c0.39-0.618,0.585-0.922,0.977-1.517
-				c0.344-0.651,0.516-0.97,0.86-1.597c0.312-0.677,0.469-1.008,0.781-1.661c0.266-0.739,0.396-1.1,0.663-1.816
-				C189.596,196.552,189.703,196.17,189.918,195.418z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M167.061,210.414L167.061,210.414
-				c0.903,0.167,1.354,0.252,2.257,0.422c0.779,0.029,1.17,0.043,1.949,0.074c0.699-0.119,1.049-0.177,1.749-0.293
-				c0.577-0.256,0.866-0.382,1.444-0.633c0.505-0.338,0.757-0.506,1.263-0.837c0.441-0.42,0.664-0.626,1.105-1.036
-				c0.346-0.479,0.517-0.719,0.863-1.186c0.3-0.547,0.452-0.814,0.753-1.346c0.259-0.538,0.387-0.805,0.646-1.327
-				c0.207-0.584,0.312-0.873,0.52-1.44c0.164-0.557,0.248-0.829,0.412-1.371c0.165-0.542,0.246-0.811,0.412-1.34
-				c0.124-0.537,0.188-0.8,0.312-1.326c0.136-0.476,0.202-0.714,0.338-1.182c0.129-0.437,0.193-0.654,0.323-1.085
-				c0.143-0.382,0.214-0.569,0.357-0.947l0,0c-0.298-0.01-0.443-0.017-0.741-0.026c-0.258-0.003-0.39-0.005-0.647-0.008
-				c-0.238,0.017-0.359,0.026-0.598,0.043c-0.234,0.001-0.35,0.003-0.584,0.004c-0.258-0.001-0.388-0.002-0.646-0.003
-				c-0.237,0-0.355,0.001-0.593,0.001c-0.28,0.011-0.42,0.014-0.699,0.024c-0.321,0.001-0.481,0.005-0.803,0.006l0,0
-				c-0.143,0.412-0.212,0.616-0.354,1.033c-0.136,0.398-0.207,0.597-0.342,1c-0.14,0.405-0.208,0.609-0.347,1.021
-				c-0.156,0.389-0.234,0.587-0.391,0.981c-0.135,0.401-0.202,0.603-0.337,1.011c-0.151,0.386-0.227,0.582-0.378,0.975
-				c-0.166,0.373-0.25,0.561-0.416,0.939c-0.171,0.378-0.257,0.569-0.428,0.954c-0.207,0.361-0.311,0.543-0.517,0.911
-				c-0.226,0.365-0.338,0.551-0.562,0.923c-0.264,0.348-0.395,0.522-0.658,0.876c-0.284,0.352-0.428,0.53-0.711,0.889
-				c-0.343,0.348-0.513,0.524-0.855,0.879c-0.361,0.335-0.542,0.503-0.903,0.844c-0.418,0.312-0.626,0.468-1.044,0.785
-				C167.752,209.935,167.521,210.095,167.061,210.414z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M160.782,210.685L160.782,210.685
-				c0.807,0.144,1.208,0.216,2.013,0.363c0.723-0.008,1.083-0.01,1.805-0.015c0.658-0.134,0.986-0.199,1.645-0.329
-				c0.597-0.262,0.896-0.392,1.493-0.647c0.523-0.347,0.785-0.516,1.31-0.855c0.476-0.425,0.712-0.638,1.188-1.053
-				c0.407-0.501,0.612-0.747,1.021-1.235c0.373-0.532,0.558-0.794,0.932-1.312c0.335-0.544,0.506-0.813,0.842-1.343
-				c0.281-0.572,0.42-0.854,0.702-1.41c0.238-0.548,0.358-0.82,0.597-1.355c0.203-0.556,0.304-0.832,0.507-1.375
-				c0.194-0.513,0.294-0.763,0.489-1.265c0.148-0.478,0.222-0.714,0.371-1.184c0.145-0.438,0.219-0.654,0.363-1.086
-				c0.113-0.371,0.168-0.559,0.281-0.926l0,0c-0.3-0.009-0.448-0.015-0.748-0.023c-0.255-0.002-0.382,0.001-0.637-0.001
-				c-0.234,0.004-0.351,0.005-0.585,0.009c-0.233-0.013-0.352-0.021-0.585-0.034c-0.214,0.008-0.319,0.012-0.533,0.02
-				c-0.234-0.014-0.354-0.02-0.588-0.033c-0.277,0.012-0.416,0.019-0.693,0.03c-0.318-0.012-0.479-0.019-0.797-0.03l0,0
-				c-0.213,0.618-0.32,0.93-0.532,1.559c-0.226,0.592-0.336,0.891-0.562,1.494c-0.238,0.549-0.359,0.826-0.598,1.386
-				c-0.231,0.525-0.347,0.789-0.578,1.325c-0.246,0.479-0.367,0.724-0.612,1.213c-0.26,0.469-0.39,0.704-0.649,1.183
-				c-0.27,0.404-0.405,0.608-0.675,1.02c-0.269,0.393-0.402,0.591-0.67,0.99c-0.261,0.362-0.391,0.543-0.651,0.911
-				c-0.277,0.327-0.417,0.494-0.694,0.826c-0.288,0.272-0.433,0.41-0.721,0.687c-0.264,0.26-0.394,0.391-0.657,0.653
-				c-0.282,0.24-0.424,0.36-0.706,0.603c-0.274,0.184-0.412,0.274-0.687,0.46c-0.292,0.164-0.438,0.245-0.729,0.411
-				C161.185,210.461,161.05,210.536,160.782,210.685z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M154.859,210.753L154.859,210.753
-				c0.774,0.125,1.164,0.188,1.936,0.318c0.708-0.021,1.06-0.03,1.766-0.047c0.643-0.149,0.963-0.222,1.604-0.367
-				c0.613-0.248,0.922-0.374,1.534-0.617c0.525-0.356,0.786-0.532,1.311-0.882c0.492-0.413,0.739-0.617,1.231-1.022
-				c0.443-0.491,0.667-0.733,1.11-1.214c0.408-0.522,0.609-0.779,1.018-1.289c0.369-0.536,0.555-0.804,0.925-1.327
-				c0.314-0.568,0.471-0.848,0.786-1.402c0.275-0.562,0.412-0.841,0.688-1.391c0.255-0.55,0.384-0.821,0.64-1.359
-				c0.23-0.511,0.347-0.763,0.578-1.264c0.186-0.489,0.277-0.732,0.464-1.214c0.157-0.435,0.236-0.649,0.394-1.079
-				c0.151-0.382,0.228-0.574,0.379-0.951l0,0c-0.253-0.017-0.382-0.022-0.635-0.038c-0.257,0.001-0.382,0.001-0.639,0.003
-				c-0.256,0.001-0.382,0.002-0.638,0.003c-0.257,0.003-0.386,0.004-0.642,0.007c-0.258,0.002-0.385,0.005-0.643,0.007
-				c-0.254,0.002-0.385,0.001-0.64,0.003c-0.256,0.003-0.383,0.006-0.639,0.009c-0.275,0.001-0.413,0-0.688,0.001l0,0
-				c-0.071,0.318-0.106,0.477-0.178,0.797c-0.118,0.351-0.179,0.527-0.297,0.881c-0.142,0.366-0.212,0.548-0.353,0.918
-				c-0.206,0.394-0.31,0.595-0.516,0.994c-0.214,0.435-0.32,0.65-0.534,1.092c-0.27,0.414-0.404,0.624-0.674,1.045
-				c-0.277,0.457-0.415,0.686-0.691,1.15c-0.293,0.445-0.439,0.674-0.732,1.127c-0.336,0.447-0.503,0.671-0.839,1.126
-				c-0.352,0.433-0.529,0.65-0.881,1.091c-0.346,0.401-0.52,0.605-0.865,1.014c-0.366,0.386-0.552,0.581-0.918,0.973
-				c-0.362,0.375-0.542,0.562-0.905,0.942c-0.376,0.317-0.562,0.479-0.939,0.801c-0.387,0.259-0.581,0.39-0.969,0.651
-				C155.406,210.446,155.224,210.547,154.859,210.753z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M148.258,211.295L148.258,211.295c0.795,0.171,1.194,0.26,1.986,0.437
-				c0.76-0.034,1.138-0.05,1.895-0.079c0.715-0.196,1.073-0.293,1.785-0.484c0.672-0.34,1.006-0.51,1.676-0.843
-				c0.642-0.438,0.963-0.655,1.604-1.085c0.573-0.54,0.861-0.809,1.433-1.337c0.538-0.609,0.805-0.911,1.342-1.507
-				c0.504-0.621,0.755-0.929,1.258-1.534c0.425-0.654,0.638-0.979,1.062-1.616c0.382-0.628,0.573-0.935,0.956-1.547
-				c0.335-0.581,0.503-0.87,0.838-1.438c0.293-0.557,0.439-0.831,0.732-1.376c0.197-0.474,0.294-0.706,0.491-1.173
-				c0.164-0.381,0.246-0.571,0.41-0.947c0.106-0.281,0.161-0.42,0.269-0.699c0.027-0.171,0.039-0.256,0.066-0.426l0,0
-				c-0.316-0.009-0.477-0.014-0.793-0.021c-0.297-0.003-0.443-0.004-0.74-0.006c-0.299,0.015-0.45,0.023-0.749,0.039
-				c-0.298-0.002-0.447-0.001-0.745-0.002c-0.3,0.017-0.449,0.023-0.749,0.041c-0.276,0.003-0.414,0.005-0.691,0.008
-				c-0.276,0.006-0.415,0.009-0.691,0.016c-0.274-0.012-0.412-0.018-0.687-0.028l0,0c-0.146,0.285-0.217,0.429-0.363,0.716
-				c-0.153,0.342-0.231,0.512-0.385,0.856c-0.181,0.395-0.271,0.596-0.451,0.994c-0.212,0.452-0.318,0.679-0.529,1.137
-				c-0.232,0.473-0.35,0.713-0.582,1.192c-0.255,0.494-0.381,0.738-0.636,1.24c-0.276,0.498-0.417,0.753-0.693,1.258
-				c-0.302,0.525-0.451,0.789-0.754,1.323c-0.319,0.509-0.479,0.765-0.798,1.281c-0.334,0.477-0.501,0.718-0.836,1.201
-				c-0.353,0.462-0.53,0.692-0.885,1.161c-0.367,0.405-0.549,0.609-0.917,1.02c-0.401,0.344-0.604,0.517-1.006,0.864
-				c-0.392,0.27-0.586,0.405-0.979,0.678c-0.424,0.187-0.638,0.282-1.063,0.472C148.906,211.166,148.69,211.208,148.258,211.295z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M143.53,210.684L143.53,210.684c0.735,0.213,1.103,0.322,1.833,0.541
-				c0.67,0.048,1.004,0.073,1.671,0.126c0.625-0.095,0.938-0.145,1.56-0.235c0.6-0.236,0.899-0.351,1.497-0.583
-				c0.529-0.344,0.792-0.518,1.319-0.856c0.496-0.422,0.744-0.631,1.238-1.046c0.465-0.519,0.699-0.775,1.162-1.285
-				c0.43-0.557,0.642-0.833,1.07-1.381c0.373-0.593,0.562-0.888,0.934-1.471c0.351-0.603,0.525-0.898,0.875-1.49
-				c0.289-0.603,0.432-0.903,0.721-1.495c0.288-0.573,0.435-0.855,0.723-1.419c0.239-0.532,0.358-0.796,0.598-1.32
-				c0.193-0.477,0.289-0.712,0.482-1.183c0.184-0.415,0.273-0.624,0.457-1.034c0.149-0.324,0.226-0.484,0.375-0.806l0,0
-				c-0.231-0.004-0.347-0.006-0.578-0.01c-0.232-0.021-0.347-0.032-0.579-0.054c-0.21,0-0.316-0.001-0.526-0.001
-				c-0.192,0.005-0.288,0.007-0.48,0.012c-0.212,0.001-0.317,0.002-0.529,0.004c-0.193,0.006-0.29,0.01-0.483,0.016
-				c-0.169,0.008-0.254,0.01-0.423,0.019c-0.189-0.01-0.285-0.012-0.475-0.021l0,0c-0.12,0.413-0.181,0.618-0.301,1.034
-				c-0.16,0.428-0.24,0.644-0.4,1.075c-0.184,0.428-0.275,0.643-0.459,1.074c-0.179,0.417-0.268,0.625-0.447,1.046
-				c-0.226,0.433-0.338,0.649-0.563,1.087c-0.243,0.415-0.364,0.624-0.607,1.044c-0.262,0.399-0.394,0.602-0.655,1.006
-				c-0.303,0.398-0.454,0.6-0.757,1.003c-0.305,0.404-0.457,0.607-0.762,1.017c-0.344,0.384-0.516,0.578-0.861,0.967
-				c-0.384,0.364-0.574,0.545-0.959,0.914c-0.377,0.33-0.567,0.497-0.946,0.831c-0.444,0.328-0.667,0.492-1.112,0.824
-				c-0.438,0.292-0.659,0.438-1.1,0.732c-0.481,0.271-0.722,0.411-1.205,0.687C144.314,210.302,144.053,210.429,143.53,210.684z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M137.332,211.312L137.332,211.312
-				c0.645,0.021,0.966,0.033,1.607,0.061c0.631-0.037,0.946-0.055,1.574-0.087c0.614-0.113,0.918-0.169,1.529-0.277
-				c0.603-0.175,0.903-0.26,1.503-0.43c0.565-0.251,0.847-0.379,1.409-0.626c0.571-0.31,0.857-0.46,1.426-0.765
-				c0.514-0.369,0.77-0.551,1.281-0.915c0.516-0.406,0.773-0.609,1.288-1.01c0.461-0.468,0.691-0.699,1.151-1.16
-				c0.444-0.499,0.665-0.748,1.107-1.239c0.407-0.558,0.61-0.833,1.017-1.382c0.388-0.568,0.582-0.853,0.969-1.411
-				c0.329-0.605,0.492-0.904,0.821-1.5c0.293-0.64,0.439-0.96,0.732-1.59c0.275-0.65,0.414-0.973,0.688-1.613
-				c0.215-0.668,0.321-0.998,0.536-1.657l0,0c-0.278,0.011-0.416,0.016-0.694,0.027c-0.275-0.006-0.414-0.008-0.689-0.014
-				c-0.299,0.009-0.449,0.011-0.748,0.021c-0.274-0.005-0.411-0.007-0.686-0.011c-0.276-0.002-0.413-0.002-0.689-0.003
-				c-0.257,0.018-0.387,0.027-0.644,0.046c-0.276-0.001-0.414-0.003-0.691-0.003c-0.259,0.022-0.39,0.033-0.649,0.057l0,0
-				c-0.174,0.384-0.261,0.576-0.436,0.963c-0.155,0.409-0.232,0.614-0.387,1.026c-0.175,0.39-0.262,0.588-0.437,0.98
-				c-0.155,0.395-0.232,0.593-0.387,0.99c-0.175,0.396-0.264,0.592-0.439,0.99c-0.175,0.398-0.264,0.6-0.44,1.001
-				c-0.215,0.378-0.322,0.567-0.538,0.948c-0.24,0.398-0.362,0.6-0.603,1.001c-0.279,0.379-0.417,0.568-0.696,0.95
-				c-0.305,0.399-0.459,0.602-0.765,1.005c-0.367,0.378-0.549,0.567-0.917,0.949c-0.428,0.378-0.644,0.57-1.075,0.953
-				c-0.473,0.36-0.71,0.54-1.186,0.904c-0.562,0.379-0.843,0.569-1.408,0.953c-0.65,0.379-0.977,0.568-1.632,0.953
-				C138.417,210.761,138.056,210.944,137.332,211.312z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M128.634,211.88L128.634,211.88c0.825,0.107,1.236,0.161,2.057,0.267
-				c0.811-0.001,1.216-0.004,2.023-0.008c0.758-0.09,1.134-0.132,1.888-0.223c0.724-0.173,1.086-0.261,1.807-0.435
-				c0.686-0.239,1.039-0.364,1.741-0.607c0.672-0.326,1.007-0.487,1.674-0.808c0.632-0.385,0.946-0.577,1.573-0.956
-				c0.574-0.463,0.859-0.69,1.429-1.147c0.531-0.479,0.796-0.72,1.324-1.193c0.494-0.539,0.741-0.806,1.232-1.337
-				c0.456-0.574,0.682-0.859,1.136-1.426c0.392-0.609,0.589-0.911,0.979-1.513c0.354-0.648,0.529-0.975,0.882-1.614
-				c0.315-0.663,0.473-0.99,0.787-1.645c0.252-0.68,0.378-1.018,0.629-1.689c0.211-0.68,0.316-1.017,0.527-1.689l0,0
-				c-0.235,0.006-0.352,0.008-0.587,0.015c-0.259,0.024-0.389,0.037-0.648,0.062c-0.254,0.005-0.383,0.008-0.638,0.014
-				c-0.257,0.006-0.385,0.009-0.643,0.015c-0.256,0.008-0.384,0.012-0.64,0.021c-0.281,0.025-0.422,0.038-0.703,0.064
-				c-0.278,0.007-0.417,0.013-0.694,0.021c-0.283,0.027-0.425,0.039-0.708,0.068l0,0c-0.14,0.483-0.209,0.728-0.349,1.214
-				c-0.184,0.482-0.276,0.724-0.461,1.209c-0.228,0.484-0.342,0.728-0.571,1.215c-0.267,0.461-0.4,0.692-0.668,1.157
-				c-0.31,0.463-0.464,0.694-0.775,1.161c-0.335,0.464-0.503,0.699-0.84,1.168c-0.376,0.447-0.564,0.672-0.942,1.124
-				c-0.415,0.43-0.623,0.645-1.041,1.079c-0.442,0.433-0.665,0.651-1.109,1.088c-0.48,0.391-0.721,0.589-1.204,0.983
-				c-0.505,0.376-0.741,0.55-1.237,0.918c-0.53,0.346-0.794,0.52-1.326,0.866c-0.552,0.305-0.828,0.456-1.382,0.762
-				c-0.591,0.283-0.886,0.426-1.479,0.709c-0.589,0.241-0.885,0.36-1.476,0.602C129.576,211.586,129.263,211.685,128.634,211.88z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M123.788,212.139L123.788,212.139
-				c0.717-0.001,1.076-0.006,1.792-0.008c0.701-0.064,1.051-0.094,1.75-0.159c0.708-0.13,1.062-0.195,1.768-0.326
-				c0.695-0.215,1.042-0.323,1.734-0.538c0.656-0.259,0.984-0.388,1.638-0.646c0.662-0.32,0.993-0.479,1.652-0.798
-				c0.621-0.363,0.931-0.545,1.549-0.907c0.587-0.428,0.868-0.633,1.466-1.068c0.559-0.477,0.838-0.713,1.393-1.184
-				c0.539-0.512,0.804-0.766,1.339-1.271c0.478-0.555,0.717-0.832,1.191-1.38c0.432-0.567,0.649-0.849,1.079-1.41
-				c0.373-0.605,0.557-0.906,0.928-1.505c0.329-0.623,0.492-0.934,0.819-1.551c0.269-0.645,0.404-0.964,0.672-1.603
-				c0.203-0.661,0.303-0.992,0.505-1.648l0,0c-0.234,0.014-0.351,0.022-0.584,0.037c-0.215-0.004-0.323-0.006-0.538-0.009
-				c-0.193,0.001-0.29,0.002-0.482,0.003c-0.191,0-0.286-0.001-0.478,0c-0.192,0-0.289-0.001-0.481,0
-				c-0.217,0.021-0.326,0.031-0.543,0.053c-0.257,0.016-0.385,0.024-0.643,0.042c-0.304,0.014-0.456,0.021-0.76,0.036l0,0
-				c-0.364,0.563-0.546,0.848-0.912,1.418c-0.317,0.528-0.477,0.795-0.796,1.328c-0.316,0.517-0.474,0.772-0.792,1.293
-				c-0.293,0.479-0.442,0.724-0.737,1.207c-0.313,0.462-0.466,0.689-0.775,1.146c-0.285,0.417-0.427,0.625-0.712,1.044
-				c-0.303,0.396-0.457,0.598-0.761,0.995c-0.322,0.376-0.481,0.562-0.804,0.938c-0.346,0.376-0.52,0.562-0.866,0.939
-				c-0.384,0.332-0.577,0.499-0.962,0.831c-0.428,0.354-0.643,0.529-1.073,0.883c-0.468,0.308-0.703,0.464-1.172,0.771
-				c-0.537,0.327-0.806,0.488-1.344,0.815c-0.6,0.302-0.9,0.455-1.502,0.757c-0.665,0.298-0.997,0.447-1.664,0.744
-				C124.926,211.702,124.546,211.848,123.788,212.139z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M115.065,212.116L115.065,212.116
-				c1.058,0.114,1.586,0.171,2.642,0.281c1.003,0.023,1.504,0.035,2.505,0.056c0.908-0.091,1.361-0.136,2.266-0.229
-				c0.852-0.181,1.277-0.272,2.125-0.455c0.795-0.27,1.191-0.406,1.982-0.677c0.715-0.339,1.073-0.506,1.785-0.845
-				c0.68-0.401,1.019-0.604,1.695-1.006c0.619-0.47,0.928-0.703,1.544-1.172c0.58-0.509,0.869-0.762,1.445-1.27
-				c0.541-0.555,0.811-0.832,1.349-1.385c0.475-0.574,0.711-0.861,1.184-1.434c0.458-0.618,0.684-0.928,1.139-1.543
-				c0.433-0.612,0.656-0.926,1.094-1.542c0.397-0.62,0.596-0.928,0.99-1.542c0.375-0.636,0.562-0.952,0.935-1.581
-				c0.348-0.611,0.521-0.915,0.867-1.52l0,0c-0.192,0.004-0.288,0.004-0.48,0.008c-0.262,0.021-0.394,0.03-0.656,0.052
-				c-0.323,0.016-0.484,0.023-0.808,0.041c-0.326,0.019-0.488,0.028-0.814,0.049c-0.348,0.039-0.522,0.061-0.871,0.103
-				c-0.304,0.022-0.449,0.029-0.748,0.048c-0.256,0.022-0.383,0.031-0.64,0.055c-0.193,0.005-0.29,0.008-0.483,0.013l0,0
-				c-0.318,0.562-0.478,0.843-0.797,1.406c-0.339,0.56-0.511,0.839-0.852,1.399c-0.381,0.516-0.571,0.774-0.954,1.292
-				c-0.376,0.497-0.565,0.746-0.944,1.245c-0.417,0.454-0.627,0.682-1.046,1.137c-0.441,0.453-0.662,0.682-1.104,1.135
-				c-0.459,0.412-0.689,0.617-1.15,1.03c-0.502,0.413-0.754,0.618-1.259,1.031c-0.499,0.368-0.75,0.555-1.251,0.923
-				c-0.544,0.346-0.817,0.52-1.363,0.865c-0.564,0.344-0.846,0.514-1.412,0.856c-0.585,0.303-0.876,0.455-1.463,0.757
-				c-0.603,0.276-0.906,0.416-1.51,0.691c-0.645,0.254-0.968,0.381-1.614,0.634c-0.644,0.231-0.967,0.344-1.612,0.573
-				C116.097,211.805,115.753,211.91,115.065,212.116z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M109.796,212.47L109.796,212.47c0.591,0.023,0.886,0.035,1.476,0.058
-				c0.621-0.038,0.931-0.056,1.551-0.096c0.674-0.1,1.012-0.15,1.686-0.251c0.704-0.182,1.055-0.273,1.758-0.457
-				c0.712-0.225,1.067-0.339,1.778-0.564c0.719-0.291,1.079-0.437,1.796-0.729c0.726-0.353,1.088-0.529,1.812-0.883
-				c0.727-0.396,1.089-0.595,1.813-0.992c0.713-0.461,1.069-0.692,1.779-1.154c0.691-0.484,1.035-0.727,1.722-1.211
-				c0.651-0.549,0.977-0.822,1.625-1.37c0.634-0.592,0.951-0.889,1.582-1.479c0.566-0.615,0.848-0.921,1.411-1.534
-				c0.526-0.655,0.789-0.984,1.312-1.638c0.466-0.7,0.697-1.048,1.16-1.745c0.402-0.723,0.604-1.085,1.003-1.805l0,0
-				c-0.321,0.02-0.481,0.029-0.802,0.049c-0.322,0.019-0.482,0.027-0.805,0.046c-0.34-0.005-0.511-0.007-0.852-0.011
-				c-0.342,0.019-0.513,0.028-0.855,0.047c-0.299-0.001-0.448,0-0.748,0c-0.26,0.024-0.39,0.034-0.649,0.06
-				c-0.216,0.027-0.324,0.041-0.541,0.068c-0.113,0.056-0.17,0.083-0.284,0.139l0,0c-0.416,0.266-0.624,0.397-1.041,0.664
-				c-0.418,0.287-0.628,0.433-1.048,0.721c-0.449,0.349-0.672,0.525-1.123,0.875c-0.45,0.349-0.676,0.521-1.127,0.869
-				c-0.456,0.393-0.685,0.589-1.143,0.981c-0.481,0.41-0.723,0.614-1.206,1.025c-0.487,0.433-0.731,0.65-1.22,1.083
-				c-0.49,0.434-0.734,0.65-1.226,1.084c-0.494,0.453-0.742,0.677-1.237,1.129c-0.513,0.43-0.769,0.649-1.283,1.078
-				c-0.517,0.429-0.775,0.641-1.294,1.069c-0.54,0.426-0.811,0.64-1.352,1.064c-0.541,0.427-0.81,0.638-1.352,1.063
-				c-0.537,0.381-0.807,0.572-1.345,0.952c-0.537,0.384-0.807,0.576-1.345,0.958C110.63,211.969,110.353,212.136,109.796,212.47z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M101.864,211.826L101.864,211.826c0.509,0.4,0.765,0.602,1.275,1.002
-				c0.564,0.193,0.844,0.288,1.409,0.48c0.587,0.051,0.881,0.078,1.468,0.127c0.632-0.096,0.95-0.144,1.583-0.241
-				c0.652-0.242,0.978-0.364,1.629-0.608c0.669-0.348,1.002-0.524,1.67-0.874c0.705-0.45,1.057-0.673,1.759-1.126
-				c0.709-0.516,1.063-0.779,1.771-1.297c0.721-0.604,1.081-0.902,1.798-1.508c0.742-0.623,1.111-0.936,1.849-1.561
-				c0.765-0.666,1.146-1.001,1.907-1.668c0.761-0.667,1.141-0.999,1.898-1.666c0.752-0.646,1.126-0.971,1.874-1.617
-				c0.771-0.647,1.157-0.972,1.924-1.618c0.759-0.582,1.137-0.872,1.892-1.453c0.747-0.518,1.119-0.775,1.862-1.29l0,0
-				c-0.236-0.016-0.354-0.025-0.59-0.041c-0.278,0.022-0.417,0.036-0.696,0.06c-0.322-0.001-0.484-0.003-0.806-0.004
-				c-0.326,0.042-0.488,0.065-0.814,0.108c-0.347,0.02-0.521,0.029-0.868,0.049c-0.347,0.04-0.52,0.057-0.867,0.097
-				c-0.326,0.042-0.49,0.062-0.816,0.104c-0.283,0.024-0.424,0.036-0.708,0.061l0,0c-0.591,0.446-0.886,0.672-1.479,1.118
-				c-0.592,0.446-0.89,0.669-1.485,1.115c-0.579,0.469-0.868,0.703-1.449,1.172c-0.58,0.469-0.872,0.701-1.454,1.17
-				c-0.56,0.467-0.84,0.702-1.402,1.168c-0.564,0.471-0.846,0.704-1.412,1.173c-0.563,0.468-0.847,0.701-1.412,1.167
-				c-0.542,0.424-0.812,0.638-1.355,1.061c-0.542,0.423-0.813,0.633-1.356,1.055c-0.536,0.382-0.804,0.574-1.341,0.955
-				c-0.511,0.338-0.767,0.505-1.279,0.842c-0.504,0.298-0.756,0.445-1.261,0.742c-0.5,0.254-0.748,0.383-1.248,0.635
-				c-0.473,0.212-0.71,0.315-1.183,0.526c-0.462,0.149-0.695,0.225-1.157,0.373C102.542,211.699,102.317,211.74,101.864,211.826z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M95.643,211.923L95.643,211.923c0.886,0.088,1.33,0.131,2.218,0.215
-				c0.856-0.001,1.284,0,2.142-0.004c0.792-0.138,1.187-0.208,1.979-0.35c0.78-0.202,1.17-0.307,1.95-0.512
-				c0.724-0.275,1.087-0.413,1.811-0.69c0.69-0.363,1.035-0.544,1.725-0.909c0.676-0.406,1.015-0.61,1.69-1.02
-				c0.638-0.457,0.955-0.688,1.591-1.146c0.641-0.5,0.961-0.747,1.6-1.249c0.62-0.523,0.93-0.786,1.548-1.312
-				c0.596-0.529,0.893-0.796,1.486-1.326c0.619-0.547,0.927-0.82,1.542-1.368c0.617-0.549,0.926-0.825,1.54-1.375
-				c0.63-0.528,0.944-0.793,1.571-1.322c0.645-0.485,0.967-0.728,1.609-1.213c0.66-0.464,0.99-0.694,1.647-1.157l0,0
-				c-0.215,0.008-0.324,0.014-0.54,0.021c-0.258,0.004-0.386,0.004-0.644,0.008c-0.326,0.021-0.49,0.032-0.816,0.053
-				c-0.322,0.002-0.482,0.004-0.805,0.006c-0.327,0.02-0.49,0.026-0.817,0.046c-0.258,0.005-0.387,0.011-0.646,0.016
-				c-0.217,0.009-0.325,0.01-0.542,0.019c-0.127-0.009-0.191-0.014-0.318-0.022l0,0c-0.375,0.06-0.562,0.091-0.936,0.15
-				c-0.384,0.145-0.576,0.215-0.961,0.359c-0.393,0.207-0.589,0.312-0.982,0.518c-0.43,0.287-0.646,0.43-1.076,0.717
-				c-0.436,0.35-0.654,0.525-1.091,0.874c-0.467,0.411-0.7,0.614-1.169,1.024c-0.494,0.43-0.74,0.645-1.235,1.073
-				c-0.502,0.468-0.754,0.7-1.257,1.166c-0.57,0.485-0.856,0.729-1.428,1.212c-0.573,0.48-0.86,0.721-1.435,1.199
-				c-0.642,0.497-0.963,0.743-1.607,1.237c-0.662,0.471-0.993,0.708-1.657,1.176c-0.706,0.463-1.06,0.695-1.767,1.155
-				c-0.745,0.416-1.117,0.622-1.863,1.034c-0.782,0.366-1.174,0.549-1.956,0.911C96.901,211.455,96.482,211.611,95.643,211.923z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M218.774,192.988L218.774,192.988
-				c0.013-0.055,0.022-0.081,0.035-0.136c0.057-0.146,0.085-0.216,0.142-0.362c0.074-0.23,0.111-0.348,0.186-0.581
-				c0.089-0.289,0.13-0.436,0.219-0.729c0.103-0.351,0.155-0.525,0.258-0.884c0.066-0.398,0.102-0.601,0.168-1.009
-				c0.068-0.424,0.104-0.638,0.172-1.073c0.033-0.462,0.049-0.697,0.082-1.174c-0.036-0.461-0.053-0.693-0.089-1.169
-				c-0.082-0.472-0.124-0.711-0.207-1.196c-0.128-0.446-0.192-0.671-0.321-1.129c-0.243-0.417-0.365-0.629-0.609-1.055
-				c-0.304-0.35-0.456-0.523-0.76-0.879c-0.422-0.274-0.633-0.413-1.056-0.689c-0.547-0.176-0.818-0.265-1.366-0.44
-				c-0.658-0.03-0.986-0.046-1.646-0.076l0,0c0.175,0.242,0.26,0.363,0.435,0.603c0.144,0.269,0.217,0.404,0.36,0.669
-				c0.137,0.319,0.202,0.475,0.339,0.788c0.112,0.326,0.17,0.486,0.282,0.807c0.104,0.353,0.154,0.528,0.258,0.874
-				c0.086,0.341,0.132,0.508,0.218,0.842c0.077,0.366,0.114,0.546,0.191,0.904c0.077,0.375,0.112,0.563,0.189,0.931
-				c0.056,0.345,0.086,0.515,0.142,0.853c0.033,0.349,0.051,0.522,0.084,0.863c0.035,0.341,0.053,0.508,0.088,0.843
-				c0.037,0.32,0.057,0.479,0.094,0.793c0.018,0.311,0.023,0.465,0.041,0.771c0.021,0.29,0.032,0.436,0.053,0.722
-				c0.005,0.253,0.007,0.377,0.012,0.627c0.009,0.237,0.014,0.354,0.022,0.589l0,0c0.104,0.015,0.157,0.023,0.261,0.038
-				c0.086,0.009,0.128,0.016,0.214,0.024c0.109,0,0.163-0.001,0.272-0.001c0.086,0.009,0.13,0.016,0.216,0.024
-				c0.087-0.007,0.13-0.012,0.217-0.019c0.089-0.005,0.135-0.007,0.224-0.012c0.106,0.015,0.159,0.024,0.266,0.039
-				C218.584,192.983,218.647,192.983,218.774,192.988z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M216.76,192.99L216.76,192.99c-0.052-0.958-0.076-1.443-0.129-2.441
-				c-0.108-0.861-0.163-1.301-0.271-2.203c-0.133-0.782-0.2-1.181-0.334-2c-0.158-0.692-0.237-1.047-0.396-1.77
-				c-0.188-0.592-0.281-0.891-0.47-1.504c-0.205-0.51-0.309-0.77-0.515-1.294c-0.227-0.399-0.339-0.601-0.565-1.009
-				c-0.227-0.311-0.339-0.466-0.565-0.781c-0.258-0.249-0.386-0.377-0.644-0.629c-0.233-0.145-0.35-0.216-0.584-0.361
-				c-0.265-0.096-0.4-0.142-0.666-0.237c-0.233-0.024-0.35-0.036-0.584-0.06c-0.238,0.013-0.359,0.017-0.598,0.029
-				c-0.221,0.038-0.33,0.056-0.552,0.094c-0.208,0.062-0.31,0.09-0.518,0.15c-0.186,0.066-0.281,0.1-0.467,0.165l0,0
-				c0.249,0.321,0.375,0.483,0.624,0.799c0.239,0.352,0.358,0.524,0.598,0.87c0.204,0.317,0.306,0.476,0.51,0.788
-				c0.214,0.352,0.322,0.526,0.536,0.872c0.176,0.337,0.264,0.503,0.439,0.833c0.172,0.345,0.256,0.517,0.428,0.854
-				c0.15,0.334,0.228,0.499,0.378,0.827c0.125,0.34,0.186,0.506,0.311,0.839c0.122,0.346,0.186,0.519,0.307,0.858
-				c0.099,0.352,0.147,0.527,0.246,0.872c0.1,0.345,0.149,0.514,0.249,0.853c0.073,0.348,0.109,0.521,0.183,0.863
-				c0.051,0.351,0.075,0.521,0.126,0.866s0.076,0.515,0.127,0.854c0.046,0.354,0.068,0.53,0.114,0.879
-				c0.024,0.357,0.039,0.533,0.063,0.886l0,0c0.252,0.038,0.378,0.059,0.63,0.097c0.188,0.037,0.281,0.056,0.47,0.093
-				c0.132,0.006,0.196,0.009,0.328,0.015c0.088-0.005,0.132-0.009,0.22-0.014c0.084,0.009,0.126,0.011,0.21,0.02
-				c0.091-0.005,0.137-0.005,0.228-0.01c0.086,0.008,0.13,0.012,0.216,0.02C216.57,192.978,216.633,192.984,216.76,192.99z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M214.038,192.945L214.038,192.945c0.018-0.34,0.026-0.512,0.044-0.855
-				c-0.015-0.397-0.019-0.598-0.033-1.002c-0.064-0.461-0.099-0.694-0.163-1.165c-0.099-0.511-0.147-0.771-0.246-1.294
-				c-0.16-0.555-0.24-0.835-0.4-1.406c-0.201-0.568-0.302-0.855-0.503-1.441c-0.228-0.575-0.342-0.867-0.569-1.461
-				c-0.275-0.572-0.412-0.864-0.688-1.455c-0.308-0.547-0.463-0.823-0.771-1.387c-0.341-0.498-0.51-0.75-0.852-1.262
-				c-0.38-0.426-0.571-0.643-0.952-1.077c-0.42-0.331-0.628-0.496-1.05-0.832c-0.467-0.207-0.7-0.307-1.169-0.515
-				c-0.494-0.056-0.743-0.089-1.239-0.145c-0.505,0.122-0.76,0.185-1.267,0.304c-0.56,0.3-0.839,0.449-1.401,0.74l0,0
-				c0.339,0.339,0.509,0.504,0.847,0.837c0.309,0.364,0.461,0.547,0.769,0.904c0.288,0.352,0.435,0.523,0.722,0.868
-				c0.266,0.34,0.397,0.51,0.662,0.844c0.262,0.35,0.392,0.523,0.652,0.866c0.211,0.367,0.315,0.55,0.526,0.91
-				c0.19,0.354,0.284,0.527,0.474,0.875c0.169,0.341,0.253,0.512,0.421,0.847c0.162,0.368,0.245,0.549,0.407,0.91
-				c0.12,0.349,0.18,0.521,0.3,0.863c0.116,0.357,0.173,0.537,0.289,0.889c0.072,0.354,0.109,0.527,0.181,0.876
-				c0.066,0.362,0.101,0.542,0.167,0.898c0.024,0.361,0.034,0.541,0.059,0.896c0.019,0.369,0.028,0.553,0.047,0.917
-				c-0.004,0.372-0.004,0.557-0.008,0.925l0,0c0.235,0.017,0.354,0.026,0.59,0.043c0.263,0.011,0.391,0.018,0.653,0.028
-				c0.282,0.015,0.425,0.021,0.706,0.037c0.286,0.002,0.43,0.003,0.715,0.006c0.265-0.002,0.396-0.003,0.661-0.005
-				c0.24,0.005,0.362,0.007,0.603,0.013c0.196-0.005,0.294-0.006,0.49-0.011C213.84,192.935,213.907,192.939,214.038,192.945z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M195.699,177.614L195.699,177.614
-				c0.577-0.161,0.865-0.241,1.439-0.404c0.552-0.033,0.829-0.05,1.378-0.083c0.55,0.086,0.822,0.129,1.369,0.215
-				c0.507,0.192,0.761,0.29,1.265,0.481c0.509,0.29,0.76,0.434,1.265,0.721c0.467,0.374,0.699,0.561,1.163,0.929
-				c0.428,0.451,0.642,0.675,1.067,1.116c0.394,0.489,0.591,0.73,0.982,1.207c0.337,0.516,0.505,0.769,0.84,1.271
-				c0.326,0.569,0.487,0.849,0.812,1.4c0.252,0.582,0.38,0.868,0.631,1.433c0.203,0.569,0.303,0.851,0.505,1.403
-				c0.156,0.572,0.234,0.854,0

<TRUNCATED>

[50/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/internationalization-support-i18n.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/internationalization-support-i18n.html b/documentation/bundles/internationalization-support-i18n.html
new file mode 100644
index 0000000..b07933a
--- /dev/null
+++ b/documentation/bundles/internationalization-support-i18n.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Internationalization Support (i18n)</h1></header><p>Internationalization support in Sling consists of four methods in the <code>SlingHttpServletRequest</code> interface:</p>
+<ul>
+  <li><code>getLocale()</code> -- Returns the primary <code>Locale</code> for the current request. This method is inherited from the <code>javax.servlet.ServletRequest</code> interface.</li>
+  <li><code>getLocales()</code> -- Returns the <code>Locale</code> instances for the current request. This method is inherited from the <code>javax.servlet.ServletRequest</code> interface.</li>
+  <li><code>getResourceBundle(Locale)</code> -- Returns a <code>ResourceBundle</code> for the given <code>Locale</code>. This method is specific to Sling.</li>
+  <li><code>getResourceBundle(String, Locale)</code> -- Returns a <code>ResourceBundle</code> of a given base name for the given <code>Locale</code>. This method is specific to Sling.</li>
+</ul>
+<p>These methods have a default implementation in the <code>org.apache.sling.core</code> bundle and an extended and extensible implementation in the <code>org.apache.sling.i18n</code> bundle.</p>
+<h2>Default Implementation in the <code>org.apache.sling.engine</code> Bundle</h2>
+<p>The default implementation of the above mentioned four methods in the Sling Engine bundle is contained in the bundle-private class <code>org.apache.sling.engine.impl.SlingHttpServletRequestImpl</code> which is the primary implementation of the <code>SlingHttpServletRequest</code> interface:</p>
+<ul>
+  <li><code>getLocale()</code> -- Returns the <code>Locale</code> from the request object of the servlet container in which Sling is running. As per the Servlet API specification, this is either the primary Locale of the <code>Accept-Language</code> request header or the server default locale.</li>
+  <li><code>getLocales()</code> -- Returns the <code>Enumeration</code> from the request object of the servlet container in which Sling is running. As per the Servlet API specification, this is either based on the <code>Accept-Language</code> request header or just the server default locale.</li>
+  <li><code>getResourceBundle(Locale)</code> -- Returns a <code>ResourceBundle</code> whose <code>getString(String key)</code> method returns the <code>key</code> as the message and whose <code>getKeys()</code> method returns an empty <code>Enumeration</code>.</li>
+  <li><code>getResourceBundle(String, Locale)</code> -- Returns a <code>ResourceBundle</code> whose <code>getString(String key)</code> method returns the <code>key</code> as the message and whose <code>getKeys()</code> method returns an empty <code>Enumeration</code>.</li>
+</ul>
+<p>NOTE: Unlike the default implementations of the <code>ResourceBundle</code> abstract class in the Java Runtime -- <code>PropertyResourceBundle</code> and <code>ListResourceBundle</code> -- the <code>ResourceBundle</code> returned by the default implementation of the <code>getResourceBundle(Locale)</code> and <code>getResourceBundle(String, Locale)</code> always returns a string message for any key, which is the key itself. This prevents throwing <code>MissingResourceException</code>.</p>
+<h2>Extensible Implementation in the <code>org.apache.sling.i18n</code> Bundle</h2>
+<p>The <code>org.apache.sling.i18n</code> Bundle implements a request level <code>Filter</code> providing extensible implementations of the above mentioned three methods. Extensibility is attained by defining two service interfaces:</p>
+<ul>
+  <li>
+  <p><code>LocaleResolver</code> -- The <code>LocaleResolver</code> interface defines a method which may be implemented by a service outside of the sling.i18n bundle. If no such service is registered the default behaviour is as described above for the sling.core bundle. The service described by this interface is used to implement the <code>getLocale()</code> and <code>getLocales()</code> method.</p></li>
+  <li>
+  <p><code>ResourceBundleProvider</code> -- The <code>ResourceBundleProvider</code> interface defines two methods to acquire a <code>ResourceBundle</code> for any <code>Locale</code> and an optional base name. This service interface is not intended to be implemented outside of the sling.i18n bundle: A JCR Repository based implementation is contained in the sling.i18n bundle. The <code>ResourceBundleProvider</code> service is not only used within the sling.i18n bundle to implement the <code>SlingHttpServletRequest.getResourceBundle(Locale)</code> and <code>SlingHttpServletRequest.getResourceBundle(String, Locale)</code> methods. The service may also be used by Sling applications to acquire <code>ResourceBundle</code> instances without having a request object by getting the service and calling its <code>getResourceBundle(Locale)</code> or <code>getResourceBundle(String, Locale)</code> method directly.</p></li>
+</ul>
+<h3>JCR Repository based <code>ResourceBundleProvider</code></h3>
+<p>The sling.i18n Bundle provides the implementation of the <code>ResourceBundleProvider</code> interface, which may also be used outside of Sling requests for service tasks. This implementation gets the messages from a JCR Repository stored below nodes of the mixin node type <code>mix:language</code>. These language nodes have a <code>jcr:language</code> property naming the language of the resources. In the context of the JCR based <code>ResourceBundleProvider</code> this is of course expected to be the string value of respective <code>Locale</code>. The format may either be the format as described in <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#toString%28%29">Locale.toString</a> or as described in <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>, while for the latter you may only provide ISO 3166-1 country codes (for the region) and ISO 639-1 alpha 2 language codes (for the language). Both formats are also accepted in lower-case.</p>
+<p>The exact location of these nodes is not relevant as the <code>ResourceBundleProvider</code> finds them by applying a JCR search.</p>
+<p>Two different types of storage formats are supported for the individual dictionaries</p>
+<h4><code>sling:MessageEntry</code> based</h4>
+<p>The (direct) child nodes of the <code>mix:language</code> node must have the <code>jcr:primaryType</code> set to <code>sling:MessageEntry</code> and must contain two special properties naming the key string and the message:</p>
+<ul>
+  <li><code>sling:key</code> -- The <code>sling:key</code> property is a string property being the key for which the node contains the message(s). This property is optional. If it is not set the key is determined by the name of this <code>sling:messageEntry</code> resource.</li>
+  <li><code>sling:message</code> -- The <code>sling:message</code> property represents the resource for the key.</li>
+</ul>
+<p>It is only required that the message nodes are located below <code>mix:language</code> nodes. Such structures may also be scattered in the repository to allow storing message resources next to where they are most likely used, such as request scripts.</p>
+<h5>Sample Resources</h5>
+<p>Content for dictionaries in this format might look like this:</p>
+<p>/libs/languages +-- English (nt:folder, mix:language) | +-- jcr:language = en | +-- m1 (sling:MessageEntry) | | +-- sling:key = "msg001" | | +-- sling:message = "This is a message" | +-- m2 (sling:MessageEntry) | +-- sling:key = "msg002" | +-- sling:message = "Another message" +-- Deutsch (nt:folder, mix:language) +-- jcr:language = de +-- m1 (sling:MessageEntry) | +-- sling:key = "msg001" | +-- sling:message = "Das ist ein Text" +-- m2 (sling:MessageEntry) +-- sling:key = "msg002" +-- sling:message = "Ein anderer Text"</p>
+<p>/apps/myApp +-- English (nt:folder, mix:language) | +-- jcr:language = en | +-- mx (sling:MessageEntry) | +-- sling:key = "msgXXX" | +-- sling:message = "An Application Text" +-- Deutsch (nt:folder, mix:language) +-- jcr:language = de +-- mx (sling:MessageEntry) +-- sling:key = "msgXXX" +-- sling:message = "Ein Anwendungstext"</p>
+<p>This content defines two languages <em>en</em> and <em>de</em> with three messages <em>msg001</em>, <em>msg002</em> and <em>msgXXX</em> each. The names of the respective resources have no significance (in case the <code>sling:key</code> is set).</p>
+<h4>JSON-file based</h4>
+<p>Since Version 2.4.2 the i18n bundle supports dictionaries in JSON-format (<a href="https://issues.apache.org/jira/browse/SLING-4543">SLING-4543</a>). Since loading such dictionaries is much faster than loading the ones based on <code>sling:MessageEntry</code>s this format should be used preferably. This format is assumed if the <code>mix:language</code> resource name is ending with the extension <code>.json</code>. The parser will take any "key":"value" pair in the JSON file, including those in nested objects or arrays. Normally, a dictionary will be just a single json object = hash map though.</p>
+<h5>Sample Resources</h5>
+<p>Content for this format might look like this:</p>
+<p>/libs/languages +-- english.json (nt:file, mix:language) | +-- jcr:language = en | +-- jcr:content (nt:resource) | + jcr:data (containing the actual JSON file) +-- deutsch.json (nt:file, mix:language) +-- jcr:language = de +-- jcr:content (nt:resource) + jcr:data (containing the actual JSON file)</p>
+<h4>JCR Node Types supporting the JCR Repository based <code>ResourceBundleProvider</code></h4>
+<p>The sling.i18n bundle asserts the following node types:</p>
+<p>[mix:language] mixin - jcr:language (string)</p>
+<p>The <code>mix:language</code> mixin node type allows setting the <code>jcr:language</code> property required by the <code>ResourceBundleProvider</code> implementation to identify the message <code>Locale</code>.</p>
+<p>[sling:Message] mixin - sling:key (string) - sling:message (undefined)</p>
+<p>[sling:MessageEntry] &gt; nt:hierarchyNode, sling:Message</p>
+<p>The <code>sling:Message</code> and <code>sling:MessageEntry</code> are helper node types. The latter must be used to create the nodes for the <code>sling:MessageEntry</code> based format.</p>
+<h3><code>ResourceBundle</code> with base names</h3>
+<p>Similar to standard Java <code>ResourceBundle</code> instances, Sling <code>ResourceBundle</code> instances may be created for base names through any of the <code>getResourceBundle(String, Locale)</code> methods. These methods use the base name parameter as a selector for the values of the <code>sling:basename</code> property of the <code>mix:language</code> nodes.</p>
+<p>The base name argument can take one three values:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Value </th>
+      <th><code>ResourceBundle</code> selection </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>null</code> </td>
+      <td>Selects messages of <code>mix:language</code> nodes ignoring the existence or absence of <code>sling:basename</code> properties </td>
+    </tr>
+    <tr>
+      <td>Empty String </td>
+      <td>Selects messages of <code>mix:language</code> nodes which have <code>sling:basename</code> properties, ignoring the actual values </td>
+    </tr>
+    <tr>
+      <td>Any other Value </td>
+      <td>Selects messages of <code>mix:language</code> nodes whose <code>sling:basename</code> properties has any value which matches the base name string </td>
+    </tr>
+  </tbody>
+</table>
+<p>The <code>sling:basename</code> property may be multi-valued, that is the messages of a <code>mix:language</code> nodes may belong to multiple base names and thus <code>ResourceBundle</code> instances.</p>
+<h3><code>ResourceBundle</code> hierarchies</h3>
+<p>The dictionary entries for one <code>JcrResourceBundle</code> are always ordered like the resource resolver search paths, so usually</p>
+<ol>
+  <li>dictionary entries below <code>/apps</code></li>
+  <li>dictionary entries below <code>/libs</code></li>
+  <li>dictionary entries anywhere else (outside the search path)</li>
+</ol>
+<p>That means that the message for the same key in <code>/apps</code> overwrites the one in <code>/libs</code> (if both are for the same locale and base name). Within those categories the order is non-deterministic, so if there is more than one entry for the same key in <code>/apps/...</code> (for the same locale and base name), any of those entries may be used.</p>
+<p>The resource bundles of the same base name with different locales also form a hierarchy. Each key is looked up recursively first in the current resource bundle and then in its parent resource bundle. The parent resource bundle is the one having the same base name but the parent locale.</p>
+<p>The locale hierarchy is ordered like this:</p>
+<ol>
+  <li><code>&lt;Language&gt; &lt;Country&gt; &lt;Variant&gt;</code></li>
+  <li><code>&lt;Language&gt; &lt;Country&gt;</code></li>
+  <li><code>&lt;Language&gt;</code></li>
+  <li><code>&lt;Default Locale&gt;</code>, usually <code>en</code></li>
+</ol>
+<p>So for the locale <code>de-DE-MAC</code> the fallback order would be</p>
+<ol>
+  <li><code>de-DE-MAC</code></li>
+  <li><code>de-DE</code></li>
+  <li><code>de</code></li>
+  <li><code>en</code></li>
+</ol>
+<p>In case there is a resource bundle requested for a locale without country or variant, there is only 1 fallback (i.e. the default locale). The last resort (root resource bundle in all hierarchies) is always the bundle which returns the requested key as the value.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/jcr-installer-provider.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/jcr-installer-provider.html b/documentation/bundles/jcr-installer-provider.html
new file mode 100644
index 0000000..3e99c6f
--- /dev/null
+++ b/documentation/bundles/jcr-installer-provider.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>JCR Installer Provider</h1></header><p>The JCR installer provider scans the JCR repository for artifacts and provides them to the <a href="/documentation/bundles/osgi-installer.html">OSGI installer</a>.</p>
+<h2>Configuration and Scanning</h2>
+<p>The JCR installer provider can be configured with weighted paths which are scanned. By default, the installer scans in <em>/apps</em> and <em>/libs</em> where artifacts found in <em>/apps</em> get a higher priority. The installer does a deep scan and uses a regular expression to detect folders containing artifacts to be installed. By default, artifacts from within a folder named <em>install</em> are provided to the OSGi installer.</p>
+<p>If such an install folder contains a binary artifact (e.g. a bundle or a config file as described in <a href="/documentation/bundles/configuration-installer-factory.html">Configuration Installer Factory</a>) this is provided to the OSGi installer.</p>
+<p>In addition every node of type <em>sling:OsgiConfig</em> is provided as a configuration to the installer. This has the advantage of leveraging the JCR structure better than binary files, but has the known limitations outlined in <a href="https://issues.apache.org/jira/browse/SLING-4183">SLING-4183</a> and <a href="https://issues.apache.org/jira/browse/SLING-2477">SLING-2477</a>, therefore it is recommended to stick to one of the binary formats described in <a href="/documentation/bundles/configuration-installer-factory.html">Configuration Installer Factory</a>.</p>
+<p>The JCR installer provider does not check or scan the artifacts itself, the detection and installation is deferred to the OSGi installer.</p>
+<h3>Runmode Support</h3>
+<p>The JCR installer supports run modes for installing artifacts. By default folders named <em>install</em> are checked for artifacts. If Apache Sling is started with one (or more run modes), all folders named <em>install.[RUNMODE]</em> are scanned as well. To be precise, the folder name can be followed by any number of run modes separated by comma. For example, if started with run modes <em>dev</em>, <em>a1</em>, and <em>public</em>, folders like <em>install.dev</em>, <em>install.a1</em>, <em>install.public</em> are searched as well as <em>install.dev.a1</em>, or <em>install.a1.dev</em>.</p>
+<p>Artifacts from folders with a run mode get a higher priority. For example by default, an <em>install</em> folder underneath <em>/libs</em> gets the priority <em>50</em>. For each run mode in the folder name, this priority is increased by <em>1</em>, so <em>install.dev</em> has <em>51</em> and <em>install.a1.dev</em> is <em>52</em>.</p>
+<h2>Write Back Support</h2>
+<p>The JCR installer supports writing back of configurations which are changed by some other ways, e.g by using the Apache Felix web console. If this is a new configuration which was not originally stored in the repository, a new configuration is stored under <em>/apps/sling/install</em>. The highest search path is used together with a configurable folder (*sling/install* in this case). If a configuration is changed which already exists in the repository, then it depends where the original configuration is stored. If its under <em>/libs</em> a new configuration at the same path under <em>/apps</em> is created. Otherwise the configuration is directly modified. As JCR properties do not support all Java primitive types like Integer, the write back does not generate a node of type <em>sling:OsgiConfig</em> in the repository but a properties file as described in <a href="/documentation/bundles/configuration-installer-factory.html">Configuration Installer Factory</a>.</p>
+<p>Write back can be turned off by configuration.</p>
+<h3>Start Level Support</h3>
+<p>If the parent folder of a bundle has a name which is a number, this is used as the start level (when installing the bundle for the first time, compare with <a href="https://issues.apache.org/jira/browse/SLING-2011">SLING-2011</a>). So e.g. a bundle in the path <code>/libs/sling/install/15/somebundle.jar</code> is having the start level <strong>15</strong>.</p>
+<h1>Example</h1>
+<p>Here's a quick walkthrough of the JCR installer functionality.</p>
+<h2>Installation</h2>
+<p>Start the Sling <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/app">launchpad/app</a> and make sure that the following bundles are present and started: * [RunMode service]({{ refs.run-modes-org-apache-sling-runmode.path }}) * OSGi installer service (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/core">org.apache.sling.installer.core</a>) * JCR installer provider (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr">org.apache.sling.installer.provider.jcr</a>)</p>
+<p>To watch the logs produced by these modules, you can filter <code>sling/logs/error.log</code> using <code>egrep &#39;jcrinstall|osgi.installer&#39;</code>.</p>
+<h2>Install and remove a bundle</h2>
+<p>We'll use the <a href="http://www.knopflerfish.org/releases/2.0.5/jars/desktop_awt/desktop_awt_all-2.0.0.jar">Knopflerfish Desktop</a> bundle for this example, it is convenient as it displays a graphical user interface when started.</p>
+<p>We use <code>curl</code> to create content, to make it easy to reproduce the example by copying and pasting the <code>curl</code> commands. Any other way to create content in the repository will work, of course.</p>
+<p>By default, JCRInstall picks up bundles found in folders named <em>install</em> under <code>/libs</code> and <code>/apps</code>, so we start by creating such a folder:</p>
+<p>curl -X MKCOL http://admin:admin@localhost:8888/apps/jcrtest curl -X MKCOL http://admin:admin@localhost:8888/apps/jcrtest/install</p>
+<p>And we copy the bundle to install in that folder (a backslash in command lines means <em>continued on next line</em>):</p>
+<p>curl -T desktop_awt_all-2.0.0.jar http://admin:admin@localhost:8888/apps/jcrtest/install/desktop_awt_all-2.0.0.jar</p>
+<p>That's it. After 2-3 seconds, the bundle should be picked up by JCRInstall, installed and started. If this works you'll see a small <em>Knopflerfish Desktop</em> window on your desktop, and Sling's OSGi console can of course be used to check the details.</p>
+<p>Removing the bundle from the repository will cause it to be uninstalled, so:</p>
+<p>curl -X DELETE http://admin:admin@localhost:8888/apps/jcrtest/install/desktop_awt_all-2.0.0.jar</p>
+<p>Should cause the <em>Knopflerfish Desktop</em> window to disappear as the bundle is uninstalled.</p>
+<h2>Install, modify and remove a configuration</h2>
+<p>JCRInstall installs OSGi configurations from nodes having the <em>sling:OsgiConfig</em> node type, found in folders named <em>install</em> under the installation roots (/apps and /libs).</p>
+<p>Let's try this feature by creating a configuration with two properties:</p>
+<p>curl -F "jcr:primaryType=sling:OsgiConfig" -F foo=bar -F works=yes http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid</p>
+<p>And verify the contents of our config node:</p>
+<p>curl http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid.json</p>
+<p>Which should display something like</p>
+<p>{"foo":"bar", "jcr:created":"Wed Aug 26 2009 17:06:40GMT+0200", "jcr:primaryType":"sling:OsgiConfig","works":"yes"}</p>
+<p>At this point, JCRInstall should have picked up our new config and installed it. The logs would confirm that, but we can also use the OSGi console's config status page (http://localhost:8888/system/console/config) to check it. That page should now contain:</p>
+<p>PID=some.config.pid BundleLocation=Unbound _jcr_config_path=jcrinstall:/apps/jcrtest/install/some.config.pid foo=bars service.pid=some.config.pid works=yes</p>
+<p>Indicating that the configuration has been installed.</p>
+<p>Let's try modifying the configuration parameters:</p>
+<p>curl -F works=updated -F even=more http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid</p>
+<p>And check the changes in the console page:</p>
+<p>PID=some.config.pid BundleLocation=Unbound _jcr_config_path=jcrinstall:/apps/jcrtest/install/some.config.pid even=more foo=bars service.pid=some.config.pid works=updated</p>
+<p>We can now delete the configuration node:</p>
+<p>curl -X DELETE http://admin:admin@localhost:8888/apps/jcrtest/install/some.config.pid</p>
+<p>And verify that the corresponding configuration is gone in the console page (after 1-2 seconds, like for all other JCRInstall operations).</p>
+<p>A node named like <code>o.a.s.foo.bar-a</code> uses <em>o.a.s.foo.bar</em> as its factory PID creating a configuration with an automatically generated PID. The value of <em>a</em> is stored as an alias in the OSGi installer to correlate the configuration object with the repository node.</p>
+<h1>Automated Tests</h1>
+<p>The following modules contain lots of automated tests (under <code>src/test</code>, as usual):</p>
+<ul>
+  <li>OSGi installer integration tests (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/it">org.apache.sling.installer.it</a>)</li>
+  <li>JCR installer service (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr">org.apache.sling.installer.providers.jcr</a>)</li>
+</ul>
+<p>Many of these tests are fairly readable, and can be used to find out in more detail how these modules work.</p>
+<h1>Project Info</h1>
+<ul>
+  <li>JCR installer provider (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/providers/jcr">org.apache.sling.installer.provider.jcr</a>)</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/log-tracers.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/log-tracers.html b/documentation/bundles/log-tracers.html
new file mode 100644
index 0000000..149df21
--- /dev/null
+++ b/documentation/bundles/log-tracers.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Log Tracer</h1></header><p><a href="https://issues.apache.org/jira/browse/SLING-4739">Log Tracer</a> provides support for enabling the logs for specific category at specific level and only for specific request. It provides a very fine level of control via config provided as part of HTTP request around how the logging should be performed for given category.</p>
+<p>This is specially useful for those parts of the system which are involved in every request. For such parts enabling the log at global level would flood the logs and create lots of noise. Using Tracer one can enable log for that request which is required to be probed.</p>
+<p>For e.g. determining what nodes are written for a given POST request can be simply done by including an extra request parameters.</p>
+<p>curl -D - -u admin:admin -d "./jcr:content/jcr:title=Summer Collection" -d ":name=summer-collection" -d "./jcr:primaryType=sling:Folder" -d "./jcr:content/jcr:primaryType=nt:unstructured" -d "tracers=oak-writes" http://localhost:4502/content/dam/</p>
+<h2>Configuration</h2>
+<p><img src="/documentation/bundles/tracer-config.png" alt="Tracer Config" /></p>
+<p><strong>Note that by default Tracer would not be enabled and you would need to save the OSGi config to get it activated</strong></p>
+<p>Tracer support two ways to enable logging.</p>
+<h3>Tracer Sets</h3>
+<p>Tracer sets are collection of predefined logging categories matching specific area of an application. These can for now be configured as part of OSGi config</p>
+<p>oak-query : org.apache.jackrabbit.oak.query.QueryEngineImpl;level=debug auth : org.apache.sling.auth;level=trace,org.apache.jackrabbit.oak.security</p>
+<p>The config is of following format</p>
+<p>< set name > : <tracer config></p>
+<p>Where the config is of following format</p>
+<p>tracerConfig := loggerConfig ( ',' loggerConfig) * loggerConfig := loggerName (; attributes)* attributes := attributeName '=' attributeValue</p>
+<p>Currently following attributes are support</p>
+<ul>
+  <li><code>level</code> - Either of TRACE, DEBUG, INFO, WARN, ERROR</li>
+  <li><code>caller</code> - Used to dump stacktrace of caller. It can have following value (_since 1.0.0_, <a href="https://issues.apache.org/jira/browse/SLING-5505">SLING-5505</a>)</li>
+  <li><code>true</code> - Complete call stack for that logger would be included</li>
+  <li><code>&lt;depth&gt;</code> - Call stack upto depth (integer) would be included e.g. caller=5</li>
+  <li><code>caller-exclude-filter</code> - (optional) - '|' separated package prefixes which should not be included in the output. e.g. <em>org.apache.jackrabbit.oak.query.QueryImpl;caller=28;caller-exclude-filter="org.eclipse|org.felix"</em> this would exclude eclipse and felix packages from the resulting stack</li>
+</ul>
+<h3>Performance Impact</h3>
+<p>Tracer makes use of <a href="http://logback.qos.ch/manual/filters.html#TurboFilter">Logback TuboFilter</a> to intercept the logging calls and only enable them for those which are enabled via tracer config for the request. The filter is only registered for the duration of that request hence would avoid adding the cost for normal run.</p>
+<p>You can also disable the Tracer completely via OSGi config.</p>
+<h2>Where do logs go</h2>
+<p>The logs captured are logged at two places</p>
+<h3>RequestProgressTracker</h3>
+<p>Sling provides support for recording recent requests which can be accessed via <a href="https://sling.apache.org/documentation/development/monitoring-requests.html">Recent Requests Plugin</a>. It would list down the list of recent request and then on clicking them you can see the logs showed on the UI.</p>
+<p>The logging there is done via <a href="https://sling.apache.org/apidocs/sling5/org/apache/sling/api/request/RequestProgressTracker.html">RequestProgressTracker</a> (<a href="http://dev.day.com/content/ddc/blog/2008/06/requestprogresstracker.html">intro</a>). By default recent request plugin gets overflown as it captures request even for css, js files. To avoid that you can modify the config as part of <em>Sling Main Servlet</em> config</p>
+<p><img src="/documentation/bundles/sling-main-servlet-config.png" alt="Sling Main Servlet Config" /></p>
+<p>Using a regex like <code>^.*.(?!jpg$|png$|js$|css$|woff$)[^.]+$</code> would avoid noise</p>
+<p>With that you can see log entries like below at http://localhost:8080/system/console/requests?index=xxx</p>
+<p>132 (2015-05-11 17:39:55) LOG [JCR] Query SELECT * FROM [granite:InboxItem] AS s where status='ACTIVE' ORDER BY s.startTime DESC 134 (2015-05-11 17:39:55) TIMER_END{53,/libs/cq/gui/components/endor/badge/badge.jsp#18} ... 1316 (2015-05-11 17:39:56) LOG JCR Query Count 3 1320 (2015-05-11 17:39:56) TIMER_END{1320,Request Processing} Request Processing</p>
+<h3>Server Logs</h3>
+<p>Further the logs also go to normal server side logs. By default they would go to the error.log. If you have routed the logs of specific categories to different files then normal Logback logging rules would apply</p>
+<h2>Usage</h2>
+<p>Tracing can be done in various ways for a given HTTP request. Tracer looks for following hints as part of request</p>
+<ul>
+  <li>Tracer set names - Comma separated list of tracer set names which need to be enabled. e.g. <code>oak-query, oak-writes</code> etc</li>
+  <li>tracerConfig - Raw tracing config only used for that specific request</li>
+</ul>
+<h3>Request Parameters</h3>
+<p>Param names</p>
+<ul>
+  <li><code>tracers</code> - Tracer set names</li>
+  <li><code>tracerConfig</code> - Tracer config like org.apache.sling.auth;level=trace`</li>
+</ul>
+<p>curl -u admin:admin http://localhost:4802/projects.html?tracerConfig=org.apache.sling</p>
+<p>Above request would turn on debug level logging (default level for tracer) for <code>org.apache.sling</code> category.</p>
+<p>curl -D - -u admin:admin -d "./jcr:content/jcr:title=Summer Collection" -d ":name=summer-collection" -d "./jcr:primaryType=sling:Folder" -d "./jcr:content/jcr:primaryType=nt:unstructured" -d "tracers=oak-writes" http://localhost:4502/content/dam/</p>
+<p>Above request would create a folder in Assets and for that we have enabled the <code>oak-writes</code> tracer. This would result in following output</p>
+<p>2015-05-11 17:30:42,840 INFO admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] c.a.acs.acs-aem-tools-bundle - Service [4858] ServiceEvent REGISTERED 2015-05-11 17:30:42,846 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] Adding node [/content/dam/summer-collection] 2015-05-11 17:30:42,849 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] setPrimaryType 2015-05-11 17:30:42,849 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] Adding node [/content/dam/summer-collection/jcr:content] 2015-05-11 17:30:42,849 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] Setting property [/content/dam/summer-collection/jcr:content/jcr:title] 2015-05-11 17:30:42,850 TRACE ad
 min [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] setPrimaryType 2015-05-11 17:30:42,850 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] setPrimaryType 2015-05-11 17:30:42,856 TRACE admin [127.0.0.1 [1431345642836] POST /content/dam/ HTTP/1.1] o.a.j.o.jcr.operations.writes session-12895- [session-12895] save</p>
+<h3>Request Headers</h3>
+<p>Some request like initial authentication processing does not involve Sling MainServlet and hence for those request logging cannot be done to RequestProgressTracker. Instead we can just get logs enabled and route them to normal logging on server side. For that you need to use HTTP header</p>
+<ul>
+  <li><code>Sling-Tracers</code> - Set of tracer set names</li>
+  <li><code>Sling-Tracer-Config</code> - Tracer config</li>
+</ul>
+<p>So to enable authentication related logging following request can be sent</p>
+<p>curl -D - -d "j_username=admin" -d "j_password=admin" -d "j_validate=true" -H "Sling-Tracer-Config : org.apache.sling.auth;level=trace,org.apache.jackrabbit.oak.security;level=trace" http://localhost:8080/libs/content/login.html/j_security_check</p>
+<p>This would result in following server side logs</p>
+<p>2015-05-11 17:34:56,531 INFO NA [qtp1395423247-193] c.a.acs.acs-aem-tools-bundle - Service [4859] ServiceEvent REGISTERED 2015-05-11 17:34:56,532 DEBUG NA [qtp1395423247-193] o.a.s.a.c.i.SlingAuthenticator - doHandleSecurity: Trying to get a session for null 2015-05-11 17:34:56,532 DEBUG NA [qtp1395423247-193] o.a.j.o.s.a.LoginContextProviderImpl - Found pre-authenticated subject: No further login actions required. 2015-05-11 17:34:56,532 DEBUG NA [qtp1395423247-193] o.a.j.o.s.a.LoginContextProviderImpl - Found pre-authenticated subject: No further login actions required. 2015-05-11 17:34:56,548 DEBUG NA [qtp1395423247-193] o.a.j.o.s.a.u.LoginModuleImpl - Adding Credentials to shared state. 2015-05-11 17:34:56,548 DEBUG NA [qtp1395423247-193] o.a.j.o.s.a.u.LoginModuleImpl - Adding login name to shared state.</p>
+<h2>Tracer Recording</h2>
+<p><em>Since 1.0.0 <a href="https://issues.apache.org/jira/browse/SLING-5459">SLING-5459</a></em></p>
+<p>Apart from routing the logs to the server logs they can also be stored in memory and accessed in json form from Felix Web Console. By default support for recording is disabled and it needs to be explicitly enabled via OSGi config</p>
+<p>Recording features works as explained below</p>
+<ol>
+  <li>Client sends an HTTP request with header <code>Sling-Tracer-Record</code>​ set to <code>true</code></li>
+</ol>
+<p>curl -D - -u admin:admin -H "Sling-Tracer-Record : true" -d "./jcr:content/jcr:title=Summer Collection" -d ":name=summer-collection" -d "./jcr:primaryType=sling:Folder" -d "./jcr:content/jcr:primaryType=nt:unstructured" -d "tracers=oak-writes" http://localhost:4802/content/dam/</p>
+<ol>
+  <li>Server includes a request id as part of <code>Sling-Tracer-Request-Id</code> response headers</li>
+</ol>
+<p>HTTP/1.1 201 Created Date: Wed, 27 Jan 2016 07:30:22 GMT Sling-Tracer-Request-Id: 9b5b01f6-f269-47c3-a889-2dc8d4d7938f X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN Location: /content/dam/summer-collection Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked</p>
+<ol>
+  <li>The logs in json format can then be fetched from server at <code>/system/console/tracer</code> like http://localhost:8080/system/console/tracer/9b5b01f6-f269-47c3-a889-2dc8d4d7938f.json.</li>
+</ol>
+<p>curl -s -D - -H "Sling-Tracer-Record : true" -H "Sling-Tracers : oak-query" -H "Sling-Tracer-Config : org.apache.jackrabbit.oak.query" -u admin:admin http://localhost:4512/assets.html/content/dam -o /dev/null</p>
+<p>Below is a json output for GET request</p>
+<p>:::javascript { "method": "GET", "time": 15140, "timestamp": 1461574009024, "requestProgressLogs": [ "0 TIMER_START{Request Processing}", "0 COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message>", ... ], "queries": [{ "query": "/jcr:root/etc/workflow/instances//element(*,app:Workflow)[@status='RUNNING'] order by @startTime descending", "plan": "[app:Workflow] as [a] /* property status = RUNNING where ([a].[status] = 'RUNNING') and (isdescendantnode([a], [/etc/workflow/instances])) */", "caller": "com.example.WorkflowManager.getWorkflowInstances(WorkflowManager.java:902)" } ], "logs": [{ "timestamp": 1461574022401, "level": "DEBUG", "logger": "org.apache.jackrabbit.oak.query.QueryEngineImpl", "message": "Parsing xpath statement: /jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING'] order by @startTime descending", "params": [ "xpath", "/jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING'] order by @startTime descen
 ding" ] } ... ] }</p>
+<p>JSON output consist of following sections</p>
+<ol>
+  <li><code>method</code> - Request method</li>
+  <li><code>time</code> - Time in mills spent in request processing on server</li>
+  <li><code>timestamp</code> - Request start time</li>
+  <li><code>requestProgressLogs</code> - Sling Request Progress Tracker log for the given request</li>
+  <li><code>queries</code> - List of queries fired along with details around <code>query</code>, <code>plan</code> and <code>caller</code> i.e. from where the query is invoked</li>
+  <li><code>logs</code> - List of log entries captured (as enabled by tracer config) for current request</li>
+</ol>
+<p>The recordings are held in memory for 15 mins (per default setting) and can be seen listed at http://localhost:8080/system/console/tracer. Look into the OSGi config for more config options around this.</p>
+<h2>Installation</h2>
+<p>Download the bundle from <a href="http://sling.apache.org/downloads.cgi">here</a> or use following Maven dependency</p>
+<p>::xml <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.tracer</artifactId> <version>1.0.0</version> </dependency></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html b/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html
new file mode 100644
index 0000000..1be99b1
--- /dev/null
+++ b/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Managing permissions (jackrabbit.accessmanager)</h1></header><p>The <code>jackrabbit-accessmanager</code> bundle delivers a REST interface to manipulate users permissions in the JCR. After installing the <code>jackrabbit-accessmanager</code> bundle the REST services are exposed under the path of the node where you will manipulate the permissions for a user with a specific selector like <code>modifyAce</code>, <code>acl</code> and <code>deleteAce</code>. [TOC]</p>
+<h2>Privileges</h2>
+<table>
+  <thead>
+    <tr>
+      <th>privilagename </th>
+      <th>description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>jcr:read </td>
+      <td>the privilege to retrieve a node and get its properties and their values </td>
+    </tr>
+    <tr>
+      <td>jcr:readAccessControl </td>
+      <td>the privilege to get the access control policy of a node </td>
+    </tr>
+    <tr>
+      <td>jcr:modifyProperties </td>
+      <td>the privilege to create, modify and remove the properties of a node </td>
+    </tr>
+    <tr>
+      <td>jcr:addChildNodes </td>
+      <td>the privilege to create child nodes of a node </td>
+    </tr>
+    <tr>
+      <td>jcr:removeChildNodes </td>
+      <td>the privilege to remove child nodes of a node </td>
+    </tr>
+    <tr>
+      <td>jcr:removeNode </td>
+      <td>the privilege to remove a node </td>
+    </tr>
+    <tr>
+      <td>jcr:write </td>
+      <td>an aggregate privilege that contains: jcr:modifyProperties jcr:addChildNodes jcr:removeNode jcr:removeChildNodes </td>
+    </tr>
+    <tr>
+      <td>jcr:modifyAccessControl </td>
+      <td>the privilege to modify the access control policies of a node </td>
+    </tr>
+    <tr>
+      <td>jcr:lockManagement </td>
+      <td>the privilege to lock and unlock a node </td>
+    </tr>
+    <tr>
+      <td>jcr:versionManagement </td>
+      <td>the privilege to perform versioning operations on a node </td>
+    </tr>
+    <tr>
+      <td>jcr:nodeTypeManagement </td>
+      <td>the privilege to add and remove mixin node types and change the primary node type of a node </td>
+    </tr>
+    <tr>
+      <td>jcr:retentionManagement </td>
+      <td>the privilege to perform retention management operations on a node </td>
+    </tr>
+    <tr>
+      <td>jcr:lifecycleManagement </td>
+      <td>the privilege to perform lifecycle operations on a node </td>
+    </tr>
+    <tr>
+      <td>jcr:all </td>
+      <td>an aggregate privilege that contains all predefined privileges </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Add or modify permissions</h2>
+<p>To modify the permissions for a node POST a request to <code>/&lt;path-to-the-node&gt;.modifyAce.&lt;html or json&gt;</code>. The following parameters are available:</p>
+<ul>
+  <li><em>numeric</em> - Place the target ACE at the specified numeric index. |</li>
+</ul>
+<p>Responses: | 200 | Success | | 500 | Failure, HTML (or JSON) explains failure. | Example with curl:</p>
+<p>curl -FprincipalId=myuser -Fprivilege@jcr:read=granted http://localhost:8080/test/node.modifyAce.html</p>
+<h2>Delete permissions</h2>
+<p>To delete permissions for a node POST a request to <code>/&lt;path-to-the-node&gt;.deleteAce.&lt;html or json&gt;</code>. The following parameters are available:</p>
+<p>Responses: | 200 | Success | | 500 | Failure, HTML (or JSON) explains failure. | Example with curl:</p>
+<p>curl -F:applyTo=myuser http://localhost:8080/test/node.deleteAce.html</p>
+<h2>Get permissions</h2>
+<h3>Bound Permissions</h3>
+<p>To get the permissions bound to a particular node in a json format for a node send a GET request to <code>/&lt;path-to-the-node&gt;.acl.json</code>.</p>
+<p>Example:</p>
+<p>http://localhost:8080/test/node.acl.json</p>
+<h3>Effective Permissions</h3>
+<p>To get the permissions which are effective for a particular node in a json format for a node send a GET request to <code>/&lt;path-to-the-node&gt;.eacl.json</code>.</p>
+<p>Example:</p>
+<p>http://localhost:8080/test/node.eacl.json</p>
+<div class="note">
+See section 16.3 of the JCR 2.0 specification for an explanation of the difference between bound and effective policies.
+</div>
+<h2>Sample User Interface Implementation</h2>
+<p><em>Since Version 2.1.1</em></p>
+<p>A sample implementation of ui pages for permissions management is provided @ http://svn.apache.org/viewvc/sling/trunk/samples/accessmanager-ui/</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html b/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html
new file mode 100644
index 0000000..3f7e530
--- /dev/null
+++ b/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html
@@ -0,0 +1,453 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Managing users and groups (jackrabbit.usermanager)</h1></header><p>The <code>jackrabbit-usermanager</code> bundle delivers a REST interface to create, update and delete users and groups in the JCR. After installing the <code>jackrabbit-usermanager</code> bundle all REST services are exposed under the path <code>/system/userManager</code>. Its interface for modifing/creating authorizables is similar to the <a href="/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">SlingPostServlet</a>.</p>
+<p>For getting information about existing authorizables it provides all authorizables as Sling resources through its <code>AuthorizableResourceProvider</code> below <code>/system/userManager/user</code> and <code>/system/userManager/group</code>. Those resources can be exposed via the <a href="/documentation/bundles/rendering-content-default-get-servlets.html">Default GET Servlet</a>.</p>
+<p>[TOC]</p>
+<h2>List users</h2>
+<p>To list existing users a GET request to the <code>/system/userManager/user</code> resource can be issued. Depending on the configuration of the <a href="/documentation/bundles/rendering-content-default-get-servlets.html">Default GET Servlet</a> and/or the availability of a Servlet or Script handling the <code>sling/users</code> resource type, a result may be delivered/</p>
+<p>Example with curl and the default JSON rendering:</p>
+<p>$ curl http://localhost:8080/system/userManager/user.tidy.1.json { "admin": { "memberOf": [], "declaredMemberOf": [] }, "anonymous": { "memberOf": [], "declaredMemberOf": [] } }</p>
+<h2>Get user</h2>
+<p><em>since version 2.0.8</em> The properties of a single user can be retrieved by sending a GET request to the user's resource at <code>/system/userManager/user/&lt;username&gt;</code> where <code>&lt;username&gt;</code> would be replaced with the name of the user. Depending on the configuration of the <a href="/documentation/bundles/rendering-content-default-get-servlets.html">Default GET Servlet</a> and/or the availability of a Servlet or Script handling the <code>sling/user</code> resource type, a result may be delivered.</p>
+<p>Example with curl and the default JSON rendering:</p>
+<p>$ curl http://localhost:8080/system/userManager/user/admin.tidy.1.json { "memberOf": [], "declaredMemberOf": [] }</p>
+<p>If a non-existing user is requested a <code>404/NOT FOUND</code> status is sent back.</p>
+<h2>Create user</h2>
+<p>To create a new user POST a request to <code>/system/userManager/user.create.&lt;html or json&gt;</code>. The following parameters are available:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter Name </th>
+      <th>Required </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>:name</code> </td>
+      <td>yes </td>
+      <td>The name of the new user</td>
+    </tr>
+    <tr>
+      <td><code>pwd</code> </td>
+      <td>yes </td>
+      <td>The password of the new user</td>
+    </tr>
+    <tr>
+      <td><code>pwdConfirm</code> </td>
+      <td>yes </td>
+      <td>The password of the new user (must be equal to the value of <code>pwd</code>)</td>
+    </tr>
+    <tr>
+      <td><code>&lt;anyproperty&gt;</code> </td>
+      <td>no </td>
+      <td>Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td>
+    </tr>
+  </tbody>
+</table>
+<p>Responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status Code </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200 </td>
+      <td>Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status.</td>
+    </tr>
+    <tr>
+      <td>500 </td>
+      <td>Failure, including user already exists. HTML (or JSON) explains failure.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Example with curl:</p>
+<p>curl -F:name=myuser -Fpwd=password -FpwdConfirm=password -Fanyproperty1=value1 http://localhost:8080/system/userManager/user.create.html</p>
+<h2>Update user</h2>
+<p>To update an existing user POST a request to <code>/system/userManager/user/username.update.&lt;html or json&gt;</code>. You can NOT update the username or the password (see Change Password below) only the additional properties are updateable through this URL. The following parameters are available:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter Name </th>
+      <th>Required </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>:disabled</code> </td>
+      <td>no </td>
+      <td>(since version 2.1.1) If <code>true</code> disables the user to block further login attempts. If <code>false</code> enables a disabled user.</td>
+    </tr>
+    <tr>
+      <td><code>:disabledReason</code> </td>
+      <td>no </td>
+      <td>Specifies the reason why a user has been disabled.</td>
+    </tr>
+    <tr>
+      <td><code>&lt;anyproperty&gt;</code> </td>
+      <td>no </td>
+      <td>Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td>
+    </tr>
+    <tr>
+      <td><code>&lt;anyproperty&gt;@Delete</code> </td>
+      <td>no </td>
+      <td>Properties with @Delete at the end of the name will be deleted in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td>
+    </tr>
+  </tbody>
+</table>
+<p>Responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status Code </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200 </td>
+      <td>Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status.</td>
+    </tr>
+    <tr>
+      <td>404 </td>
+      <td>User was not found.</td>
+    </tr>
+    <tr>
+      <td>500 </td>
+      <td>Any other failure. HTML (or JSON) explains failure.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Example</p>
+<p>curl -Fanyproperty1@Delete -Fproperty2=value2 http://localhost:8080/system/userManager/user/myuser.update.html</p>
+<h2>Change password</h2>
+<p>To change a password of an existing user POST a request to <code>/system/userManager/user/username.changePassword.&lt;html or json&gt;</code>. NOTE: since version 2.1.1, the oldPwd is optional if the current user is a user administrator. The following parameters are available:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter Name </th>
+      <th>Required </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>oldPwd</code> </td>
+      <td>yes </td>
+      <td>Old password.</td>
+    </tr>
+    <tr>
+      <td><code>newPwd</code> </td>
+      <td>yes </td>
+      <td>New password.</td>
+    </tr>
+    <tr>
+      <td><code>newPwdConfirm</code> </td>
+      <td>yes </td>
+      <td>New password (must be equal to the value of <code>newPwd</code>).</td>
+    </tr>
+  </tbody>
+</table>
+<p>Responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status Code </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200 </td>
+      <td>Success, no body.</td>
+    </tr>
+    <tr>
+      <td>404 </td>
+      <td>User was not found.</td>
+    </tr>
+    <tr>
+      <td>500 </td>
+      <td>Any other failure. HTML (or JSON) explains failure.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Example</p>
+<p>curl -FoldPwd=oldpassword -FnewPwd=newpassword -FnewPwdConfirm=newpassword http://localhost:8080/system/userManager/user/myuser.changePassword.html</p>
+<h2>Delete user</h2>
+<p>To delete an existing user POST a request to <code>/system/userManager/user/username.delete.&lt;html or json&gt;</code>. The following parameters are available:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter Name </th>
+      <th>Required </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>:applyTo</code> </td>
+      <td>no </td>
+      <td>An array of relative resource references to users to be deleted. If this parameter is present, the username from the URL is ignored and all listed users are removed.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status Code </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200 </td>
+      <td>Success, no body.</td>
+    </tr>
+    <tr>
+      <td>404 </td>
+      <td>User(s) was/were not found.</td>
+    </tr>
+    <tr>
+      <td>500 </td>
+      <td>Any other failure. HTML (or JSON) explains failure.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Example</p>
+<p>curl -Fgo=1 http://localhost:8080/system/userManager/user/myuser.delete.html</p>
+<h2>List groups</h2>
+<p>To list existing groups a GET request to the <code>/system/userManager/group</code> resource can be sent. Depending on the configuration of the <a href="/documentation/bundles/rendering-content-default-get-servlets.html">Default GET Servlet</a> and/or the availability of a Servlet or Script handling the <code>sling/groups</code> resource type, a result may be delivered.</p>
+<p>Example with curl and the default JSON rendering:</p>
+<p>$ curl http://localhost:8080/system/userManager/group.tidy.1.json { "UserAdmin": { "members": [], "declaredMembers": [], "memberOf": [], "declaredMemberOf": [] }, "GroupAdmin": { "members": [], "declaredMembers": [], "memberOf": [], "declaredMemberOf": [] }, "administrators": { "members": [], "declaredMembers": [], "memberOf": [], "declaredMemberOf": [] } }</p>
+<h2>Get group</h2>
+<p>The properties of a single group can be retrieved by sending a GET request to the group's resource at <code>/system/userManager/group/groupname</code> where <em>groupname</em> would be replaced with the name of the group. Depending on the configuration of the <a href="/documentation/bundles/rendering-content-default-get-servlets.html">Default GET Servlet</a> and/or the availability of a Servlet or Script handling the <code>sling/group</code> resource type, a result may be delivered.</p>
+<p>Example with curl and the default JSON rendering:</p>
+<p>$ curl http://localhost:8080/system/userManager/group/administrators.tidy.1.json { "members": [], "declaredMembers": [], "memberOf": [], "declaredMemberOf": [] }</p>
+<p>If a non-existing group is requested a 404/NOT FOUND status is sent back.</p>
+<h2>Create group</h2>
+<p>To create a new group POST a request to <code>/system/userManager/group.create.&lt;html or json&gt;</code>. The following parameters are available:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter Name </th>
+      <th>Required </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>:name</code> </td>
+      <td>yes </td>
+      <td>The name of the new group</td>
+    </tr>
+    <tr>
+      <td><code>&lt;anyproperty&gt;</code> </td>
+      <td>no </td>
+      <td>Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td>
+    </tr>
+  </tbody>
+</table>
+<p>Responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status Code </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200 </td>
+      <td>Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status</td>
+    </tr>
+    <tr>
+      <td>500 </td>
+      <td>Failure including group already exists. HTML (or JSON) explains failure.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Example with curl:</p>
+<p>curl -F:name=mygroup -Fanyproperty1=value1 http://localhost:8080/system/userManager/group.create.html</p>
+<h2>Update group</h2>
+<p>To update an existing group POST a request to <code>/system/userManager/group/groupname.update.&lt;html or json&gt;</code>. You can NOT update the name of the group only the additional properties are updateable. The following parameters are available:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter Name </th>
+      <th>Required </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>:member</code> </td>
+      <td>no </td>
+      <td>user(s) (name or URI) to add to the group as a member. Can also be an array of users.</td>
+    </tr>
+    <tr>
+      <td><code>:member@Delete</code> </td>
+      <td>no </td>
+      <td>user(s) (name or URI) to remove from the group. Can also be an array of users.</td>
+    </tr>
+    <tr>
+      <td><code>&lt;anyproperty&gt;</code> </td>
+      <td>no </td>
+      <td>Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td>
+    </tr>
+    <tr>
+      <td><code>&lt;anyproperty&gt;@Delete</code> </td>
+      <td>no </td>
+      <td>Properties with @Delete at the end of the name will be deleted in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td>
+    </tr>
+  </tbody>
+</table>
+<p>Responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status Code </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200 </td>
+      <td>Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status.</td>
+    </tr>
+    <tr>
+      <td>404 </td>
+      <td>Group was not found.</td>
+    </tr>
+    <tr>
+      <td>500 </td>
+      <td>Any other failure. HTML (or JSON) explains failure.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Example</p>
+<p>curl -Fanyproperty1@Delete -Fproperty2=value2 -F ":member=/system/userManager/user/myuser" http://localhost:8080/system/userManager/group/mygroup.update.html</p>
+<h2>Delete group</h2>
+<p>To delete an existing group POST a request to <code>/system/userManager/group/groupname.delete.&lt;html or json&gt;</code>. The following parameters are available:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter Name </th>
+      <th>Required </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>:applyTo</code> </td>
+      <td>no </td>
+      <td>An array of relative resource references to groups to be deleted. If this parameter is present, the name of the group from the URL is ignored and all listed groups are removed.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Responses:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Status Code </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>200 </td>
+      <td>Success, sent with no body.</td>
+    </tr>
+    <tr>
+      <td>404 </td>
+      <td>Group(s) was/were not found.</td>
+    </tr>
+    <tr>
+      <td>500 </td>
+      <td>Any other failure. HTML (or JSON) explains failure.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Example</p>
+<p>curl -Fgo=1 http://localhost:8080/system/userManager/group/mygroup.delete.html</p>
+<h2>Automated Tests</h2>
+<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/">launchpad/testing</a> module contains test classes for various operations of the <code>jackrabbit-usermanager</code>. Such tests run as part of our continuous integration process, to demonstrate and verify the behavior of the various operations, in a way that's guaranteed to be in sync with the actual Sling core code. If you have an idea for additional tests, make sure to let us know!</p>
+<h2>Permissions checking from scripts</h2>
+<p><em>Since Version 2.0.6</em></p>
+<p>When developing scripts that will perform user or group updates, you may want to know what actions the current user is provisioned to do. This information can be used to conditionally render parts of your page differently based on the user rights.</p>
+<p>The jackrabbit.usermanager bundle provides a service (AuthorizablePrivilegesInfo) you can utilize to do help with this permission checking.</p>
+<p>The AuthorizablePrivilegesInfo provides methods for checking the following actions</p>
+<table>
+  <thead>
+    <tr>
+      <th>Method </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>canAddUser(jcrSession)</code> </td>
+      <td>Checks if the current user may add new users </td>
+    </tr>
+    <tr>
+      <td><code>canAddGroup(jcrSession)</code> </td>
+      <td>Checks if the current user may add new groups </td>
+    </tr>
+    <tr>
+      <td><code>canUpdateProperties(jcrSession, principalId)</code> </td>
+      <td>Checks if the current user may update the properties of the specified principal </td>
+    </tr>
+    <tr>
+      <td><code>canRemove(jcrSession, principalId)</code> </td>
+      <td>Checks if the current user may remove the specified user or group </td>
+    </tr>
+    <tr>
+      <td><code>canUpdateGroupMembers(jcrSession, groupId)</code> </td>
+      <td>Checks if the current user may modify the membership of the specified group </td>
+    </tr>
+  </tbody>
+</table>
+<p>Example:</p>
+<p>&lt;% // lookup the service var privilegesInfo = sling.getService(Packages.org.apache.sling.jackrabbit.usermanager.AuthorizablePrivilegesInfo);</p>
+<p>if (privilegesInfo.canAddUser(currentSession)) { //TODO: render the UI that allows the user to add a user here }</p>
+<p>if (privilegesInfo.canAddGroup(currentSession)) { //TODO: render the UI that allows the user to add a group here }</p>
+<p>if (privilegesInfo.canUpdateProperties(currentSession, "someUserId")) { //TODO: render the UI that allows the user to update the properties of the user here }</p>
+<p>if (privilegesInfo.canRemove(currentSession, "someUserId")) { //TODO: render the UI that allows the user to remove the user here }</p>
+<p>if (privilegesInfo.canUpdateGroupMembers(currentSession, "GroupName")) { //TODO: draw your UI that allows the user to update the group memebership here } %&gt;</p>
+<h2>Sample User Interface Implementation</h2>
+<p><em>Since Version 2.1.1</em></p>
+<p>A sample implementation of ui pages for user/group management is provided @ <a href="http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/">http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[46/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/scheduler-service-commons-scheduler.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/scheduler-service-commons-scheduler.html b/documentation/bundles/scheduler-service-commons-scheduler.html
new file mode 100644
index 0000000..b7a4f3c
--- /dev/null
+++ b/documentation/bundles/scheduler-service-commons-scheduler.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Scheduler Service (commons scheduler)</h1></header><p>The scheduler is a service for scheduling other services/jobs (it uses the open source Quartz library). The scheduler can be used in two ways, by registering the job through the scheduler API and by leveraging the whiteboard pattern that is supported by the scheduler. In most cases the whiteboard pattern is preferred</p>
+<div class="note">
+The notion of Job used in this context is a different one than the one used for <a href="/documentation/bundles/apache-sling-eventing-and-job-handling.html">Sling Jobs</a>. The main difference is that a scheduler's job is not persisted.
+</div>
+<h2>Examples of jobs that are scheduled by leveraging the whiteboard pattern</h2>
+<p>The following examples show you how to define and schedule a job by leveraging the whiteboard pattern.</p>
+<h3>Scheduling with a cron expression</h3>
+<p>The following job is executed every minute by setting <em>scheduler.expression</em> to the cron expression <em>"0 * * * * ?"</em>:</p>
+<p>package sling.docu.examples;</p>
+<p>import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Service; import org.apache.felix.scr.annotations.Property;</p>
+<p>@Component @Service(value = Runnable.class) @Property( name = "scheduler.expression", value = "0 * * * * ?") public class ScheduledCronJob implements Runnable {</p>
+<p>/** Default log. */ protected final Logger log = LoggerFactory.getLogger(this.getClass());</p>
+<p>public void run() { log.info("Executing a cron job (job#1) through the whiteboard pattern"); } // }</p>
+<h3>Scheduling at periodic times</h3>
+<p>The following job is executed every ten seconds by setting <em>scheduler.period</em> to <em>10</em>:</p>
+<p>package sling.docu.examples;</p>
+<p>import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Service; import org.apache.felix.scr.annotations.Property;</p>
+<p>@Component @Service(value = Runnable.class) @Property( name = "scheduler.period", longValue = 10) public class ScheduledPeriodicJob implements Runnable {</p>
+<p>/** Default log. */ protected final Logger log = LoggerFactory.getLogger(this.getClass());</p>
+<p>public void run() { log.info("Executing a perodic job (job#2) through the whiteboard pattern"); } // }</p>
+<h3>Preventing concurrent execution</h3>
+<p>By default, jobs can be concurrently executed. To prevent this, set the <em>scheduler.concurrent</em> property to <em>false</em>:</p>
+<p>@Property(name="scheduler.concurrent", boolValue=false)</p>
+<h3>Scheduling the job just once in a cluster</h3>
+<p>If the same code/same services is executed on multiple nodes within a cluster, the same job might be scheduled on each instance. If this is not desired, the job can either be bound to the leader of the topology or a single instance (which one this is, is not further defined):</p>
+<p>@Property(name="scheduler.runOn", value="LEADER");</p>
+<p>or</p>
+<p>@Property(name="scheduler.runOn", value="SINGLE");</p>
+<p>Since in contrast to <a href="/documentation/bundles/apache-sling-eventing-and-job-handling.html">Sling Jobs</a> the scheduler queue is only held in memory, there will be no distribution of jobs. So if job '1' was scheduled on instance 'a' with the option to run on the leader only, but the leader is instance 'b', which hasn't the job in the queue, the job will never be executed by any instance!</p>
+<h2>The Scheduler API</h2>
+<p>The scheduler has methods to execute jobs periodically, based on a cron expression or at a given time. For more details please refer to the <a href="http://sling.apache.org/apidocs/sling6/org/apache/sling/commons/scheduler/Scheduler.html">javadocs</a>.</p>
+<h2>Examples of scheduled jobs registered through the scheduler API</h2>
+<p>The following examples show you how to define and schedule a job that is registered through the scheduler api.</p>
+<h3>Defining the job</h3>
+<p>The following code sample defines a <em>job</em> object that writes a message in the logs:</p>
+<p>final Runnable job = new Runnable() { public void run() { log.info("Executing the job"); } };</p>
+<h3>Scheduling with a cron expression</h3>
+<p>To execute the job as defined above at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday, you can use the <em>addJob()</em> method with the following parameters:</p>
+<p>String schedulingExpression = "0 15 10 ? * MON-FRI"; this.scheduler.addJob("myJob", job, null, schedulingExpression, true);</p>
+<p>Refer to http://www.docjar.com/docs/api/org/quartz/CronTrigger.html to define more scheduling expressions.</p>
+<h3>Scheduling at periodic times</h3>
+<p>To execute the job as defined above every 3 minutes (180 seconds), you can use the <em>addPeriodicJob()</em> method with the following parameters:</p>
+<p>long period = 3*60; //the period is expressed in seconds this.scheduler.addPeriodicJob("myJob", job, null, period, true);</p>
+<h3>Scheduling at a given time</h3>
+<p>To execute the job as defined above at a specific date (on January 10th 2020), you can use the <em>fireJobAt()</em> method with the following parameters:</p>
+<p>SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); String date = "2020/01/10"; java.util.Date fireDate = formatter.parse(date); this.scheduler.fireJobAt("myJob", job, null, fireDate);</p>
+<h3>A service scheduling the job based on 3 different kinds of scheduling</h3>
+<p>The code implementing a service that simultaneously executes the job based on 3 different kinds of scheduling can look as follows:</p>
+<p>package sling.docu.examples;</p>
+<p>import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map;</p>
+<p>import org.apache.sling.commons.scheduler.Scheduler; import org.osgi.service.component.ComponentContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Reference;</p>
+<p>/** * This service executes scheduled jobs * */ @Component public class HelloWorldScheduledService {</p>
+<p>/** Default log. */ protected final Logger log = LoggerFactory.getLogger(this.getClass());</p>
+<p>/** The scheduler for rescheduling jobs. */ @Reference private Scheduler scheduler;</p>
+<p>protected void activate(ComponentContext componentContext) throws Exception { //case 1: with addJob() method: executes the job every minute String schedulingExpression = "0 * * * * ?"; String jobName1 = "case1"; Map&lt;String, Serializable&gt; config1 = new HashMap&lt;String, Serializable&gt;(); boolean canRunConcurrently = true; final Runnable job1 = new Runnable() { public void run() { log.info("Executing job1"); } }; try { this.scheduler.addJob(jobName1, job1, config1, schedulingExpression, canRunConcurrently); } catch (Exception e) { job1.run(); }</p>
+<p>//case 2: with addPeriodicJob(): executes the job every 3 minutes String jobName2 = "case2"; long period = 180; Map&lt;String, Serializable&gt; config2 = new HashMap&lt;String, Serializable&gt;(); final Runnable job2 = new Runnable() { public void run() { log.info("Executing job2"); } }; try { this.scheduler.addPeriodicJob(jobName2, job2, config2, period, canRunConcurrently); } catch (Exception e) { job2.run(); }</p>
+<p>//case 3: with fireJobAt(): executes the job at a specific date (date of deployment + delay of 30 seconds) String jobName3 = "case3"; final long delay = 30*1000; final Date fireDate = new Date(); fireDate.setTime(System.currentTimeMillis() + delay); Map&lt;String, Serializable&gt; config3 = new HashMap&lt;String, Serializable&gt;(); final Runnable job3 = new Runnable() { public void run() { log.info("Executing job3 at date: {} with a delay of: {} seconds", fireDate, delay/1000); } }; try { this.scheduler.fireJobAt(jobName3, job3, config3, fireDate); } catch (Exception e) { job3.run(); } }</p>
+<p>protected void deactivate(ComponentContext componentContext) { log.info("Deactivated, goodbye!"); }</p>
+<p>}</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/scripting.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/scripting.html b/documentation/bundles/scripting.html
new file mode 100644
index 0000000..ef99cd5
--- /dev/null
+++ b/documentation/bundles/scripting.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Scripting</h1></header><p>[TOC]</p>
+<p>Sling Scripting allows the easy development and usage of different scripting (aka templating) engines.</p>
+<h1>Sling Scripting Engines</h1>
+<ul>
+  <li>Freemarker *</li>
+  <li>Groovy *</li>
+  <li><a href="/documentation/bundles/scripting/scripting-htl.html">HTL</a></li>
+  <li>Java *</li>
+  <li>Javascript</li>
+  <li><a href="/documentation/bundles/scripting/scripting-jsp.html">JSP</a></li>
+  <li>JST *</li>
+  <li>Python *</li>
+  <li>Ruby *</li>
+  <li>Scala *</li>
+  <li><a href="/documentation/bundles/scripting/scripting-thymeleaf.html">Thymeleaf</a> *</li>
+  <li>Velocity *</li>
+  <li>XProc *</li>
+  <li>
+  <p>in contrib</p></li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/scripting/scripting-htl.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/scripting/scripting-htl.html b/documentation/bundles/scripting/scripting-htl.html
new file mode 100644
index 0000000..69e988f
--- /dev/null
+++ b/documentation/bundles/scripting/scripting-htl.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>HTL Scripting Engine</h1></header><p>The Apache Sling HTL Scripting Engine, <a href="https://issues.apache.org/jira/browse/SLING-6028">formerly known as Sightly</a>, is the reference implementation of the <a href="https://github.com/Adobe-Marketing-Cloud/htl-spec">HTML Template Language</a>.</p>
+<p>[TOC]</p>
+<h1>Modules</h1>
+<p>The Sling implementation is comprised of the following modules:</p>
+<ol>
+  <li><a href="https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/compiler"><code>org.apache.sling.scripting.sightly.compiler</code></a> - provides support for compiling HTML Template Language scripts into an Abstract Syntax Tree</li>
+  <li><a href="https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/java-compiler"><code>org.apache.sling.scripting.sightly.compiler.java</code></a> - provides support for transpiling the Abstract Syntax Tree produced by the <code>org.apache.sling.scripting.sightly.compiler</code> module into Java source code</li>
+  <li><a href="https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/engine"><code>org.apache.sling.scripting.sightly</code></a> - the HTL Scripting Engine bundle</li>
+  <li><a href="https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/js-use-provider"><code>org.apache.sling.scripting.sightly.js.provider</code></a> - the HTL JavaScript Use Provider, implementing support for the <code>use</code> JavaScript function</li>
+  <li><a href="https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/models-use-provider"><code>org.apache.sling.scripting.sightly.models.provider</code></a> - <a href="https://sling.apache.org/documentation/bundles/models.html">Sling Models</a> Use Provider</li>
+  <li><a href="https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/repl"><code>org.apache.sling.scripting.sightly.repl</code></a> - HTL Read-Eval-Print Loop Environment (REPL), useful for quickly prototyping scripts</li>
+  <li><a href="https://github.com/apache/sling/tree/trunk/tooling/maven/htl-maven-plugin"><code>htl-maven-plugin</code></a> - M2Eclipse compatible HTL Maven Plugin that provides support for validating HTML Template Language scripts from projects during build time</li>
+</ol>
+<h1>The Use-API</h1>
+<p>The <a href="https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/1.2/SPECIFICATION.md#4-use-api">HTML Template Language Specification</a> explicitly defines two ways of implementing support for business logic objects:</p>
+<ol>
+  <li>Java Use-API, through POJOs, that may optionally implement an <code>init</code> method:</li>
+</ol>
+<p>/** * Initialises the Use bean. * * @param bindings All bindings available to the HTL scripts. **/ public void init(javax.script.Bindings bindings);</p>
+<ol>
+  <li>JavaScript Use-API, by using a standardised use function</li>
+</ol>
+<p>/** * 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</p>
+<p>// define this Use object's behaviour return { propertyName: propertyValue functionName: function () {} } });</p>
+<p>The HTL implementation from Sling provides the basic POJO support through the <a href="https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/Use.java"><code>org.apache.sling.scripting.sightly.pojo.Use</code></a> interface and the <a href="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"><code>JavaUseProvider</code></a>, whereas the <code>use</code> function is implemented by the <code>org.apache.sling.scripting.sightly.js.provider</code> bundle.</p>
+<p>However, the Sling implementation provides a few extensions to the Use-API.</p>
+<h2>Sling-specific Use-API Extensions</h2>
+<p>A full HTL installation provides the following Use Providers, in the order of their priority (the higher the service ranking value, the higher the priority):</p>
+<table>
+  <thead>
+    <tr>
+      <th>Service Ranking </th>
+      <th>Use Provider </th>
+      <th>Bundle </th>
+      <th>Functionality </th>
+      <th>Observations</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>100</td>
+      <td><a href="https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java"><code>RenderUnitProvider</code></a></td>
+      <td><code>org.apache.sling.scripting.sightly</code></td>
+      <td colspan="2">support for loading HTL templates through <code>data-sly-use</code></td>
+    </tr>
+    <tr>
+      <td>95</td>
+      <td><a href="https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java"><code>SlingModelsUseProvider</code></a></td>
+      <td><code>org.apache.sling.scripting.sightly.models.provider</code></td>
+      <td colspan="2">support for loading <a href="https://sling.apache.org/documentation/bundles/models.html">Sling Models</a></td>
+    </tr>
+    <tr>
+      <td>90</td>
+      <td><a href="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"><code>JavaUseProvider</code></a></td>
+      <td><code>org.apache.sling.scripting.sightly</code></td>
+      <td>support for loading Java objects such as: <ol><li>OSGi services</li><li>POJOs adaptable from <code>SlingHttpServletRequest</code> or <code>Resource</code></li><li>POJOs that implement <code>Use</code></li></ol></td>
+      <td>The POJOs can be exported by bundles or can be backed by <code>Resources</code>. In the latter case the POJOs' package names should correspond to the backing resource's path; invalid Java characters which are valid path elements should be replaced by an underscore - <code>_</code>.</td>
+    </tr>
+    <tr>
+      <td>80</td>
+      <td><a href="https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java"><code>JsUseProvider</code></a></td>
+      <td><code>org.apache.sling.scripting.sightly.js.provider</code></td>
+      <td>support for loading objects defined through the JavaScript <code>use</code> function</td>
+      <td>The <code>org.apache.sling.scripting.sightly.js.provider</code> also provides a trimmed down <a href="https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/js-use-provider/src/main/resources/SLING-INF/libs/sling/sightly/js">asynchronous implementation</a> of the <code>Resource</code> API. However this was deprecated in <a href="https://issues.apache.org/jira/browse/SLING-4964">SLING-4964</a> (version 1.0.8 of the bundle) in favour of the synchronous API provided by the <code>org.apache.sling.scripting.javascript</code> bundle.</td>
+    </tr>
+    <tr>
+      <td>0 </td>
+      <td><a href="https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java"><code>ScriptUseProvider</code></a></td>
+      <td><code>org.apache.sling.scripting.sightly</code></td>
+      <td colspan="2">support for loading objects returned by scripts interpreted by other Script Engines available on the platform</td>
+    </tr>
+  </tbody>
+</table>
+<p>The <code>service.ranking</code> value of each Use Provider is configurable, allowing for fine tuning of the order in which the providers are queried when <code>data-sly-use</code> is called. However, in order to not affect core functionality the <code>RenderUnitProvider</code> should always have the highest ranking. If you need to configure the providers' service ranking head over to the configuration console at <a href="http://localhost:8080/system/console/configMgr">http://localhost:8080/system/console/configMgr</a>.</p>
+<h3>Global Objects</h3>
+<p>The following global objects are available to all Use objects, either as a request attribute or as a property made available in the <code>javax.script.Bindings</code> map or attached to the <code>this</code> context of the <code>use</code> function:</p>
+<p>currentNode // javax.jcr.Node currentSession // javax.jcr.Session log // org.slf4j.Logger out // java.io.PrintWriter properties // org.apache.sling.api.resource.ValueMap reader // java.io.BufferedReader request // org.apache.sling.api.SlingHttpServletRequest resolver // org.apache.sling.api.resource.ResourceResolver resource // org.apache.sling.api.resource.Resource response // org.apache.sling.api.SlingHttpServletResponse sling // org.apache.sling.api.scripting.SlingScriptHelper</p>
+<h3>Sling Models Use Provider</h3>
+<p>Loading a Sling Model can be done with the following code:</p>
+<p>&lt;div data-sly-use.model3="org.example.models.Model3"&gt; ${model3.shine} </div></p>
+<p>Depending on the implementation the above code would either load the implementation with the highest service ranking of <code>Model3</code> if <code>org.example.models.Model3</code> is an interface, or would load the model <code>org.example.models.Model3</code> if this is a concrete implementation.</p>
+<p>It's important to note that this use provider will only load models that are adaptable from <code>SlingHttpServletRequest</code> or <code>Resource</code>.</p>
+<h4>Passing parameters</h4>
+<p>Passed parameters will be made available to the Sling Model as request attributes. Assuming the following markup:</p>
+<p>&lt;div data-sly-use.model3="${'org.example.models.Model3' @ colour='red', path=resource.path}"&gt; ${model3.shine} </div></p>
+<p>the model would retrieve the parameters using the following constructs:</p>
+<p>@Model(adaptables=SlingHttpServletRequest.class) public class Model3 {</p>
+<p>@Inject private String colour;</p>
+<p>@Inject private String path; }</p>
+<h3>Java Use Provider</h3>
+<p>The Java Use Provider can be used to load OSGi services, objects exported by bundles or backed by a <code>Resource</code>.</p>
+<h4>Resource-backed Java classes</h4>
+<p>When objects are backed by <code>Resources</code> the Java Use Provider will automatically handle the compilation of these classes. The classes' package names should correspond to the path of the backing resource, making sure to replace illegal Java characters with underscores - <code>_</code>.</p>
+<p><strong>Example:</strong> Assuming the following content structure:</p>
+<p>└── apps └── my-project └── components └── page ├── PageBean.java └── page.html</p>
+<p><code>page.html</code> could load <code>PageBean</code> either like:</p>
+<p>&lt;!DOCTYPE html&gt; &lt;html data-sly-use.page="apps.my_project.components.page.PageBean"&gt; ... </html></p>
+<p>or like:</p>
+<p>&lt;!DOCTYPE html&gt; &lt;html data-sly-use.page="PageBean"&gt; ... </html></p>
+<p>The advantage of loading a bean using just the simple class name (e.g. <code>data-sly-use.page=&quot;PageBean&quot;</code>) is that an inheriting component can overlay the <code>PageBean.java</code> file and provide a different logic. In this case the package name of the <code>PageBean</code> class will automatically be derived from the calling script's parent path (e.g. <code>apps.my_project.components.page</code>) - the bean doesn't even have to specify it. However, keep in mind that loading a bean this way is slower than providing the fully qualified class name, since the provider has to check if there is a backing resource. At the same time, loading an object using its fully qualified class name will not allow overriding it by inheriting components.</p>
+<h4>Passing parameters</h4>
+<p>Passed parameters will be made available to the Use object as request attributes and, if the object implements the <a href="https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/pojo/Use.java"><code>org.apache.sling.scripting.sightly.pojo.Use</code></a> interface, through the <code>javax.script.Bindings</code> passed to the <code>init</code> method. Assuming the following markup:</p>
+<p>&lt;div data-sly-use.useObject="${'org.example.use.MyUseObject' @ colour='red', year=2016}"&gt; ${useObject.shine} </div></p>
+<p>the object implementing <code>Use</code> would be able to retrieve the parameters using the following constructs:</p>
+<p>package org.example.use.MyUseObject;</p>
+<p>import javax.script.Bindings;</p>
+<p>import org.apache.sling.commons.osgi.PropertiesUtil; import org.apache.sling.scripting.sightly.pojo.Use;</p>
+<p>public class MyUseObject implements Use {</p>
+<p>private String colour; private Integer year;</p>
+<p>public void init(Bindings bindings) { colour = PropertiesUtil.toString(bindings.get("colour"), ""); year = PropertiesUtil.toInteger(bindings.get("year"), Calendar.getInstance().get(Calendar.YEAR)); } }</p>
+<p>or, if the object is adaptable from a <code>SlingHttpServletRequest</code>, through its <code>AdapterFactory</code>:</p>
+<p>package org.example.use;</p>
+<p>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;</p>
+<p>@Component @Service @Properties({ @Property( name = AdapterFactory.ADAPTABLE_CLASSES, value = { "org.apache.sling.api.SlingHttpServletRequest" } ), @Property( name = AdapterFactory.ADAPTER_CLASSES, value = { "org.example.use.MyUseObject" } ) }) public class RequestAdapterFactory implements AdapterFactory {</p>
+<p>@Override public <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type) { if (type == MyUseObject.class &amp;&amp; adaptable instanceof SlingHttpServletRequest) { SlingHttpServletRequest request = (SlingHttpServletRequest) adaptable; String colour = PropertiesUtil.toString(request.getAttribute("colour"), ""); Integer year = PropertiesUtil.toInteger(request.getAttribute("year"), Calendar.getInstance().get(Calendar.YEAR)); /* * for the sake of this example we assume that MyUseObject has this constructor */ return (AdapterType) new MyUseObject(colour, year); } return null; } }</p>
+<h3>JavaScript Use Provider</h3>
+<p>The JavaScript Use Provider allows loading objects created through the <code>use</code> function, by evaluating scripts passed to <code>data-sly-use</code>. The JavaScript files are evaluated server-side by the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino">Rhino</a> scripting engine, through the <code>org.apache.sling.scripting.javascript</code> implementation bundle. This allows you to mix JavaScript API with the Java API exported by the platform. For more details about how you can access Java APIs from within JavaScript please check the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino/Scripting_Java#Accessing_Java_Packages_and_Classes">Rhino Java Scripting guide</a>.</p>
+<p><strong>Example:</strong> Assuming the following content structure:</p>
+<p>└── apps └── my-project └── components └── page ├── page.html └── page.js</p>
+<p><code>page.html</code> could load <code>page.js</code> either like:</p>
+<p>&lt;!DOCTYPE html&gt; &lt;html data-sly-use.page="/apps/my-project/components/page/page.js"&gt; ... </html></p>
+<p>or like:</p>
+<p>&lt;!DOCTYPE html&gt; &lt;html data-sly-use.page="page.js"&gt; ... </html></p>
+<p>Similar to the Java Use Provider, loading the script using a relative path allows inheriting components to overlay just the Use script, without having to also overlay the calling HTL script.</p>
+<h4>Global Objects</h4>
+<p>Besides the global objects available to all Use Providers, the JavaScript Use Provider also provides the following global objects available in the context of the <code>use</code> function:</p>
+<p>console // basic wrapper on top of log, but without formatting / throwable support exports // basic Java implementation of CommonJS - http://requirejs.org/docs/commonjs.html module // basic Java implementation of CommonJS - http://requirejs.org/docs/commonjs.html setImmediate // Java implementation of the Node.js setImmediate function setTimeout // Java implementation of the Node.js setTimeout function sightly // the namespace object under which the asynchronous Resource-API implemented by // org.apache.sling.scripting.sightly.js.provider is made available to consumers use // the use function</p>
+<p>With the exception of the <code>console</code> and <code>use</code> objects, all the other global objects implemented by the JavaScript Use Provider are present in order to support the asynchronous Resource-API implemented by <code>org.apache.sling.scripting.sightly.js.provider</code>. However, this was deprecated starting with version 1.0.8 - see <a href="https://issues.apache.org/jira/browse/SLING-4964">SLING-4964</a>.</p>
+<h4>Passing parameters</h4>
+<p>Passed parameters will be made available to the Use object as properties of <code>this</code>. Assuming the following markup:</p>
+<p>&lt;div data-sly-use.logic="${'logic.js' @ colour='red', year=2017}"&gt; My colour is ${logic.colour ? logic.colour : 'not important'} and I'm from ${logic.year} </div></p>
+<p>the object would be able to access the parameters like:</p>
+<p>use(function() { 'use strict';</p>
+<p>var colour = this.colour || ''; var year = this.year || new Date().getFullYear();</p>
+<p>return { colour: colour, year: year } });</p>
+<h4>Caveats</h4>
+<p>Since these scripts are evaluated server-side, by compiling JavaScript to Java, you need to pay attention when comparing primitive objects using the strict equal operator (<code>===</code>) since comparisons between JavaScript and Java objects with the same apparent value will return <code>false</code> (this also applies to the strict not-equal operator - <code>!==</code>).</p>
+<p>Assuming the following HTL script:</p>
+<p>&lt;ol data-sly-use.obj="logic.js" data-sly-list="${obj}"&gt; <li> Code <code>${item.code}</code> evaluates to <code>${item.result}</code> </li> </ol></p>
+<p>and the following JavaScript file:</p>
+<p>use(function() {</p>
+<p>return [ { code: 'new java.lang.String("apples") === "apples"', result: new java.lang.String("apples") === "apples" }, { code: 'new java.lang.String("apples") == "apples"', result: new java.lang.String("apples") == "apples" }, { code: 'new java.lang.String("apples") !== "apples"', result: new java.lang.String("apples") !== "apples" }, { code: 'new java.lang.String("apples") != "apples"', result: new java.lang.String("apples") != "apples" }, { code: 'new java.lang.Integer(1) === 1', result: new java.lang.Integer(1) === 1 }, { code: 'new java.lang.Integer(1) == 1', result: new java.lang.Integer(1) == 1 }, { code: 'new java.lang.Integer(1) !== 1', result: new java.lang.Integer(1) !== 1 }, { code: 'new java.lang.Integer(1) != 1', result: new java.lang.Integer(1) != 1 }, { code: 'java.lang.Boolean.TRUE === true', result: java.lang.Boolean.TRUE === true }, { code: 'java.lang.Boolean.TRUE == true', result: java.lang.Boolean.TRUE == true }, { code: 'java.lang.Boolean.TRUE !== true', resu
 lt: java.lang.Boolean.TRUE !== true }, { code: 'java.lang.Boolean.TRUE != true', result: java.lang.Boolean.TRUE != true } ]; });</p>
+<p>the output would be:</p>
+<ol>
+  <li>Code new java.lang.String("apples") === "apples" evaluates to false</li>
+  <li>Code new java.lang.String("apples") == "apples" evaluates to true</li>
+  <li>Code new java.lang.String("apples") !== "apples" evaluates to true</li>
+  <li>Code new java.lang.String("apples") != "apples" evaluates to false</li>
+  <li>Code new java.lang.Integer(1) === 1 evaluates to false</li>
+  <li>Code new java.lang.Integer(1) == 1 evaluates to true</li>
+  <li>Code new java.lang.Integer(1) !== 1 evaluates to true</li>
+  <li>Code new java.lang.Integer(1) != 1 evaluates to false</li>
+  <li>Code java.lang.Boolean.TRUE === true evaluates to false</li>
+  <li>Code java.lang.Boolean.TRUE == true evaluates to true</li>
+  <li>Code java.lang.Boolean.TRUE !== true evaluates to true</li>
+  <li>Code java.lang.Boolean.TRUE != true evaluates to false</li>
+</ol>
+<p>Evaluations of Java objects in JavaScript constructs where the operand is automatically type coerced will work, but Rhino might complain about the Java objects not correctly calling the Rhino helper function <code>Context.javaToJS()</code>. In order to avoid these warnings it's better to explicitly perform your comparisons like in the following example:</p>
+<p>if (myObject) { ... } // should be replaced by if (myObject != null) { ... }</p>
+<p>myObject ? 'this' : 'that' //should be replaced by myObject != null ? 'this' : 'that'</p>
+<h3>Script Use Provider</h3>
+<p>The Script Use Provider allows loading objects evaluated by other script engines available on the platform. The same loading considerations as for the Java and JavaScript Use Providers apply.</p>
+<h3>Picking the best Use Provider for a project</h3>
+<p>The following table summarises the pros and cons for each Use Provider, with the obvious exception of the Render Unit Use Provider.</p>
+<table>
+<tr>
+<th>Use Provider</th>
+<th>Advantages</th>
+<th>Disadvantages</th>
+</tr>
+<tr>
+<td>Sling Models Use Provider</td>
+<td><ul><li>convenient injection annotations for data retrieval</li><li>easy to extend from other Sling Models</li><li>simple setup for unit testing</li></ul></td>
+<td><ul><li>lacks flexibility in terms of component overlaying, relying on <code>service.ranking</code> configurations; this was solved for Sling Models 1.3.0 by <a href="https://issues.apache.org/jira/browse/SLING-5992">SLING-5992</a></li></ul></td>
+</tr>
+<tr>
+<td>Java Use Provider</td>
+<td>
+<p>Use-objects provided through bundles:</p>
+<ul>
+<li>faster to initialise and execute than Sling Models for similar code</li>
+<li>easy to extend from other similar Use-objects</li>
+<li>simple setup for unit testing</li>
+</ul>
+<p>Use-objects backed by <code>Resources</code>:</p>
+<ul>
+<li>faster to initialise and execute than Sling Models for similar code</li>
+<li>easy to override from inheriting components through search path overlay or by using the <code>sling:resourceSuperType</code> property, allowing for greater flexibility</li>
+<li>business logic for components sits next to the HTL scripts where the objects are used</li>
+</ul>
+</td>
+<td>
+<p>Use-objects provided through bundles:</p>
+<ul>
+<li>lacks flexibility in terms of component overlaying</li>
+</ul>
+
+<p>Use-objects backed by <code>Resources</code>:</p>
+<ul>
+<li>cannot extend other Java objects</li>
+<li>the Java project might need a different setup to allow running unit tests, since the objects will be deployed like content</li>
+</ul>
+</td>
+</tr>
+<tr>
+<td>JavaScript Use Provider</td>
+<td>
+<ul>
+<li>allows JavaScript developers to develop component logic</li>
+<li>can be reused through the dependency mechanism provided by the <code>use</code> function</li>
+</ul>
+</td>
+<td>
+<ul>
+<li>harder to test and debug, relying mostly on end-to-end testing and console logging</li>
+<li>slower to execute than both Sling Models and Java Use-API objects</li>
+</ul>
+</td>
+</tr>
+<tr>
+<td>Script Use Provider</td>
+<td>
+<ul>
+<li>allows the usage of Use objects evaluated by other Script Engines available in the platform</li>
+</ul>
+</td>
+<td>
+<ul>
+<li>like in the case of the JavaScript Use Provider, the performance is influenced by the Script Engine's implementation</li>
+</ul>
+</td>
+</tr>
+</table></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/scripting/scripting-jsp.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/scripting/scripting-jsp.html b/documentation/bundles/scripting/scripting-jsp.html
new file mode 100644
index 0000000..b9f6c73
--- /dev/null
+++ b/documentation/bundles/scripting/scripting-jsp.html
@@ -0,0 +1,307 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>JSP Scripting Engine</h1></header><p>The Apache Sling JSP Scripting Engine is implemented by the <a href="https://github.com/apache/sling/tree/trunk/bundles/scripting/jsp"><code>org.apache.sling.scripting.jsp</code></a> bundle, based on the Jasper 2 JSP engine.</p>
+<p>On top of that Apache Sling also provides its own JSP Taglib, implemented by the <a href="https://github.com/apache/sling/tree/trunk/bundles/scripting/jsp-taglib"><code>org.apache.sling.scripting.jsp.taglib</code></a> bundle.</p>
+<p>The Sling Scripting JSP Taglib supports the use of Sling as an application in JSP pages. The Sling Taglib provides the ability to invoke JSP scripts, include Resources and interact with the Sling Repository, all with JSP tags and <a href="http://docs.oracle.com/javaee/6/tutorial/doc/gjddd.html">Expression Language (EL)</a> functions.</p>
+<h2>Use</h2>
+<p>Using the Sling Taglib in a JSP page is as simple as including the Taglib include in your JSP, with the correct URI for the version of the Sling Taglib installed.</p>
+<p>&lt;%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling" %&gt;</p>
+<p>Generally, the prefix to use is <code>sling</code>. Often applications include a global JSP file which includes the Sling Taglib and sets up all of the application variables and methods.</p>
+<p>The Sling Taglib does not attempt to reproduce the functionality of other Tag Libraries, such as <a href="http://www.oracle.com/technetwork/java/index-jsp-135995.html">JSTL</a>; additional Tag Libraries may be required to fully leverage the Sling Taglib.</p>
+<h2>Taglib Versions</h2>
+<p>There have been a number of releases of the Sling Taglibs, including versions with different URIs.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Taglib Version </th>
+      <th>Bundle Version </th>
+      <th>URI </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>1.0 </td>
+      <td>2.0.6 </td>
+      <td>http://sling.apache.org/taglibs/sling/1.0 </td>
+    </tr>
+    <tr>
+      <td>1.1 </td>
+      <td>2.1.0 </td>
+      <td>http://sling.apache.org/taglibs/sling/1.1 </td>
+    </tr>
+    <tr>
+      <td>1.2 </td>
+      <td>2.1.8 </td>
+      <td>http://sling.apache.org/taglibs/sling/1.2 </td>
+    </tr>
+    <tr>
+      <td>1.3 </td>
+      <td>2.2.0 </td>
+      <td>http://sling.apache.org/taglibs/sling </td>
+    </tr>
+  </tbody>
+</table>
+<p>All releases from 1.3 onward are expected to use the URI <code>http://sling.apache.org/taglibs/sling</code> to ensure ease of upgrading to newer versions of the Taglib.</p>
+<h2>Expression Language Functions</h2>
+<p>The Sling Taglib includes a number of Expression Language Functions which can be used to access the repository.</p>
+<h3>adaptTo</h3>
+<p>Adapts an Adaptable to another class.</p>
+<ul>
+  <li>Returns: <code>java.lang.Object</code></li>
+  <li>Accepts:</li>
+  <li><code>org.apache.sling.api.adapter.Adaptable</code> - The object to adapt</li>
+  <li><code>java.lang.String</code> - The name of the class to which to adapt the adaptable</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;c:set var="myProperties" value="${sling:adaptTo(resource,'org.apache.sling.api.resource.ValueMap')}" /&gt;</p>
+<h3>encode</h3>
+<p>Writes properly Cross Site Scripting (XSS) encoded text to the response using the OWASP ESAPI. Supports a number of encoding modes.</p>
+<ul>
+  <li>Returns: <code>java.util.String</code> - An encoded text</li>
+  <li>Accepts:</li>
+  <li><code>java.lang.String</code> - The text to encode</li>
+  <li><code>java.lang.String</code> - The encoding mode, one of HTML, HTML_ATTR, XML, XML_ATTR, JS</li>
+  <li>Since: 1.4</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>${sling:encode('<script>alert("Bad Stuff!");</script>','HTML')}</p>
+<h3>findResources</h3>
+<p>Searches for resources using the given query formulated in the given language.</p>
+<ul>
+  <li>Returns: <code>java.util.Iterator</code> - An Iterator of Resource objects matching the query.</li>
+  <li>Accepts:</li>
+  <li><code>org.apache.sling.api.resource.ResourceResolver</code> - The Resource Resolver to use for the query.</li>
+  <li><code>java.lang.String</code> - The query string to use to find the resources.</li>
+  <li><code>java.lang.String</code> - The language in which the query is formulated.</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;c:forEach var="found" items="${sling:findResources(resourceResolver,'/jcr:root//*[jcr:contains(., 'Sling')] order by @jcr:score','xpath')"&gt; <li>${found.path}</li> &lt;/c:forEach&gt;</p>
+<h3>getRelativeResource</h3>
+<p>Gets the resource at the relative path to the provided resource.</p>
+<ul>
+  <li>Returns: <code>org.apache.sling.api.resource.Resource</code> - The resource at the relative path.</li>
+  <li>Accepts:</li>
+  <li><code>org.apache.sling.api.resource.Resource</code> - The resource relative to which to find the path.</li>
+  <li><code>java.lang.String</code> - The relative path at which to find the resource.</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;c:set var="content" value="${sling:getRelativeResource(resource,'jcr:content')}" /&gt;</p>
+<h3>getResource</h3>
+<p>Method allow for the retrieval of resources.</p>
+<ul>
+  <li>Returns: <code>org.apache.sling.api.resource.Resource</code> - The resource at the path.</li>
+  <li>Accepts:</li>
+  <li><code>org.apache.sling.api.resource.ResourceResolver</code> - The current resource resolver.</li>
+  <li><code>java.lang.String</code> - The path at which to find the resource.</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;c:set var="content" value="${sling:getResource(resourceResolver,'/content')}" /&gt;</p>
+<h3>getValue</h3>
+<p>Gets the value of the specified key from the ValueMap and either coerses the value into the specified type or uses the specified type as a default depending on the parameter passed in.</p>
+<p>If the third parameter is a class, the resulting value will be coersed into the class, otherwise, the third parameter is used as the default when retrieving the value from the <code>ValueMap</code>.</p>
+<ul>
+  <li>Returns: <code>java.lang.Object</code> - The value.</li>
+  <li>Accepts:</li>
+  <li><code>org.apache.sling.api.resource.ValueMap</code> - The ValueMap from which to retrieve the value.</li>
+  <li><code>java.lang.String</code> - The key for the value to retrieve</li>
+  <li><code>java.lang.Object</code> - Either the default value or the class to which to coerce the value.</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;c:set var="content" value="${sling:getValue(properties,'jcr:title',resource.name)}" /&gt;</p>
+<h3>listChildren</h3>
+<p>Method for allowing the invocation of the Sling Resource listChildren method.</p>
+<ul>
+  <li>Returns: <code>java.util.Iterator</code> - The children of the resource.</li>
+  <li>Accepts:</li>
+  <li><code>org.apache.sling.api.resource.Resource</code> - The resource of which to list the children.</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;c:forEach var="child" items="${sling:listChildren(resource)"&gt; <li>${child.path}</li> &lt;/c:forEach&gt;</p>
+<h2>Tags</h2>
+<p>The Sling Taglib includes a number of Tags which can be used to access the repository, handle the inclusion of scripts and manage requests.</p>
+<h3>adaptTo</h3>
+<p>Adapts adaptables to objects of other types.</p>
+<ul>
+  <li>Attributes</li>
+  <li>adaptable - The adaptable object to adapt.</li>
+  <li>adaptTo - The class name to which to adapt the adaptable.</li>
+  <li>var - The name of the variable to which to save the adapted object.</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:adaptTo adaptable="${resource}" adaptTo="org.apache.sling.api.resource.ValueMap" var="myProps" /&gt;</p>
+<h3>call</h3>
+<p>Execute a script.</p>
+<ul>
+  <li>Attributes</li>
+  <li>flush - Whether to flush the output before including the target.</li>
+  <li>script - The script to include.</li>
+  <li>ignoreComponentHierarchy - Controls if the component hierarchy should be ignored for script resolution. If true, only the search paths are respected.</li>
+  <li>Since: 1.2</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:call script="myscript.jsp" /&gt;</p>
+<h3>defineObjects</h3>
+<p>Defines regularly used scripting variables. By default the following scripting variables are defined through this tag:</p>
+<ul>
+  <li><strong>slingRequest</strong>, SlingHttpServletRequest object, providing access to the HTTP request header information - extends the standard HttpServletRequest - and provides access to Sling-specific things like resource, path info, selector, etc.</li>
+  <li><strong>slingResponse</strong>, SlingHttpServletResponse object, providing access for the HTTP response that is created by the server. This is currently the same as the HttpServletResponse from which it extends.</li>
+  <li><strong>resourceResolver</strong>, Current ResourceResolver. Same as slingRequest.getResourceResolver().</li>
+  <li><strong>sling</strong>, SlingScriptHelper, containing convenience methods for scripts, mainly sling.include('/some/other/resource') for including the responses of other resources inside this response (eg. embedding header html snippets) and sling.getService(foo.bar.Service.class) to retrieve OSGi services available in Sling (Class notation depending on scripting language).</li>
+  <li><strong>resource</strong>, current Resource to handle, depending on the URL of the request. Same as slingRequest.getResource().</li>
+  <li><strong>log</strong>, provides an SLF4J Logger for logging to the Sling log system from within scripts, eg. log.info("Executing my script").</li>
+  <li><strong>currentNode</strong>, the underlying JCR node (if there is one) of the current resource.</li>
+  <li><strong>bindings</strong>, provides access to the SlingBindings object for access to non-standard scripting variables.</li>
+</ul>
+<p>See also <a href="https://cwiki.apache.org/confluence/display/SLING/Scripting+variables#Scriptingvariables-JSP">Scripting variables in CMS</a></p>
+<ul>
+  <li>Attributes which allow to bind the according variables to other names than the default ones listed above.</li>
+  <li>requestName</li>
+  <li>responseName</li>
+  <li>resourceName</li>
+  <li>nodeName</li>
+  <li>logName</li>
+  <li>resourceResolverName</li>
+  <li>slingName</li>
+  <li>Since: 1.0</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:defineObjects /&gt;</p>
+<h3>encode</h3>
+<p>Writes properly Cross Site Scripting (XSS) encoded text to the response using the OWASP ESAPI. Supports a number of encoding modes.</p>
+<ul>
+  <li>Attributes:</li>
+  <li>value - The text to encode</li>
+  <li>default - a default text to use if the value is null or empty</li>
+  <li>mode - The encoding mode, one of HTML, HTML_ATTR, XML, XML_ATTR, JS</li>
+  <li>Since: 1.4</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:encode value="<script>alert('Bad Stuff!');</script>" mode="HTML" /&gt;</p>
+<h3>eval</h3>
+<p>Evaluates a script invocation and includes the result in the current page.</p>
+<ul>
+  <li>Attributes</li>
+  <li>flush - Whether to flush the output before including the target.</li>
+  <li>script - The path to the script object to include in the current request processing. By default, the current resource is used for script resolving. This behaviour can be changed by specifying either resource, resourceType or ignoreResourceTypeHierarchy.</li>
+  <li>resource - The resource object to include in the current request processing. This attribute is optional. If it is specified, resourceType should not be used. If both are used, resource takes precedence.</li>
+  <li>resourceType - The resource type of a resource to include. This attribute is optional. If it is specified, resource should not be used. If both are used, resource takes precedence.</li>
+  <li>ignoreResourceTypeHierarchy - Prevents using the resource type hierarchy for searching a script.</li>
+  <li>Since: 1.1</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:eval script="myscript.jsp" /&gt;</p>
+<h3>findResources</h3>
+<p>Tag for searching for resources using the given query formulated in the given language.</p>
+<ul>
+  <li>Attributes</li>
+  <li>query - The query string to find the resources.</li>
+  <li>language - The query language to use.</li>
+  <li>var - The name of the variable to which to save the resources.</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:findResources query="/jcr:root//*[jcr:contains(., 'Sling')] order by @jcr:score" language="xpath" var="resources" /&gt;</p>
+<h3>forward</h3>
+<p>Forwards a request to a resource rendering the current page</p>
+<ul>
+  <li>Attributes</li>
+  <li>resource - The resource object to forward the request to. Either resource or path must be specified. If both are specified, the resource takes precedences.</li>
+  <li>path - The path to the resource object to forward the request to. If this path is relative it is appended to the path of the current resource whose script is forwarding the given resource. Either resource or path must be specified. If both are specified, the resource takes precedences.</li>
+  <li>resourceType - The resource type of a resource to forward. If the resource to be forwarded is specified with the path attribute, which cannot be resolved to a resource, the tag may create a synthetic resource object out of the path and this resource type. If the resource type is set the path must be the exact path to a resource object. That is, adding parameters, selectors and extensions to the path is not supported if the resource type is set.</li>
+  <li>replaceSelectors - When dispatching, replace selectors by the value provided by this option.</li>
+  <li>addSelectors - When dispatching, add the value provided by this option to the selectors.</li>
+  <li>replaceSuffix - When dispatching, replace the suffix by the value provided by this option.</li>
+  <li>Since: 1.0</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:forward path="/content/aresource" resourceType="myapp/components/display" /&gt;</p>
+<h3>getProperty</h3>
+<p>Retrieves the value from the ValueMap, allowing for a default value or coercing the return value.</p>
+<ul>
+  <li>Attributes</li>
+  <li>properties - The ValueMap from which to retrieve the value.</li>
+  <li>key - The key to retrieve the value from from the ValueMap.</li>
+  <li>defaultValue - The default value to return if no value exists for the key. If specified, this takes precedence over returnClass.</li>
+  <li>returnClass - The class into which to coerce the returned value.</li>
+  <li>var - The name of the variable to which to save the value.</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:getProperties properties="${properties}" key="jcr:title" defaultValue="${resource.name}" var="title" /&gt;</p>
+<h3>getResource</h3>
+<p>Retrieves resources based on either an absolute path or a relative path and a base resource.</p>
+<ul>
+  <li>Attributes</li>
+  <li>base - The base resource under which to retrieve the child resource, will only be considered if a relative path is specified.</li>
+  <li>path - The path of the resource to retrieve, if relative, the base resource must be specified.</li>
+  <li>defaultValue - The default value to return if no value exists for the key. If specified, this takes precedence over returnClass.</li>
+  <li>returnClass - The class into which to coerce the returned value.</li>
+  <li>var - The name of the variable to which to save the resource.</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:getResource base="${resource}" path="jcr:content" var="content" /&gt;</p>
+<h3>include</h3>
+<p>Includes a resource rendering into the current page.</p>
+<ul>
+  <li>Attributes</li>
+  <li>flush - Whether to flush the output before including the target.</li>
+  <li>resource - The resource object to include in the current request processing. Either resource or path must be specified. If both are specified, the resource takes precedences.</li>
+  <li>path - The path to the resource object to include in the current request processing. If this path is relative it is appended to the path of the current resource whose script is including the given resource. Either resource or path must be specified. If both are specified, the resource takes precedences.</li>
+  <li>resourceType - The resource type of a resource to include. If the resource to be included is specified with the path attribute, which cannot be resolved to a resource, the tag may create a synthetic resource object out of the path and this resource type. If the resource type is set the path must be the exact path to a resource object. That is, adding parameters, selectors and extensions to the path is not supported if the resource type is set.</li>
+  <li>replaceSelectors - When dispatching, replace selectors by the value provided by this option.</li>
+  <li>addSelectors - When dispatching, add the value provided by this option to the selectors.</li>
+  <li>replaceSuffix - When dispatching, replace the suffix by the value provided by this option.</li>
+  <li>scope - If var is specified, what scope to store the variable in. (Since 1.3)</li>
+  <li>var - variable name to store the resulting markup into (Since 1.3)</li>
+  <li>Since: 1.0</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:include path="/content/aresource" resourceType="myapp/components/display" /&gt;</p>
+<h3>listChildren</h3>
+<p>Lists the children of a Sling Resource.</p>
+<ul>
+  <li>Attributes</li>
+  <li>resource - The resource for which to retrieve the children.</li>
+  <li>var - The name of the variable to which to save the child resources.</li>
+  <li>Since: 1.3</li>
+</ul>
+<p><em>Example Usage</em></p>
+<p>&lt;sling:listChildren resource="${resource}" var="children" /&gt;</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/scripting/scripting-thymeleaf.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/scripting/scripting-thymeleaf.html b/documentation/bundles/scripting/scripting-thymeleaf.html
new file mode 100644
index 0000000..1061407
--- /dev/null
+++ b/documentation/bundles/scripting/scripting-thymeleaf.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Scripting Thymeleaf</h1></header><p>Sling Scripting Thymeleaf is the scripting engine for <a href="http://www.thymeleaf.org"><em>Thymeleaf</em></a> (3.0) templates.</p>
+<p>[TOC]</p>
+<h1>Features</h1>
+<ul>
+  <li>Supporting all of Thymeleaf's extension points: <a href="http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/templateresolver/ITemplateResolver.html"><em>TemplateResolver</em></a>s, <a href="http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/messageresolver/IMessageResolver.html"><em>MessageResolver</em></a>s, <a href="http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/dialect/IDialect.html"><em>Dialect</em></a>s, <a href="http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/linkbuilder/ILinkBuilder.html"><em>LinkBuilder</em></a>s, <a href="http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/templateparser/markup/decoupled/IDecoupledTemplateLogicResolver.html"><em>DecoupledTemplateLogicResolver</em></a>, <a href="http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/cache/ICacheManager.html"><em>CacheManager</em></a> and <a href="http://www.thymeleaf.org
 /apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/context/IEngineContext.html"><em>EngineContextFactory</em></a></li>
+  <li><code>SlingResourceTemplateResolver</code> customizable through <code>TemplateModeProvider</code></li>
+  <li><code>ResourceBundleMessageResolver</code> backed by <code>ResourceBundleProvider</code> from <a href="https://sling.apache.org/documentation/bundles/internationalization-support-i18n.html">Sling i18n</a> customizable through optional <code>AbsentMessageRepresentationProvider</code></li>
+  <li><code>PatternTemplateModeProvider</code> supporting <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html"><code>Pattern</code></a> configurations for all <a href="http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/templatemode/TemplateMode.html">template modes</a> (<code>HTML</code>, <code>XML</code>, <code>TEXT</code>, <code>JAVASCRIPT</code>, <code>CSS</code> and <code>RAW</code>)</li>
+  <li><code>SlingDialect</code></li>
+  <li>Thymeleaf's <a href="http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/ITemplateEngine.html"><code>TemplateEngine</code></a> registered as OSGi Service (<a href="http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/ITemplateEngine.html"><code>ITemplateEngine</code></a>) for direct use</li>
+</ul>
+<h1>Installation</h1>
+<p>For running Sling Scripting Thymeleaf with Sling's Launchpad some dependencies need to be resolved. This can be achieved by installing the following bundles:</p>
+<p>mvn:org.attoparser/attoparser/2.0.2.RELEASE mvn:org.unbescape/unbescape/1.1.4.RELEASE mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ognl/3.2_1 mvn:org.javassist/javassist/3.20.0-GA</p>
+<p>There is a feature for Karaf:</p>
+<p>karaf@root()&gt; feature:install sling-scripting-thymeleaf</p>
+<p><strong>Note:</strong> Sling Scripting Thymeleaf requires an implementation of OSGi Declarative Services 1.3 (e.g. <a href="http://felix.apache.org/documentation/subprojects/apache-felix-service-component-runtime.html">Apache Felix Service Component Runtime</a> 2.0.0 or greater)</p>
+<h1>Configuration</h1>
+<h2>Apache Sling Scripting Thymeleaf “ScriptEngineFactory”</h2>
+<p>By default Sling Scripting Thymeleaf's <em>ScriptEngineFactory</em> is configured for templates with extension <code>html</code> and mime type <code>text/html</code> and uses all of Thymeleaf's standard extensions either <em>also</em> or <em>exclusively</em>.</p>
+<p><img src="Scripting-Thymeleaf-ScriptEngineFactory.png" alt="Apache Sling Scripting Thymeleaf “ScriptEngineFactory”" /></p>
+<h2>Apache Sling Scripting Thymeleaf “Sling Resource TemplateResolver”</h2>
+<p>The <em>Sling Resource TemplateResolver</em> is configured to resolve templates with <em>use decoupled logic</em> enabled.</p>
+<p><img src="Scripting-Thymeleaf-Sling-Resource-TemplateResolver.png" alt="Apache Sling Scripting Thymeleaf “Sling Resource TemplateResolver”" /></p>
+<h2>Apache Sling Scripting Thymeleaf “Pattern TemplateModeProvider”</h2>
+<p>The <em>Pattern TemplateModeProvider</em> is configured to match template paths against default extensions for providing template modes (of course except no-op mode <code>RAW</code>).</p>
+<p><img src="Scripting-Thymeleaf-Pattern-TemplateModeProvider.png" alt="Apache Sling Scripting Thymeleaf “Pattern TemplateModeProvider" /></p>
+<h2>Apache Sling Scripting Thymeleaf “ResourceBundle MessageResolver”</h2>
+<p>The <em>ResourceBundle MessageResolver</em> is configured to use the message's key as absent message representation.</p>
+<p><img src="Scripting-Thymeleaf-ResourceBundle-MessageResolver.png" alt="Apache Sling Scripting Thymeleaf “ResourceBundle MessageResolver”" /></p>
+<h1>Sling Dialect</h1>
+<p>Sling Scripting Thymeleaf comes with its own dialect using the <code>sling</code> prefix/namespace currently supporting the <em>include</em> feature known from <a href="/documentation/bundles/scripting/scripting-jsp.html">Sling Scripting JSP Taglib</a>.</p>
+<h2>include</h2>
+<p><code>&lt;header data-sling-include=&quot;${resource}&quot; data-sling-resourceType=&quot;&#39;example/page/header&#39;&quot; data-sling-unwrap=&quot;true&quot;/&gt;</code></p>
+<p><code>include</code> - The resource object (<a href="http://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/Resource.html"><code>Resource</code></a>) or the path (<code>String</code>) of the resource object to include in the current request processing. If this path is relative it is appended to the path of the current resource whose script is including the given resource.</p>
+<h3>supported options (* = <a href="http://sling.apache.org/apidocs/sling7/org/apache/sling/api/request/RequestDispatcherOptions.html">RequestDispatcher option</a>)</h3>
+<ul>
+  <li><code>addSelectors</code> (<code>String</code>) *: When dispatching, add the value provided by this option to the selectors.
+</li>
+  <li><code>replaceSelectors</code> (<code>String</code>) *: When dispatching, replace selectors by the value provided by this option.
+</li>
+  <li><code>replaceSuffix</code> (<code>String</code>) *: When dispatching, replace the suffix by the value provided by this option.
+</li>
+  <li><code>resourceType</code> (<code>String</code>) *: The resource type of a resource to include. If the resource to be included is specified with the path attribute, which cannot be resolved to a resource, the tag may create a synthetic resource object out of the path and this resource type. If the resource type is set the path must be the exact path to a resource object. That is, adding parameters, selectors and extensions to the path is not supported if the resource type is set.
+</li>
+  <li><code>unwrap</code> (<code>Boolean</code>): removes the host element</li>
+</ul>
+<h1>Class Diagram</h1>
+<p><a href="Scripting-Thymeleaf-Class-Diagram.png"><img src="Scripting-Thymeleaf-Class-Diagram.png" alt="Class Diagram" /></a></p>
+<h1>Sample</h1>
+<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/samples/fling/">Sling Fling Sample</a> is a sample using Sling Scripting Thymeleaf with <a href="/documentation/bundles/models.html">Sling Models</a> and <a href="/documentation/bundles/sling-query.html">Sling Query</a>.</p>
+<p><img src="sling-fling-sample.png" alt="Sling Fling Sample" /></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/servlet-helpers.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/servlet-helpers.html b/documentation/bundles/servlet-helpers.html
new file mode 100644
index 0000000..1afcb14
--- /dev/null
+++ b/documentation/bundles/servlet-helpers.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Servlet Helpers</h1></header><p>The Sling Servlet Helpers bundle provides mock implementations of the <code>SlingHttpServletRequest</code>, <code>SlingHttpServletResponse</code> and related classes.</p>
+<p>Those mock implementations are meant to be used in tests and also with services like the <code>SlingRequestProcessor</code> when making requests to that service outside of an HTTP request processing context.</p>
+<p>See the <a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/servlet-helpers">automated tests</a> of the <code>servlet-helpers</code> module for more info.</p>
+<h2>Usage</h2>
+<h3>SlingHttpServletRequest</h3>
+<p>Example for preparing a sling request with custom request data:</p>
+<h1>!java</h1>
+<p>// prepare sling request MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(resourceResolver);</p>
+<p>// simulate query string request.setQueryString("param1=aaa&amp;param2=bbb");</p>
+<p>// alternative - set query parameters as map request.setParameterMap(ImmutableMap.&lt;String,Object&gt;builder() .put("param1", "aaa") .put("param2", "bbb") .build());</p>
+<p>// set current resource request.setResource(resourceResolver.getResource("/content/sample"));</p>
+<p>// set sling request path info properties MockRequestPathInfo requestPathInfo = (MockRequestPathInfo)request.getRequestPathInfo(); requestPathInfo.setSelectorString("selector1.selector2"); requestPathInfo.setExtension("html");</p>
+<p>// set method request.setMethod(HttpConstants.METHOD_POST);</p>
+<p>// set attributes request.setAttribute("attr1", "value1");</p>
+<p>// set headers request.addHeader("header1", "value1");</p>
+<p>// set cookies request.addCookie(new Cookie("cookie1", "value1"));</p>
+<h3>SlingHttpServletResponse</h3>
+<p>Example for preparing a sling response which can collect the data that was written to it:</p>
+<h1>!java</h1>
+<p>// prepare sling response MockSlingHttpServletResponse response = new MockSlingHttpServletResponse();</p>
+<p>// execute the code that writes to the response...</p>
+<p>// validate status code assertEquals(HttpServletResponse.SC_OK, response.getStatus());</p>
+<p>// validate content type and content length assertEquals("text/plain;charset=UTF-8", response.getContentType()); assertEquals(CharEncoding.UTF_8, response.getCharacterEncoding()); assertEquals(55, response.getContentLength());</p>
+<p>// validate headers assertTrue(response.containsHeader("header1")); assertEquals("5", response.getHeader("header2"));</p>
+<p>// validate response body as string assertEquals(TEST_CONTENT, response.getOutputAsString());</p>
+<p>// validate response body as binary data assertArrayEquals(TEST_DATA, response.getOutput());</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[17/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/repository-based-development.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/repository-based-development.md b/content/documentation/development/repository-based-development.md
deleted file mode 100644
index ddc7418..0000000
--- a/content/documentation/development/repository-based-development.md
+++ /dev/null
@@ -1,81 +0,0 @@
-title=Repository Based Development		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-# WebDAV Support
-
-WebDAV support in Sling is based on the [Simple WebDAV](http://jackrabbit.apache.org/jcr/components/jackrabbit-jcr-server.html#Simple_Webdav_Server) implementation of Apache Jackrabbit which is integrated in the `jcr/webdav` project. This bundle provides WebDAV access to Sling's repository in two flavours:
-
-1. Access to all workspaces of the repository on a separate URI space -- by default rooted at `/dav` in the Sling context -- and
-2. access to the workspace used by Sling itself at the root of the Sling context.
-
-
-## Example
-
-Consider Sling be installed on a Servlet container in the `/sling` context on `some.host.net:8080`. Here you would access the Sling workspace by directing your WebDAV client to the URL `http://some.host.net:8080/sling`. To access the `sample` workspace, which is not used by Sling itself, you would direct your WebDAV client to the URL `http://some.host.net:8080/sling/dav/sample`.
-
-Please note that accessing the repository in the separate URI space is actually faster, since requests do not pass the Sling resource and script resolution framework but instead hit the Jackrabbit Simple WebDAV Servlet directly.
-
-
-## Separate URI Space WebDAV
-
-When accessing the repository through WebDAV in its separate URI Space, the URLs have the following generic structure:
-
-<slingroot>/<prefix>/<workspace>/<item>
-
-
-* `slingroot` is the URL of the Sling web application context. In the above example, this would `http://some.host.net:8080/sling`.
-* `prefix` is the URL prefix to address the WebDAV servlet. By default this is set to `/dav` but may be configured to any valid path.
-* `workspace` is the name of the workspace to be accessed through WebDAV.
-* `item` is the path to the JCR Item to access.
-
-If you access the WebDAV server at the prefix path -- e.g. `http://localhost:8080/dav` -- you will be redirected to the default workspace with a temporary redirect status 302. Some clients, such as the Linux *davfs*, do not like this redirection and must be configured to explicitly address the default workspace.
-
-
-## Configuration
-
-The Jackrabbit Simple WebDAV support in Sling has the following configuration options:
-
-Property | Default | Description
----- | ---- | ----
-Root Path | `/dav` | The root path at which the Simple WebDAV Servlet is accessible. Access to the repository is provided in two ways. You may connect your WebDAV client directly to the root of the Sling web application to access the workspace of Sling directly. The other way is required if you want to connect your WebDAV client to any other workspace besides the Sling workspace. In this case you connect your WebDAV client to another a path comprised of this root path plus the name of the workspace. For example to connect to the `some*other` workspace, you might connect to `http://slinghost/dav/some*other`.
-Authentication Realm | `Sling WebDAV` | The name of the HTTP Basic Authentication Realm presented to the client to ask for authentication credentials to access the repository.
-Non Collection Node Types | `nt:file`, `nt:resource` | The JCR Node Types considered being non-collection resources by WebDAV. Any node replying `true` to `Node.isNodeType()` for one of the listed types is considered a non-collection resource. Otherwise the respective node is considered a collection resource.
-Filter Prefixes | `jcr`, `rep` | A list of namespace prefixes indicating JCR items filtered from being reported as collection members or properties. The default list includes jcr and rep (Jackrabbit internal namespace prefix) items. Do not modify this setting unless you know exactly what you are doing.
-Filter Node Types | -- | Nodetype names to be used to filter child nodes. A child node can be filtered if the declaring nodetype of its definition is one of the nodetype names specified in the nodetypes Element. E.g. defining rep:root as filtered nodetype would result in `jcr:system` being hidden but no other child node of the root node, since those are defined by the nodetype nt:unstructered. The default is empty. Do not modify this setting unless you know exactly what you are doing.
-Filter URIs | -- | A list of namespace URIs indicating JCR items filtered from being reported as collection members or properties. The default list is empty. Do not modify this setting unless you know exactly what you are doing.
-Collection Primary Type | `sling:Folder` | The JCR Primary Node Type to assign to nodes created to reflect WebDAV collections. You may name any primary node type here, provided it allows the creation of nodex of this type and the defined Non-Collection Primary Type below it.
-Non-Collection Primary Type | `nt:file` | The JCR Primary Node Type to assign to nodes created to reflect WebDAV non-collection resources. You may name any primary node type here, provided the node type is allowed to be created below nodes of the type defined for the Collection Primary Type and that a child node with the name `jcr:content` may be created below the non-collection resource whose type is defined by the Content Primary Type.
-Content Primary Type | `nt:resource` | The JCR Primary Node Type to assign to the jcr:content child node of a WebDAV non-collection resource. You may name any primary node type here, provided the node type is allowed to be created as the jcr:content child node of the node type defined by the Non-Collection Primary Type. In addition the node type must allow at least the following properties: jcr:data (binary), jcr:lastModified (date), and jcr:mimeType (string).
-
-## Advanced Technical Details
-
-Since the Jackrabbit Simple WebDAV Servlet is originally configured using an XML configuration file, which provides a great deal of flexibility, the integration into Sling had to assume some simplifications, of which some of the above parameters are part:
-
-### IOManager
-
-This implementation uses the standard `org.apache.jackrabbit.server.io.IOManagerImpl` class and adds the `org.apache.jackrabbit.server.io.DirListingExportHandler` and `org.apache.jackrabbit.server.io.DefaultHandler` IO handlers as its only handlers. The `DefaultHandler` is configured from the three node types listed as configuration parameters above (collection, non-collection, and content primary node types).
-
-### PropertyManager
-
-This implementation uses the standard `org.apache.jackrabbit.server.io.PropertyManagerImpl` and adds the same `DirListingExportHandler` and `DefaultHanlder` instances as its own handlers as are used by the IO Manager.
-
-### ItemFilter
-
-This implementation uses the standard `org.apache.jackrabbit.webdav.simple.DefaultItemFilter` implementation as its item filter and configures the filter with the namespace prefixes and URIs as well as the node types configured as parameters.
-
-### Collection Node Types
-
-This implementation only supports listing node types which are considered representing non-collection resources. All nodes which are instances of any of the configured node types are considered non-collection resources. All other nodes are considere collection resources.
-
-# DavEx Support
-
-[DavEx](https://wiki.apache.org/jackrabbit/RemoteAccess) (WebDAV with JCR Extensions) allows to remotely access a JCR repository. Sling provides support based on the [JCR WebDAV Server](http://jackrabbit.apache.org/jcr/components/jackrabbit-jcr-server.html#JCR_Webdav_Server) implementation of Apache Jackrabbit which is integrated in the `jcr/davex` project. By default the server listens on request urls starting with `/server`.
-
-
-# Eclipse plugin for JCR
-
-see [Sling IDE Tooling](/documentation/development/ide-tooling.html)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/resourceresolver-mock.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/resourceresolver-mock.md b/content/documentation/development/resourceresolver-mock.md
deleted file mode 100644
index 872f387..0000000
--- a/content/documentation/development/resourceresolver-mock.md
+++ /dev/null
@@ -1,51 +0,0 @@
-title=Resource Resolver Mock		
-type=page
-status=published
-~~~~~~
-
-Mock for the resource resolver / factory for easier testing. It uses an in-memory map for storing the resource data, and supports reading, writing and a certain level of transaction and eventing support.
-
-[TOC]
-
-
-## Maven Dependency
-
-#!xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.testing.resourceresolver-mock</artifactId>
-</dependency>
-
-See latest version on the [downloads page](/downloads.cgi).
-
-
-## Implemented mock features
-
-The mock implementation supports:
-
-* All read and write operations of the Sling Resource API
-* Mimics transactions using via commit()/revert() methods
-* OSGi events for adding/changing/removing resources
-* The implementation tries to be as close as possible to the behavior of the JCR resource implementation e.g. concerning date and binary handling
-
-
-The following features are *not supported*:
-
-* Authentication not supported ("login" always possible with null authentication info)
-* Querying with queryResources/findResources not supported (always returns empty result set)
-* Sling Mapping is not supported
-* Resolving resource super types
-
-
-
-## Usage
-
-To create a mocked resource resolver:
-
-#!java
-MockResourceResolverFactory factory = new MockResourceResolverFactory();
-ResourceResolver resolver = factory.getResourceResolver(null);
-
-With the resolver you can use all Sling Resource features including reading and writing data using the Sling API.
-
-You cannot do any operations that require the JCR API because no JCR is underlying and adapting to JCR objects will just return null.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/sling-datasource-config.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/sling-datasource-config.png b/content/documentation/development/sling-datasource-config.png
deleted file mode 100644
index 9ba5ddd..0000000
Binary files a/content/documentation/development/sling-datasource-config.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/sling-log-support.png
----------------------------------------------------------------------
diff --git a/content/documentation/development/sling-log-support.png b/content/documentation/development/sling-log-support.png
deleted file mode 100644
index d37a7da..0000000
Binary files a/content/documentation/development/sling-log-support.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/sling-mock.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/sling-mock.md b/content/documentation/development/sling-mock.md
deleted file mode 100644
index 2dbb43f..0000000
--- a/content/documentation/development/sling-mock.md
+++ /dev/null
@@ -1,451 +0,0 @@
-title=Sling Mocks		
-type=page
-status=published
-~~~~~~
-
-Mock implementation of selected Sling APIs for easier testing.
-
-[TOC]
-
-
-## Maven Dependency
-
-#!xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.testing.sling-mock</artifactId>
-</dependency>
-
-See latest version on the [downloads page](/downloads.cgi).
-
-
-There are two major version ranges available:
-
-* sling-mock 1.x: compatible with older Sling versions from 2014 (Sling API 2.4 and above)
-* sling-mock 2.x: compatible with Sling versions from 2016 (Sling API 2.11 and above)
-
-
-## Implemented mock features
-
-The mock implementation supports:
-
-* `ResourceResolver` implementation for reading and writing resource data using the Sling Resource API
-* Backed by a [mocked][jcr-mock] or real Jackrabbit JCR implementation
-* Uses the productive [Sling JCR resource provider implementation][jcr-resource] internally to do the Resource-JCR mapping
-* Alternatively the non-JCR mock implementation provided by the
-[Sling resourceresolver-mock implementation][resourceresolver-mock] can be used
-* `AdapterManager` implementation for registering adapter factories and resolving adaptions
-* The implementation is thread-safe so it can be used in parallel running unit tests
-* `SlingScriptHelper` implementation providing access to mocked request/response objects and supports getting
-OSGi services from the [mocked OSGi][osgi-mock] environment.
-* Implementations of the servlet-related Sling API classes like `SlingHttpServletRequest` and `SlingHttpServletRequest`
-* It is possible to set request data to simulate a certain Sling HTTP request
-* Support for Sling Models (Sling Models API 1.1 and Impl 1.1 or higher required)
-* Additional services `MimeTypeService`
-* Context Plugins
-
-The following features are *not supported*:
-
-* It is not possible (nor intended) to really execute sling components/scripts and render their results.
-* The goal is to test supporting classes in Sling context, not the sling components/scripts themselves
-
-
-### Additional features
-
-Additional features provided:
-
-* `SlingContext` JUnit Rule for easily setting up a Sling Mock environment in your JUnit test cases
-* `ContentLoader` supports importing JSON data and binary data into the mock resource hierarchy to easily
-prepare a test fixture consisting of a hierarchy of resources and properties.
-* The same JSON format can be used that is provided by the Sling GET servlet for output
-* `ContentBuilder` and `ResourceBuilder` make it easier to create resources and properties as test fixture
-
-
-## Usage
-
-### Sling Context JUnit Rule
-
-The Sling mock context can be injected into a JUnit test using a custom JUnit rule named `SlingContext`.
-This rules takes care of all initialization and cleanup tasks required to make sure all unit tests can run
-independently (and in parallel, if required).
-
-Example:
-
-#!java
-public class ExampleTest {
-
-@Rule
-public final SlingContext context = new SlingContext();
-
-@Test
-public void testSomething() {
-Resource resource = context.resourceResolver().getResource("/content/sample/en");
-// further testing
-}
-
-}
-
-It is possible to combine such a unit test rule with a `@RunWith` annotation e.g. for
-[Mockito JUnit Runner][mockito-testrunner].
-
-The `SlingContext` object provides access to mock implementations of:
-
-* OSGi Component Context
-* OSGi Bundle Context
-* Sling Resource Resolver
-* Sling Request
-* Sling Response
-* Sling Script Helper
-
-Additionally it supports:
-
-* Registering OSGi services
-* Registering adapter factories
-* Accessing ContentLoader, and ContentBuilder and ResourceBuilder
-
-
-### Choosing Resource Resolver Mock Type
-
-The Sling mock context supports different resource resolver types. Example:
-
-#!java
-public class ExampleTest {
-
-@Rule
-public final SlingContext context = new SlingContext(ResourceResolverType.RESOURCERESOLVER_MOCK);
-
-}
-
-Different resource resolver mock types are supported with pros and cons, see next chapter for details.
-
-
-### Resource Resolver Types
-
-The Sling Mocks resource resolver implementation supports different "types" of adapters for the mocks.
-Depending on the type an underlying JCR repository is used or not, and the data is stored in-memory or in a real
-repository.
-
-Resource resolver types currently supported:
-
-**RESOURCERESOLVER_MOCK (default)**
-
-* Simulates an In-Memory resource tree, does not provide adaptions to JCR API.
-* Based on the [Sling resourceresolver-mock implementation][resourceresolver-mock] implementation
-* You can use it to make sure the code you want to test does not contain references to JCR API.
-* Behaves slightly different from JCR resource mapping e.g. handling binary and date values.
-* This resource resolver type is very fast because data is stored in memory and no JCR mapping is applied.
-
-**JCR_MOCK**
-
-* Based on the [JCR Mocks][jcr-mock] implementation
-* Uses the productive [Sling JCR resource provider implementation][jcr-resource] internally to do the Resource-JCR mapping
-* Is quite fast because data is stored only in-memory
-
-**NONE**
-
-* Uses the productive Sling resource factory implementation without any ResourceProvider. You have to register one yourself to do anything useful with it.
-* The performance of this resource resolver type depends on the resource provider registered.
-* This is useful if you want to test your own resource provides mapped to root without any JCR.
-
-**JCR_OAK**
-
-* Uses a real JCR Jackrabbit Oak implementation based on the `MemoryNodeStore`
-* Full JCR/Sling features supported e.g. observations manager, transactions, versioning
-* Uses the productive [Sling JCR resource provider implementation][jcr-resource] internally to do the Resource-JCR mapping
-* Takes some seconds for startup on the first access
-* Node types defined in OSGi bundle header 'Sling-Nodetypes' found in MANIFEST.MF files in the classpath are registered automatically.
-* Lucene indexing is not included, thus fulltext search queries will return no result
-
-To use this type you have to declare an additional dependency in your test project:
-
-#!xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.testing.sling-mock-oak</artifactId>
-<scope>test</scope>
-</dependency>
-
-See latest version on the [downloads page](/downloads.cgi).
-
-**JCR_JACKRABBIT**
-
-* Uses a real JCR Jackrabbit implementation (not Oak) as provided by [sling/commons/testing][sling-commons-testing]
-* Full JCR/Sling features supported e.g. observations manager, transactions, versioning
-* Uses the productive [Sling JCR resource provider implementation][jcr-resource] internally to do the Resource-JCR mapping
-* Takes some seconds for startup on the first access
-* Node types defined in OSGi bundle header 'Sling-Nodetypes' found in MANIFEST.MF files in the classpath are registered automatically.
-
-To use this type you have to declare an additional dependency in your test project:
-
-#!xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.testing.sling-mock-jackrabbit</artifactId>
-<scope>test</scope>
-</dependency>
-
-See latest version on the [downloads page](/downloads.cgi).
-
-_Remarks on the JCR_JACKRABBIT type:_
-
-* The repository is not cleared for each unit test, so make sure to use a unique node path for each unit test. You may use the `uniquePath()` helper object of the SlingContext rule for this.
-* The [sling/commons/testing][sling-commons-testing] dependency introduces a lot of further dependencies from
-jackrabbit and others, be careful that they do not conflict and are imported in the right order in your test project
-
-
-
-### Sling Resource Resolver
-
-Example:
-
-#!java
-// get a resource resolver
-ResourceResolver resolver = MockSling.newResourceResolver();
-
-// get a resource resolver backed by a specific repository type
-ResourceResolver resolver = MockSling.newResourceResolver(ResourceResolverType.JCR_MOCK);
-
-If you use the `SlingContext` JUnit rule you case just use `context.resourceResolver()`.
-
-
-### Adapter Factories
-
-You can register your own or existing adapter factories to support adaptions e.g. for classes extending `SlingAdaptable`.
-
-Example:
-
-#!java
-// register adapter factory
-BundleContext bundleContext = MockOsgi.newBundleContext();
-MockSling.setAdapterManagerBundleContext(bundleContext);
-bundleContext.registerService(myAdapterFactory);
-
-// test adaption
-MyClass object = resource.adaptTo(MyClass.class);
-
-// cleanup after unit test
-MockSling.clearAdapterManagerBundleContext();
-
-Make sure you clean up the adapter manager bundle association after running the unit test otherwise it can
-interfere with the following tests. If you use the `SlingContext` JUnit rule this is done automatically for you.
-
-If you use the `SlingContext` JUnit rule you case just use `context.registerService()`.
-
-
-### SlingScriptHelper
-
-Example:
-
-#!java
-// get script helper
-SlingScriptHelper scriptHelper = MockSling.newSlingScriptHelper();
-
-// get request
-SlingHttpServletRequest request = scriptHelper.getRequest();
-
-// get service
-MyService object = scriptHelper.getService(MyService.class);
-
-To support getting OSGi services you have to register them via the `BundleContext` interface of the
-[JCR Mocks][jcr-mock] before. You can use an alternative factory method for the `SlingScriptHelper` providing
-existing instances of request, response and bundle context.
-
-If you use the `SlingContext` JUnit rule you case just use `context.slingScriptHelper()`.
-
-
-### SlingHttpServletRequest
-
-Example for preparing a sling request with custom request data:
-
-#!java
-// prepare sling request
-ResourceResolver resourceResolver = MockSling.newResourceResolver();
-MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(resourceResolver);
-
-// simulate query string
-request.setQueryString("param1=aaa&param2=bbb");
-
-// alternative - set query parameters as map
-request.setParameterMap(ImmutableMap.<String,Object>builder()
-.put("param1", "aaa")
-.put("param2", "bbb")
-.build());
-
-// set current resource
-request.setResource(resourceResolver.getResource("/content/sample"));
-
-// set sling request path info properties
-MockRequestPathInfo requestPathInfo = (MockRequestPathInfo)request.getRequestPathInfo();
-requestPathInfo.setSelectorString("selector1.selector2");
-requestPathInfo.setExtension("html");
-
-// set method
-request.setMethod(HttpConstants.METHOD_POST);
-
-// set attributes
-request.setAttribute("attr1", "value1");
-
-// set headers
-request.addHeader("header1", "value1");
-
-// set cookies
-request.addCookie(new Cookie("cookie1", "value1"));
-
-
-### SlingHttpServletResponse
-
-Example for preparing a sling response which can collect the data that was written to it:
-
-#!java
-// prepare sling response
-MockSlingHttpServletResponse response = new MockSlingHttpServletResponse();
-
-// execute your unit test code that writes to the response...
-
-// validate status code
-assertEquals(HttpServletResponse.SC_OK, response.getStatus());
-
-// validate content type and content length
-assertEquals("text/plain;charset=UTF-8", response.getContentType());
-assertEquals(CharEncoding.UTF_8, response.getCharacterEncoding());
-assertEquals(55, response.getContentLength());
-
-// validate headers
-assertTrue(response.containsHeader("header1"));
-assertEquals("5", response.getHeader("header2"));
-
-// validate response body as string
-assertEquals(TEST_CONTENT, response.getOutputAsString());
-
-// validate response body as binary data
-assertArrayEquals(TEST_DATA, response.getOutput());
-
-
-### Import resource data from JSON file in classpath
-
-With the `ContentLoader` it is possible to import structured resource and property data from a JSON file stored
-in the classpath beneath the unit tests. This data can be used as text fixture for unit tests.
-
-Example JSON data:
-
-#!json
-{
-"jcr:primaryType": "app:Page",
-"jcr:content": {
-"jcr:primaryType": "app:PageContent",
-"jcr:title": "English",
-"app:template": "/apps/sample/templates/homepage",
-"sling:resourceType": "sample/components/homepage",
-"jcr:createdBy": "admin",
-"jcr:created": "Thu Aug 07 2014 16:32:59 GMT+0200",
-"par": {
-"jcr:primaryType": "nt:unstructured",
-"sling:resourceType": "foundation/components/parsys",
-"colctrl": {
-"jcr:primaryType": "nt:unstructured",
-"layout": "2;colctrl-lt0",
-"sling:resourceType": "foundation/components/parsys/colctrl"
-}
-}
-}
-}
-
-Example code to import the JSON data:
-
-#!java
-context.load().json("/sample-data.json", "/content/sample/en");
-
-This codes creates a new resource at `/content/sample/en` (and - if not existent - the parent resources) and
-imports the JSON data to this node. It can be accessed using the Sling Resource or JCR API afterwards.
-
-
-### Import binary data from file in classpath
-
-With the `ContentLoader` it is possible to import a binary file stored in the classpath beneath the unit tests.
-The data is stored using a nt:file/nt:resource or nt:resource node type.
-
-Example code to import a binary file:
-
-#!java
-context.load().binaryFile("/sample-file.gif", "/content/binary/sample-file.gif");
-
-This codes creates a new resource at `/content/binary/sample-file.gif` (and - if not existent - the parent
-resources) and imports the binary data to a jcr:content subnode.
-
-
-### Building content
-
-Sling Mocks provides two alterantives for quickly building test content in the repository with as few code as possible. Sling Mocks provides two alternatives. Both are quite similar in their results, but follow different API concepts. You can choose whatever matches your needs and mix them as well.
-
-* `ContentBuilder`: Part of Sling Mocks since its first release. If you need a references to each created resource this is the easiest way.
-* `ResourceBuilder`: Separate bundle that can also be used in integration tests or live instances. Supports a "fluent" API to create a bunch of resources in hierarchy at once.
-
-
-#### Building content using `ContentBuilder`
-
-The entry point for the `ContentBuilder` is the `create()` method on the Sling context.
-
-Example:
-
-#!java
-context.create().resource("/content/test1", ImmutableMap.<String, Object>builder()
-.put("prop1", "value1")
-.put("prop2", "value2")
-.build());
-
-Simplified syntax without using a map:
-
-#!java
-context.create().resource("/content/test1",
-"prop1", "value1",
-"prop2", "value2");
-
-
-If you use the `SlingContext` JUnit rule you case just use `context.create()`.
-
-
-#### Building content using `ResourceBuilder`
-
-The entry point for the `ResourceBuilder` is the `build()` method on the Sling context.
-
-Example:
-
-#!java
-context.build().resource("/content/test1")
-.siblingsMode()
-.resource("test1.1", "stringParam", "configValue1.1")
-.resource("test1.2", "stringParam", "configValue1.2")
-.resource("test1.2", "stringParam", "configValue1.3");
-
-See JavaDocs of the class `org.apache.sling.resourcebuilder.api.ResourceBuilder` for a detailed documentation.
-
-
-### Context Plugins
-
-Sling Mocks supports "Context Plugins" that hook into the lifecycle of each test run and can prepare test setup before or after the other setUp actions, and execute test tear down code before or after the other tearDown action.
-
-To define a plugin implement the `org.apache.sling.testing.mock.osgi.context.ContextPlugin<SlingContextImpl>` interface. For convenience it is recommended to extend the abstract class `org.apache.sling.testing.mock.osgi.context.AbstractContextPlugin<SlingContextImpl>`. These plugins can be used with Sling Mock context, but also with context instances deriving from it like AEM Mocks. In most cases you would just override the `afterSetUp` method. In this method you can register additional OSGi services or do other preparation work. It is recommended to define a constant pointing to a singleton of a plugin instance for using it.
-
-To use a plugin in your unit test class, use the `SlingContextBuilder` class instead of directly instantiating the `SlingContext`class. This allows you in a fluent style to configure more options, with the `plugin(...)` method you can add one or more plugins.
-
-Example:
-
-#!java
-@Rule
-public SlingContext context = new SlingContextBuilder().plugin(MY_PLUGIN).build();
-
-More examples:
-
-* [Apache Sling Context-Aware Configuration Mock Plugin][caconfig-mock-plugin]
-* [Apache Sling Context-Aware Configuration Mock Plugin Test][caconfig-mock-plugin-test]
-
-
-
-[osgi-mock]: /documentation/development/osgi-mock.html
-[jcr-mock]: /documentation/development/jcr-mock.html
-[resourceresolver-mock]: /documentation/development/resourceresolver-mock.html
-[jcr-resource]: http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/resource
-[sling-commons-testing]: http://svn.apache.org/repos/asf/sling/trunk/bundles/commons/testing
-[mockito-testrunner]: http://mockito.github.io/mockito/docs/current/org/mockito/runners/MockitoJUnitRunner.html
-[caconfig-mock-plugin]: https://github.com/apache/sling/blob/trunk/contrib/extensions/contextaware-config/testing/mocks/caconfig-mock-plugin/src/main/java/org/apache/sling/testing/mock/caconfig/ContextPlugins.java
-[caconfig-mock-plugin-test]: https://github.com/apache/sling/blob/trunk/contrib/extensions/contextaware-config/testing/mocks/caconfig-mock-plugin/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/sling-requests-plugin.jpg
----------------------------------------------------------------------
diff --git a/content/documentation/development/sling-requests-plugin.jpg b/content/documentation/development/sling-requests-plugin.jpg
deleted file mode 100644
index 82f8826..0000000
Binary files a/content/documentation/development/sling-requests-plugin.jpg and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/sling-testing-tools.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/sling-testing-tools.md b/content/documentation/development/sling-testing-tools.md
deleted file mode 100644
index 0c02530..0000000
--- a/content/documentation/development/sling-testing-tools.md
+++ /dev/null
@@ -1,165 +0,0 @@
-title=Sling Testing Tools		
-type=page
-status=published
-~~~~~~
-
-<div class="warning">
-While this information is still valid, we recommend using the tools and techniques described
-in the newer "Junit Server-Side Tests Support" page instead, see link below.
-</div>
-
-As mentioned above, this is now replaced by the [Junit Server-Side Tests Support](/documentation/bundles/org-apache-sling-junit-bundles.html) page.
-
-Sling provides a number of testing tools to support the following use cases:
-
-* Run JUnit tests contributed by OSGi bundles in an OSGi system. This does not require Sling and should work in other OSGi  environments.
-* Run scriptable tests in a Sling instance, using any supported scripting language.
-* Run integration tests via HTTP against a Sling instance that is started during the Maven build cycle, or independently.
-
-This page describes those tools, and points to the bundles that implement them.
-
-The [testing/samples/integration-tests](http://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests) module demonstrates these tools, and is also meant as a sample project to show how to run integration tests for Sling-based applications.
-
-The main Sling integration tests at [launchpad/integration-tests](https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests) were created before this testing framework, and do not use it yet (as of March 2011). The new testing tools are simpler to use, but the "old" tests (all 400 of them as I write this) fulfill their validation role for testing Sling itself, there's no real need to modify them to use the new tools.
-
-See also [Testing Sling-based applications](/documentation/tutorials-how-tos/testing-sling-based-applications.html) which discusses testing in general.
-
-## Required bundles
-These tools require a number of bundles on top of the standard Sling launchpad. See the [sample tests pom.xml](http://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests/pom.xml)
-for an up-to-date list. Look for `sling.additional.bundle.*` entries in that pom for the bundle artifact IDs, and see the `dependencies` section for their version numbers.
-
-# Server-side JUnit tests contributed by bundles
-The services provided by the [org.apache.sling.junit.core](http://svn.apache.org/repos/asf/sling/trunk/testing/junit/core) bundle allow bundles to register JUnit tests, which are executed server-side by the JUnitServlet registered by default at `/system/sling/junit`. This bundle is not dependent on Sling, it should work in other OSGi environments.
-
-<div class="warning">
-Note that the JUnitServlet does not require authentication, so it would allow any client to run tests. The servlet can be disabled by configuration if needed, but in general the `/system` path should not be accessible to website visitors anyway.
-</div>
-
-<div class="note">
-For tighter integration with Sling, the alternate `SlingJUnitServlet` is registered with the `sling/junit/testing` resource type and `.junit` selector, if the bundle is running in a Sling system. Using this servlet instead of the plain JUnitServlet also allows Sling authentication to be used for running the tests, and the standard Sling request processing is used, including servlet filters for example.
-</div>
-
-To try the JUnitServlet interactively, install a bundle that contains tests registered via the `Sling-Test-Regexp=.*Test` bundle header.
-
-The JUnit core services use this regular expression to select which classes of the test bundle should be executed as JUnit tests.
-
-To list the available tests, open http://localhost:8080/system/sling/junit/ . The servlet shows available tests, and allows you to execute them via a POST request.
-
-Adding a path allows you to select a specific subset of tests, as in http://localhost:8080/system/sling/junit/org.apache.sling.junit.remote.html - the example integration tests described below use this to selectively execute server-side tests. The JUnitServlet provides various output formats, including in particular JSON, see http://localhost:8080/system/sling/junit/.json for example.
-
-To supply tests from your own bundles, simply export the tests classes and add the `Sling-Test-Regexp` header to the bundle so that the Sling JUnit core services register them as tests.
-
-### Injection of OSGi services
-The `@TestReference` annotation is used to inject OSGi services in tests that are executed server side.The `BundleContext` can also be injected in this way.
-
-## Curl examples
-Here's an example executing a few tests using curl:
-
-$ curl -X POST http://localhost:8080/system/sling/junit/org.apache.sling.testing.samples.sampletests.JUnit.json
-[{
-"INFO_TYPE": "test",
-"description": "testPasses(org.apache.sling.testing.samples.sampletests.JUnit3Test)"
-},{
-"INFO_TYPE": "test",
-"description": "testPasses(org.apache.sling.testing.samples.sampletests.JUnit4Test)"
-},{
-"INFO_TYPE": "test",
-"description": "testRequiresBefore(org.apache.sling.testing.samples.sampletests.JUnit4Test)"
-}
-]
-
-
-And another example with a test that fails:
-
-$ curl -X POST http://localhost:8080/system/sling/junit/org.apache.sling.testing.samples.failingtests.JUnit4FailingTest.json
-
-# Scriptable server-side tests
-If the [org.apache.sling.junit.scriptable](http://svn.apache.org/repos/asf/sling/trunk/testing/junit/scriptable) bundle is active in a Sling system, (in addition to the `org.apache.sling.junit.core` bundle), scriptable tests can be executed by the `JUnitServlet` according to the following rules:
-
-* A node that has the `sling:Test` mixin is a scriptable test node.
-* For security reasons, scriptable test nodes are only executed as tests if they are found under `/libs` or `/apps`, or more precisely under a path that's part of Sling's `ResourceResolver` search path.
-* To execute a test, the scriptable tests provider makes an HTTP request to the test node's path, with a `.test.txt` selector and extension, and expects the output to contain only the string `TEST_PASSED`. Empty lines and comment lines starting with a hash sign (#) are ignored in the output, and other lines are reported as failures.
-
-The [ScriptableTestsTest](http://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests/src/test/java/org/apache/sling/testing/samples/integrationtests/serverside/scriptable/ScriptableTestsTest.java) class, from the integration test samples module described below, sets up such a test node and its accompanying script, and calls the JUnitServlet to execute the test. It can be used as a detailed example of how this works.
-
-Here's a minimal example that sets up and executes a scriptable test:
-
-$ curl -u admin:admin -Fjcr:primaryNodeType=sling:Folder -Fsling:resourceType=foo -Fjcr:mixinTypes=sling:Test http://localhost:8080/apps/foo
-...
-$ echo TEST_PASSED > /tmp/test.txt.esp ; curl -u admin:admin -T/tmp/test.txt.esp http://localhost:8080/apps/foo/test.txt.esp
-
-At this point, foo.test.txt is what the scriptable test framework will request, and that outputs just TEST_PASSED:
-
-$ curl -u admin:admin http://localhost:8080/apps/foo.test.txt
-TEST_PASSED
-
-And a POST to the JUnit servlet returns information on the test's execution:
-
-curl -u admin:admin -XPOST http://localhost:8080/system/sling/junit/org.apache.sling.junit.scriptable.ScriptableTestsProvider.json
-[{
-"INFO_TYPE": "test",
-"description": "verifyContent[0](org.apache.sling.junit.scriptable.TestAllPaths)",
-"test_metadata": {
-"test_execution_time_msec": 2
-}
-}
-]
-
-Test failures would be included in this JSON representation - you can test that by modifying the script to fail and making the
-same request again.
-
-# Integration tests example
-The [testing/samples/integration-tests](http://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests) module runs some simple integration tests against a Sling Launchpad instance that's setup from scratch before running the tests.
-
-This module's pom and Java code can be used as examples to setup your own integration testing modules for Sling-based apps - or for any other runnable jar that provides an http service.
-
-Besides serving as examples, some of the tests in this module are used to validate the testing tools. They run as part of the full Sling [continuous integration](/project-information.html) build, so they're guaranteed to be correct examples if that build is successful.
-
-The sample uses the [testing/tools](http://svn.apache.org/repos/asf/sling/trunk/testing/tools) to make the test code simpler. See the [OsgiConsoleTest|https://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests/src/test/java/org/apache/sling/testing/samples/integrationtests/http/OsgiConsoleTest.java] class for an example of a test that's very readable and requires no test setup or boilerplate code.
-
-The following steps are executed in the `integration-test` phase of this module's Maven  build:
-
-1. A random port number for the Sling server is selected by the Maven build helper plugin, unless explicitely set (see pom.xml for such options).
-1. Additional bundles, defined in the module's pom, are downloaded from the Maven repository in the `target/sling/additional-bundles` folder.
-1. The first test that inherits from the [SlingTestBase](https://svn.apache.org/repos/asf/sling/trunk/testing/tools/src/main/java/org/apache/sling/testing/tools/sling/SlingTestBase.java) class causes the Sling runnable jar (defined as a dependency in the module's pom) to be started.
-1. The `SlingTestBase` class waits for the Sling server to be ready, based on URLs and expected responses defined in the pom.
-1. The `SlingTestBase` class installs and starts the bundles found in the `target/sling/additional-bundles` folder.
-1. The test can now either test Sling directly via its http interface, or use the JUnitServlet to execute server-side tests contributed by bundles or scripts, as described above.
-1. The Sling runnable jar is stopped when the test VM exits.
-1. The test results are reported via the usual Maven mechanisms.
-
-If `-DkeepJarRunning` is used on the Maven command line, the Sling runnable jar does not exit, to allow for running individual tests against this instance, for example when debugging the tests or the server code. See the pom for details.
-
-## Running tests against existing server
-
-Instead of provisioning a completely new Sling server, the ITs can also be executed on an already existing server instance. For that the
-`test-server-url` system property has to point to the existing server url.
-Additional bundles can still be deployed by using the `sling.additional.bundle.<num>` system property.
-
-Optionally, the additional bundles can be undeployed after the execution of the IT by setting `additional.bundles.uninstall` to `true`. (since Sling Testing Tools 1.0.12, [SLING-4819](https://issues.apache.org/jira/browse/SLING-4819))
-
-# Remote test execution
-The testing tools support two types of remote test execution.
-
-## SlingRemoteTestRunner
-The [SlingRemoteTestRunner](http://svn.apache.org/repos/asf/sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/testrunner/SlingRemoteTestRunner.java) is used to run tests using the `JUnitServlet` described above. In this case, the client-side JUnit test only defines which tests to run and some optional assertions. Checking the number of tests executed, for example, can be useful to make sure all test bundles have been activated as expected, to avoid ignoring missing test bundles.
-
-See the [ServerSideSampleTest](https://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests/src/test/java/org/apache/sling/testing/samples/integrationtests/serverside/ServerSideSampleTest.java) class for an example.
-
-It's a good idea to check that the JUnit servlet is ready before running those tests, see the
-[ServerSideTestsBase]( https://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests/src/test/java/org/apache/sling/testing/samples/integrationtests/serverside/sling/SlingServerSideTestsBase.java)
-for an example of how to do that.
-
-## SlingRemoteExecutionRule
-The [SlingRemoteExecutionRule](http://svn.apache.org/repos/asf/sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/ide/SlingRemoteExecutionRule.java) is a JUnit Rule that allows tests to be executed remotely in a Sling instance from an IDE, assuming the test is available on both sides.
-
-The [ExampleRemoteTest](https://svn.apache.org/repos/asf/sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/exported/ExampleRemoteTest.java) class demonstrates this. To run it from your IDE, set the `sling.remote.test.url` in the IDE to the URL of the JUnitServlet, like http://localhost:8080/system/sling/junit for example.
-
-# Debugging ITs
-The JVM is usually forked twice during the execution of integration tests. The first time by the `maven-surefire-plugin` which executes the client-side (i.e. Maven-side) part of the tests. To debug this side the option `-Dmaven.surefire.debug` can be used which waits for a debugger to be attached on port 5005 before the (client-side) test is executed. More information is available in the [documentation of the maven-surefire-plugin](http://maven.apache.org/surefire/maven-surefire-plugin/examples/debugging.html).
-
-Then the `JarExecutor` is forking the VM a second time to start the server (this does not happen if connecting to an already running instance). The system environment variable `jar.executor.vm.options` can be used to start that VM with debug options. All debug options are described at the [JPDA documentation](http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html#Invocation). If running
-
-mvn test -Djar.executor.vm.options="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000"
-
-the server start is interrupted until a debugger is connected on port 8000.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/sling.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/sling.md b/content/documentation/development/sling.md
deleted file mode 100644
index 4787b7a..0000000
--- a/content/documentation/development/sling.md
+++ /dev/null
@@ -1,6 +0,0 @@
-title=Maven Sling Plugin		
-type=page
-status=published
-~~~~~~
-
-See [Apache Maven Sling Plugin documentation](http://sling.apache.org/components/maven-sling-plugin/).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/slingstart.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/slingstart.md b/content/documentation/development/slingstart.md
deleted file mode 100644
index 88cd698..0000000
--- a/content/documentation/development/slingstart.md
+++ /dev/null
@@ -1,346 +0,0 @@
-title=The Apache Sling Provisioning Model and Apache SlingStart		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-The Apache Sling provisioning model is a model to describe OSGi based application. It can also be used to define a partial application aka feature (or subsystem in OSGi terms).
-
-The model is describing an instance, it is not directly related to any particular tooling or packaging/provisioning vehicle.
-
-For Apache Maven users, the `slingstart-maven-plugin` uses the model to create an executable application and/or a web application based on the model. Sling's Launchpad is defined using the model and built by this Maven plugin. See [SlingStart Maven Plugin](http://sling.apache.org/components/slingstart-maven-plugin/) for a documentation of the supported goals and parameters.
-
-
-## The Model
-
-The model is a simple API consisting of data objects:
-
-* Model: This is the central object. It consists of features.
-* Feature : this is the central object describing a (partial) system. A feature consists of variables and run modes.
-* Variables: These can be used to define artifact versions, settings values or configuration property values.
-* Run Mode : A run mode contains artifacts, configurations, and settings. The artifacts are divided into artifact groups.
-* Artifact Group: A group of artifacts with an associated start level (the artifacts are usually bundles)
-* Artifact: A deployable artifact described by Maven coordinates.
-* Configuration: A OSGi configuration
-* Settings : Framework settings for the OSGi framework
-
-### Run Modes
-
-The default run mode is always active, and all information provided there will be used/started.
-Custom run modes can be used to configure for different situations. Depending on which run mode is used to start the instance a different set of artifacts or configurations is used.
-Each run mode is associated with a set of run mode names. Only if all listed run modes are active, the definition is used.
-
-The model also supports special run modes, which have special meaning. By default, these pre defined special run modes are available:
-
-* :standalone Artifacts for the standalone application - in contrast to a war.
-* :webapp Artifacts for the webapp only
-
-Other special run modes can be defined by using a single run mode name which starts with a colon, like :test. These run modes can be used by special tooling.
-
-### Start Levels
-
-Each run mode has start levels. These start levels correspond to OSGi start levels. The default start level has the level 0 and should be used for all non bundle artifacts. If a non bundle artifact is configured with a start level, it's still provisioned, however the start level information might not have any meaning. As usually the provisioned artifacts are bundles and as start levels are pretty handy, this was conscious design decision in order to keep the model files small.
-
-### Artifacts
-
-An artifact is defined by Maven coordinates, that is group id, artifact id and version. Type and classifier can be specified, too. Type defaults to "jar". Although the maven way of referring to an artifact is used, the model is in no way tied to Maven and can be used with any tooling. For a plain jar the text definition for an artifact is:
-
-groupId/artifactId/version
-org.apache.sling/api/2.8.0
-
-If you want to specify the type, it's appended after the version:
-
-groupId/artifactId/version/type
-org.apache.sling/api/2.8.0/jar
-
-If you want to specify the classifier, it gets appended after the type:
-
-groupId/artifactId/version/type/classifier
-org.apache.sling/api/2.8.0/jar/test
-
-### Configurations
-
-A configuration has a pid, or a factory pid and an alias and of course the properties of the configuration object.
-
-Special configurations can be marked with a leading ":" of the pid. Special configurations are not added to the OSGi config admin. There are some predefined special configurations
-
-* :web.xml This configuration must be part of the :webapp runmode and contains a complete web.xml for the web application
-* :bootstrap This configuration must be part of either the :boot, :base, :standalone, or :webapp run mode and define the contents for the bootstrap command file executed by Launchpad.
-
-#### Bootstrap Command File
-
-The bootstrap configuration is a text block consisting of uninstall directives. This block is only executed on the first startup.
-
-[feature name=:launchpad]
-
-[configurations]
-# uninstall obsolete bundles which are neither not required anymore or are
-# replaced with new bundles
-:bootstrap
-uninstall org.apache.sling.fragment.activation 1.2
-uninstall org.apache.sling.installer.api [1.0,2.0)
-uninstall org.apache.sling.tests
-
-Each uninstall directive starts with the text "uninstall" followed by the bundle symbolic name. A version range can be specified as well. If no version information is specified, the bundle with that symbolic name is uninstalled on startup. If a version is specified, the bundle is only uninstalled if it's installed with the exact same version. If a range is specified, the bundle is only uninstalled, if the version is within that range.
-
-### Settings
-
-Settings are key value pairs that are added to the framework properties. For now, only settings for the run modes :boot, :base, :standalone, or :webapp are supported.
-
-### Features
-
-Features group run modes and define a special functionality. The model also defines two special features:
-
-* :launchpad This feature contains the dependency to Sling's launchpad artifact to be used. This mode is required if Apache Sling Launchpad should be used to start the application.
-* :boot The artifacts that are installed before the framework is started. They're used to bootstrap the system.
-
-## Model Files
-
-The model comes also with a textual description language:
-
-[feature name=my-feature]
-[variables]
-eventadmin.version=1.0.0
-metatype.version=1.2.0
-
-[artifacts]
-org.apache.sling/eventadmin/${eventadmin.version}
-org.apache.sling/metatype/${metatype.version}
-org.apache.sling/coordinator/3.0.0
-
-[configurations]
-org.apache.sling.eventadmin
-useQueue=true
-ignoreTopics=["myTopic"]
-
-A configuration for a run mode looks like this:
-
-[feature name=my-feature]
-[variables]
-eventadmin.version=1.0.0
-metatype.version=1.2.0
-
-[artifacts runModes=mymode]
-org.apache.sling/metatype/${metatype.version}
-
-[artifacts startLevel=5 runModes=mymode]
-org.apache.sling/eventadmin/${eventadmin.version}
-
-[configurations runModes=mymode]
-org.apache.sling.eventadmin
-useQueue=true
-ignoreTopics=["myTopic"]
-### Comments
-
-Each object in the model can be annotated with comments. A comment is a line starting with a '#'. Leading spaces are ignored.
-
-### Configurations in the Model file
-
-Configuration names are related to the PID and factory PID. The structure of the name is as follows:
-
-
-name ::= <pid> ( '-' <subname> )
-
-
-If the form is just `<pid>`, the configuration contains the properties for a Managed Service. The `<pid>` is then the PID of the Managed Service. See the Configuration Admin service for details.
-
-When a Managed Service Factory is used, the situation is different. The `<pid>` part then describes the PID of the Managed Service Factory. You can pick any `<subname>` which is used as a unique alias. For example:
-
-# Configuration for Managed Service com.acme.xyz
-com.acme.xyz //
-# Managed Service Factory, creates an instance for com.acme.abc
-com.acme.abc-default
-
-
-### Default Configuration Format
-
-Configurations use by default the format of the Apache Felix ConfigAdmin implementation. It allows to specify the type and cardinality of a configuration property and is not limited to string values.
-
-The first line of such a file might start with a comment line (a line starting with a #). Comments within the file are not allowed.
-
-The format is:
-
-file ::= (comment) (header) *
-comment ::= '#' <any>
-header ::= prop '=' value
-prop ::= symbolic-name // 1.4.2 of OSGi Core Specification
-symbolic-name ::= token { '.' token }
-token ::= { [ 0..9 ] | [ a..z ] | [ A..Z ] | '_' | '-' }
-value ::= [ type ] ( '[' values ']' | '(' values ')' | simple )
-values ::= simple { ',' simple }
-simple ::= '"' stringsimple '"'
-type ::= <1-char type code>
-stringsimple ::= <quoted string representation of the value> (see below)
-
-The 1 character type code is one of:
-
-* 'T' : simple string
-* 'I' : Integer
-* 'L' : Long
-* 'F' : Float
-* 'D' : Double
-* 'X' : Byte
-* 'S' : Short
-* 'C' : Character
-* 'B' : Boolean
-
-Apart from the escaping of the usual characters like the quotes, double quotes, backslash etc. the equals sign and spaces need to be escaped as well!
-
-
-###  Configurations Defined through Properties
-
-While the default configuration form is very powerful, it might also sometimes be a little bit too heavy to specify a configuration. For these usage cases, the configuration can be described as properties:
-
-com.acme.xyz [format=properties]
-ftp.port = 21
-
-Notice that this definition only supports string properties. Therefore the service consuming the configuration needs to be able to adapt a string value to the correct type.
-
-## Slingstart and Slingfeature projects
-
-The `slingstart-maven-plugin` introduces two new packaging types:
-
-* `slingstart` : This type requires a model at src/main/provisioning. It reads all text files in that directory and merges them in alphabetical order. The resulting artifact is a runnable jar. The assembled model is also attached to the project artifacts.
-* `slingfeature` : This type requires a model at src/main/provisioning. It reads all text files in that directory and merges them in alphabetical order and creates a merged model which is the final artifact of this project.
-
-A model can reference other slingstart or slingfeature artifacts. When such an artifact is reference, the type needs to be specified, for example:
-
-[artifacts]
-org.apache.sling/org.apache.sling.launchpad/8-SNAPSHOT/slingstart
-org.apache.sling/org.apache.sling.launchpad.test-bundles/0.0.1-SNAPSHOT/slingfeature
-
-The resulting model is a merged model, starting with the dependencies and then merging in the current model.
-
-By default the Maven classpath is extended by the dependencies of the merged model. This behaviour can be disabled though via setting the parameter `disableExtendingMavenClasspath` to `true` ([SLING-6541](https://issues.apache.org/jira/browse/SLING-6541)).
-
-## Model Merging
-
-If two or more models are supplied, they are merged feature by feature, each feature being treated as a separate unit.
-
-Within a feature each run mode is treated separately as well.
-
-Within a run mode, a model can overwrite definitions from the base model. For example, it can define a different configuration or a different version and/or start level for an artifact.
-
-The supplied models are ordered alphanumercally by their filenames for merging.
-
-### Removing and Changing of Artifacts
-
-In addition, it can also remove artifacts and configurations. For this the special runmode :remove needs to be used together with all run modes the artifact or configuration is currently in.
-
-Let's look at an example base model
-
-[artifacts]
-my/special/artifact/1.0.0
-commons/library/1.0.0
-
-[artifacts runModes=test]
-another/one/2.1.0
-
-Another model wants to use the above model as it's base but:
-
-* Change the version of the commons library to 1.1.0 and move it to a different start level.
-* Remove the "special artifact"
-* Remove the "another one"
-
-The changing model would mention the above as one artifact and in addition have:
-[artifacts startLevel=5]
-commons/library/1.1.0
-
-[artifacts runModes=:remove]
-my/special/artifact/0.0.0
-
-[artifacts runModes=:remove,test]
-another/one/0.0.0
-
-Note that the version for removal does not play a role, it's not compared for an exact match. But please keep in mind that the remove directive needs to be specified in the same feature and run mode as the original.
-
-### Removing and Changing of Configurations
-
-Configurations can be removed in the same way by just specifying their PID in the :remove run mode. This is the base model:
-
-[configurations]
-my.special.configuration.b
-foo="bar"
-another.special.configuration.a
-x="y"
-
-When this model is merged with the following model, the resulting model has a different configuration for my.special.configuration.b and no configuration for another.special.configuration.a:
-
-[configurations]
-my.special.configuration.b
-a="b"
-
-[configurations runModes=:remove]
-another.special.configuration.a
-
-By default if a model inherits from another and uses the same configuration pid, the configuration is overwritten! In the above example, the configuration my.special.configuration.b contains a single property named "a".
-
-It is also possible to merge configurations:
-
-[configurations]
-my.special.configuration.b [mode=merge]
-a="b"
-
-When the merge directive is used, the configurations are merged and the properties are applied as a delta to the base configuration. Therefore the configuration my.special.configuration.b will have two properties "a" and "foo".
-
-If a merged configuration redefines a property that already exists, it overwrites it, so the last configuration supplied in a merge wins.
-
-## Starting a server
-
-Use the goal with name `start` to start one or multiple servers. The goal is bound by default to the [`pre-integration-test` lifecycle phase](https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference). The launchpad JAR used to start the server is being looked up from the following locations:
-
-1. the file path given in the configuration field `launchpadJar` or parameter `launchpad.jar`
-2. the slingstart artifact being referenced in the configuration element `launchpadDependency`
-3. the artifact being created through the Maven project itself (through model definitions found below `src/main/provisioning` or `src/test/provisioning` which are consumed by the goals `prepare-package` and `package` ([SLING-6068](https://issues.apache.org/jira/browse/SLING-6068)) ).
-4. the first dependency of type `slingstart`
-
-The server itself is configured within an element `server` below the configuration element `servers`. It supports the following configuration settings
-
-Name | Type | Description | Default Value | Mandatory
----- | ---- | ----------- | ------------- | ---------
-port     | String | The port on which the server is listening for HTTP requests. Arbitrary if not set. | - | no
-id       | String | The instance id for this server. If not set the id is automatically generated from the run modes and the port. | - | no
-runmode  | String | The comma-separated list of [run modes](/documentation/bundles/sling-settings-org-apache-sling-settings.html#run-modes) to be set for this server. Those will be set in addition to the ones being defined by the underlying model. | - | no
-contextPath | String | The context path. If not set then Sling is deployed in the root context. | - | no
-controlPort | String | The TCP [control port](/documentation/the-sling-engine/the-sling-launchpad.html#control-port) on which the server is listening for control commands. Arbitrary if not set. | - | no
-instances | int | The number of instances which should be created from this server element. In this case the configuration acts as template. The port and controlPort for all servers being generated from this configuration are random (except for the first server). | 1 | no
-folder | String | The folder from where to start Sling. If not set is a folder in the project's build directory named like the `id`. | - | no
-vmOpts | String | The JVM options to use. | `-Xmx1024m -XX:MaxPermSize=256m -Djava.awt.headless=true` | no
-opts | String | Additional application options. | - | no
-debug | String | See below for an explanation. | - | no
-stdOutFile | String | The relative filename of the file which receives both the standard output (stdout) and standard error (stderr) of the server processes. If null or empty string the server process inherits stdout from the parent process (i.e. the Maven process). The given filename must be relative to the working directory of the according server. This was added with [SLING-6545](https://issues.apache.org/jira/browse/SLING-6545). | null | no
-
-### Debugging
-
-Since version 1.2.0 of this plugin it is possible to easily start a Sling server in debug mode ([SLING-4677](https://issues.apache.org/jira/browse/SLING-4677)). For that you either configure the property `debug` inside you server configuration in the pom.xml accordingly or by using the parameter `Dlaunchpad.debug`. Both values can either be `true` (in which case the [JDWP options](http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html#Invocation) `-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000` are appended to the VM options) or just some arbitrary string defining debugging options.
-In case both are used the parameter `Dlaunchpad.debug` takes precedence.
-
-## Stopping a server
-
-Use the goal with name `stop` to stop one or multiple servers. The goal is bound by default to the [`post-integration-test` lifecycle phase](https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference).
-
-## Known Issues
-
-### Support of configuration formats
-
-The provisioning model supports two formats to define configurations, properties and the format of the Apache Felix ConfigAdmin implementation.
-
-Starting with version 1.2.0 of the provisioning model and version 1.2.0 of the slingstart-maven-plugin, the implementation uses the latest format from Apache Felix, version 1.8.6 (or higher) of the ConfigAdmin. This requires you to use version 3.6.6 (or higher) of the OSGi installer core bundle to handle these configurations.
-
-If you want to stick with the old format from config admin, you can configure the maven plugin as follows:
-
-<plugin>
-<groupId>org.apache.sling</groupId>
-<artifactId>slingstart-maven-plugin</artifactId>
-<extensions>true</extensions>
-<version>1.3.4</version>
-<dependencies>
-<dependency>
-<groupId>org.apache.felix</groupId>
-<artifactId>org.apache.felix.configadmin</artifactId>
-<version>1.8.4</version>
-</dependency>
-</dependencies>
-</plugin>
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/version-policy.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/version-policy.md b/content/documentation/development/version-policy.md
deleted file mode 100644
index a9e42ad..0000000
--- a/content/documentation/development/version-policy.md
+++ /dev/null
@@ -1,211 +0,0 @@
-title=Version Policy		
-type=page
-status=published
-~~~~~~
-Excerpt: This page is about how we assign versions to exported packages and bundles and defines when to increase which part of the version number.
-
-This page is about how we assign versions to exported packages and bundles and defines when to increase which part of the version number.
-
-<div class="info">
-Please note that this page is currently in draft stage and still being discussed.
-</div>
-
-[TOC]
-
-## Introduction
-
-In comments to [SLING-1176](https://issues.apache.org/jira/browse/SLING-2944) Ian Boston wrote:
-
-> The exports in bundle/api/pom.xml look like they might become problematic from a support point of view, although we probably can't avoid this. [...] [The problem is the] manual maintenance of the version numbers. (not a big problem but needs to be done)
-
-I agree, that this is a problem. So let me reasonate on this a bit ;-)
-
-As a reference you might want to read [my blog post on version numbers](http://blog.meschberger.ch/2009/10/on-version-numbers.html) and also what the [Eclipse guys have to say](http://wiki.eclipse.org/index.php/Version_Numbering) (great read, btw). The OSGi Alliance has come up with a good definition for [Semantic Versioning](http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf) to which the definitions described below perfectly match.
-
-For Sling we have three kinds of version numbers:
-
-1. Big Sling Releases
-1. Sling Bundles
-1. Package Exports
-
-### Big Sling Releases
-
-For *Big Sling Releases* we already have an ample solution in that we just use a single number increased from release to release. Just remember that a *Big Sling Release* is a convenience release of existing released Sling bundles.
-
-### Sling Bundles
-
-For *Sling Bundles* version numbers are just defined as the `<version>` element of the bundle's POM. The only restriction here is, that we decided to use even numbers for releases and odd numbers for SNAPSHOTs. Whether and when which version part is increased is not explicitly defined yet.
-
-### Package Exports
-
-For *Package Exports* the situation is more problematic since there are a number of places to set exported package version number:
-
-* In a `packageinfo` file inside the package (picked up by the Maven Bundle Plugin to set the export version)
-* Explicitly in the `<Export-Package>` element of the Maven Bundle Plugin configuration
-* By reference to the bundle version number using the `${pom.version}` variable.
-
-Up to now, we mostly used the `${pom.version}` notation linking the exported package version to the bundle version. Over time this mechanism leads to a number of problems:
-
-* For bundles with more than one package exported, the exported packages will evolve independently. As a consequence their versioning should also evolve independently. An example of such a bundle is the Sling API bundle of course.
-* Linking the package export version number to the bundle version number confuses the actual semantics of both version numbers. The package export version number only indicates the version of the actual package while the bundle version number indicates a development state of the overall bundle. This will generally not be the same.
-* The version of the exported package is increased on each bundle release, even though nothing may have changed on the export. In such a situation the version of the export should stay the same.
-
-That said, the reuse of the bundle version as the package export version still is probably the correct thing to do for legacy library wrappers.
-
-Consider for example the Sling API bundle, which exports 9 packages. Each of which may evolve independently. Now the `resource` package is extended causing a minor version increase. Should the version numbers of the other exports also be increased ? Thus acting as if there was some API change ?
-
-I would say, no. Particularly if some API implementation bundle is restricting the import version of the API implemented. Such an implementation would immediately stop working because the version has been increased. But since there has been no change, the implementation would still be correct.
-
-So, I think, we should evolve the exported package versions independently from each other and even independently from the bundle version.
-
-This places more burden on the developer when deciding on the exported package version - in fact this requires such a decision as compared to have Maven take the decision by just setting the bundle version.
-
-The only problem is: Where shall this be noted ? In the POM or in the `packageinfo` file ? If we would place the `packageinfo` file just beneath the class source files, I would say, in the `packageinfo` file.
-
-But this would require defining the class source locations as resource location in the POM (at least for `packageinfo`) files.
-
-I am not sure ....
-
-This has not been discussed at large, but I would assume, that the POM is still the correct place to take note of the version of the exported packages.
-
-### Future
-
-The newest versions of the bnd library also support an `@Export` annotation in the `package-info.java` pseudo class file. This pseudo class is supported starting with Java 5 to take package level annotations (like the `@Export` annotation) and as a replacement of the `package-info.html` file.
-
-Using this syntax something like the following would be easily possible:
-
-
-/**
-* This is the Package Level JavaDoc
-*/
-@Export(version = "1.0")
-package org.apache.sling.api.auth;
-import aQute.bnd.annotation.Export;
-
-
-See [bnd Versioning](http://bnd.bndtools.org/chapters/170-versioning.html) for details.
-
-
-## Version Number Syntax
-
-As a small reminder, this is how a version number is constructed:  In OSGi version numbers are composed of four (4) segments: three integers and one string named _major_._minor_._micro_._qualifier_.
-
-Each segment captures a different intent:
-
-* the major segment indicates breakage in the API
-* the minor segment indicates *externally visible* changes
-* the micro segment indicates bug fixes
-* the qualifier segment is not generally used but may be used to convey more information about a particular build, such as a build time or a SVN revision number.
-
-
-## Evolution of Exported Package Versions
-
-Version numbers of exported packages evolve independently from each other. Depending on the changes applied, the micro, minor, or major segement is increased. Whenever the major segment is increased, the minor and micro segments are reset to zero. Whenever the minor segment is increased, the micro segment is reset to zero.
-
-Segments are increased according to the above listing.
-
-This requires committers to think well about changes they apply to exported packages:
-
-* Removing interfaces, methods or constants is likely an API breakage and thus requires a major version increase. In Sling we try to prevent this from happening.
-* Adding new methods to interfaces is likely just an *externally visible* change and thus requires a minor version increase
-* Fixing a bug in an exported class just requires a minor version increase.
-
-JavaDoc updates generally do not constitute a reason to evolve the version number. The exception is that if the JavaDoc update is caused by a API limitation, it might be conceivable to increase the version number of the exported package. A decision on this will have to be taken on a case-by-case basis.
-
-
-## Evolution of Bundle Versions
-
-Version numbers of bundles evolve depending on the evolution of the exported packages but also depending on the evolution of the private code, which is not exported.
-
-As a rule of thumb, the following reasons apply for increasing the segments of bundle version numbers:
-
-* Increasing the major version number of any of the exported packages or restructuring the bundle such that major parts are removed from the bundle (and either completely removed or moved to other bundle(s)).
-* Increasing the minor version number of any of the exported packages or refactoring the internal code or implementing a package exported by another bundle whose minor (or even major) version number has increased. Also functional extensions of the internal bundle classes consitutes a reason to increase the minor version number.
-* Increasing the micro version number of any of the exported packages or bug fixes.
-
-Note, that this definition does not require the bundle and epxorted package version numbers to be synchronized in any way. While doing so might help in a first or second step, over time it will become close to impossible to keep the versions in sync. So rather than trying to keep the versions in sync, we should make sure, we increase the versions correctly.
-
-
-## Examples
-
-
-### Pure API Bundle
-
-An example of an almost *Pure API Bundle* is the Sling API bundle. This bundle exports 9 packages. Some are really stable -- e.g. the `org.apache.sling.api` package or the `org.apache.sling.wrappers` package -- and some are being worked on at the moment -- e.g. the `org.apache.sling.resource` package.
-
-To not break existing users of the unmodified packages, the exported versions of these packages must not be increased.
-
-To signal to users of evolving packages, that there might be new and interesting functionality, the version number must be increased according to above definition. This also conveys to the implementor(s) of the API, that they have to take some action.
-
-
-A hypothetical evolution of version numbers shown on two packages and the bundle version might be as follows
-
-| Description | `api` package | `resource` package | bundle |
-|-|-|-|-|
-| Initial Release | 1.0.0 | 1.0.0 | 1.0.0 |
-| Bug fix in a `resource` class | 1.0.0 | 1.0.2 | 1.0.2 |
-| New API in the `resource` package | 1.0.0 | 1.1.0 | 1.1.0 |
-| New API in the `api` package | 1.1.0 | 1.1.0 | 1.2.0 |
-| API breakage in the `api` package | 2.0.0 | 1.1.0 | 2.0.0 |
-
-
-### Implementation Bundle providing API
-
-An example of such a hybrid bundle is the Sling Engine bundle. This bundle exports two packages themselves defining API and contains a number of internal packages which actually implement parts of the Sling API.
-
-A hypothetical evolution of version numbers shown on one exported package and the bundle version might be as follows
-
-| Description | `engine` package | bundle |
-|-|-|-|
-| Initial Release | 1.0.0 | 1.0.0 |
-| Bug fix in a `engine` class | 1.0.2 | 1.0.2 |
-| Bug fix in an internal calss | 1.0.2 | 1.0.4 |
-| New API in the `engine` package | 1.1.0 | 1.1.0 |
-| Implement new API from `api` 1.1.0 | 1.1.0 | 1.2.0 |
-| Refactor internal classes | 1.1.0 | 1.3.0 |
-| Implement API from `api` 2.0.0 | 1.1.0 | 2.0.0 |
-
-
-### Pure Implementation Bundle
-
-For Pure Implementation Bundles only the bundle version numbers are maintained because there is no exported package whose version number needs to be managed. This makes the decision process of version number evolution very simple.
-
-
-## Importing Packages
-
-
-When importing packages a version number will automatically be generated by the Maven Bundle Plugin as follows:
-
-* If the providing package exports a package with an explicit version number, that exact version number will be used as the lower bound
-* If such a lower bound exists, the upper bound is exclusive the next major version number.
-
-For example if importing the `api` package exported at version 1.2.3, the `Import-Package` statement is generated as
-
-
-Import-Package: api;version=[1.2.3,2.0.0)
-
-
-
-This default works well for consumers of the API, since according to above definitions an API is guaranteed to not contain breakages if the major version number is not increased.
-
-For bundles implementing the API, this default does not work well, since from their point of view an *externally visible* change in fact constitutes a breakage, because the implementation is not complete. So if a bundle implements a package a manually crafted import version should be defined which includes the export version of the defining bundle but excludes the next minor version.
-
-For example implementing the `api` package exported at version 1.2.3, would require the following manually created `Import-Package` statement:
-
-
-Import-Package: api;version=[1.2.3,1.3.0)
-
-
-This allows for the implementation to work correctly with bug fixed package exports but as soon as there are any *externally visible* changes, the implementation bundle has to be adapted -- even if this just means increasing the upper version bound in the `Import-Package` statement thus guaranteeing compliance (again).
-
-### Future
-
-Recent versions of the bnd library support automatic differentiation between _use_ and _implementation_ of API and to set the import version ranges accordingly. See [bnd Versioning](http://bnd.bndtools.org/chapters/170-versioning.html) for details.
-
-## References
-
-* [Version Numbers](http://markmail.org/thread/zshobgjwtqrncajt) -- The mail thread discussing version numbering
-* [On Version Numbers](http://blog.meschberger.ch/2009/10/on-version-numbers.html) -- Blog about version numbers
-* [Version Numbering](http://wiki.eclipse.org/index.php/Version_Numbering) -- An Eclipse paper on assigning version numbers. Very good read.
-* [Semantic Versioning](http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf) -- An OSGi Alliance paper on semantic versioning.
-* [bnd Versioning](http://bnd.bndtools.org/chapters/170-versioning.html) -- Describes how the bnd library used by the Maven Bundle plugin supports package versioning

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/getting-started.md
----------------------------------------------------------------------
diff --git a/content/documentation/getting-started.md b/content/documentation/getting-started.md
deleted file mode 100644
index 5174498..0000000
--- a/content/documentation/getting-started.md
+++ /dev/null
@@ -1,23 +0,0 @@
-title=Getting Started		
-type=page
-status=published
-~~~~~~
-
-We're on the way to update the documentation to make it more easy to get in touch with Sling. At the moment we can give you the following starting points:
-
-{% for label, page in children %}* [{{ page.headers.title }}]({{ page.path }})
-{% endfor %}
-
-## Where to head from here
-
-We recommend you read through following topics to get as fast as possible into Sling:
-
-* [Getting and building Sling](/documentation/development/getting-and-building-sling.html)
-* [Architecture](/documentation/the-sling-engine/architecture.html)
-* [Dispatching Requests](/documentation/the-sling-engine/dispatching-requests.html)
-* [Resources](/documentation/the-sling-engine/resources.html)
-* [{{ refs.ide-tooling.headers.title }}](/documentation/development/ide-tooling.html)
-* [Manipulating Content - The SlingPostServlet (servlets.post)](/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html)
-* [Request Parameters](/documentation/the-sling-engine/request-parameters.html)
-* [Authentication](/documentation/the-sling-engine/authentication.html)
-* [Eventing and Jobs]({{ refs.eventing-and-jobs.path }})


[21/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/resource-access-security.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/resource-access-security.md b/content/documentation/bundles/resource-access-security.md
deleted file mode 100644
index 7486899..0000000
--- a/content/documentation/bundles/resource-access-security.md
+++ /dev/null
@@ -1,85 +0,0 @@
-title=Resource Access Security		
-type=page
-status=published
-~~~~~~
-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.
-
-## Summary
-The ResourceAccessSecurity service allows it to restrict access to resources. The access can be granted or denied for read, create, update and delete actions.
-
-The ResourceAccessSecurity defines a service API which is used in two different context: for securing resource providers which have no own access control and on the application level to further restrict the access to resources in general.
-
-A resource access security service is registered with the service property “context”. Allowed values are “application” and “provider”. If the value is missing or invalid, the service will be ignored.
-
-In the context of resource providers, this service might be used for implementations of resource providers where the underlying persistence layer does not implement access control. The goal is to make it easy to implement a lightweight access control for such providers. For example, a JCR resource providers should not use the provider context resource access security - in a JCR context, security is fully delegated to the underlying repository, and mixing security models would be a bad idea.
-
-In the context of the application, this service might be used to add additional or temporary constraints across the whole resource tree.
-
-## How to use ResourceAccessSecurity
-To use the ResourceAccessSecurity service you don’t have to implement the interface ResourceAccessSecurity. Simply add the resourceaccesssecurity bundle to your sling instance. This adds an implementation of the ResourceAccessSecurity service for the provider context (“provider”) and also the application context (“application”).
-
-Furthermore the implementation of ResourceAccessSecurity defines a service provider interface named ResourceAccessGate. This is the service interface which you can implement and register to control the access to the resources.
-
-The ResourceAccessGate defines a service API which can be used to make some restrictions to accessing resources. Implementations of this service interface must be registered like ResourceProvider with a path (like provider.roots but with the property name “path”). If different ResourceAccessGate services match a path, not only the ResourceAccessGate with the longest path will be called, but all of them, that's in contrast to the ResourceProvider, but in this case more logical (and secure!). The access gates also must be registered with a context (“application” or “provider”), without a given context, the service will be ignored by ResourceAccessSecurity. The gates will be called in the order of the service ranking. If one of the gates grants access for a given operation access will be granted. An exception are the gates which are registered for “finaloperations”. If such a gate denies resource access no further gate will be asked and access denied (except a gate with
  higher service ranking has granted access).
-
-### Service properties
-
-Property name     |  description
------------------ | -----------------------
-Path              | regexp to define on which paths the service should be called (default .*)
-operations        | set of operations on which the service should be called ("read,create,update,delete,execute", default all of them)
-finaloperations   | set of operations on which the service answer is final and no further service should be called (default none of them), except the GateResult is GateResult.CANT_DECIDE
-context           | “provider” or “application”. The resource access gate can either have the context “provider”, in this case the gate is only applied to resource providers requesting the security checks. Or the context can be “application”. In this case the access gate is invoked for the whole resource tree. This is indicated by the required service property “context”. If the property is missing or invalid, the service is ignored.
-
-### How to implement ResourceAccessGate
-The implementation is straightforward. The easiest way is to extend ` AllowingResourceAccessGate ` which is exported by the resourceaccesssecurity bundle and does not deny any access. So if you wan’t restrict access on resources for read operations you have to implement to following two methods:
-
-::java
-@Override
-public boolean hasReadRestrictions(final ResourceResolver resourceResolver) {
-return true;
-}
-
-@Override
-public GateResult canRead(final Resource resource) {
-GateResult returnValue = GateResult.CANT_DECIDE;
-if( whatever-condition ) {
-returnValue = GateResult.GRANTED;
-}
-else {
-returnValue = GateResult.DENIED;
-}
-
-return returnValue;
-}
-
-And you have to register the ResourceAccessGate with the path where you wan’t to restrict access and the operation property set to “read”. Furthermore you have to decide if the ResourceAccessGate should operate on all resource providers (context=”application”) or only on the resourceproviders flagged with the property useResourceAccessSecurity=true (context=”provider”).
-
-Tip: We do not recommend to mix up application and provider context in the same application. This can lead to confusing configurations in the ResourceAccessGate implementations.
-
-### GateResult
-GateResult does have three states:
-
-- GateResult.GRANTED
-- GateResult.DENIED
-- GateResult.CANT_DECIDE
-
-The first two of them are self-explanatory. CANT_DECIDE means that the actual gate neither can grant nor deny the access. If no other gate does return GRANTED or DENIED the access to the resource will be denied for security reasons. CANT-DECIDE comes handy if you declare finaloperations (where no other gate will be called after this gate). If such a gate returns CANT_DECIDE, further gates will be called regardless of the setted finaloperations property.
-
-## Actual state of ResourceAccessSecurity
-By now the implementation is complete for securing access on resource level for CRUD operations. It is not yet ready to allow fine granular access rights on values of a resource. So at the moment the `canReadValue, canUpdateValue, canDeleteValue` and `canCreateValue` on `ResourceAccessGate` methods are ignored.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/resource-editor-screenshot.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/resource-editor-screenshot.png b/content/documentation/bundles/resource-editor-screenshot.png
deleted file mode 100644
index 0cfe87c..0000000
Binary files a/content/documentation/bundles/resource-editor-screenshot.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/resource-editor.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/resource-editor.md b/content/documentation/bundles/resource-editor.md
deleted file mode 100644
index 2c1d155..0000000
--- a/content/documentation/bundles/resource-editor.md
+++ /dev/null
@@ -1,46 +0,0 @@
-title=The Apache Sling Resource Editor		
-type=page
-status=published
-~~~~~~
-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.
-
-![alt text][1]
-
-Features
-========
-Currently it allows to display the node properties and edit nodes.
-
-* Node editing includes adding, renaming and deleting nodes.
-* Multi selection of nodes, Keyboard controls for navigation and shortcuts are provided. Click on the info icon in the tree to get detailed information.
-* The node names are HTML and URL encoded.
-* The add node dialog provides you with the allowed node name / node type / resource type options and its combinations to prevent errors soon. Click on the info icon in the dialog to discover more.
-* The nodes are bookmarkable.
-
-Status
-======
-The features for the node tree are finished so far. Now the work on making properties editable begins.
-
-Installation
-============
-1. Follow the [instructions for Getting and Building Sling][2].
-1. The `contrib/explorers/resourceeditor/README` file in SVN tells you how to install the Resource Editor.
-1. Open `http://localhost:8080/reseditor/.html` in your browser.
-1. Enjoy!
-
-[1]: http://sling.apache.org/documentation/bundles/resource-editor-screenshot.png
-[2]: http://sling.apache.org/documentation/development/getting-and-building-sling.html

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/resource-merger.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/resource-merger.md b/content/documentation/bundles/resource-merger.md
deleted file mode 100644
index 0d4c805..0000000
--- a/content/documentation/bundles/resource-merger.md
+++ /dev/null
@@ -1,146 +0,0 @@
-title=Resource Merger (org.apache.sling.resourcemerger)		
-type=page
-status=published
-~~~~~~
-[TOC]
-
-
-# Introduction
-**This documentation only applies to versions >= 1.2 (due to major changes done in [SLING-3423](https://issues.apache.org/jira/browse/SLING-3423))**
-
-The Resource Merger bundle provides two resource provider factories
-
-* `MergingResourceProvider` (only for reading)
-* `CRUDMergingResourceProvider` (for reading and writing)
-
-Those providers give access to virtual resources which provide a merged view on multiple other resources.
-
-Each `MergedResourcePicker` service implementation in the system provides one unique mount point/root path (usually starting with `/mnt`) exposing a view on merged resources from at least two different locations.
-
-The exact merging mechanism depends on the resource picker implementation (see below). The order of the merging is important as the overlying resource may overwrite properties/child resources from the underlying resource (but not vice-versa).
-It is possible to
-
-* remove existing resource/properties from the underlying resources,
-* modify existing properties/child resources of the underlying resources and
-* add new properties/child resources
-
-You may use any of the merge properties described below to influence the merging behaviour. All those special properties are not exposed below the mount point.
-
-The `CRUDMergingResourceProvider` not only gives read-access to the merged resources but even allows to write. This provider always writes inside the topmost resource path (being returned as last item by the resource picker). Currently both resource pickers shipped with the Sling Resource Merger bundle do not allow to write though. Further details can be found in the description of [SLING-3909](https://issues.apache.org/jira/browse/SLING-3909).
-
-
-# Merge Properties
-
-Property Name | Type | Description
-------------- | ---- | ---------
-sling:hideProperties | String[] | Hides the properties with the given names. `*` hides all properties (since version 1.3.2 the wildcard only affects underlying properties and no longer local ones, see also [SLING-5468](https://issues.apache.org/jira/browse/SLING-5468)).
-sling:hideChildren| String[] | Hides the child resources with the given names. `*` hides all child resources (since version 1.3.2 the wildcard only affects underlying child resources and no longer local ones, see also [SLING-5468](https://issues.apache.org/jira/browse/SLING-5468)). If one value starts with `!` this is a negation (which means the property with the given value should not be hidden). Since by default nothing is hidden the negation is only useful if you specify multiple values for this property. E.g. giving the values `[!child1,*]` hides all children except for the one with the name `child1`. If you have a resource name starting with `!` you must escape it with an additional `!` in front if you want to reference it in `sling:hideChildren`, e.g. `!!child1` means that the resource with the name `!child1` should be hidden.
-sling:hideResource | Boolean | If `true` then the resource with the name which contains this property should not be exposed!
-sling:orderBefore | String | Contains the name of the preceeding sibling resource. This is influencing the order of resources when calling e.g. `Resource.listChildren()` or `Resource.getChildren()` on the merged resource. This is only necessary if the default resource order is not sufficient (see below).
-
-# Child Resource Order
-
-For a merged resource the order of its child resources is the following:
-First the ones from the base resource, then the ones from the overlaying resources. The children only defined by the topmost resource come last.
-
-In case the same child is defined in more than one resource, its position is taken from the highest overlaying resource (since version 1.3.2, see also [SLING-4915](https://issues.apache.org/jira/browse/SLING-4915)).
-For example:
-
-base/
-+--child1
-+--child2
-+--child3
-
-overlay/
-+--child4
-+--child2
-+--child3
-
-resulting order: child1, child4, child2, child3
-
-You can overwrite that behaviour by leveraging the `sling:orderBefore` property.
-
-# Resource Pickers
-
-## Merging Resource Picker (Overlay approach)
-
-Description | Merged Resource Path | Merging Order | Read-Only | Related Ticket
------------- | -------------------- | ------------- | --------- | ---------------
-Merging based on the resource resolver's search path | `/mnt/overlay/<relative resource path>` | Last resource resolver search path first (Order = Descending search paths). | `true` |  [SLING-2986](http://issues.apache.org/jira/browse/SLING-2986)
-
-This picker is thought for globally overlaying content by placing the diff-resource in "/apps" without actually touching anything in "/libs" (since this is only thought for Sling itself). This should be used whenever some deviation of content is desired which is initially shipped with Sling. The client (i.e. the code using the merged resource) does not have to know if there is an overlay in place.
-
-
-### Example
-
-/libs/sling/example (nt:folder)
-+-- sling:resourceType = "some/resource/type"
-+-- child1 (nt:folder)
-|   +-- property1 = "property from /libs/sling/example/child1"
-+-- child2 (nt:folder)
-|   +-- property1 = "property from /libs/sling/example/child2"
-+-- child3 (nt:folder)
-|   +-- property1 = "property from /libs/sling/example/child3"
-
-
-/apps/sling/example (sling:Folder)
-+-- property1 = "property added in apps"
-+-- child1 (nt:folder)
-|   +-- sling:hideResource = true
-+-- child2 (nt:folder)
-|   +-- property1 = "property from /apps/sling/example/child2"
-+-- child3 (nt:folder)
-|   +-- property2 = "property from /apps/sling/example/child3"
-
-
-/mnt/overlay/sling/example (sling:Folder)
-+-- sling:resourceType = "some/resource/type"
-+-- property1 = "property added in apps"
-+-- child2 (nt:folder)
-|   +-- property1 = "property from /apps/sling/example/child2"
-+-- child3 (nt:folder)
-|   +-- property1 = "property from /libs/sling/example/child3"
-|   +-- property2 = "property from /apps/sling/example/child3"
-
-
-
-## Overriding Resource Picker (Override approach)
-
-Description | Merged Resource Path | Merging Order | Read-Only | Related Ticket
------------ | -------------------- | ------------- | --------- | --------------
-Merging based on the `sling:resourceSuperType` | `/mnt/override/<absolute resource type>` | The topmost resource type (having itself no `sling:resourceSuperType` defined) is the base. The resources are overlaid in the order from the most generic one to the most specific one (which is the one having the most inheritance levels). | `true` | [SLING-3675](https://issues.apache.org/jira/browse/SLING-3657)
-
-This picker is thought for extending content of another already existing resource (which should not be modified). The client (i.e. the code using the merged resource) must directly reference the most specific resource type (i.e. it must be aware of the sub resource type).
-
-### Example
-
-/apps/sling/base (nt:folder)
-+-- child1 (nt:folder)
-|   +-- property1 = "property from /libs/sling/example/child1"
-+-- child2 (nt:folder)
-|   +-- property1 = "property from /libs/sling/example/child2"
-+-- child3 (nt:folder)
-|   +-- property1 = "property from /libs/sling/example/child3"
-
-
-/apps/sling/example (sling:Folder)
-+-- sling:resourceSuperType = "/apps/sling/base"
-+-- property1 = "property added in /apps/sling/example"
-+-- child1 (nt:folder)
-|   +-- sling:hideResource = true
-+-- child2 (nt:folder)
-|   +-- property1 = "property from /apps/sling/example/child2"
-+-- child3 (nt:folder)
-|   +-- property2 = "property from /apps/sling/example/child3"
-
-
-/mnt/override/apps/sling/example (sling:Folder)
-+-- sling:resourceSuperType = "/apps/sling/base"
-+-- property1 = "property added in /apps/sling/example"
-+-- child2 (nt:folder)
-|   +-- property1 = "property from /apps/sling/example/child2"
-+-- child3 (nt:folder)
-|   +-- property1 = "property from /libs/sling/example/child3"
-|   +-- property2 = "property from /apps/sling/example/child3"
-
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scheduler-service-commons-scheduler.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scheduler-service-commons-scheduler.md b/content/documentation/bundles/scheduler-service-commons-scheduler.md
deleted file mode 100644
index 4755f05..0000000
--- a/content/documentation/bundles/scheduler-service-commons-scheduler.md
+++ /dev/null
@@ -1,236 +0,0 @@
-title=Scheduler Service (commons scheduler)		
-type=page
-status=published
-~~~~~~
-
-The scheduler is a service for scheduling other services/jobs (it uses the open source Quartz library). The scheduler can be used in two ways, by registering the job through the scheduler API and by leveraging the whiteboard pattern that is supported by the scheduler. In most cases the whiteboard pattern is preferred
-
-<div class="note">
-The notion of Job used in this context is a different one than the one used for <a href="/documentation/bundles/apache-sling-eventing-and-job-handling.html">Sling Jobs</a>. The main difference is that a scheduler's job is not persisted.
-</div>
-
-## Examples of jobs that are scheduled by leveraging the whiteboard pattern
-
-The following examples show you how to define and schedule a job by leveraging the whiteboard pattern.
-
-### Scheduling with a cron expression
-
-The following job is executed every minute by setting *scheduler.expression* to the cron expression *"0 * * * * ?"*:
-
-
-package sling.docu.examples;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
-import org.apache.felix.scr.annotations.Property;
-
-@Component
-@Service(value = Runnable.class)
-@Property( name = "scheduler.expression", value = "0 * * * * ?")
-public class ScheduledCronJob implements Runnable {
-
-/** Default log. */
-protected final Logger log = LoggerFactory.getLogger(this.getClass());
-
-public void run() {
-log.info("Executing a cron job (job#1) through the whiteboard pattern");
-}
-//
-}
-
-
-### Scheduling at periodic times
-
-The following job is executed every ten seconds by setting *scheduler.period* to *10*:
-
-
-package sling.docu.examples;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
-import org.apache.felix.scr.annotations.Property;
-
-@Component
-@Service(value = Runnable.class)
-@Property( name = "scheduler.period", longValue = 10)
-public class ScheduledPeriodicJob implements Runnable {
-
-/** Default log. */
-protected final Logger log = LoggerFactory.getLogger(this.getClass());
-
-public void run() {
-log.info("Executing a perodic job (job#2) through the whiteboard pattern");
-}
-//
-}
-
-
-### Preventing concurrent execution
-
-By default, jobs can be concurrently executed. To prevent this, set the *scheduler.concurrent* property to *false*:
-
-
-@Property(name="scheduler.concurrent", boolValue=false)
-
-### Scheduling the job just once in a cluster
-
-If the same code/same services is executed on multiple nodes within a cluster, the same job might be scheduled on each instance. If this is not desired, the job can either be bound to the leader of the topology or a single instance (which one this is, is not further defined):
-
-@Property(name="scheduler.runOn", value="LEADER");
-
-or
-
-@Property(name="scheduler.runOn", value="SINGLE");
-
-Since in contrast to [Sling Jobs](/documentation/bundles/apache-sling-eventing-and-job-handling.html) the scheduler queue is only held in memory, there will be no distribution of jobs. So if job '1' was scheduled on instance 'a' with the option to run on the leader only, but the leader is instance 'b', which hasn't the job in the queue, the job will never be executed by any instance!
-
-## The Scheduler API
-
-The scheduler has methods to execute jobs periodically, based on a cron expression or at a given time. For more details please refer to the [javadocs](http://sling.apache.org/apidocs/sling6/org/apache/sling/commons/scheduler/Scheduler.html).
-
-## Examples of scheduled jobs registered through the scheduler API
-
-The following examples show you how to define and schedule a job that is registered through the scheduler api.
-
-### Defining the job
-
-The following code sample defines a *job* object that writes a message in the logs:
-
-
-final Runnable job = new Runnable() {
-public void run() {
-log.info("Executing the job");
-}
-};
-
-
-### Scheduling with a cron expression
-
-To execute the job as defined above at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday, you can use the *addJob()* method with the following parameters:
-
-
-String schedulingExpression = "0 15 10 ? * MON-FRI";
-this.scheduler.addJob("myJob", job, null, schedulingExpression, true);
-
-
-Refer to http://www.docjar.com/docs/api/org/quartz/CronTrigger.html
-to define more scheduling expressions.
-
-### Scheduling at periodic times
-
-To execute the job as defined above every 3 minutes (180 seconds), you can use the *addPeriodicJob()* method with the following parameters:
-
-
-long period = 3*60; //the period is expressed in seconds
-this.scheduler.addPeriodicJob("myJob", job, null, period, true);
-
-
-### Scheduling at a given time
-
-To execute the job as defined above at a specific date (on January 10th 2020), you can use the *fireJobAt()* method with the following parameters:
-
-
-SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
-String date = "2020/01/10";
-java.util.Date fireDate = formatter.parse(date);
-this.scheduler.fireJobAt("myJob", job, null, fireDate);
-
-
-
-### A service scheduling the job based on 3 different kinds of scheduling
-
-The code implementing a service that simultaneously executes the job based on 3 different kinds of scheduling can look as follows:
-
-
-package sling.docu.examples;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.sling.commons.scheduler.Scheduler;
-import org.osgi.service.component.ComponentContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-
-/**
-*  This service executes scheduled jobs
-*
-*/
-@Component
-public class HelloWorldScheduledService {
-
-/** Default log. */
-protected final Logger log = LoggerFactory.getLogger(this.getClass());
-
-/** The scheduler for rescheduling jobs. */
-@Reference
-private Scheduler scheduler;
-
-
-protected void activate(ComponentContext componentContext) throws Exception {
-//case 1: with addJob() method: executes the job every minute
-String schedulingExpression = "0 * * * * ?";
-String jobName1 = "case1";
-Map<String, Serializable> config1 = new HashMap<String, Serializable>();
-boolean canRunConcurrently = true;
-final Runnable job1 = new Runnable() {
-public void run() {
-log.info("Executing job1");
-}
-};
-try {
-this.scheduler.addJob(jobName1, job1, config1, schedulingExpression, canRunConcurrently);
-} catch (Exception e) {
-job1.run();
-}
-
-//case 2: with addPeriodicJob(): executes the job every 3 minutes
-String jobName2 = "case2";
-long period = 180;
-Map<String, Serializable> config2 = new HashMap<String, Serializable>();
-final Runnable job2 = new Runnable() {
-public void run() {
-log.info("Executing job2");
-}
-};
-try {
-this.scheduler.addPeriodicJob(jobName2, job2, config2, period, canRunConcurrently);
-} catch (Exception e) {
-job2.run();
-}
-
-//case 3: with fireJobAt(): executes the job at a specific date (date of deployment + delay of 30 seconds)
-String jobName3 = "case3";
-final long delay = 30*1000;
-final Date fireDate = new Date();
-fireDate.setTime(System.currentTimeMillis() + delay);
-Map<String, Serializable> config3 = new HashMap<String, Serializable>();
-final Runnable job3 = new Runnable() {
-public void run() {
-log.info("Executing job3 at date: {} with a delay of: {} seconds", fireDate, delay/1000);
-}
-};
-try {
-this.scheduler.fireJobAt(jobName3, job3, config3, fireDate);
-} catch (Exception e) {
-job3.run();
-}
-}
-
-protected void deactivate(ComponentContext componentContext) {
-log.info("Deactivated, goodbye!");
-}
-
-}
-
-
-
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scripting.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scripting.md b/content/documentation/bundles/scripting.md
deleted file mode 100644
index 44530c0..0000000
--- a/content/documentation/bundles/scripting.md
+++ /dev/null
@@ -1,26 +0,0 @@
-title=Sling Scripting		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-Sling Scripting allows the easy development and usage of different scripting (aka templating) engines.
-
-# Sling Scripting Engines
-
-* Freemarker *
-* Groovy *
-* [HTL](/documentation/bundles/scripting/scripting-htl.html)
-* Java *
-* Javascript
-* [JSP](/documentation/bundles/scripting/scripting-jsp.html)
-* JST *
-* Python *
-* Ruby *
-* Scala *
-* [Thymeleaf](/documentation/bundles/scripting/scripting-thymeleaf.html) *
-* Velocity *
-* XProc *
-
-* in contrib

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scripting/Scripting-Thymeleaf-Class-Diagram.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scripting/Scripting-Thymeleaf-Class-Diagram.png b/content/documentation/bundles/scripting/Scripting-Thymeleaf-Class-Diagram.png
deleted file mode 100644
index 033bc39..0000000
Binary files a/content/documentation/bundles/scripting/Scripting-Thymeleaf-Class-Diagram.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scripting/Scripting-Thymeleaf-Pattern-TemplateModeProvider.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scripting/Scripting-Thymeleaf-Pattern-TemplateModeProvider.png b/content/documentation/bundles/scripting/Scripting-Thymeleaf-Pattern-TemplateModeProvider.png
deleted file mode 100644
index 6585ab5..0000000
Binary files a/content/documentation/bundles/scripting/Scripting-Thymeleaf-Pattern-TemplateModeProvider.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scripting/Scripting-Thymeleaf-ResourceBundle-MessageResolver.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scripting/Scripting-Thymeleaf-ResourceBundle-MessageResolver.png b/content/documentation/bundles/scripting/Scripting-Thymeleaf-ResourceBundle-MessageResolver.png
deleted file mode 100644
index 97686c1..0000000
Binary files a/content/documentation/bundles/scripting/Scripting-Thymeleaf-ResourceBundle-MessageResolver.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scripting/Scripting-Thymeleaf-ScriptEngineFactory.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scripting/Scripting-Thymeleaf-ScriptEngineFactory.png b/content/documentation/bundles/scripting/Scripting-Thymeleaf-ScriptEngineFactory.png
deleted file mode 100644
index b11e5a4..0000000
Binary files a/content/documentation/bundles/scripting/Scripting-Thymeleaf-ScriptEngineFactory.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scripting/Scripting-Thymeleaf-Sling-Resource-TemplateResolver.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scripting/Scripting-Thymeleaf-Sling-Resource-TemplateResolver.png b/content/documentation/bundles/scripting/Scripting-Thymeleaf-Sling-Resource-TemplateResolver.png
deleted file mode 100644
index 59381ca..0000000
Binary files a/content/documentation/bundles/scripting/Scripting-Thymeleaf-Sling-Resource-TemplateResolver.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scripting/scripting-htl.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scripting/scripting-htl.md b/content/documentation/bundles/scripting/scripting-htl.md
deleted file mode 100644
index 2677a67..0000000
--- a/content/documentation/bundles/scripting/scripting-htl.md
+++ /dev/null
@@ -1,462 +0,0 @@
-title=HTL Scripting Engine		
-type=page
-status=published
-~~~~~~
-
-The Apache Sling HTL Scripting Engine, [formerly known as Sightly](https://issues.apache.org/jira/browse/SLING-6028), is the reference implementation of the [HTML Template Language](https://github.com/Adobe-Marketing-Cloud/htl-spec).
-
-[TOC]
-
-# Modules
-
-The Sling implementation is comprised of the following modules:
-
-1. [`org.apache.sling.scripting.sightly.compiler`](https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/compiler) - provides support for compiling HTML Template Language scripts into an Abstract Syntax Tree
-2. [`org.apache.sling.scripting.sightly.compiler.java`](https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/java-compiler) - provides support for transpiling the Abstract Syntax Tree produced by the `org.apache.sling.scripting.sightly.compiler` module into Java source code
-3. [`org.apache.sling.scripting.sightly`](https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/engine) - the HTL Scripting Engine bundle
-4. [`org.apache.sling.scripting.sightly.js.provider`](https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/js-use-provider) - the HTL JavaScript Use Provider, implementing support for the `use` JavaScript function
-5. [`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
-6. [`org.apache.sling.scripting.sightly.repl`](https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/repl) - HTL Read-Eval-Print Loop Environment (REPL), useful for quickly prototyping scripts
-7. [`htl-maven-plugin`](https://github.com/apache/sling/tree/trunk/tooling/maven/htl-maven-plugin) - M2Eclipse compatible HTL Maven Plugin that provides support for validating HTML Template Language scripts from projects during build time
-
-# The Use-API
-
-The [HTML Template Language Specification](https://github.com/Adobe-Marketing-Cloud/htl-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 HTL 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 HTL 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 [`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 HTL installation provides the following Use Providers, in the order of their priority (the higher the service ranking value, the higher the priority):
-
-|Service Ranking  | Use Provider    | Bundle                 | Functionality     |Observations|
-|--------------     |--------------   |-----------------  |---------------    |----------- |
-|100|[`RenderUnitProvider`](https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java)|`org.apache.sling.scripting.sightly`|support for loading HTL templates through `data-sly-use`||
-|95|[`SlingModelsUseProvider`](https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java)|`org.apache.sling.scripting.sightly.models.provider`|support for loading [Sling Models](https://sling.apache.org/documentation/bundles/models.html)||
-|90|[`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)|`org.apache.sling.scripting.sightly`|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>|The POJOs can be exported by bundles or can be backed by `Resources`. In the latter case the POJOs' package names should correspond to the backing resource's path; invalid Java characters which are valid path elements should be replaced by an underscore - `_`.|
-|80|[`JsUseProvider`](https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java)|`org.apache.sling.scripting.sightly.js.provider`|support for loading objects defined through the JavaScript `use` function|The `org.apache.sling.scripting.sightly.js.provider` also provides a trimmed down [asynchronous implementation](https://github.com/apache/sling/tree/trunk/bundles/scripting/sightly/js-use-provider/src/main/resources/SLING-INF/libs/sling/sightly/js) of the `Resource` API. However this was deprecated in [SLING-4964](https://issues.apache.org/jira/browse/SLING-4964) (version 1.0.8 of the bundle) in favour of the synchronous API provided by the `org.apache.sling.scripting.javascript` bundle.|
-|0  |[`ScriptUseProvider`](https://github.com/apache/sling/blob/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java)|`org.apache.sling.scripting.sightly`|support for loading objects returned by scripts interpreted by other Script Engines available on the platform||
-
-The `service.ranking` value of each Use Provider is configurable, allowing for fine tuning of the order in which the providers are queried when `data-sly-use` is called. However, in order to not affect core functionality the `RenderUnitProvider` should always have the highest ranking. If you need to configure the providers' service ranking head over to the configuration console at [http://localhost:8080/system/console/configMgr](http://localhost:8080/system/console/configMgr).
-
-### Global Objects
-
-The following global objects are available to all Use objects, either as a request attribute or as a property made available in the `javax.script.Bindings` map or attached to the `this` context of the `use` function:
-
-currentNode         // javax.jcr.Node
-currentSession      // javax.jcr.Session
-log                 // org.slf4j.Logger
-out                 // java.io.PrintWriter
-properties          // org.apache.sling.api.resource.ValueMap
-reader              // java.io.BufferedReader
-request             // org.apache.sling.api.SlingHttpServletRequest
-resolver            // org.apache.sling.api.resource.ResourceResolver
-resource            // org.apache.sling.api.resource.Resource
-response            // org.apache.sling.api.SlingHttpServletResponse
-sling               // org.apache.sling.api.scripting.SlingScriptHelper
-
-
-### Sling Models Use Provider
-Loading a Sling Model can be done with the following code:
-
-<div data-sly-use.model3="org.example.models.Model3">
-${model3.shine}
-</div>
-
-Depending on the implementation the above code would either load the implementation with the highest service ranking of `Model3` if `org.example.models.Model3` is an interface, or would load the model `org.example.models.Model3` if this is a concrete implementation.
-
-It's important to note that this use provider will only load models that are adaptable from `SlingHttpServletRequest` or `Resource`.
-
-#### Passing parameters
-
-Passed parameters will be made available to the Sling Model as request attributes. Assuming the following markup:
-
-<div data-sly-use.model3="${'org.example.models.Model3' @ colour='red', path=resource.path}">
-${model3.shine}
-</div>
-
-the model would retrieve the parameters using the following constructs:
-
-@Model(adaptables=SlingHttpServletRequest.class)
-public class Model3 {
-
-@Inject
-private String colour;
-
-@Inject
-private String path;
-}
-
-### Java Use Provider
-The Java Use Provider can be used to load OSGi services, objects exported by bundles or backed by a `Resource`.
-
-
-#### Resource-backed Java classes
-When objects are backed by `Resources` the Java Use Provider will automatically handle the compilation of these classes. The classes' package names should correspond to the path of the backing resource, making sure to replace illegal Java characters with underscores - `_`.
-
-**Example:**
-Assuming the following content structure:
-
-└── apps
-└── my-project
-└── components
-└── page
-├── PageBean.java
-└── page.html
-
-`page.html` could load `PageBean` either like:
-
-<!DOCTYPE html>
-<html data-sly-use.page="apps.my_project.components.page.PageBean">
-...
-</html>
-
-or like:
-
-<!DOCTYPE html>
-<html data-sly-use.page="PageBean">
-...
-</html>
-
-The advantage of loading a bean using just the simple class name (e.g. `data-sly-use.page="PageBean"`) is that an inheriting component can overlay the `PageBean.java` file and provide a different logic. In this case the package name of the `PageBean` class will automatically be derived from the calling script's parent path (e.g. `apps.my_project.components.page`) - the bean doesn't even have to specify it. However, keep in mind that loading a bean this way is slower than providing the fully qualified class name, since the provider has to check if there is a backing resource. At the same time, loading an object using its fully qualified class name will not allow overriding it by inheriting components.
-
-#### Passing parameters
-Passed parameters will be made available to the Use object as request attributes and, if the object implements 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, through the `javax.script.Bindings` passed to the `init` method. Assuming the following markup:
-
-<div data-sly-use.useObject="${'org.example.use.MyUseObject' @ colour='red', year=2016}">
-${useObject.shine}
-</div>
-
-the object implementing `Use` would be able to retrieve the parameters using the following constructs:
-
-package org.example.use.MyUseObject;
-
-import javax.script.Bindings;
-
-import org.apache.sling.commons.osgi.PropertiesUtil;
-import org.apache.sling.scripting.sightly.pojo.Use;
-
-public class MyUseObject implements Use {
-
-private String colour;
-private Integer year;
-
-public void init(Bindings bindings) {
-colour = PropertiesUtil.toString(bindings.get("colour"), "");
-year = PropertiesUtil.toInteger(bindings.get("year"), Calendar.getInstance().get(Calendar.YEAR));
-}
-}
-
-or, if the object is adaptable from a `SlingHttpServletRequest`, through its `AdapterFactory`:
-
-package org.example.use;
-
-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;
-
-@Component
-@Service
-@Properties({
-@Property(
-name = AdapterFactory.ADAPTABLE_CLASSES,
-value = {
-"org.apache.sling.api.SlingHttpServletRequest"
-}
-),
-@Property(
-name = AdapterFactory.ADAPTER_CLASSES,
-value = {
-"org.example.use.MyUseObject"
-}
-)
-})
-public class RequestAdapterFactory implements AdapterFactory {
-
-@Override
-public <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type) {
-if (type == MyUseObject.class && adaptable instanceof SlingHttpServletRequest) {
-SlingHttpServletRequest request = (SlingHttpServletRequest) adaptable;
-String colour = PropertiesUtil.toString(request.getAttribute("colour"), "");
-Integer year = PropertiesUtil.toInteger(request.getAttribute("year"), Calendar.getInstance().get(Calendar.YEAR));
-/*
-* for the sake of this example we assume that MyUseObject has this constructor
-*/
-return (AdapterType) new MyUseObject(colour, year);
-}
-return null;
-}
-}
-
-### JavaScript Use Provider
-The JavaScript Use Provider allows loading objects created through the `use` function, by evaluating scripts passed to `data-sly-use`. The JavaScript files are evaluated server-side by the [Rhino](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino) scripting engine, through the `org.apache.sling.scripting.javascript` implementation bundle. This allows you to mix JavaScript API with the Java API exported by the platform. For more details about how you can access Java APIs from within JavaScript please check the [Rhino Java Scripting guide](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino/Scripting_Java#Accessing_Java_Packages_and_Classes).
-
-**Example:**
-Assuming the following content structure:
-
-└── apps
-└── my-project
-└── components
-└── page
-├── page.html
-└── page.js
-
-`page.html` could load `page.js` either like:
-
-<!DOCTYPE html>
-<html data-sly-use.page="/apps/my-project/components/page/page.js">
-...
-</html>
-
-or like:
-
-<!DOCTYPE html>
-<html data-sly-use.page="page.js">
-...
-</html>
-
-Similar to the Java Use Provider, loading the script using a relative path allows inheriting components to overlay just the Use script, without having to also overlay the calling HTL script.
-
-#### Global Objects
-Besides the global objects available to all Use Providers, the JavaScript Use Provider also provides the following global objects available in the context of the `use` function:
-
-console         // basic wrapper on top of log, but without formatting / throwable support
-exports         // basic Java implementation of CommonJS - http://requirejs.org/docs/commonjs.html
-module          // basic Java implementation of CommonJS - http://requirejs.org/docs/commonjs.html
-setImmediate    // Java implementation of the Node.js setImmediate function
-setTimeout      // Java implementation of the Node.js setTimeout function
-sightly         // the namespace object under which the asynchronous Resource-API implemented by
-// org.apache.sling.scripting.sightly.js.provider is made available to consumers
-use             // the use function
-
-With the exception of the `console` and `use` objects, all the other global objects implemented by the JavaScript Use Provider are present in order to support the asynchronous Resource-API implemented by `org.apache.sling.scripting.sightly.js.provider`. However, this was deprecated starting with version 1.0.8 - see [SLING-4964](https://issues.apache.org/jira/browse/SLING-4964).
-
-#### Passing parameters
-Passed parameters will be made available to the Use object as properties of `this`. Assuming the following markup:
-
-<div data-sly-use.logic="${'logic.js' @ colour='red', year=2017}">
-My colour is ${logic.colour ? logic.colour : 'not important'} and I'm from ${logic.year}
-</div>
-
-the object would be able to access the parameters like:
-
-use(function() {
-'use strict';
-
-var colour = this.colour || '';
-var year = this.year || new Date().getFullYear();
-
-return {
-colour: colour,
-year: year
-}
-});
-
-#### Caveats
-
-Since these scripts are evaluated server-side, by compiling JavaScript to Java, you need to pay attention when comparing primitive objects using the strict equal operator (`===`) since comparisons between JavaScript and Java objects with the same apparent value will return `false` (this also applies to the strict not-equal operator - `!==`).
-
-Assuming the following HTL script:
-
-<ol data-sly-use.obj="logic.js" data-sly-list="${obj}">
-<li>
-Code <code>${item.code}</code> evaluates to <code>${item.result}</code>
-</li>
-</ol>
-
-and the following JavaScript file:
-
-use(function() {
-
-return [
-{
-code: 'new java.lang.String("apples") === "apples"',
-result: new java.lang.String("apples") === "apples"
-},
-{
-code: 'new java.lang.String("apples") == "apples"',
-result: new java.lang.String("apples") == "apples"
-},
-{
-code: 'new java.lang.String("apples") !== "apples"',
-result: new java.lang.String("apples") !== "apples"
-},
-{
-code: 'new java.lang.String("apples") != "apples"',
-result: new java.lang.String("apples") != "apples"
-},
-{
-code: 'new java.lang.Integer(1) === 1',
-result: new java.lang.Integer(1) === 1
-},
-{
-code: 'new java.lang.Integer(1) == 1',
-result: new java.lang.Integer(1) == 1
-},
-{
-code: 'new java.lang.Integer(1) !== 1',
-result: new java.lang.Integer(1) !== 1
-},
-{
-code: 'new java.lang.Integer(1) != 1',
-result: new java.lang.Integer(1) != 1
-},
-{
-code: 'java.lang.Boolean.TRUE === true',
-result: java.lang.Boolean.TRUE === true
-},
-{
-code: 'java.lang.Boolean.TRUE == true',
-result: java.lang.Boolean.TRUE == true
-},
-{
-code: 'java.lang.Boolean.TRUE !== true',
-result: java.lang.Boolean.TRUE !== true
-},
-{
-code: 'java.lang.Boolean.TRUE != true',
-result: java.lang.Boolean.TRUE != true
-}
-];
-});
-
-the output would be:
-
-1. Code new java.lang.String("apples") === "apples" evaluates to false
-2. Code new java.lang.String("apples") == "apples" evaluates to true
-3. Code new java.lang.String("apples") !== "apples" evaluates to true
-4. Code new java.lang.String("apples") != "apples" evaluates to false
-5. Code new java.lang.Integer(1) === 1 evaluates to false
-6. Code new java.lang.Integer(1) == 1 evaluates to true
-7. Code new java.lang.Integer(1) !== 1 evaluates to true
-8. Code new java.lang.Integer(1) != 1 evaluates to false
-9. Code java.lang.Boolean.TRUE === true evaluates to false
-10. Code java.lang.Boolean.TRUE == true evaluates to true
-11. Code java.lang.Boolean.TRUE !== true evaluates to true
-12. Code java.lang.Boolean.TRUE != true evaluates to false
-
-Evaluations of Java objects in JavaScript constructs where the operand is automatically type coerced will work, but Rhino might complain about the Java objects not correctly calling the Rhino helper function `Context.javaToJS()`. In order to avoid these warnings it's better to explicitly perform your comparisons like in the following example:
-
-if (myObject) {
-...
-}
-// should be replaced by
-if (myObject != null) {
-...
-}
-
-myObject ? 'this' : 'that'
-//should be replaced by
-myObject != null ? 'this' : 'that'
-
-
-### Script Use Provider
-The Script Use Provider allows loading objects evaluated by other script engines available on the platform. The same loading considerations as for the Java and JavaScript Use Providers apply.
-
-### Picking the best Use Provider for a project
-The following table summarises the pros and cons for each Use Provider, with the obvious exception of the Render Unit Use Provider.
-
-<table>
-<tr>
-<th>Use Provider</th>
-<th>Advantages</th>
-<th>Disadvantages</th>
-</tr>
-<tr>
-<td>Sling Models Use Provider</td>
-<td><ul><li>convenient injection annotations for data retrieval</li><li>easy to extend from other Sling Models</li><li>simple setup for unit testing</li></ul></td>
-<td><ul><li>lacks flexibility in terms of component overlaying, relying on <code>service.ranking</code> configurations; this was solved for Sling Models 1.3.0 by <a href="https://issues.apache.org/jira/browse/SLING-5992">SLING-5992</a></li></ul></td>
-</tr>
-<tr>
-<td>Java Use Provider</td>
-<td>
-<p>Use-objects provided through bundles:</p>
-<ul>
-<li>faster to initialise and execute than Sling Models for similar code</li>
-<li>easy to extend from other similar Use-objects</li>
-<li>simple setup for unit testing</li>
-</ul>
-<p>Use-objects backed by <code>Resources</code>:</p>
-<ul>
-<li>faster to initialise and execute than Sling Models for similar code</li>
-<li>easy to override from inheriting components through search path overlay or by using the <code>sling:resourceSuperType</code> property, allowing for greater flexibility</li>
-<li>business logic for components sits next to the HTL scripts where the objects are used</li>
-</ul>
-</td>
-<td>
-<p>Use-objects provided through bundles:</p>
-<ul>
-<li>lacks flexibility in terms of component overlaying</li>
-</ul>
-
-<p>Use-objects backed by <code>Resources</code>:</p>
-<ul>
-<li>cannot extend other Java objects</li>
-<li>the Java project might need a different setup to allow running unit tests, since the objects will be deployed like content</li>
-</ul>
-</td>
-</tr>
-<tr>
-<td>JavaScript Use Provider</td>
-<td>
-<ul>
-<li>allows JavaScript developers to develop component logic</li>
-<li>can be reused through the dependency mechanism provided by the <code>use</code> function</li>
-</ul>
-</td>
-<td>
-<ul>
-<li>harder to test and debug, relying mostly on end-to-end testing and console logging</li>
-<li>slower to execute than both Sling Models and Java Use-API objects</li>
-</ul>
-</td>
-</tr>
-<tr>
-<td>Script Use Provider</td>
-<td>
-<ul>
-<li>allows the usage of Use objects evaluated by other Script Engines available in the platform</li>
-</ul>
-</td>
-<td>
-<ul>
-<li>like in the case of the JavaScript Use Provider, the performance is influenced by the Script Engine's implementation</li>
-</ul>
-</td>
-</tr>
-</table>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scripting/scripting-jsp.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scripting/scripting-jsp.md b/content/documentation/bundles/scripting/scripting-jsp.md
deleted file mode 100644
index 5c5bc93..0000000
--- a/content/documentation/bundles/scripting/scripting-jsp.md
+++ /dev/null
@@ -1,344 +0,0 @@
-title=JSP Scripting Engine		
-type=page
-status=published
-~~~~~~
-
-The Apache Sling JSP Scripting Engine is implemented by the [`org.apache.sling.scripting.jsp`](https://github.com/apache/sling/tree/trunk/bundles/scripting/jsp)
-bundle, based on the Jasper 2 JSP engine.
-
-On top of that Apache Sling also provides its own JSP Taglib, implemented by the
-[`org.apache.sling.scripting.jsp.taglib`](https://github.com/apache/sling/tree/trunk/bundles/scripting/jsp-taglib) bundle.
-
-The Sling Scripting JSP Taglib supports the use of Sling as an application in JSP pages.  The Sling Taglib provides the
-ability to invoke JSP scripts, include Resources and interact with the Sling Repository, all with JSP tags and
-[Expression Language (EL)](http://docs.oracle.com/javaee/6/tutorial/doc/gjddd.html) functions.
-
-## Use
-
-Using the Sling Taglib in a JSP page is as simple as including the Taglib include in your JSP, with the correct URI for the
-version of the Sling Taglib installed.
-
-<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling" %>
-
-Generally, the prefix to use is `sling`.  Often applications include a global JSP file which includes the Sling Taglib
-and sets up all of the application variables and methods.
-
-The Sling Taglib does not attempt to reproduce the functionality of other Tag Libraries, such as
-[JSTL](http://www.oracle.com/technetwork/java/index-jsp-135995.html); additional Tag Libraries may be required to fully leverage
-the Sling Taglib.
-
-## Taglib Versions
-
-There have been a number of releases of the Sling Taglibs, including versions with different URIs.
-
-| Taglib Version | Bundle Version | URI |
-|--|--|--|
-| 1.0 | 2.0.6 | http://sling.apache.org/taglibs/sling/1.0 |
-| 1.1 | 2.1.0 | http://sling.apache.org/taglibs/sling/1.1 |
-| 1.2 | 2.1.8 | http://sling.apache.org/taglibs/sling/1.2 |
-| 1.3 | 2.2.0 | http://sling.apache.org/taglibs/sling |
-
-All releases from 1.3 onward are expected to use the URI `http://sling.apache.org/taglibs/sling` to ensure ease of
-upgrading to newer versions of the Taglib.
-
-## Expression Language Functions
-
-The Sling Taglib includes a number of Expression Language Functions which can be used to access the repository.
-
-### adaptTo
-
-Adapts an Adaptable to another class.
-
-* Returns: `java.lang.Object`
-* Accepts:
-* `org.apache.sling.api.adapter.Adaptable` - The object to adapt
-* `java.lang.String` - The name of the class to which to adapt the adaptable
-* Since: 1.3
-
-*Example Usage*
-
-<c:set var="myProperties" value="${sling:adaptTo(resource,'org.apache.sling.api.resource.ValueMap')}" />
-
-### encode
-
-Writes properly Cross Site Scripting (XSS) encoded text to the response using the OWASP ESAPI.   Supports a number of encoding modes.
-
-* Returns: `java.util.String` - An encoded text
-* Accepts:
-* `java.lang.String` - The text to encode
-* `java.lang.String` - The encoding mode, one of HTML, HTML_ATTR, XML, XML_ATTR, JS
-* Since: 1.4
-
-*Example Usage*
-
-${sling:encode('<script>alert("Bad Stuff!");</script>','HTML')}
-
-### findResources
-
-Searches for resources using the given query formulated in the given language.
-
-* Returns: `java.util.Iterator` - An Iterator of Resource objects matching the query.
-* Accepts:
-* `org.apache.sling.api.resource.ResourceResolver` - The Resource Resolver to use for the query.
-* `java.lang.String` - The query string to use to find the resources.
-* `java.lang.String` - The language in which the query is formulated.
-* Since: 1.3
-
-*Example Usage*
-
-<c:forEach var="found" items="${sling:findResources(resourceResolver,'/jcr:root//*[jcr:contains(., 'Sling')] order by @jcr:score','xpath')">
-<li>${found.path}</li>
-</c:forEach>
-
-### getRelativeResource
-
-Gets the resource at the relative path to the provided resource.
-
-* Returns: `org.apache.sling.api.resource.Resource` - The resource at the relative path.
-* Accepts:
-* `org.apache.sling.api.resource.Resource` - The resource relative to which to find the path.
-* `java.lang.String` - The relative path at which to find the resource.
-* Since: 1.3
-
-*Example Usage*
-
-<c:set var="content" value="${sling:getRelativeResource(resource,'jcr:content')}" />
-
-### getResource
-
-Method allow for the retrieval of resources.
-
-* Returns: `org.apache.sling.api.resource.Resource` - The resource at the path.
-* Accepts:
-* `org.apache.sling.api.resource.ResourceResolver` - The current resource resolver.
-* `java.lang.String` - The path at which to find the resource.
-* Since: 1.3
-
-*Example Usage*
-
-<c:set var="content" value="${sling:getResource(resourceResolver,'/content')}" />
-
-### getValue
-
-Gets the value of the specified key from the ValueMap and either coerses
-the value into the specified type or uses the specified type as a default
-depending on the parameter passed in.
-
-If the third parameter is a class, the resulting value will be coersed into the class,
-otherwise, the third parameter is used as the default when retrieving the value from the
-`ValueMap`.
-
-* Returns: `java.lang.Object` - The value.
-* Accepts:
-* `org.apache.sling.api.resource.ValueMap` - The ValueMap from which to retrieve the value.
-* `java.lang.String` - The key for the value to retrieve
-* `java.lang.Object` - Either the default value or the class to which to coerce the value.
-* Since: 1.3
-
-*Example Usage*
-
-<c:set var="content" value="${sling:getValue(properties,'jcr:title',resource.name)}" />
-
-### listChildren
-
-Method for allowing the invocation of the Sling Resource listChildren method.
-
-* Returns: `java.util.Iterator` - The children of the resource.
-* Accepts:
-* `org.apache.sling.api.resource.Resource` - The resource of which to list the children.
-* Since: 1.3
-
-*Example Usage*
-
-<c:forEach var="child" items="${sling:listChildren(resource)">
-<li>${child.path}</li>
-</c:forEach>
-
-## Tags
-
-The Sling Taglib includes a number of Tags which can be used to access the repository, handle the inclusion of scripts and manage requests.
-
-### adaptTo
-
-Adapts adaptables to objects of other types.
-
-* Attributes
-* adaptable - The adaptable object to adapt.
-* adaptTo - The class name to which to adapt the adaptable.
-* var - The name of the variable to which to save the adapted object.
-* Since: 1.3
-
-*Example Usage*
-
-<sling:adaptTo adaptable="${resource}" adaptTo="org.apache.sling.api.resource.ValueMap" var="myProps" />
-
-### call
-
-Execute a script.
-
-* Attributes
-* flush - Whether to flush the output before including the target.
-* script - The script to include.
-* ignoreComponentHierarchy - Controls if the component hierarchy should be ignored for script resolution. If true, only the search paths are respected.
-* Since: 1.2
-
-*Example Usage*
-
-<sling:call script="myscript.jsp" />
-
-### defineObjects
-
-Defines regularly used scripting variables. By default the following scripting variables are defined through this tag:
-
-* **slingRequest**, SlingHttpServletRequest object, providing access to the HTTP request header information - extends the standard HttpServletRequest - and provides access to Sling-specific things like resource, path info, selector, etc.
-* **slingResponse**, SlingHttpServletResponse object, providing access for the HTTP response that is created by the server. This is currently the same as the HttpServletResponse from which it extends.
-* **resourceResolver**, Current ResourceResolver. Same as slingRequest.getResourceResolver().
-* **sling**, SlingScriptHelper, containing convenience methods for scripts, mainly sling.include('/some/other/resource') for including the responses of other resources inside this response (eg. embedding header html snippets) and sling.getService(foo.bar.Service.class) to retrieve OSGi services available in Sling (Class notation depending on scripting language).
-* **resource**, current Resource to handle, depending on the URL of the request. Same as slingRequest.getResource().
-* **log**, provides an SLF4J Logger for logging to the Sling log system from within scripts, eg. log.info("Executing my script").
-* **currentNode**, the underlying JCR node (if there is one) of the current resource.
-* **bindings**, provides access to the SlingBindings object for access to non-standard scripting variables.
-
-
-See also [Scripting variables in CMS](https://cwiki.apache.org/confluence/display/SLING/Scripting+variables#Scriptingvariables-JSP)
-
-
-* Attributes which allow to bind the according variables to other names than the default ones listed above.
-* requestName
-* responseName
-* resourceName
-* nodeName
-* logName
-* resourceResolverName
-* slingName
-* Since: 1.0
-
-*Example Usage*
-
-<sling:defineObjects />
-
-### encode
-
-Writes properly Cross Site Scripting (XSS) encoded text to the response using the OWASP ESAPI.   Supports a number of encoding modes.
-
-* Attributes:
-* value - The text to encode
-* default - a default text to use if the value is null or empty
-* mode - The encoding mode, one of HTML, HTML_ATTR, XML, XML_ATTR, JS
-* Since: 1.4
-
-*Example Usage*
-
-<sling:encode value="<script>alert('Bad Stuff!');</script>" mode="HTML" />
-
-### eval
-
-Evaluates a script invocation and includes the result in the current page.
-
-* Attributes
-* flush - Whether to flush the output before including the target.
-* script - The path to the script object to include in the current request processing. By default, the current resource is used for script resolving. This behaviour can be changed by specifying either resource, resourceType or ignoreResourceTypeHierarchy.
-* resource - The resource object to include in the current request processing. This attribute is optional. If it is specified, resourceType should not be used. If both are used, resource takes precedence.
-* resourceType - The resource type of a resource to include. This attribute is optional. If it is specified, resource should not be used. If both are used, resource takes precedence.
-* ignoreResourceTypeHierarchy - Prevents using the resource type hierarchy for searching a script.
-* Since: 1.1
-
-*Example Usage*
-
-<sling:eval script="myscript.jsp" />
-
-### findResources
-
-Tag for searching for resources using the given query formulated in the given language.
-
-* Attributes
-* query - The query string to find the resources.
-* language - The query language to use.
-* var - The name of the variable to which to save the resources.
-* Since: 1.3
-
-*Example Usage*
-
-<sling:findResources query="/jcr:root//*[jcr:contains(., 'Sling')] order by @jcr:score" language="xpath" var="resources" />
-
-### forward
-
-Forwards a request to a resource rendering the current page
-
-* Attributes
-* resource - The resource object to forward the request to. Either resource or path must be specified. If both are specified, the resource takes precedences.
-* path - The path to the resource object to forward the request to. If this path is relative it is appended to the path of the current resource whose script is forwarding the given resource. Either resource or path must be specified. If both are specified, the resource takes precedences.
-* resourceType - The resource type of a resource to forward. If the resource to be forwarded is specified with the path attribute, which cannot be resolved to a resource, the tag may create a synthetic resource object out of the path and this resource type. If the resource type is set the path must be the exact path to a resource object. That is, adding parameters, selectors and extensions to the path is not supported if the resource type is set.
-* replaceSelectors - When dispatching, replace selectors by the value provided by this option.
-* addSelectors - When dispatching, add the value provided by this option to the selectors.
-* replaceSuffix - When dispatching, replace the suffix by the value provided by this option.
-* Since: 1.0
-
-*Example Usage*
-
-<sling:forward path="/content/aresource" resourceType="myapp/components/display" />
-
-### getProperty
-
-Retrieves the value from the ValueMap, allowing for a default value or coercing the return value.
-
-* Attributes
-* properties - The ValueMap from which to retrieve the value.
-* key - The key to retrieve the value from from the ValueMap.
-* defaultValue - The default value to return if no value exists for the key. If specified, this takes precedence over returnClass.
-* returnClass - The class into which to coerce the returned value.
-* var - The name of the variable to which to save the value.
-* Since: 1.3
-
-*Example Usage*
-
-<sling:getProperties properties="${properties}" key="jcr:title" defaultValue="${resource.name}" var="title" />
-
-### getResource
-
-Retrieves resources based on either an absolute path or a relative path and a base resource.
-
-* Attributes
-* base - The base resource under which to retrieve the child resource, will only be considered if a relative path is specified.
-* path - The path of the resource to retrieve, if relative, the base resource must be specified.
-* defaultValue - The default value to return if no value exists for the key. If specified, this takes precedence over returnClass.
-* returnClass - The class into which to coerce the returned value.
-* var - The name of the variable to which to save the resource.
-* Since: 1.3
-
-*Example Usage*
-
-<sling:getResource base="${resource}" path="jcr:content" var="content" />
-
-### include
-
-Includes a resource rendering into the current page.
-
-* Attributes
-* flush - Whether to flush the output before including the target.
-* resource - The resource object to include in the current request processing. Either resource or path must be specified. If both are specified, the resource takes precedences.
-* path - The path to the resource object to include in the current request processing. If this path is relative it is appended to the path of the current resource whose script is including the given resource. Either resource or path must be specified. If both are specified, the resource takes precedences.
-* resourceType - The resource type of a resource to include. If the resource to be included is specified with the path attribute, which cannot be resolved to a resource, the tag may create a synthetic resource object out of the path and this resource type. If the resource type is set the path must be the exact path to a resource object. That is, adding parameters, selectors and extensions to the path is not supported if the resource type is set.
-* replaceSelectors - When dispatching, replace selectors by the value provided by this option.
-* addSelectors - When dispatching, add the value provided by this option to the selectors.
-* replaceSuffix - When dispatching, replace the suffix by the value provided by this option.
-* scope - If var is specified, what scope to store the variable in. (Since 1.3)
-* var - variable name to store the resulting markup into (Since 1.3)
-* Since: 1.0
-
-*Example Usage*
-
-<sling:include path="/content/aresource" resourceType="myapp/components/display" />
-
-### listChildren
-
-Lists the children of a Sling Resource.
-
-* Attributes
-* resource - The resource for which to retrieve the children.
-* var - The name of the variable to which to save the child resources.
-* Since: 1.3
-
-*Example Usage*
-
-<sling:listChildren resource="${resource}" var="children" />

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scripting/scripting-thymeleaf.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scripting/scripting-thymeleaf.md b/content/documentation/bundles/scripting/scripting-thymeleaf.md
deleted file mode 100644
index 2ef2280..0000000
--- a/content/documentation/bundles/scripting/scripting-thymeleaf.md
+++ /dev/null
@@ -1,86 +0,0 @@
-title=Sling Scripting Thymeleaf		
-type=page
-status=published
-~~~~~~
-
-Sling Scripting Thymeleaf is the scripting engine for [_Thymeleaf_](http://www.thymeleaf.org) (3.0) templates.
-
-[TOC]
-
-# Features
-
-* Supporting all of Thymeleaf's extension points: [_TemplateResolver_](http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/templateresolver/ITemplateResolver.html)s, [_MessageResolver_](http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/messageresolver/IMessageResolver.html)s, [_Dialect_](http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/dialect/IDialect.html)s, [_LinkBuilder_](http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/linkbuilder/ILinkBuilder.html)s, [_DecoupledTemplateLogicResolver_](http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/templateparser/markup/decoupled/IDecoupledTemplateLogicResolver.html), [_CacheManager_](http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/cache/ICacheManager.html) and [_EngineContextFactory_](http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/context/IEngineContext.html)
-* `SlingResourceTemplateResolver` customizable through `TemplateModeProvider`
-* `ResourceBundleMessageResolver` backed by `ResourceBundleProvider` from [Sling i18n](https://sling.apache.org/documentation/bundles/internationalization-support-i18n.html) customizable through optional `AbsentMessageRepresentationProvider`
-* `PatternTemplateModeProvider` supporting [`Pattern`](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html) configurations for all [template modes](http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/templatemode/TemplateMode.html) (`HTML`, `XML`, `TEXT`, `JAVASCRIPT`, `CSS` and `RAW`)
-* `SlingDialect`
-* Thymeleaf's [`TemplateEngine`](http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/ITemplateEngine.html) registered as OSGi Service ([`ITemplateEngine`](http://www.thymeleaf.org/apidocs/thymeleaf/3.0.0.RELEASE/org/thymeleaf/ITemplateEngine.html)) for direct use
-
-# Installation
-
-For running Sling Scripting Thymeleaf with Sling's Launchpad some dependencies need to be resolved. This can be achieved by installing the following bundles:
-
-mvn:org.attoparser/attoparser/2.0.2.RELEASE
-mvn:org.unbescape/unbescape/1.1.4.RELEASE
-mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ognl/3.2_1
-mvn:org.javassist/javassist/3.20.0-GA
-
-There is a feature for Karaf:
-
-karaf@root()> feature:install sling-scripting-thymeleaf
-
-**Note:** Sling Scripting Thymeleaf requires an implementation of OSGi Declarative Services 1.3 (e.g. [Apache Felix Service Component Runtime](http://felix.apache.org/documentation/subprojects/apache-felix-service-component-runtime.html) 2.0.0 or greater)
-
-# Configuration
-
-## Apache Sling Scripting Thymeleaf “ScriptEngineFactory”
-
-By default Sling Scripting Thymeleaf's _ScriptEngineFactory_ is configured for templates with extension `html` and mime type `text/html` and uses all of Thymeleaf's standard extensions either _also_ or _exclusively_.
-
-![Apache Sling Scripting Thymeleaf “ScriptEngineFactory”](Scripting-Thymeleaf-ScriptEngineFactory.png)
-
-## Apache Sling Scripting Thymeleaf “Sling Resource TemplateResolver”
-
-The _Sling Resource TemplateResolver_ is configured to resolve templates with _use decoupled logic_ enabled.
-
-![Apache Sling Scripting Thymeleaf “Sling Resource TemplateResolver”](Scripting-Thymeleaf-Sling-Resource-TemplateResolver.png)
-
-## Apache Sling Scripting Thymeleaf “Pattern TemplateModeProvider”
-
-The _Pattern TemplateModeProvider_ is configured to match template paths against default extensions for providing template modes (of course except no-op mode `RAW`).
-
-![Apache Sling Scripting Thymeleaf “Pattern TemplateModeProvider](Scripting-Thymeleaf-Pattern-TemplateModeProvider.png)
-
-## Apache Sling Scripting Thymeleaf “ResourceBundle MessageResolver”
-
-The _ResourceBundle MessageResolver_ is configured to use the message's key as absent message representation.
-
-![Apache Sling Scripting Thymeleaf “ResourceBundle MessageResolver”](Scripting-Thymeleaf-ResourceBundle-MessageResolver.png)
-
-# Sling Dialect
-
-Sling Scripting Thymeleaf comes with its own dialect using the `sling` prefix/namespace currently supporting the _include_ feature known from [Sling Scripting JSP Taglib](/documentation/bundles/scripting/scripting-jsp.html).
-
-## include
-
-`<header data-sling-include="${resource}" data-sling-resourceType="'example/page/header'" data-sling-unwrap="true"/>`
-
-`include` - The resource object ([`Resource`](http://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/Resource.html)) or the path (`String`) of the resource object to include in the current request processing. If this path is relative it is appended to the path of the current resource whose script is including the given resource.
-
-### supported options (* = [RequestDispatcher option](http://sling.apache.org/apidocs/sling7/org/apache/sling/api/request/RequestDispatcherOptions.html))
-
-* `addSelectors` (`String`) *: When dispatching, add the value provided by this option to the selectors.
-* `replaceSelectors` (`String`) *: When dispatching, replace selectors by the value provided by this option.
-* `replaceSuffix` (`String`) *: When dispatching, replace the suffix by the value provided by this option.
-* `resourceType` (`String`) *: The resource type of a resource to include. If the resource to be included is specified with the path attribute, which cannot be resolved to a resource, the tag may create a synthetic resource object out of the path and this resource type. If the resource type is set the path must be the exact path to a resource object. That is, adding parameters, selectors and extensions to the path is not supported if the resource type is set.
-* `unwrap` (`Boolean`): removes the host element
-
-# Class Diagram
-
-[![Class Diagram](Scripting-Thymeleaf-Class-Diagram.png)](Scripting-Thymeleaf-Class-Diagram.png)
-
-# Sample
-
-The [Sling Fling Sample](http://svn.apache.org/repos/asf/sling/trunk/samples/fling/) is a sample using Sling Scripting Thymeleaf with [Sling Models](/documentation/bundles/models.html) and [Sling Query](/documentation/bundles/sling-query.html).
-
-![Sling Fling Sample](sling-fling-sample.png)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/scripting/sling-fling-sample.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/scripting/sling-fling-sample.png b/content/documentation/bundles/scripting/sling-fling-sample.png
deleted file mode 100644
index f5d1955..0000000
Binary files a/content/documentation/bundles/scripting/sling-fling-sample.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/servlet-helpers.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/servlet-helpers.md b/content/documentation/bundles/servlet-helpers.md
deleted file mode 100644
index a731f76..0000000
--- a/content/documentation/bundles/servlet-helpers.md
+++ /dev/null
@@ -1,83 +0,0 @@
-title=Sling Servlet Helpers		
-type=page
-status=published
-~~~~~~
-
-The Sling Servlet Helpers bundle provides mock implementations of the
-`SlingHttpServletRequest`, `SlingHttpServletResponse` and related classes.
-
-Those mock implementations are meant to be used in tests and also with services
-like the `SlingRequestProcessor` when making requests to that service outside of
-an HTTP request processing context.
-
-See the [automated tests](https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/servlet-helpers)
-of the `servlet-helpers` module for more info.
-
-
-## Usage
-
-### SlingHttpServletRequest
-
-Example for preparing a sling request with custom request data:
-
-#!java
-// prepare sling request
-MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(resourceResolver);
-
-// simulate query string
-request.setQueryString("param1=aaa&param2=bbb");
-
-// alternative - set query parameters as map
-request.setParameterMap(ImmutableMap.<String,Object>builder()
-.put("param1", "aaa")
-.put("param2", "bbb")
-.build());
-
-// set current resource
-request.setResource(resourceResolver.getResource("/content/sample"));
-
-// set sling request path info properties
-MockRequestPathInfo requestPathInfo = (MockRequestPathInfo)request.getRequestPathInfo();
-requestPathInfo.setSelectorString("selector1.selector2");
-requestPathInfo.setExtension("html");
-
-// set method
-request.setMethod(HttpConstants.METHOD_POST);
-
-// set attributes
-request.setAttribute("attr1", "value1");
-
-// set headers
-request.addHeader("header1", "value1");
-
-// set cookies
-request.addCookie(new Cookie("cookie1", "value1"));
-
-
-### SlingHttpServletResponse
-
-Example for preparing a sling response which can collect the data that was written to it:
-
-#!java
-// prepare sling response
-MockSlingHttpServletResponse response = new MockSlingHttpServletResponse();
-
-// execute the code that writes to the response...
-
-// validate status code
-assertEquals(HttpServletResponse.SC_OK, response.getStatus());
-
-// validate content type and content length
-assertEquals("text/plain;charset=UTF-8", response.getContentType());
-assertEquals(CharEncoding.UTF_8, response.getCharacterEncoding());
-assertEquals(55, response.getContentLength());
-
-// validate headers
-assertTrue(response.containsHeader("header1"));
-assertEquals("5", response.getHeader("header2"));
-
-// validate response body as string
-assertEquals(TEST_CONTENT, response.getOutputAsString());
-
-// validate response body as binary data
-assertArrayEquals(TEST_DATA, response.getOutput());

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/sling-hc-plugin.jpg
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/sling-hc-plugin.jpg b/content/documentation/bundles/sling-hc-plugin.jpg
deleted file mode 100644
index 7aff1c8..0000000
Binary files a/content/documentation/bundles/sling-hc-plugin.jpg and /dev/null differ


[32/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/errors/403.html
----------------------------------------------------------------------
diff --git a/errors/403.html b/errors/403.html
new file mode 100644
index 0000000..a7d9734
--- /dev/null
+++ b/errors/403.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Forbidden (403)</h1></header><p>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.</p>
+<p>We're sorry, but the page you requested cannot be accessed. This may be because:</p>
+<ul>
+  <li>You typed the address incorrectly</li>
+  <li>You followed a link from another site that pointed to this page.</li>
+</ul>
+<p>If you came to this page by following a broken link on our site, you can report the <a href="https://issues.apache.org/jira/browse/SLING">problem</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/errors/404.html
----------------------------------------------------------------------
diff --git a/errors/404.html b/errors/404.html
new file mode 100644
index 0000000..8137361
--- /dev/null
+++ b/errors/404.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Page Not Found</h1></header><p>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.</p>
+<p>We're sorry, but the page you requested cannot be found. This may be because:</p>
+<ul>
+  <li>The page has moved, was outdated, or has not been created yet</li>
+  <li>You typed the address incorrectly</li>
+  <li>You followed a link from another site that pointed to this page.</li>
+</ul>
+<p>If you came to this page by following a broken link on our site, you can report the <a href="https://issues.apache.org/jira/browse/SLING">problem</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/feed.xml
----------------------------------------------------------------------
diff --git a/feed.xml b/feed.xml
new file mode 100644
index 0000000..7557396
--- /dev/null
+++ b/feed.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+    <title>Apache Sling on JBake</title>
+    <link href="http://localhost/"/>
+    <link rel="self" type="application/atom+xml" href="http://localhost/feed.xml"/>
+    <subtitle>Work in progress...</subtitle>
+    <updated>2017-06-19T14:35:51Z</updated>
+    <id>tag:localhost,2017:06</id>
+    
+</feed>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/guides.html
----------------------------------------------------------------------
diff --git a/guides.html b/guides.html
new file mode 100644
index 0000000..e9dcd16
--- /dev/null
+++ b/guides.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Guides</h1></header><p>translation_pending: true</p>
+<p>These pages contain further information in a more informal way.</p>
+<ul>
+  <li>
+  <p><a href="/documentation/getting-started/discover-sling-in-15-minutes.html">Discover Sling in 15 minutes </a> - title says it all</p></li>
+  <li>
+  <p><a href="/documentation/the-sling-engine/resources.html">Resources</a> -- Presents the Resource as the object around which Sling is built</p></li>
+  <li>[Servlet Resolution]({{ refs.servlet-resolution.path }}) -- How Sling resolves the servlet or script responsible for rendering a Resource.</li>
+  <li><a href="/documentation/the-sling-engine/request-parameters.html">Request Parameters</a> -- Explains how Sling provides request parameters to servlets, scripts and filters.</li>
+  <li><a href="/documentation/development/repository-based-development.html">Repository Based Development</a> -- Shows how WebDAV is supported by Sling.</li>
+  <li>
+  <p><a href="/documentation/tutorials-how-tos/installing-and-upgrading-bundles.html">Bundle Management</a> -- Explains how to install, upgrade and uninstall Bundles using the Sling Management console.</p></li>
+</ul>
+<p>These pages refer to the old Component API and launcher, and remain referred to here until more up to date documentation has been prepared:</p>
+<ul>
+  <li><a href="/documentation/development/getting-and-building-sling.html">Getting and Building Sling</a> -- A short recount on the first step for getting a running Sling instance after checking out the source from the SVN repository</li>
+  <li><a href="/documentation/the-sling-engine/default-mapping-and-rendering.html">Default Mapping and Rendering</a> -- Explains default mapping of repository nodes to Content instances and selection of a default Component.</li>
+  <li><a href="/documentation/the-sling-engine/dispatching-requests.html">Dispatching Requests</a> -- Explains how a Component may dispatch requests to include further content renderings in the response to the client's request</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..a08809f
--- /dev/null
+++ b/index.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling - Bringing Back the Fun!</h1></header><p><strong>Apache Sling&trade;</strong> is an innovative web framework that is intended to bring back the fun to web development.</p>
+<p>Discussions about Sling happen on our mailing lists, see the <a href="/project-information.html">Project Information</a> page for more info.</p>
+<h1>Apache Sling in five bullets points</h1>
+<ul>
+  <li>REST based web framework</li>
+  <li>Content-driven, using a JCR content repository</li>
+  <li>Powered by OSGi</li>
+  <li>Scripting inside, multiple languages (JSP, server-side javascript, Scala, etc.)</li>
+  <li>Apache Open Source project</li>
+</ul>
+<h1>Apache Sling in a hundred words</h1>
+<p>Apache Sling is a web framework that uses a <a href="http://en.wikipedia.org/wiki/JSR-170">Java Content Repository</a>, such as <a href="http://jackrabbit.apache.org/">Apache Jackrabbit</a>, to store and manage content.</p>
+<p>Sling applications use either scripts or Java servlets, selected based on simple name conventions, to process HTTP requests in a RESTful way.</p>
+<p>The embedded <a href="http://felix.apache.org/">Apache Felix</a> OSGi framework and console provide a dynamic runtime environment, where code and content bundles can be loaded, unloaded and reconfigured at runtime.</p>
+<p>As the first web framework dedicated to <a href="http://jcp.org/en/jsr/detail?id=170">JSR-170</a> Java Content Repositories, Sling makes it very simple to implement simple applications, while providing an enterprise-level framework for more complex applications.</p>
+<h2>News</h2>
+<ul id="newsExcerpt">
+</ul>
+<p>Refer to the news <a href="/news.html">archive</a> for all news.</p>
+<h2>History</h2>
+<p>Sling started as an internal project at <a href="http://www.day.com">Day Software</a> , and entered the Apache Incubator in September 2007. As of June, 17th, 2009 Apache Sling is a top level project of the Apache Software Foundation.</p>
+<p>The name "Sling" has been proposed by Roy Fielding who explained it like this:</p>
+<blockquote>
+  <p>[The name is] Biblical in nature. The story of David: the weapon he uses to slay the giant Goliath is a sling. Hence, our David's [David Nuescheler, CTO of Day Software] favorite weapon.</p>
+  <p>It is also the simplest device for delivering content very fast.</p>
+</blockquote>
+<h2>Getting started</h2>
+<p>If you prefer doing rather than reading, please proceed to <a href="/documentation/getting-started/discover-sling-in-15-minutes.html">Discover Sling in 15 minutes</a> or read through the recommended links in the <a href="/documentation/getting-started.html">Getting Started</a> section, where you can quickly get started on your own instance of Sling.</p>
+<h2>Use Cases for Sling</h2>
+<h4>Wiki</h4>
+<p>Day built a Wiki system on Sling. Each Wiki page is a node (with optional child nodes) in the repository. As a page is requested, the respective node is accessed and through the applying Component is rendered.</p>
+<p>Thanks to the JCR Mapping and the resolution of the Component from the mapped Content, the system does not care for what actual node is addressed as long as there is a Content mapping and a Component capable of handling the Content.</p>
+<p>Thus in the tradition of REST, the attachement of a Wiki page, which happens to be in a node nested below the wiki page node is easily accessed using the URL of the wiki page attaching the relative path of the attachement ode. The system resolves the URL to the attachement Content and just calls the attachement's Component to spool the attachement.</p>
+<h4>Digital Asset Management</h4>
+<p>Day has implemented a Digital Asset Management (DAM) Application based on Sling. Thanks to the flexibility of the Content/Component combo as well as the service registration/access functionality offered by OSGi, extending DAM for new content type is merely a matter of implementing one or two interfaces and registering the respective service(s).</p>
+<p>Again, the managed assets may be easily spooled by directly accessing them.</p>
+<h4>Web Content Management</h4>
+<p>Last but not least, Sling offers itself very well to implementing a Web Content Management system. Thanks to the flexibility of rendering the output - remember: the system does not care what to render, as long as the URL resolves to a Content object for which a Component exists, which is called to render the Content - providing support for Web Content authors (not PHP programmers but users out in the field) to build pages to their likings can easily be done.</p>
+<h2>References</h2>
+<h4>Apache Jackrabbit</h4>
+<p>The main purpose of Sling is to develop a content-centric Web Application framework for Java Content Repository (JCR) based data stores. Sling is implemented - with the notable exception of JCR Node Type management - purely in terms of the JCR API and as such may use any JCR compliant repository. The default implementation for <a href="http://jackrabbit.apache.org">Apache Jackrabbit</a> is provided out of the box.</p>
+<h4>OSGi</h4>
+<p>Sling is implemented as a series of <a href="http://www.osgi.org">OSGi</a> Bundles and makes extensive use of the OSGi functionality, such as lifecycle management and the service layer. In addition, Sling requires several OSGi compendium services to be available, such as the Log Service, Http Service, Configuration Admin Service, Metatype Service, and Declarative Services.</p>
+<h4>Apache Felix</h4>
+<p>While Sling does not require a specific OSGi framework implementation to run in, Sling is being developed using <a href="http://felix.apache.org">Apache Felix</a> as the OSGi framework implementation. It has not been tested yet, but it is expected that Sling also operates perfectly inside other OSGi frameworks such as <a href="http://www.eclipse.org/equinox">Equinox</a> and <a href="http://www.knopflerfish.org">Knopflerfish</a>.</p>
+<script src="/res/jquery.js" type="text/javascript"></script>
+<script type="text/javascript">
+$(document).ready(function() {
+$.get("/news.html", function(news) {
+var $newsExcerpt = $(news).find('li').slice(0,5);
+$('#newsExcerpt').append($newsExcerpt);
+});
+});
+</script></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/javadoc-io.html
----------------------------------------------------------------------
diff --git a/javadoc-io.html b/javadoc-io.html
new file mode 100644
index 0000000..f731a49
--- /dev/null
+++ b/javadoc-io.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling API docs at javadoc.io</h1></header><p><a href="http://www.javadoc.io/">javadocs.io</a> provides archived javadocs for all Sling modules (and actually for all open source software hosted at Maven Central).</p>
+<p>To get the javadocs of a particular module use an URL like <code>http://javadoc.io/doc/{org}/{artifact}/{version}</code>, like for example <a href="http://www.javadoc.io/doc/org.apache.sling/org.apache.sling.api/2.9.0">http://www.javadoc.io/doc/org.apache.sling/org.apache.sling.api/2.9.0</a></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/links.html
----------------------------------------------------------------------
diff --git a/links.html b/links.html
new file mode 100644
index 0000000..e1f3349
--- /dev/null
+++ b/links.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Links</h1></header><p>Here are some links to other resources</p>
+<h2>Articles</h2>
+<ul>
+  <li><a href="http://java.dzone.com/articles/java-content-repository-best">Java Content Repository: The Best Of Both Worlds</a> - by Bertrand Delacretaz on Javalobby - uses the Sling HTTP interface to demonstrate JCR features.</li>
+  <li><a href="http://www.lucamasini.net/Home/sling-and-cq5/accessing-relational-data-as-sling-restful-urls">Accessing Relational Data as SLING RESTful URLs</a> - by Luca Masini</li>
+  <li><a href="http://confluence.sakaiproject.org/display/KERNDOC/Your+First+Day+With+Sakai+Nakamura">Your First Day With Sakai Nakamura</a> - Sakai Nakamura is based on Sling, that introductory article has very good explanations of REST and Sling basics, and on why hierarchies are useful on the Web.</li>
+</ul>
+<h2>About Sling</h2>
+<ul>
+  <li><a href="http://dev.day.com/microsling/content/blogs/main.html?category=sling">Sling on dev.day.com</a> - Day's developers blog, regularly includes articles on Sling and JCR. Powered by Sling, of course.</li>
+  <li><a href="http://weblogs.goshaky.com/weblogs/lars/tags/sling">Sling on Lars Trieloff's Blog</a> - Lars regularly writes on his experiences with Sling. Most notably the mini series of three entries introducing Sling and microsling.</li>
+  <li><a href="http://del.icio.us/tag/sling+jcr">Sling links at del.icio.us</a> - If you're a del.icio.us user, please tag Sling-related posts with both <em>sling</em> and <em>jcr</em> tags, so that they appear in that list.</li>
+  <li><a href="http://fisheye6.atlassian.com/browse/sling">Sling on Fisheye</a> - code repository viewer, activity statistics, etc.</li>
+  <li><a href="https://www.ohloh.net/p/sling">Sling on ohloh</a> - activity and community statistics.</li>
+  <li><a href="http://sling.markmail.org/">Sling on MarkMail</a> - searchable mailing list archives.</li>
+</ul>
+<h2>Projects using Sling</h2>
+<ul>
+  <li>Gert Vanthienen succeeded in installing Sling into the new Apache ServiceMix kernel and documented his experience <a href="http://servicemix.apache.org/SMX4KNL/running-apache-sling-on-servicemix-kernel.html">Sling On ServiceMix Kernel</a></li>
+</ul>
+<h2>Sling Presentations and Screencasts</h2>
+<ul>
+  <li><a href="http://www.slideshare.net/tag/sling">Presentations tagged with "sling" at slideshare</a></li>
+</ul>
+<p>The following screencasts demonstrate Day Software's CRX quickstart product, powered by Sling:</p>
+<ul>
+  <li><a href="http://dev.day.com/microsling/content/blogs/main/firststeps1.html">First Steps with CRX Quickstart</a></li>
+  <li><a href="http://dev.day.com/microsling/content/blogs/main/firststeps2.html">TheServerSide.com in 15 minutes</a></li>
+</ul>
+<h2>From ApacheCon EU 08</h2>
+<ul>
+  <li><a href="/res/docs/ApacheConEU08_FFT_Sling.pdf">ApacheCon EU 08 Fast Feather Track Presentation on Sling</a></li>
+  <li><a href="/res/docs/ApacheConEU08_JCR_Meetup_Sling_Architecture.pdf">JCR Meetup Presentation on Sling Architecture</a></li>
+</ul>
+<h2>From ApacheCon US 07</h2>
+<ul>
+  <li><a href="/res/docs/ApacheConUS07_FFT_Sling.pdf">ApacheCon US 07 Fast Feather Track Presentation on Sling</a></li>
+  <li><a href="http://feathercast.org/?p=59">Feathercast On Day 4 with an interview on Sling with Felix</a></li>
+</ul>
+<h2>Technology used by Sling</h2>
+<ul>
+  <li><a href="http://jackrabbit.apache.org">Apache Jackrabbit</a> - The reference implementation of the Content Repository for Java (JCR) Specification. This implementation is used in Sling as the primary repository.</li>
+  <li><a href="http://www.jcp.org/en/jsr/detail?id=170">JSR 170: Content Repository for Java{tm} technology API</a> - The specification of the repository API.</li>
+  <li><a href="http://felix.apache.org">Apache Felix</a> - The OSGi Framework implementation we use in Sling.</li>
+  <li><a href="http://www.osgi.org">The OSGi Alliance</a> - The OSGi Alliance is the specification body defining the OSGi Core and Compendium Services. These specifications are at the center of making Sling possible.</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/media.html
----------------------------------------------------------------------
diff --git a/media.html b/media.html
new file mode 100644
index 0000000..63a9a93
--- /dev/null
+++ b/media.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Media</h1></header><p>translation_pending: true</p>
+<p>This page holds all media required for the Apache Sling website. The media are attachments and can be addressed using the following URL: http://cwiki.apache.org/SLINGxSITE/media.data/ (followed by the actual name of the attachment).</p>
+<p>Currently, some of these attachments are used by the overall site template (only visible/editable by Confluence administrators).</p>
+<p>{attachments}</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[27/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/OLD-from-apache-cms/assets/jquery.js
----------------------------------------------------------------------
diff --git a/OLD-from-apache-cms/assets/jquery.js b/OLD-from-apache-cms/assets/jquery.js
deleted file mode 100644
index 83589da..0000000
--- a/OLD-from-apache-cms/assets/jquery.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery v1.8.3 jquery.com | jquery.org/license */
-(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(
 e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="scri
 pt"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){
 var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.
 createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};f
 or(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{sta
 te:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;
 n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("
 height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=
 t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadysta
 techange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]}
 ,pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a+
 +)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;tr
 y{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.docume
 ntElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?
 n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(
 i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||
 0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v
 .Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n
 [e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test
 (r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.app
 endChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-
 box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/(
 [A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t
 ]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var
  t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(th
 is,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.re
 moveAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "
 +n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){
 var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;i
 f(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.node
 Name(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLow
 erCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex
 ,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:
 v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.d
 elegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive
 =a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h
 &&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];i
 f(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&
 &s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.
 preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropaga
 tion()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}
 ),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({f
 ocus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof 
 n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each
 ("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace
 (j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w+
 +;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.pus
 h(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d
 ++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizca
 che"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\
 f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML=
 "<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocu
 ment||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i
 .getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return n
 ull;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1
 :t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[
 0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:func
 tion(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;v
 ar n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selecte
 d=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}c
 atch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},
 has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);retur
 n this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.t
 est(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]",
 "i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].own
 erDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insert
 Before(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.rep
 lace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)}
 );if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,
 s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t=
 ==i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("inp
 ut"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w
 .]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(
 this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number
 "&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left
 ,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssH
 ooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.
 extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/
 \?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,da
 ta:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Mod
 ified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n
 },overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.t
 est(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callbac
 k",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){ret
 urn v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{s
 end:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=
 /^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[th
 is.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFun
 ction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};retur

<TRUNCATED>

[13/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/tutorials-how-tos/how-to-manage-events-in-sling.md
----------------------------------------------------------------------
diff --git a/content/documentation/tutorials-how-tos/how-to-manage-events-in-sling.md b/content/documentation/tutorials-how-tos/how-to-manage-events-in-sling.md
deleted file mode 100644
index 2bdc080..0000000
--- a/content/documentation/tutorials-how-tos/how-to-manage-events-in-sling.md
+++ /dev/null
@@ -1,208 +0,0 @@
-title=How to Manage Job in Sling		
-type=page
-status=published
-~~~~~~
-
-Apache Sling supports the execution of jobs with the guarantee of processing the job at least once. This can be seen as an extensions of the OSGi event admin, although jobs are not started or processed by OSGi events leveraging the OSGi event admin.
-
-For more details please refer to the following resources:
-
-* [Eventing, Jobs and Scheduling section]({{ refs.eventing-and-jobs.path }}) to get detailed information on the eventing mechanisms in Sling.
-* Package [org.osgi.service.event](http://www.osgi.org/javadoc/r4v42/org/osgi/service/event/package-summary.html) of the OSGI API.
-* Package [org.apache.sling.event](/apidocs/sling6/org/apache/sling/event/package-summary.html) of the Sling API.
-
-This page drives you through the implementation of two services that rely on the Sling job mechanism. The services implement the following use case: whenever a file is uploaded to a temporary location in your web application, the file is moved to a specific location according to its MIME type.
-
-## Introduction
-
-You will now implement the logic to listen to files posted to */tmp/dropbox* and to move them to the appropriate locations depending on the MIME type:
-
-* images (.png) are moved to **/dropbox/images/**
-* music (.mp3) are moved to **/dropbox/music/**
-* movies (.avi) are moved to **/dropbox/movies/**
-* otherwise the files are moved to **/dropbox/other/**
-
-To do that, you will implement two services. The first one, called **DropBoxService**:
-
-* Listens to specific OSGi events (Sling resource added events)
-* Starting a job event if a resource has been added to **/tmp/dropbox**.
-
-The second one, called **DropBoxEventHandler**:
-
-* Processes the former jobs
-* Moves the file according to its extension.
-
-## Listening to OSGI Events
-To listen to OSGi events in Sling you just need to register an **org.osgi.service.event.EventHandler** service with
-an **event.topics** property that describes which event topics the handler is interested in.
-
-To listen to a Sling **resource added** events, for example, you'll set the *event.topics* property to
-**org.apache.sling.api.SlingConstants.TOPIC_RESOURCE_ADDED** in the class annotations:
-
-:::java
-@Property(name=org.osgi.service.event.EventConstants.EVENT_TOPIC,
-value=org.apache.sling.api.SlingConstants.TOPIC_RESOURCE_ADDED)
-
-
-The javadocs of the TOPIC_ constants in the [org.apache.sling.api.SlingConstants](/apidocs/sling6/org/apache/sling/api/SlingConstants.html)
-class lists and explains the available event topics available in Sling.
-
-## Starting a job
-
-To start a job, the *JobManager* service can be used. It needs a job topic and a payload. In our case we define our dropbox job topic and give the resource path as the payload:
-
-:::java
-final String resourcePath = ...; // path to the resource to handle
-final Map<String, Object> payload = new HashMap<String, Object>();
-payload.put("resourcePath", resourcePath);
-// start job
-this.jobManager.addJob(JOB_TOPIC, payload);
-
-To receive the resource event, the service needs to implement the **org.osgi.service.event.EventHandler** interface and register it as an EventHandler service:
-
-:::java
-@Component(immediate=true) // immediate should only be used in rare cases (see below)
-@Service(value=EventHandler.class)
-public class DropBoxService implements EventHandler {
-...
-}
-
-Usually a service should be lazy and therefore not declare itself to be immediate (in the Component annotation). However as this service is an event handler and might receive a lot of events even concurrently, it is advised to set the immediate flag to true on the component. Otherwise our event handler would be created and destroyed with every event coming in.
-
-To start the job we need a reference to the JobManager:
-
-:::java
-@Reference
-private JobManager jobManager;
-
-
-The job topic for dropbox job events needs to be defined:
-
-:::java
-/** The job topic for dropbox job events. */
-public static final String JOB_TOPIC = "com/sling/eventing/dropbox/job";
-
-
-The **org.osgi.service.event.EventHandler#handleEvent(Event event)** method needs to be implemented:
-
-Its logic is as follows:
-
-* The OSGI event is analyzed.
-* If the event is a file that has been added to */tmp/dropbox*:
-* An job is created with 1 property:
-* A property for the file path.
-* The job is started
-
-For example:
-
-:::java
-public void handleEvent(final Event event) {
-// get the resource event information
-final String propPath = (String) event.getProperty(SlingConstants.PROPERTY_PATH);
-final String propResType = (String) event.getProperty(SlingConstants.PROPERTY_RESOURCE_TYPE);
-
-// a job is started if a file is added to /tmp/dropbox
-if ( propPath.startsWith("/tmp/dropbox") && "nt:file".equals(propResType) ) {
-// create payload
-final Map<String, Object> payload = new HashMap<String, Object>();
-payload.put("resourcePath", propPath);
-// start job
-this.jobManager.addJob(JOB_TOPIC, payload);
-logger.info("the dropbox job has been started for: {}", propPath);
-}
-}
-
-The complete code for the **DropBoxService** service is available [here](DropBoxService.java).
-
-## Consuming Job Events
-
-Now that you have implemented a service that starts a job when a file is uploaded to **/tmp/dropbox**, you will implement the service **DropBoxEventHandler** that processes those jobs and moves the files to a location according to their MIME types.
-
-To process to the job that have been defined before the property **job.topics** needs to be set to **DropBoxService.JOB_TOPIC** in the class annotations:
-
-:::java
-@Property(name="job.topics",
-value=DropBoxService.JOB_TOPIC)
-
-In addition the service needs to implement the **org.apache.sling.event.jobs.consumer.JobConsumer** interface:
-
-
-:::java
-public class DropBoxEventHandler implements JobConsumer {
-
-
-Some class fields need to be defined:
-
-* The default logger.
-* The references to the ResourceResolverFactory services, which are used in the implementation.
-* The destination paths of the files.
-
-For example:
-
-:::java
-/** Default log. */
-protected final Logger logger = LoggerFactory.getLogger(this.getClass());
-
-@Reference
-private ResourceResolverFactory resolverFactory;
-
-private final static String IMAGES_PATH = "/dropbox/images/";
-private final static String MUSIC_PATH = "/dropbox/music/";
-private final static String MOVIES_PATH = "/dropbox/movies/";
-private final static String OTHER_PATH = "/dropbox/other/";
-
-
-The **org.apache.sling.event.jobs.consumer.JobConsume#process(Job job)** method needs to be implemented:
-
-
-Its logic is as follows:
-
-* The resource path is extracted from the job.
-* The resource is obtained from the resource path.
-* If the resource is a file, the destination path is defined based on the file MIME type.
-* The file is moved to the new location by using a JCR session (as the Sling Resource API doesn't support move atm)
-
-or in Java Code:
-
-:::java
-public JobResult process(final Job job) {
-ResourceResolver adminResolver = null;
-try {
-adminResolver = resolverFactory.getAdministrativeResourceResolver(null);
-
-final String resourcePath = (String) job.getProperty("resourcePath");
-final String resourceName = resourcePath.substring(resourcePath.lastIndexOf("/") + 1);
-
-final Resource res = adminResolver.getResource(resourcePath);
-if ( res.isResourceType("nt:file") ) {
-final String mimeType = res.getResourceMetadata().getContentType();
-String destDir;
-if (mimeType.equals("image/png")) {
-destDir = IMAGES_PATH;
-}
-else if (mimeType.equals("audio/mpeg")) {
-destDir = MUSIC_PATH;
-}
-else if (mimeType.equals("video/x-msvideo")) {
-destDir = MOVIES_PATH;
-}
-else {
-destDir = OTHER_PATH;
-}
-final Session adminSession = adminResolver.adaptTo(Session.class);
-adminSession.move(resourcePath, destDir + resourceName);
-adminSession.save();
-logger.info("The file {} has been moved to {}", resourceName, destDir);
-}
-return JobResult.OK;
-} catch (final Exception e) {
-logger.error("Exception: " + e, e);
-return JobResult.FAILED;
-} finally {
-if (adminResolver != null) {
-adminResolver.close();
-}
-}
-}
-
-The complete code for the **DropBoxEventHandler** service is available [here](DropBoxEventHandler.java).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/tutorials-how-tos/installing-and-upgrading-bundles.md
----------------------------------------------------------------------
diff --git a/content/documentation/tutorials-how-tos/installing-and-upgrading-bundles.md b/content/documentation/tutorials-how-tos/installing-and-upgrading-bundles.md
deleted file mode 100644
index eac473c..0000000
--- a/content/documentation/tutorials-how-tos/installing-and-upgrading-bundles.md
+++ /dev/null
@@ -1,76 +0,0 @@
-title=Installing and Upgrading Bundles		
-type=page
-status=published
-~~~~~~
-Excerpt: Explains how to install, upgrade and uninstall Bundles using the Sling Management console.
-
-<div class="note">
-We recommend to use the Apache Felix Web Console. The documentation below describes the old Sling Management Console, which isn't in use any more. Please refer to the documentation of the <a href="http://felix.apache.org/site/apache-felix-web-console.html">Apache Felix Web Console</a>.
-</div>
-
-OSGi bundles installed in the OSGi framework, which is provided by Sling, may be upgraded or removed and new bundles may be installed by using the Sling Management Console. This page is about using the Sling Management Console for those tasks.
-
-Basically, you have two choices to install and upgrade bundles: Upload the bundle files or install them from a Bundle Repository.
-
-
-
-## Sling Management Console
-
-The Sling Management Console is installed by default when Sling is running and may be reached at on the page `/system/console` in the Sling Context by default. For example if you installed the Sling Web Application in the `/sample` context of the Servlet Container running at `http://somehost:4402`, you would access the Sling Management Console at `http://somehost:4402/sample/system/console`.
-
-You will be prompted for a user name and password to access the Sling Management Console. This password is preset to be *admin* for the user name and *admin* for the password.
-
-NB: Both the username and password and the location of the Sling Management Console inside the Web Application Context is configurable in the *Sling Management Console* configuration on the *Configuration* page.
-
-
-
-## Installing and upgrading bundles by Upload
-
-To install a new bundle or upgrade an already installed bundle, go to the *Bundles* page in the Sling Management Console. At the top and the bottom of the page you have a form to specify and upload a bundle as a file :
-
-* Select the bundle file to upload
-* Click the *Start* checkbox, if you want to start the bundle after installation. If the bundle is upgraded, this checkbox is ignored.
-* Specify the start level of the bundle in the *Start Level* field. This must be a number higher than 0 and is ignored for bundles, which are already installed. Most of the time, you will use the default value.
-* Click the *Install or Update* button
-
-After clicking the button, the bundle file will be uploaded. If a bundle with the same bundle symbolic name is already installed, the respective bundle will be updated with the new bundle file. Otherwise the bundle file will be installed as a new bundle and its start level is set as defined. Additionally the bundle will optionally be started.
-
-After having updated a bundle, you should also refresh the packages by clicking on the *Refresh Packages* button. The reson for this is, that the old version of the bundle is still used by other bundles even after upgrading to a new version. Only when the packages are refreshed any users of the bundle will be relinked to use the new bundle version. As this might be a somewhat lengthy operation, which also stops and restarts using bundles, this operation has to be executed explicitly.
-
-Also, if you plan to upgrade multiple bundles, you may wish to upgrade all bundles before repackaging the using bundles.
-
-
-
-## Installing and upgrading bundles from the Bundle Repository
-
-The OSGi Bundle Repository is a repository of bundles, from which Sling may download and install or upgrade bundles very easily. Unlike the installation of bundles by file upload, the OSGi Bundle Repository has the functionality to resolve and dependencies of bundles to be installed.
-
-Say you wish to install bundle *X* which depends on packages provided by bundle *Y*. When uploading bundle *X* as a file it will not resolve, that is Sling (the OSGi framework actually) is not able to ensure proper operation of bundle *X* and thus prevents the bundle from being started and used. You will have to manually upload bundle *Y* yourself. When using the OSGi Bundle Repository, you just select bundle *X* for installation and the bundle repository will find out, that bundle *Y* is also required and will automatically download and install it along with bundle *X*.
-
-
-### The Bundle Repository page
-
-Installation or update of bundles may be done on the *Bundle Repository* page of the Sling Management Console. In the upper part of the page, you will see a list (usually just a single entry) of OSGi Bundle Repositories known to Sling. In the lower part of the list you see the bundles available from these repositories. To install or update bundles, just check the respective button and click on the *Deploy Selected* or *Deploy and Start Selected* button at the bottom of the page depending on whether you want to start the bundle(s) after installation or not.
-
-See below for more information on OSGi Bundle Repository management.
-
-
-
-### The Bundles page
-
-You may also want to upgrade already installed bundles from the *Bundles* page of the Sling Management Console. For each bundle listed in this page, there is an *Upgrade* button. If there is an upgrade to the installed bundle available in the OSGi Bundle Repository, the button is enabled and clicking on the button will upgrade the respective bundle. If no upgrade is available from the OSGi Bundle Repository, this button is disabled.
-
-
-
-### Managing OSGi Bundle Repositories
-
-Currently management of known OSGi Bundle Repositories is very simple. If a configured bundle repository is not available on startup, it will be marked as being inactive. If you know the repository is now available, you may click on the *Refresh* button, to activate it. Similarly, the contents of the repository may be modified by for example adding new bundles or updating bundles in the repository, these changes will be made known to Sling by clicking the *Refresh* button.
-
-There exists no GUI functionality yet to add a new repository to the list of known repositories. Instead you may submit a request with parameters `action` whose value must be `refreshOBR` and `repository` whose value must be the URL to the repository descriptor file generally called `repository.xml`.
-
-For example, if you run Sling on `http://localhost:7402/sample` with default location of the Sling Management Console, the following request would add a repository at `/tmp/repo/repository.xml` in the filesystem:
-
-:::html
-http://localhost:7402/sample/system/console/bundlerepo?action=refreshOBR&repository=file:///tmp/repo/repository.xml
-
-Note: Only use `file:` URLs if you know Sling has access to the named file !

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/tutorials-how-tos/jackrabbit-persistence.md
----------------------------------------------------------------------
diff --git a/content/documentation/tutorials-how-tos/jackrabbit-persistence.md b/content/documentation/tutorials-how-tos/jackrabbit-persistence.md
deleted file mode 100644
index c9c5d84..0000000
--- a/content/documentation/tutorials-how-tos/jackrabbit-persistence.md
+++ /dev/null
@@ -1,112 +0,0 @@
-title=Jackrabbit Persistence		
-type=page
-status=published
-~~~~~~
-
-Out-of-the-box the embedded Jackrabbit repository used by Sling (the Embedded Jackrabbit Repository bundle) uses Derby to persist the JCR nodes and properties. For some applications or environments it may be required or required to replace Derby with another backing store such as PostgreSQL or Oracle.
-
-This page is based on the journey of Tony Giaccone to get Sling running with a PostgreSQL based Jackrabbit instance.
-
-
-## Management Summary
-
-To replace Derby as the persistence manager for Jackrabbit the following steps are required:
-
-1. Provide a JDBC driver for your database as an OSGi bundle
-1. Reconfigure Jackrabbit to use your database
-1. (Re-) Start the Embedded Jackrabbit bundle
-
-When you are not using the Derby persistence manager, you may safely remove the Derby bundle from your Sling instance.
-
-
-## JDBC Driver
-
-The hardest thing to do is probably getting the JDBC driver for your database. One option is to look at the bundles provided by Spring Source in their repository at <http://www.springsource.com/repository/>.
-
-Another option is to create the bundle on your own using Peter Kriens' [bnd Tool](http://bnd.bndtools.org/):
-
-1. Get the JDBC driver for your database from the driver provider
-1. Wrap the JDBC driver library into an OSGi bundle:
-
-:::sh
-# Example for PostgreSQL JDBC 3 driver 8.4-701
-$ java -jar bnd.jar wrap postgresql-8.4-701.jdbc3.jar
-$ mv postgresql-8.4-701.jdbc3.bar postgresql-8.4-701.jdbc3-bnd.jar
-
-1. Deploy the driver to your local Maven 2 Repository (Required if adding the JDBC driver to a Maven build, e.g. using the Sling Launchpad Plugin)
-
-:::sh
-$ mvn install:install-file
--DgroupId=postgresql -DartifactId=postgresql -Dversion=8.4.701.jdbc3
--Dpackaging=jar -Dfile=postgresql-8.4-701.jdbc3-bnd.jar
-
-
-Tony reports no success with the Spring Source bundle, whily the bnd approach worked for the PostgreSQL JDBC driver.
-
-
-## Replace Derby in a running Sling Instance
-
-To replace Derby in a running Sling instance follow these steps (e.g. through the Web Console at `/system/console`):
-
-1. Uninstall the Apache Derby bundle
-1. Install the JDBC bundle prepared in the first step
-1. Stop the Jackrabbit Embedded Repository bundle
-This needs to be reconfigured and restarted anyway. So lets just stop it to prevent failures in the next step.
-1. Refresh the packages (click the *Refresh Packages* button)
-
-Alternatively, you may wish to stop Sling after uninstalling Derby and installing the JDBC bundle. Technically, this is not required, though.
-
-
-## Reconfiguring Jackrabbit
-
-To actually use a persistence manager other than the default (Derby) persistence manager, you have to configure Jackrabbit to use it. Create a `repository.xml` file in the `sling/jackrabbit` folder before starting Sling for the first time. If the repository was already started, you can also modify the existing file.
-
-To prepare a repository.xml file before first startup, use the [`repository.xml`](http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml) as a template and modify it by replacing the `<PersistenceManager>` elements to refer to the selected persistence manager.
-
-If the file already exists, you can modifiy this existing file and there is no need to get the original from the SVN repository.
-
-For example to use PostgreSQL instead of Derby modify the `<PersistenceManager>` elements as follows:
-
-:::xml
-<Repository>
-...
-<Workspace name="${wsp.name}">
-...
-<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
-<param name="driver" value="org.postgresql.Driver"/>
-<param name="url" value="jdbc:postgresql://localhost:5432/YOUR_DB_NAME_HERE"/>
-<param name="schema" value="postgresql"/>
-<param name="user" value="YOUR_USER_HERE"/>
-<param name="password" value="YOUR_PASSWORD_HERE"/>
-<param name="schemaObjectPrefix" value="jcr_${wsp.name}_"/>
-<param name="externalBLOBs" value="false"/>
-</PersistenceManager>
-...
-</Workspace>
-
-<Versioning rootPath="${rep.home}/version">
-...
-<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
-<param name="driver" value="org.postgresql.Driver"/>
-<param name="url" value="jdbc:postgresql://localhost:5432/YOUR_DB_NAME_HERE"/>
-<param name="schema" value="postgresql"/>
-<param name="user" value="YOUR_USER_HERE"/>
-<param name="password" value="YOUR_PASSWORD_HERE"/>
-<param name="schemaObjectPrefix" value="version_"/>
-<param name="externalBLOBs" value="false"/>
-</PersistenceManager>
-</Versioning>
-...
-</Repository>
-
-
-Modify the `url`, `user`, and `password` parameters to match your database setup.
-
-If you reconfigure Jackrabbit to use the new persistence manager, the existing repository data in the `sling/jackrabbit` directory, except the `repository.xml` file, of course, should now be removed.
-
-Finally either start Sling or start the Jackrabbit Embedded Repository bundle.
-
-
-## Credits
-
-This description is based on Tony Giaccone's description [Swapping Postgres for Derby](http://markmail.org/message/wlbfrukmjjsl33hh) sent to the Sling Users mailing list.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/tutorials-how-tos/testing-sling-based-applications.md
----------------------------------------------------------------------
diff --git a/content/documentation/tutorials-how-tos/testing-sling-based-applications.md b/content/documentation/tutorials-how-tos/testing-sling-based-applications.md
deleted file mode 100644
index 5ec3106..0000000
--- a/content/documentation/tutorials-how-tos/testing-sling-based-applications.md
+++ /dev/null
@@ -1,119 +0,0 @@
-title=Testing Sling-based applications		
-type=page
-status=published
-~~~~~~
-
-Automated testing of OSGi components and services can be challenging, as many of them depend on other services that must be present or simulated for testing.
-
-This page describes the various approaches that we use to test Sling itself, and introduces a number of tools that can help testing OSGi and HTTP-based applications.
-
-[TOC]
-
-## Unit tests
-
-When possible, unit tests are obviously the fastest executing ones, and it's easy to keep them close to the code that they're testing.
-
-We have quite a lot of those in Sling, the older use the JUnit3 TestCase base class, and later ones use JUnit4 annotations. Mixing both approaches is possible, there's no need to rewrite existing tests.
-
-## Tests that use a JCR repository
-
-Utility classes from our [commons/testing](https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/testing) module make it easy to get a real JCR repository for testing. That's a bit slower than pure unit tests, of course, but this only adds 1-2 seconds to the execution of a test suite.
-
-The `RepositoryProviderTest` in that module uses this technique to get a JCR repository.
-
-Note that our utilities do not cleanup the repository between tests, so you must be careful about test isolation, for example by using unique paths for each test.
-
-## Mock classes and services
-
-The next step is to use mock classes and services to simulate components that are needed for testing. This makes it possible to test OSGi service classes without an OSGi framework, or classes accessing the Sling or JCR API without a running Sling instance or JCR repository.
-
-The [Development](/documentation/development.html) documentation page contains a section "Testing Sling-based Applications" lising all mock implementations available as part of the Apache Sling project.
-
-In other cases we use [jmock](http://www.jmock.org/) or [Mockito][1] to help create mock objects without having to write much code - such mocking libraries take care of the plumbing and allow you to write just the bits of code that matter (often with funny syntaxes). The tests of the [org.apache.sling.event](https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/event/) bundle, for example, make extensive use of such mock services.
-
-The problem with mocks is that it can become hard to make sure you're actually testing something, and not just "mocking mocks". At a certain level of complexity, it becomes quicker and clearer to actually start an OSGi framework for automated tests.
-
-### Side note: injecting services in private fields
-
-To inject (real or fake) services in others for testing, without having to create getters and setters just for this, you could use a reflection-based trick, as in the below example. Utilities
-such as the [PrivateAccessor](http://junit-addons.sourceforge.net/junitx/util/PrivateAccessor.html) from [junit-addons](http://junit-addons.sourceforge.net/) make that simpler.
-
-#!java
-// set resource resolver factory
-// in a ServletResolver object which has a private resourceResolverFactory field
-
-ServletResolver servletResolver = ....
-Class<?> resolverClass = servletResolver.getClass().getSuperclass();
-final java.lang.reflect.Field resolverField = resolverClass.getDeclaredField("resourceResolverFactory");
-resolverField.setAccessible(true);
-resolverField.set(servletResolver, factory);
-
-
-## Pax Exam
-
-[Pax Exam](http://team.ops4j.org/wiki/display/paxexam/Pax+Exam) allows you to easily start an OSGi framework during execution of a JUnit test suite.
-
-We currently use it for our [Sling installer integration tests](https://svn.apache.org/repos/asf/sling/trunk/installer/it) for example. As parts of the installer interact directly with the OSGi framework, it felt safer to test it in a realistic situation rather than mock everything.
-
-Such tests are obviously slower than plain unit tests and tests that use mocks. Our installer integration tests, using Pax Exam, take about a minute to execute on a 2010 macbook pro.
-
-## Server-side JUnit tests
-
-The tools described on the [JUnit server-side testing support](/documentation/bundles/org-apache-sling-junit-bundles.html) page allow for
-running JUnit tests on an live Sling instance, as part of the normal integration testing cycle.
-
-## HTTP-based integration tests
-The [Sling HTTP Testing Rules](https://svn.apache.org/repos/asf/sling/trunk/testing/junit/rules) allow writing integration tests easily. They are primarily meant to be used for tests that use http against
-a Sling instance and make use of the [org.apache.sling.testing.clients](https://svn.apache.org/repos/asf/sling/trunk/testing/http/clients) which offer a simple, immutable and extendable way of working
-with specialized testing clients.
-
-The JUnit rules incorporate boiler-plate logic that is shared in tests and take the modern approach of using rules rather than
-inheritance. The `SlingRule` (for methods) or `SlingClassRule` (for test classes) are base rules, chaining other rules like `TestTimeoutRule`,
-`TestDescriptionRule`, `FilterRule`. The `SlingInstanceRule` extends that and starts a Sling instance if needed and also allows
-instantiating a `SlingClient` pointing to the instance and automatically configure the base url, credentials, etc.
-
-
-### <a name="starting"></a> Starting an Integration Test
-Starting an integration is very simple out of the box, but is very extendable, both by combining or configuring the junit rules and by
-using the versatile `SlingClient` (which can be extended or adapted by calling `adaptTo(MyClient.class)` without losing the client
-configuration)
-
-The [README](https://svn.apache.org/repos/asf/sling/trunk/testing/junit/rules/README.md) provides more detail, as do [the tests](https://svn.apache.org/repos/asf/sling/trunk/testing/junit/rules/src/test/java).
-The [Sling HTTP Testing Clients](https://svn.apache.org/repos/asf/sling/trunk/testing/http/clients) provide simple explanations, and unit tests.
-
-#### Maven Dependency
-#!xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.testing.rules</artifactId>
-<version>0.1.0-SNAPSHOT</version>
-</dependency>
-
-#### Simple Example using SlingInstanceRule
-
-
-#!java
-public class MySimpleIT {
-
-@ClassRule
-public static SlingInstanceRule instanceRule = new SlingInstanceRule();
-
-@Rule
-public SlingRule methodRule = new SlingRule(); // will configure test timeout, description, etc.
-
-@Test
-public void testCreateNode() {
-SlingClient client = instanceRule.getAdminClient();
-client.createNode("/content/myNode", "nt:unstructured");
-Assert.assertTrue("Node should be there", client.exists("/content/myNode"));
-//client.adaptTo(OsgiConsoleClient.class).editConfigurationWithWait(10, "MYPID", null, myMap);
-}
-}
-
-
-## Summary
-
-Combining the above testing techniques has worked well for us in creating and testing Sling. Being able to test things at different levels of integration has proved an efficient way to get good test coverage without having to write too much boring test code.
-
-
-[1]: https://code.google.com/p/mockito/

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/downloads.cgi
----------------------------------------------------------------------
diff --git a/content/downloads.cgi b/content/downloads.cgi
deleted file mode 100755
index 435af12..0000000
--- a/content/downloads.cgi
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Wrapper script around mirrors.cgi script (http://www.apache.org/dev/release-download-pages.html)
-# (we must change to that directory in order for python to pick up the
-#  python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/downloads.md
----------------------------------------------------------------------
diff --git a/content/downloads.md b/content/downloads.md
deleted file mode 100644
index c502cb6..0000000
--- a/content/downloads.md
+++ /dev/null
@@ -1,37 +0,0 @@
-title=Downloads
-type=downloads
-status=published
-comment=the download data (bundle version etc) is found in the downloads template
-~~~~~~
-
-To get the latest development release of Apache Sling, you can check out the Source Code and Getting and Building Sling yourself. Otherwise, the releases below are available for download. To install, just download and extract. The PGP keys at [[https://people.apache.org/keys/group/sling.asc]] can be used to verify the integrity of the release archives.
-
-All Apache Sling products are distributed under the terms of The Apache Software License (version 2.0). See our license, or the LICENSE file included in each distribution. 
-
-TODO ToC ??
-
-# Mirrors
-
-Use the links below to download binary or source distributions of Apache Sling from one of our mirrors.
-
-You are currently using **[preferred]**. If you encounter a problem with
-this mirror, please select another mirror. If all mirrors are failing,
-there are backup mirrors (at the end of the mirrors list) that should be
-available. If the mirror displayed above is labeled *preferred*, then
-please reload this page by [downloads.cgi](clicking here)
-
-<form action="[location]" method="get" id="SelectMirror">
-<p>Other mirrors: </p>
-<select name="Preferred">
-[if-any http]
-[for http]<option value="[http]">[http]</option>[end]
-[end]
-[if-any ftp]
-[for ftp]<option value="[ftp]">[ftp]</option>[end]
-[end]
-[if-any backup]
-[for backup]<option value="[backup]">[backup] (backup)</option>[end]
-[end]
-</select>
-<input type="submit" value="Change"></input>
-</form>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/errors/403.md
----------------------------------------------------------------------
diff --git a/content/errors/403.md b/content/errors/403.md
deleted file mode 100644
index def2c05..0000000
--- a/content/errors/403.md
+++ /dev/null
@@ -1,27 +0,0 @@
-title=Forbidden (403)		
-type=page
-status=published
-~~~~~~
-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.
-
-We're sorry, but the page you requested cannot be accessed. This may be because:
-
-* You typed the address incorrectly
-* You followed a link from another site that pointed to this page.
-
-If you came to this page by following a broken link on our site, you can report the [problem](https://issues.apache.org/jira/browse/SLING).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/errors/404.md
----------------------------------------------------------------------
diff --git a/content/errors/404.md b/content/errors/404.md
deleted file mode 100644
index a35f228..0000000
--- a/content/errors/404.md
+++ /dev/null
@@ -1,28 +0,0 @@
-title=Page Not Found		
-type=page
-status=published
-~~~~~~
-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.
-
-We're sorry, but the page you requested cannot be found. This may be because:
-
-* The page has moved, was outdated, or has not been created yet
-* You typed the address incorrectly
-* You followed a link from another site that pointed to this page.
-
-If you came to this page by following a broken link on our site, you can report the [problem](https://issues.apache.org/jira/browse/SLING).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/favicon.ico
----------------------------------------------------------------------
diff --git a/content/favicon.ico b/content/favicon.ico
deleted file mode 100644
index a36e242..0000000
Binary files a/content/favicon.ico and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/guides.md
----------------------------------------------------------------------
diff --git a/content/guides.md b/content/guides.md
deleted file mode 100644
index 30a4d95..0000000
--- a/content/guides.md
+++ /dev/null
@@ -1,23 +0,0 @@
-title=Guides		
-type=page
-status=published
-~~~~~~
-translation_pending: true
-
-These pages contain further information in a more informal way.
-
-* [Discover Sling in 15 minutes ](/documentation/getting-started/discover-sling-in-15-minutes.html) - title says it all
-
-* [Resources](/documentation/the-sling-engine/resources.html) -- Presents the Resource as the object around which Sling is built
-* [Servlet Resolution]({{ refs.servlet-resolution.path }}) -- How Sling resolves the servlet or script responsible for rendering a Resource.
-* [Request Parameters](/documentation/the-sling-engine/request-parameters.html) -- Explains how Sling provides request parameters to servlets, scripts and filters.
-* [Repository Based Development](/documentation/development/repository-based-development.html) -- Shows how WebDAV is supported by Sling.
-
-* [Bundle Management](/documentation/tutorials-how-tos/installing-and-upgrading-bundles.html) -- Explains how to install, upgrade and uninstall Bundles using the Sling Management console.
-
-
-These pages refer to the old Component API and launcher, and remain referred to here until more up to date documentation has been prepared:
-
-* [Getting and Building Sling](/documentation/development/getting-and-building-sling.html) -- A short recount on the first step for getting a running Sling instance after checking out the source from the SVN repository
-* [Default Mapping and Rendering](/documentation/the-sling-engine/default-mapping-and-rendering.html) -- Explains default mapping of repository nodes to Content instances and selection of a default Component.
-* [Dispatching Requests](/documentation/the-sling-engine/dispatching-requests.html) -- Explains how a Component may dispatch requests to include further content renderings in the response to the client's request

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/index.md
----------------------------------------------------------------------
diff --git a/content/index.md b/content/index.md
deleted file mode 100644
index 392a6cb..0000000
--- a/content/index.md
+++ /dev/null
@@ -1,148 +0,0 @@
-title=Apache Sling - Bringing Back the Fun!		
-type=page
-status=published
-~~~~~~
-
-**Apache Sling&trade;** is an innovative web framework that is intended to
-bring back the fun to web development.
-
-Discussions about Sling happen on our mailing lists, see the [Project Information](/project-information.html)
-page for more info.
-
-# Apache Sling in five bullets points
-
-* REST based web framework
-* Content-driven, using a JCR content repository
-* Powered by OSGi
-* Scripting inside, multiple languages (JSP, server-side javascript, Scala,
-etc.)
-* Apache Open Source project
-
-# Apache Sling in a hundred words
-
-Apache Sling is a web framework that uses a [Java Content Repository](http://en.wikipedia.org/wiki/JSR-170), such as [Apache Jackrabbit](http://jackrabbit.apache.org/), to store and manage content.
-
-Sling applications use either scripts or Java servlets, selected based on
-simple name conventions, to process HTTP requests in a RESTful way.
-
-The embedded [Apache Felix](http://felix.apache.org/)
-OSGi framework and console provide a dynamic runtime environment, where
-code and content bundles can be loaded, unloaded and reconfigured at
-runtime.
-
-As the first web framework dedicated to [JSR-170](http://jcp.org/en/jsr/detail?id=170)
-Java Content Repositories, Sling makes it very simple to implement simple
-applications, while providing an enterprise-level framework for more
-complex applications.
-
-## News
-
-<ul id="newsExcerpt">
-</ul>
-
-
-Refer to the news [archive](/news.html) for all news.
-
-## History
-
-Sling started as an internal project at [Day Software](http://www.day.com)
-, and entered the Apache Incubator in September 2007. As of June, 17th,
-2009 Apache Sling is a top level project of the Apache Software Foundation.
-
-The name "Sling" has been proposed by Roy Fielding who explained it like
-this:
-
-> [The name is] Biblical in nature.  The story of David: the weapon he
-> uses to slay the giant Goliath is a sling.  Hence, our David's
-> [David Nuescheler, CTO of Day Software] favorite weapon.
-
-> It is also the simplest device for delivering content very fast.
-
-## Getting started
-
-If you prefer doing rather than reading, please proceed to [Discover Sling in 15 minutes](/documentation/getting-started/discover-sling-in-15-minutes.html)
-or read through the recommended links in the [Getting Started](/documentation/getting-started.html)
-section, where you can quickly get started on your own instance of Sling.
-
-## Use Cases for Sling
-
-#### Wiki
-
-Day built a Wiki system on Sling. Each Wiki page is a node (with optional
-child nodes) in the repository. As a page is requested, the respective node
-is accessed and through the applying Component is rendered.
-
-Thanks to the JCR Mapping and the resolution of the Component from the
-mapped Content, the system does not care for what actual node is addressed
-as long as there is a Content mapping and a Component capable of handling
-the Content.
-
-Thus in the tradition of REST, the attachement of a Wiki page, which
-happens to be in a node nested below the wiki page node is easily accessed
-using the URL of the wiki page attaching the relative path of the
-attachement  ode. The system resolves the URL to the attachement Content
-and just calls the attachement's Component to spool the attachement.
-
-
-
-#### Digital Asset Management
-
-Day has implemented a Digital Asset Management (DAM) Application based on
-Sling. Thanks to the flexibility of the Content/Component combo as well as
-the service registration/access functionality offered by OSGi, extending
-DAM for new content type is merely a matter of implementing one or two
-interfaces and registering the respective service(s).
-
-Again, the managed assets may be easily spooled by directly accessing them.
-
-
-#### Web Content Management
-
-Last but not least, Sling offers itself very well to implementing a Web
-Content Management system. Thanks to the flexibility of rendering the
-output - remember: the system does not care what to render, as long as the
-URL resolves to a Content object for which a Component exists, which is
-called to render the Content - providing support for Web Content authors
-(not PHP programmers but users out in the field) to build pages to their
-likings can easily be done.
-
-
-## References
-
-
-#### Apache Jackrabbit
-
-The main purpose of Sling is to develop a content-centric Web Application
-framework for Java Content Repository (JCR) based data stores. Sling is
-implemented - with the notable exception of JCR Node Type management -
-purely in terms of the JCR API and as such may use any JCR compliant
-repository. The default implementation for [Apache Jackrabbit](http://jackrabbit.apache.org)
-is provided out of the box.
-
-#### OSGi
-
-Sling is implemented as a series of [OSGi](http://www.osgi.org)
-Bundles and makes extensive use of the OSGi functionality, such as
-lifecycle management and the service layer. In addition, Sling requires
-several OSGi compendium services to be available, such as the Log Service,
-Http Service, Configuration Admin Service, Metatype Service, and
-Declarative Services.
-
-#### Apache Felix
-
-While Sling does not require a specific OSGi framework implementation to
-run in, Sling is being developed using [Apache Felix](http://felix.apache.org)
-as the OSGi framework implementation. It has not been tested yet, but it
-is expected that Sling also operates perfectly inside other OSGi frameworks
-such as [Equinox](http://www.eclipse.org/equinox) and [Knopflerfish](http://www.knopflerfish.org).
-
-
-<script src="/res/jquery.js" type="text/javascript"></script>
-<script type="text/javascript">
-$(document).ready(function() {
-$.get("/news.html", function(news) {
-var $newsExcerpt = $(news).find('li').slice(0,5);
-$('#newsExcerpt').append($newsExcerpt);
-});
-});
-</script>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/javadoc-io.md
----------------------------------------------------------------------
diff --git a/content/javadoc-io.md b/content/javadoc-io.md
deleted file mode 100644
index 0626628..0000000
--- a/content/javadoc-io.md
+++ /dev/null
@@ -1,10 +0,0 @@
-title=Sling API docs at javadoc.io		
-type=page
-status=published
-~~~~~~
-
-[javadocs.io](http://www.javadoc.io/) provides archived javadocs for all Sling modules (and actually
-for all open source software hosted at Maven Central).
-
-To get the javadocs of a particular module use an URL like `http://javadoc.io/doc/{org}/{artifact}/{version}`, like
-for example [http://www.javadoc.io/doc/org.apache.sling/org.apache.sling.api/2.9.0](http://www.javadoc.io/doc/org.apache.sling/org.apache.sling.api/2.9.0)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/links.md
----------------------------------------------------------------------
diff --git a/content/links.md b/content/links.md
deleted file mode 100644
index 444949d..0000000
--- a/content/links.md
+++ /dev/null
@@ -1,51 +0,0 @@
-title=Links		
-type=page
-status=published
-~~~~~~
-
-Here are some links to other resources
-
-## Articles
-* [Java Content Repository: The Best Of Both Worlds](http://java.dzone.com/articles/java-content-repository-best) - by Bertrand Delacretaz on Javalobby - uses the Sling HTTP interface to demonstrate JCR features.
-* [Accessing Relational Data as SLING RESTful URLs](http://www.lucamasini.net/Home/sling-and-cq5/accessing-relational-data-as-sling-restful-urls) - by Luca Masini
-* [Your First Day With Sakai Nakamura](http://confluence.sakaiproject.org/display/KERNDOC/Your+First+Day+With+Sakai+Nakamura) - Sakai Nakamura is based on Sling, that introductory article has very good explanations of REST and Sling basics, and on why hierarchies are useful on the Web.
-
-## About Sling
-
-* [Sling on dev.day.com](http://dev.day.com/microsling/content/blogs/main.html?category=sling) - Day's developers blog, regularly includes articles on Sling and JCR. Powered by Sling, of course.
-* [Sling on Lars Trieloff's Blog](http://weblogs.goshaky.com/weblogs/lars/tags/sling) - Lars regularly writes on his experiences with Sling. Most notably the mini series of three entries introducing Sling and microsling.
-* [Sling links at del.icio.us](http://del.icio.us/tag/sling+jcr) - If you're a del.icio.us user, please tag Sling-related posts with both *sling* and *jcr* tags, so that they appear in that list.
-* [Sling on Fisheye](http://fisheye6.atlassian.com/browse/sling) - code repository viewer, activity statistics, etc.
-* [Sling on ohloh](https://www.ohloh.net/p/sling) - activity and community statistics.
-* [Sling on MarkMail](http://sling.markmail.org/) - searchable mailing list archives.
-
-
-## Projects using Sling
-
-* Gert Vanthienen succeeded in installing Sling into the new Apache ServiceMix kernel and documented his experience [Sling On ServiceMix Kernel](http://servicemix.apache.org/SMX4KNL/running-apache-sling-on-servicemix-kernel.html)
-
-## Sling Presentations and Screencasts
-
-* [Presentations tagged with "sling" at slideshare](http://www.slideshare.net/tag/sling)
-
-The following screencasts demonstrate Day Software's CRX quickstart product, powered by Sling:
-
-* [First Steps with CRX Quickstart](http://dev.day.com/microsling/content/blogs/main/firststeps1.html)
-* [TheServerSide.com in 15 minutes](http://dev.day.com/microsling/content/blogs/main/firststeps2.html)
-
-## From ApacheCon EU 08
-
-* [ApacheCon EU 08 Fast Feather Track Presentation on Sling](/res/docs/ApacheConEU08_FFT_Sling.pdf)
-* [JCR Meetup Presentation on Sling Architecture](/res/docs/ApacheConEU08_JCR_Meetup_Sling_Architecture.pdf)
-
-## From ApacheCon US 07
-
-* [ApacheCon US 07 Fast Feather Track Presentation on Sling](/res/docs/ApacheConUS07_FFT_Sling.pdf)
-* [Feathercast On Day 4 with an interview on Sling with Felix](http://feathercast.org/?p=59)
-
-## Technology used by Sling
-
-* [Apache Jackrabbit](http://jackrabbit.apache.org) - The reference implementation of the Content Repository for Java (JCR) Specification. This implementation is used in Sling as the primary repository.
-* [JSR 170: Content Repository for Java{tm} technology API](http://www.jcp.org/en/jsr/detail?id=170) - The specification of the repository API.
-* [Apache Felix](http://felix.apache.org) - The OSGi Framework implementation we use in Sling.
-* [The OSGi Alliance](http://www.osgi.org) - The OSGi Alliance is the specification body defining the OSGi Core and Compendium Services. These specifications are at the center of making Sling possible.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/media.md
----------------------------------------------------------------------
diff --git a/content/media.md b/content/media.md
deleted file mode 100644
index 424c423..0000000
--- a/content/media.md
+++ /dev/null
@@ -1,11 +0,0 @@
-title=Media		
-type=page
-status=published
-~~~~~~
-translation_pending: true
-
-This page holds all media required for the Apache Sling website. The media are attachments and can be addressed using the following URL: http://cwiki.apache.org/SLINGxSITE/media.data/ (followed by the actual name of the attachment).
-
-Currently, some of these attachments are used by the overall site template (only visible/editable by Confluence administrators).
-
-{attachments}


[45/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/sling-health-check-tool.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/sling-health-check-tool.html b/documentation/bundles/sling-health-check-tool.html
new file mode 100644
index 0000000..f851518
--- /dev/null
+++ b/documentation/bundles/sling-health-check-tool.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Health Check Tools</h1></header><p>Based on simple <code>HealthCheck</code> OSGi services, the Sling Health Check Tools ("hc" in short form) are used to check the health of live Sling systems, based on inputs like JMX MBean attribute values, OSGi framework information, Sling requests status, etc.</p>
+<p>Health checks are easily extensible either by configuring the supplied default <code>HealthCheck</code> services, or by implementing your own <code>HealthCheck</code> services to cater for project specific requirements.</p>
+<p>However for simple setups, the out of the box health checks are often sufficient. <a href="#executing-health-checks">Executing Health Checks</a> is a good starting point to run existing checks and to get familiar with how health checks work.</p>
+<p>See also:</p>
+<ul>
+  <li>Source code at <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/healthcheck">http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/healthcheck</a></li>
+  <li>adaptTo slides about Health Checks: <a href="http://www.slideshare.net/bdelacretaz/slinghc-bdelacretazadaptto2013">Introduction</a> and <a href="https://adapt.to/content/dam/adaptto/production/presentations/2014/adaptTo2014-Sling-Health-Checks-New-And-Noteworthy-Georg-Henzler.pdf/_jcr_content/renditions/original.media_file.download_attachment.file/adaptTo2014-Sling-Health-Checks-New-And-Noteworthy-Georg-Henzler.pdf">Health Check Executor</a></li>
+</ul>
+<h2>Use cases</h2>
+<p>Generally health checks have two high level use cases:</p>
+<ul>
+  <li>Operations teams checking sling instances for their internal state manually</li>
+  <li>Load balancers can query the health of a sling instance and decide to take it out or back into the list of used backends automatically</li>
+</ul>
+<p>The strength of Health Checks are to surface internal Sling state for external use:</p>
+<ul>
+  <li>Verify that performance counters are in range</li>
+  <li>Run smoke tests at system startup</li>
+  <li>Check that all OSGi bundles are up and running</li>
+  <li>Check that demo content has been removed from a production system</li>
+  <li>Check that demo accounts are disabled</li>
+  <li>Ping external systems and raise alarms if they are down</li>
+</ul>
+<p>The health check subsystem uses tags to select which health checks to execute so you can for example execute just the <em>performance</em> or <em>security</em> health checks once they are configured with the corresponding tags.</p>
+<p>The out of the box health check services also allow for using them as JMX aggregators and processors, which take JMX attribute values as input and make the results accessible via JMX MBeans.</p>
+<h2>What's a <code>HealthCheck</code> ?</h2>
+<p>A <code>HealthCheck</code> is just an OSGi service that returns a <code>Result</code>.</p>
+<p>public interface HealthCheck {</p>
+<p>/** Execute this health check and return a {@link Result} * This is meant to execute quickly, access to external * systems, for example, should be managed asynchronously. */ public Result execute(); }</p>
+<p>Where <code>Result</code> is a simple immutable class that provides a <code>Status</code> (OK, WARN, CRITICAL etc.) and one or more log-like messages that can provide more info about what, if anything, went wrong.</p>
+<p>public class Result implements Iterable &lt;ResultLog.Entry&gt; {</p>
+<p>public boolean isOk() { return getStatus().equals(Status.OK); }</p>
+<p>public Status getStatus() { return resultLog.getAggregateStatus(); }</p>
+<p>@Override public Iterator&lt;ResultLog.Entry&gt; iterator() { return resultLog.iterator(); }</p>
+<p>... details omitted }</p>
+<h3>SlingHealthCheck annotation</h3>
+<p>The <code>SlingHealthCheck</code> annotation makes it easier to specify the required <code>HealthCheck</code> service properties.</p>
+<p>Here's an example from the <code>samples</code> module - see the <code>annotations</code> module for more details.</p>
+<p>@SlingHealthCheck( name="Annotated Health Check Sample", mbeanName="annotatedHC", description="Sample Health Check defined by a java annotation", tags={"sample","annotation"})</p>
+<p>public class AnnotatedHealthCheckSample implements HealthCheck {</p>
+<p>@Override public Result execute() { ...health check code } }</p>
+<h2>Executing Health Checks</h2>
+<p>Health Checks can be executed via a <a href="#webconsole-plugin">webconsole plugin</a>, the <a href="#health-check-servlet">health check servlet</a> or via <a href="#jmx-access-to-health-checks">JMX</a>. <code>HealthCheck</code> services can be selected for execution based on their <code>hc.tags</code> multi-value service property.</p>
+<p>The <code>HealthCheckFilter</code> utility accepts positive and negative tag parameters, so that <code>-security,sling</code> selects all <code>HealthCheck</code> having the <code>sling</code> tag but not the <code>security</code> tag, for example.</p>
+<p>For advanced use cases it is also possible to use the API directly by using the interface <code>org.apache.sling.hc.api.execution.HealthCheckExecutor</code>.</p>
+<h2>Health Check bundles</h2>
+<p>The Health Check subsystem consists of the following bundles:</p>
+<ul>
+  <li>The only required bundles are <code>org.apache.sling.hc.api</code> which provides the API and <code>org.apache.sling.hc.core</code> which provides some utility classes and some generally useful <code>HealthCheck</code> services (e.g. the health check executor)</li>
+  <li><code>org.apache.sling.hc.support</code> provides more Sling-specific <code>HealthCheck</code> services.</li>
+  <li><code>org.apache.sling.hc.webconsole</code> provides the Webconsole plugin described below.</li>
+  <li><code>org.apache.sling.junit.healthcheck</code> provides a <code>HealthCheck</code> service that executes JUnit tests in the server-side OSGi context.</li>
+  <li><code>org.apache.sling.hc.samples</code> provides sample OSGi configurations and <code>HealthCheck</code> services. The sample configurations are provided as Sling content, so the Sling Installer is required to activate them.</li>
+  <li><code>org.apache.sling.hc.junit.bridge</code> makes selected Health Checks available as server-side JUnit tests. See below for more info.</li>
+</ul>
+<h2>Out-of-the-box <code>HealthCheck</code> services</h2>
+<p>The following default <code>HealthCheck</code> services are provided by the <code>org.apache.sling.hc.core</code> bundle:</p>
+<p>The <code>org.apache.sling.hc.samples</code> bundle provides OSGi configurations that demonstrate them.</p>
+<ul>
+  <li><code>JmxAttributeHealthCheck</code> checks the value of a single JMX attribute and supports ranges like <em>between 12 and 42</em>.</li>
+  <li><code>ScriptableHealthCheck</code> evaluates an expression written in any scripting language that Sling supports, and provides bindings to access JMX attributes.</li>
+  <li><code>CompositeHealthCheck</code> executes a set of <code>HealthCheck</code> selected by tags, useful for creating higher-level checks.</li>
+</ul>
+<p>A few more Sling-specific ones are provided by the <code>org.apache.sling.hc.support</code> bundle:</p>
+<ul>
+  <li><code>SlingRequestStatusHealthCheck</code> checks the HTTP status of Sling requests.</li>
+  <li><code>DefaultLoginsHealthCheck</code> can be used to verify that the default Sling logins fail.</li>
+  <li><code>ThreadUsageHealthCheck</code> can be used to monitor for deadlocks using JRE ThreadMXBean (see <a href="https://issues.apache.org/jira/browse/SLING-6698">SLING-6698</a> )</li>
+</ul>
+<p>A bridge to server-side OSGi-aware JUnit tests is provided by the <code>JUnitHealthCheck</code>, from the <code>org.apache.sling.junit.healthcheck</code> bundle.</p>
+<p>The <code>org.apache.sling.hc.samples</code> bundle provides an example <code>OsgiScriptBindingsProvider</code> for the default <code>ScriptableHealthCheck</code>, which provides OSGi-related information to health check script expressions.</p>
+<h2>Configuring Health Checks</h2>
+<p><code>HealthCheck</code> services are created via OSGi configurations. Generic health check service properties are interpreted by the health check executor service. Custom health check service properties can be used by the health check implementation itself to configure its behaviour.</p>
+<p>The following generic Health Check properties may be used for all checks:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Type </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>hc.name </td>
+      <td>String </td>
+      <td>The name of the health check as shown in UI</td>
+    </tr>
+    <tr>
+      <td>hc.tags </td>
+      <td>String[] </td>
+      <td>List of tags: Both Felix Console Plugin and Health Check servlet support selecting relevant checks by providing a list of tags</td>
+    </tr>
+    <tr>
+      <td>hc.mbean.name </td>
+      <td>String </td>
+      <td>Makes the HC result available via given MBean name. If not provided no MBean is created for that <code>HealthCheck</code></td>
+    </tr>
+    <tr>
+      <td>hc.async.cronExpression </td>
+      <td>String </td>
+      <td>Used to schedule the execution of a <code>HealthCheck</code> at regular intervals, using a cron expression as specified by the <a href="/documentation/bundles/scheduler-service-commons-scheduler.html">Sling Scheduler</a> module.</td>
+    </tr>
+    <tr>
+      <td>hc.resultCacheTtlInMs </td>
+      <td>Long </td>
+      <td>Overrides the global default TTL as configured in health check executor for health check responses (since v1.2.6 of core)</td>
+    </tr>
+  </tbody>
+</table>
+<p>All service properties are optional.</p>
+<p>As an example, here's a <code>ScriptableHealthCheck</code> configuration provided by the <code>org.apache.sling.hc.samples</code> bundle:</p>
+<p>Factory PID = org.apache.sling.hc.ScriptableHealthCheck "hc.name" : "LoadedClassCount and ManagementSpecVersion are in range" "hc.mbean.name" : "LoadedClassCount and ManagementSpecVersion" "hc.tags" : [jvm, script] "expression" : "jmx.attribute('java.lang:type=ClassLoading', 'LoadedClassCount') &gt; 10 &amp;&amp; jmx.attribute('java.lang:type=Runtime', 'ManagementSpecVersion') &gt; 1" "language.extension" : "ecma"</p>
+<p>The service properties starting with the <code>hc.</code> prefix in this example should be provided by all <code>HealthCheck</code> services.</p>
+<h2>Configuring the Health Check Executor</h2>
+<p>The health check executor can <strong>optionally</strong> be configured via service PID <code>org.apache.sling.hc.core.impl.executor.HealthCheckExecutorImpl</code>:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Type </th>
+      <th>Default </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>timeoutInMs </td>
+      <td>Long </td>
+      <td>2000ms </td>
+      <td>Timeout in ms until a check is marked as timed out</td>
+    </tr>
+    <tr>
+      <td>longRunningFutureThresholdForCriticalMs </td>
+      <td>Long </td>
+      <td>300000ms = 5min </td>
+      <td>Threshold in ms until a check is marked as 'exceedingly' timed out and will marked CRITICAL instead of WARN only</td>
+    </tr>
+    <tr>
+      <td>resultCacheTtlInMs </td>
+      <td>Long </td>
+      <td>2000ms </td>
+      <td>Result Cache time to live - results will be cached for the given time</td>
+    </tr>
+  </tbody>
+</table>
+<h2>Webconsole plugin</h2>
+<p>If the <code>org.apache.sling.hc.webconsole</code> bundle is active, a webconsole plugin at <code>/system/console/healthcheck</code> allows for executing health checks, optionally selected based on their tags (positive and negative selection, see the <code>HealthCheckFilter</code> mention above).</p>
+<p>The DEBUG logs of health checks can optionally be displayed, and an option allows for showing only health checks that have a non-OK status.</p>
+<p>The screenshot below shows an example, as of svn revision 1513462.</p>
+<p><img src="sling-hc-plugin.jpg" alt="Health Check Webconsole Plugin" /></p>
+<h2>JMX access to health checks</h2>
+<p>If the <code>org.apache.sling.hc.jmx</code> bundle is active, a JMX MBean is created for each <code>HealthCheck</code> which has the service property <code>hc.mbean.name</code> service property set. All health check MBeans are registered in the domain <code>org.apache.sling.healthcheck</code> with a type of <code>HealthCheck</code>.</p>
+<p>The MBean gives access to the <code>Result</code> and the log, as shown on the screenshot below.</p>
+<p>See the example configurations of the <code>org.apache.sling.hc.samples</code> for more details.</p>
+<p><img src="jconsole-hc.jpg" alt="JConsole showing Sling Health Check MBeans" /></p>
+<h2>Health Check Servlet</h2>
+<p>Starting with version 1.2.4 of the <code>org.apache.sling.hc.core</code> bundle, a flexible Health Checks execution servlet is available. It provides similar features to the Web Console plugin described above, with output in HTML, JSON (plain or jsonp) and TXT (concise or verbose) formats (see HTML format rendering page for more documentation).</p>
+<p>The Health Checks Servlet is disabled by default, to enable it create an OSGi configuration like</p>
+<p>PID = org.apache.sling.hc.core.impl.servlet.HealthCheckExecutorServlet servletPath = /system/health</p>
+<p>which specifies the servlet's base path. That URL then returns an HTML page, by default with the results of all active health checks and with instructions at the end of the page about URL parameters which can be used to select specific Health Checks and control their execution and output format.</p>
+<p>Note that by design <strong>the Health Checks Servlet doesn't do any access control by itself</strong> to ensure it can detect unhealthy states of the authentication itself. Make sure the configured path is only accessible to relevant infrastructure and operations people. Usually all <code>/system/*</code> paths are only accessible from a local network and not routed to the Internet.</p>
+<h2>Health Checks as server-side JUnit tests</h2>
+<p>The <code>org.apache.sling.hc.junit.bridge</code> bundle makes selected Health Checks available as server-side JUnit tests.</p>
+<p>It requires the <code>org.apache.sling.junit.core bundle</code> which provides the server-side JUnit tests infrastructure.</p>
+<p>The idea is to implement the smoke tests of your system, for example, as health checks. You can then run them as part of integration testing, using the <a href="/documentation/development/sling-testing-tools.html">Sling Testing Tools</a> remote testing utilities, and also as plain Health Checks for monitoring or troubleshooting Sling instances.</p>
+<p>To use this module, configure sets of tags at <code>/system/console/configMgr/org.apache.sling.hc.junitbridge.HealthCheckTestsProvider</code> using the standard <code>includeThisTag,-omitThatTag</code> syntax, and JUnit tests will be available at /system/sling/junit/HealthChecks.html to run the corresponding Health Checks.</p>
+<p>To run the Health Check tests at build time, see the <a href="http://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests">testing/samples/integration-tests</a> sample module.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/sling-oak-restrictions.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/sling-oak-restrictions.html b/documentation/bundles/sling-oak-restrictions.html
new file mode 100644
index 0000000..378e957
--- /dev/null
+++ b/documentation/bundles/sling-oak-restrictions.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Oak Restrictions</h1></header><p>[TOC]</p>
+<h2>Introduction</h2>
+<p>Oak introduced plugability of restrictions as described in <a href="https://jackrabbit.apache.org/oak/docs/security/authorization/restriction.html#Pluggability">Oak Restriction Management</a>. The bundle sling-oak-restrictions provides additional restrictions that generally make sense for sling applications. Currently sling restrictions for exact resource type match and resource type match including all descendants are supplied.</p>
+<p><strong>Important:</strong> Using the sling restrictions (as well as standard oak restrictions) is not as performant as simple path based ACE entries without any restrictions. Permission setups should always mostly work with path based ACEs and only use ACEs with restrictions for special cases.</p>
+<h2>Restriction sling:resourceTypes</h2>
+<p>This restriction allows to match against a sling resource type of a node and works much like the oak standard restriction <code>rep:ntNames</code>. Only resources that have one of the supplied resource types are matched, child and parent resources with other resource types are not matched.</p>
+<p>The following example allows <code>myAuthorizable</code> to write to all nodes that have either resource type <code>myproj/comp1</code> or <code>myproj/comp2</code>:</p>
+<ul>
+  <li>/content/myprj/mynode</li>
+  <li>rep:policy (rep:ACL)</li>
+  <li>allow (rep:GrantACE)</li>
+  <li>principalName (String) = "myAuthorizable"</li>
+  <li>rep:privileges (Name[]) = "rep:write"</li>
+  <li>rep:restrictions (rep:Restrictions)</li>
+  <li>sling:resourceTypes (String[]) = [myproj/comp1,myproj/comp2]</li>
+</ul>
+<p>Assuming the following structure</p>
+<ul>
+  <li>/content/myprj</li>
+  <li>sling:resourceType (String) = "myproj/siteroot"</li>
+  <li>mynode</li>
+  <li>sling:resourceType (String) = "myproj/comp1"</li>
+  <li>mysubnode</li>
+  <li>sling:resourceType (String) = "myproj/comp3"</li>
+</ul>
+<p>the rule from above will match <code>/content/myprj/mynode</code> and not <code>/content/myprj</code> (parent) nor <code>/content/myprj/mynode/mysubnode</code> (child).</p>
+<p>Naturally (as with any oak restrictions), the rule is limited to its base path. In case the node <code>/content/myprj/othernode</code> is of resource type <code>myproj/comp1</code>, it will still not match.</p>
+<h2>Restriction sling:resourceTypesWithDescendants</h2>
+<p>This restriction matches against resource types in the same way as <a href="#restriction-slingresourcetypes">sling:resourceTypes</a>, except that it will also match all descendants of a matched node.</p>
+<p>The following example allows <code>myAuthorizable</code> to write to all nodes that have either resource type <code>myproj/comp1</code> or <code>myproj/comp2</code> <strong>or are a child of a node, that has one of these resource types</strong>:</p>
+<ul>
+  <li>/content/myprj/mynode</li>
+  <li>rep:policy (rep:ACL)</li>
+  <li>allow (rep:GrantACE)</li>
+  <li>principalName (String) = "myAuthorizable"</li>
+  <li>rep:privileges (Name[]) = "rep:write"</li>
+  <li>rep:restrictions (rep:Restrictions)</li>
+  <li>sling:resourceTypesWithDescendants (String[]) = [myproj/comp1,myproj/comp2]</li>
+</ul>
+<p>Assuming the structure example as mentioned in <a href="#restriction-slingresourcetypes">sling:resourceTypes</a>, the rule from above will match <code>/content/myprj/mynode</code> and <code>/content/myprj/mynode/mysubnode</code> (and any other subnodes of <code>/content/myprj/mynode</code> with arbitrary resource types), but not <code>/content/myprj</code>.</p>
+<h2>Advanced Path Matching</h2>
+<p>Both <a href="#restriction-slingresourcetypes">sling:resourceTypes</a> and <a href="#restriction-slingresourcetypeswithdescendants">sling:resourceTypesWithDescendants</a> support advanced path matching by using <code>resourcetype@path</code>. That way instead of checking the resource type of the current node, the resource type of node at the relative path is checked. For instance this is useful for the case where page content is stored in a <code>jcr:content</code> subnode of a hierarchy, the permission however is required to become effective on the parent node of <code>jcr:content</code>.</p>
+<p>The following example allows <code>myAuthorizable</code> to write to all nodes that have a subnode <code>jcr:content</code> with resource type <code>myproj/comp1</code> or <code>myproj/comp2</code> including their descendants:</p>
+<ul>
+  <li>/content/myprj/mynode</li>
+  <li>rep:policy (rep:ACL)</li>
+  <li>allow (rep:GrantACE)</li>
+  <li>principalName (String) = "myAuthorizable"</li>
+  <li>rep:privileges (Name[]) = "rep:write"</li>
+  <li>rep:restrictions (rep:Restrictions)</li>
+  <li>sling:resourceTypesWithDescendants (String[]) = [myproj/comp1@jcr:content,myproj/comp2@jcr:content]</li>
+</ul>
+<p>Assuming the following structure</p>
+<ul>
+  <li>/content/myprj</li>
+  <li>jcr:content</li>
+  <li>sling:resourceType (String) = "myproj/siteroot"</li>
+  <li>mynode1</li>
+  <li>jcr:content</li>
+  <li>sling:resourceType (String) = "myproj/comp1"</li>
+  <li>mysubnode1</li>
+  <li>jcr:content</li>
+  <li>sling:resourceType (String) = "myproj/comp3"</li>
+  <li>contentsubnode1</li>
+  <li>sling:resourceType (String) = "myproj/comp4"</li>
+  <li>contentsubnode2</li>
+  <li>sling:resourceType (String) = "myproj/comp5"</li>
+  <li>mysubnode2</li>
+  <li>jcr:content</li>
+  <li>sling:resourceType (String) = "myproj/comp3"</li>
+  <li>mynode2</li>
+  <li>jcr:content</li>
+  <li>sling:resourceType (String) = "myproj/comp7"</li>
+</ul>
+<p>the rule from above will match</p>
+<ul>
+  <li><code>/content/myprj/mynode1</code> (because of the <code>@jcr:content</code> part of <code>myproj/comp1@jcr:content</code>)</li>
+  <li><code>/content/myprj/mynode1/jcr:content</code> (it will check for <code>/content/myprj/mynode1/jcr:content/jcr:content</code> that does not exist, but since the parent <code>/content/myprj/mynode1</code> is already a match this matches because of <code>sling:resourceTypesWithDescendants</code>)</li>
+  <li><code>/content/myprj/mynode1/contentsubnode1</code> (because of <code>sling:resourceTypesWithDescendants</code>)</li>
+  <li><code>/content/myprj/mynode1/contentsubnode1</code> (because of <code>sling:resourceTypesWithDescendants</code>)</li>
+</ul>
+<p>and not match</p>
+<ul>
+  <li><code>/content/myprj</code></li>
+  <li><code>/content/myprj/mynode2</code></li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/sling-pipes.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/sling-pipes.html b/documentation/bundles/sling-pipes.html
new file mode 100644
index 0000000..fc151b1
--- /dev/null
+++ b/documentation/bundles/sling-pipes.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Pipes</h1></header><p>tool for doing extract - transform - load operations through a resource tree configuration.</p>
+<p>often one-shot data transformations need sample code to be written &amp; executed. This tiny tool set intends to provide ability to do such transformations with proven &amp; reusable blocks called pipes, streaming resources from one to the other.</p>
+<h2>What is a pipe</h2>
+<p>getOutputBinding ^ | getInput +---+---+ getOutput | | +----&gt; Pipe +----&gt; | | +-------+</p>
+<p>A sling pipe is essentially a sling resource stream:</p>
+<ul>
+  <li>it provides an output as a sling resource iterator</li>
+  <li>it gets its input either from a configured path, either, if its chained (see container pipes below), from another pipe's output</li>
+  <li>each pipe can have additional dynamic inputs using other's bindings, and outputing its own bindings</li>
+</ul>
+<p>At this moment, there are 3 types of pipes to consider:</p>
+<ul>
+  <li>"reader" pipes, that will just output a set of resource depending on the input</li>
+  <li>"writer" pipes, that write to the repository, depending on configuration and output</li>
+  <li>"container" pipes, that contains pipes, and whose job is to chain their execution : input is the input of their first pipe, output is the output of the last pipe it contains.</li>
+</ul>
+<p>A <code>Plumber</code> osgi service is provided to help getting &amp; executing pipes.</p>
+<h2>Registered Pipes</h2>
+<p>a pipe configuration is a jcr node, with:</p>
+<ul>
+  <li><code>sling:resourceType</code> property, which must be a pipe type registered by the plumber</li>
+  <li><code>name</code> property, that will be used in bindings as an id, and will be the key for the output bindings (default value being a value map of the current output resource). Note that the node name will be used in case no name is provided.</li>
+  <li><code>path</code> property, defines pipe's input. Note that property is not mandatory in case the pipe is streamed after another pipe, in which case previous pipe output's can be used as input.</li>
+  <li><code>expr</code> property, expression through which the pipe will execute (depending on the type)</li>
+  <li><code>additionalBinding</code> is a node you can add to set "global" bindings (property=value) in pipe execution</li>
+  <li><code>additionalScripts</code> is a multi value property to declare scripts that can be reused in expressions</li>
+  <li><code>conf</code> optional child node that contains addition configuration of the pipe (depending on the type)</li>
+</ul>
+<h3>readers</h3>
+<h4>Base pipe</h4>
+<p>rather dummy pipe, outputs what is in input (so what is configured in path). Handy for doing some test mostly, and giving basic functionalities to others that inherit from it</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/base</code></li>
+</ul>
+<h4>SlingQuery Pipe</h4>
+<p>executes $(getInput()).children(expression)</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/slingQuery</code></li>
+  <li><code>expr</code> mandatory property, contains slingQuery expression through which getInput()'s children will be computed to getOutput()</li>
+</ul>
+<h4>JsonPipe</h4>
+<p>feeds bindings with remote json</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/json</code></li>
+  <li><code>expr</code> mandatory property contains url that will be called, the json be sent to the output bindings, getOutput = getInput. An empty url or a failing url will block the pipe at that given place.</li>
+</ul>
+<h4>MultiPropertyPipe</h4>
+<p>iterates through values of input multi value property and write them to bindings</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/multiProperty</code></li>
+  <li><code>path</code> should be the path of a mv property</li>
+</ul>
+<h4>XPathPipe</h4>
+<p>retrieve resources resulting of an xpath query</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/xpath</code></li>
+  <li><code>expr</code> should be a valid xpath query</li>
+</ul>
+<h3>JsonPipe</h3>
+<p>feeds bindings with remote json</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/json</code></li>
+  <li><code>expr</code> mandatory property contains url that will be called, the json be sent to the output bindings, getOutput = getInput. An empty url or a failing url will block the pipe at that given place.</li>
+</ul>
+<h4>AuthorizablePipe</h4>
+<p>retrieve authorizable resource corresponding to the id passed in expression, or if not found (or void expression), from the input path, output the found authorizable's resource</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/authorizable</code></li>
+  <li><code>expr</code> should be an authorizable id, or void (but then input should be an authorizable)</li>
+  <li><code>autoCreateGroup</code> (boolean) if autorizable id is here, but the authorizable not present, then create group with given id (in that case, considered as a write pipe)</li>
+  <li><code>addMembers</code> (stringified json array) if authorizable is a group, add instanciated members to it (in that case, considered as a write pipe)</li>
+  <li><code>addToGroup</code> (expression) add found authorizable to instanciated group (in that case, considered as a write pipe)</li>
+  <li><code>bindMembers</code> (boolean) if found authorizable is a group, bind the members (in that case, considered as a write pipe)</li>
+</ul>
+<h4>ParentPipe</h4>
+<p>outputs the parent resource of input resource - <code>sling:resourceType</code> is <code>slingPipes/parent</code></p>
+<h4>FilterPipe</h4>
+<p>outputs the input resource if its matches its configuration</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/filter</code></li>
+  <li><code>conf</code> node tree that will be tested against the current input of the pipe, each <code>/conf/sub@prop=value</code> will triggers a test on <code>./sub@prop</code> property of the current input, testing if its value matches <code>value</code> regex. If the special <code>slingPipesFilter_noChildren=${true}</code> property is there with the value instantiated as a true boolean, then filter will pass if corresponding node has no children.</li>
+  <li><code>slingPipesFilter_not=&#39;true&#39;</code> inverts the expected result of the filter</li>
+</ul>
+<h3>containers</h3>
+<h4>Container Pipe</h4>
+<p>assemble a sequence of pipes</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/container</code></li>
+  <li><code>conf</code> node contains child pipes' configurations, that will be configured in the order they are found (note you should use sling:OrderedFolder)</li>
+</ul>
+<h4>ReferencePipe</h4>
+<p>execute the pipe referenced in path property</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/reference</code></li>
+  <li><code>path</code> path of the referenced pipe</li>
+</ul>
+<h3>writers</h3>
+<h4>Write Pipe</h4>
+<p>writes given nodes &amp; properties to current input</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/write</code></li>
+  <li><code>conf</code> node tree that will be copied to the current input of the pipe, each property's names and value will be written to the input resource. Input resource will be outputed. Note that properties that will be evaluated (in an expression) as <code>null</code> for a given input resource will be removed from it. E.g. <code>./conf/some/node@prop=${null}</code> will add <code>./conf/some/node</code> structure if not in current input resource, but remove its <code>prop</code> property if any).</li>
+</ul>
+<h3>MovePipe</h3>
+<p>JCR move of current input to target path (can be a node or a property)</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/mv</code></li>
+  <li><code>expr</code> target path, note that parent path must exists</li>
+</ul>
+<h4>RemovePipe</h4>
+<p>removes the input resource, returns the parent, regardless of the resource being a node, or a property</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/rm</code></li>
+  <li><code>conf</code> node tree that will be used to filter relative properties &amp; subtrees to the current resource to remove. A subnode is considered to be removed if it has no property configured, nore any child.</li>
+</ul>
+<h4>PathPipe</h4>
+<p>get or create path given in expression</p>
+<ul>
+  <li><code>sling:resourceType</code> is <code>slingPipes/path</code></li>
+  <li><code>nodeType</code> node type of the intermediate nodes to create</li>
+  <li><code>autosave</code> should save at each creation (will make things slow, but sometimes you don't have choice)</li>
+</ul>
+<h2>Making configuration dynamic with pipe bindings</h2>
+<p>in order to make things interesting, most of the configurations are javascript template strings, hence valid js expressions reusing bindings (from configuration, or other pipes).</p>
+<p>Following configurations are evaluated:</p>
+<ul>
+  <li><code>path</code></li>
+  <li><code>expr</code></li>
+  <li>name/value of each property of some pipes (write, remove)</li>
+</ul>
+<p>you can use name of previous pipes in the pipe container, or the special binding <code>path</code>, where <code>path.previousPipe</code> is the path of the current resource of previous pipe named <code>previousPipe</code></p>
+<p>global bindings can be set at pipe execution, external scripts can be added to the execution as well (see pipe configurations)</p>
+<h2>How to execute a pipe</h2>
+<p>for now it's possible to execute Pipes through GET (read) or POST (read/write) commands:</p>
+<h3>Request Path</h3>
+<ul>
+  <li>either you'll need to create a slingPipes/plumber resource, say <code>etc/pipes</code> and then to execute</li>
+</ul>
+<p>curl -u admin:admin -F "path=/etc/pipes/mySamplePipe" http://localhost:8080/etc/pipes.json</p>
+<ul>
+  <li>either you execute the request directly on the pipe Path, e.g.</li>
+</ul>
+<p>curl -u admin:admin http://localhost:8080/etc/pipes/mySamplePipe.json</p>
+<p>which will return you the path of the pipes that have been through the output of the configured pipe.</p>
+<h3>Request Parameter <code>binding</code></h3>
+<p>you can add as <code>bindings</code> parameter a json object of global bindings you want to add for the execution of the pipe</p>
+<p>e.g.</p>
+<p>curl -u admin:admin -F "path=/etc/pipes/test" -F "bindings={testBinding:'foo'}" http://localhost:4502/etc/pipes.json</p>
+<p>will returns something like</p>
+<p>{"size":2, "items":["/one/output/resource", "another/one"]}</p>
+<h3>Request Parameter <code>writer</code></h3>
+<p>you can add as <code>writer</code> parameter a json object as a pattern to the result you want to have. The values of the json object are expressions and can reuse each pipe's subpipe binding. Note this works only if the pipe called is a container pipe.</p>
+<p>e.g.</p>
+<p>curl -u admin:admin http://localhost:4502/etc/pipes/users.json?writer={"user":"${user.fullName}"}</p>
+<p>will returns something similar to</p>
+<p>{"size":2, "items":[{'user':'John Smith','path':'/home/users/q/q123jk1UAZS'},{'user':'John Doe','path':'/home/users/q/q153jk1UAZS'}]}</p>
+<h3>Request Parameter <code>dryRun</code></h3>
+<p>if parameter dryRun is set to true, and the executed pipe is supposed to modify content, it will log (at best it can) the change it <em>would</em> have done, without doing anything</p>
+<h3>Request Parameter <code>size</code></h3>
+<p>default response is truncated to 10 items, if you need more (or less), you can modify that settings with the size parameter</p>
+<h2>sample configurations</h2>
+<h3>slingQuery | write</h3>
+<p>this pipe parse all profile nodes, and</p>
+<p>{ "sling:resourceType":"slingPipes/container", "name":"Dummy User prefix Sample", "jcr:description":"prefix all full names of profile with "Mr" or "Ms" depending on gender", "conf":{ "profile": { "sling:resourceType":"slingPipes/slingQuery", "expr":"nt:unstructured#profile", "path":"/home/users" }, "writeFullName": { "sling:resourceType":"slingPipes/write", "conf": { "fullName":"${(profile.gender === 'female' ? 'Ms ' + profile.fullName : 'Mr ' + profile.fullName)}", "generatedBy":"slingPipes" } } } }</p>
+<h3>slingQuery | multiProperty | authorizable | write</h3>
+<p>{ "jcr:primaryType": "sling:Folder", "jcr:description": "move badge&lt;-&gt;user relation ship from badge MV property to a user MV property" "name": "badges", "sling:resourceType": "slingPipes/container", "conf": { "jcr:primaryType": "sling:OrderedFolder", "badge": { "jcr:primaryType": "sling:Folder", "jcr:description": "outputs all badge component resources", "expr": "[sling:resourceType=myApp/components/badge]", "path": "/etc/badges/badges-admin/jcr:content", "sling:resourceType": "slingPipes/slingQuery" }, "profile": { "jcr:primaryType": "sling:Folder", "jcr:description": "retrieve all user ids from a mv property", "path": "${path.badge}/profiles", "sling:resourceType": "slingPipes/multiProperty" }, "user": { "jcr:primaryType": "sling:OrderedFolder", "jcr:description": "outputs user resource", "expr": "profile", "sling:resourceType": "slingPipes/authorizable" }, "write": { "jcr:primaryType": "sling:OrderedFolder", "jcr:descritption": "patches the badge path to the badges prope
 rty of the user profile" "path": "${path.user}/profile", "sling:resourceType": "slingPipes/write", "conf": { "jcr:primaryType": "nt:unstructured", "badges": "+[${path.badge}]" } } } }</p>
+<h3>xpath | json | write</h3>
+<p>this use case is for completing repository profiles with external system's data (that has an json api)</p>
+<p>{ "jcr:primaryType": "nt:unstructured", "jcr:description": "this pipe retrieves json info from an external system and writes them to the user profile, uses moment.js, it distributes modified resources using publish distribution agent", "sling:resourceType": "slingPipes/container", "distribution.agent": "publish", "additionalScripts": "/etc/source/moment.js", "conf": { "jcr:primaryType": "sling:OrderedFolder", "profile": { "jcr:primaryType": "sling:OrderedFolder", "expr": "/jcr:root/home/users//element(profile,nt:unstructured)[@uid]", "jcr:description": "query all user profile nodes", "sling:resourceType": "slingPipes/xpath" }, "json": { "jcr:primaryType": "sling:OrderedFolder", "expr": "${(profile.uid ? 'https://my.external.system.corp.com/profiles/' + profile.uid.substr(0,2) + '/' + profile.uid + '.json' : '')", "jcr:description": "retrieves json information relative to the given profile, if the uid is not found, expr is empty: the pipe will do nothing", "sling:resourceType": "s
 lingPipes/json" }, "write": { "jcr:primaryType": "sling:OrderedFolder", "path": "path.profile", "jcr:description": "write json information to the profile node", "sling:resourceType": "slingPipes/write", "conf": { "jcr:primaryType": "sling:OrderedFolder", "background": "${json.opt('background')}", "about": "${json.opt('about')}", "birthday": "${(json.opt('birthday') ? moment(json.opt('birthday'), "MMMM DD").toDate() : '')}", "mobile": "${json.opt('mobile')}" } } } }</p>
+<h3>xpath | parent | rm</h3>
+<p>{ "jcr:primaryType": "nt:unstructured", "jcr:description": "this pipe removes user with bad property in their profile", "sling:resourceType": "slingPipes/container", "conf": { "jcr:primaryType": "sling:OrderedFolder", "profile": { "jcr:primaryType": "sling:OrderedFolder", "expr": "/jcr:root/home/users//element(profile,nt:unstructured)[@bad]", "jcr:description": "query all user profile nodes with bad properties", "sling:resourceType": "slingPipes/xpath" }, "parent": { "jcr:primaryType": "sling:OrderedFolder", "jcr:description": "get the parent node (user node)", "sling:resourceType": "slingPipes/parent" }, "rm": { "jcr:primaryType": "sling:OrderedFolder", "jcr:description": "remove it", "sling:resourceType": "slingPipes/rm", } } }</p>
+<p>some other samples are in https://github.com/npeltier/sling-pipes/tree/master/src/test/</p>
+<h1>Compatibility</h1>
+<p>For running this tool on a sling instance you need:</p>
+<ul>
+  <li>java 8 (Nashorn is used for expression)</li>
+  <li>slingQuery (3.0.0) (used in SlingQueryPipe)</li>
+  <li>jackrabbit api (2.7.5+) (used in AuthorizablePipe)</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/sling-query.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/sling-query.html b/documentation/bundles/sling-query.html
new file mode 100644
index 0000000..e43d0f8
--- /dev/null
+++ b/documentation/bundles/sling-query.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Query</h1></header><p>SlingQuery is a Sling resource tree traversal tool inspired by the <a href="http://api.jquery.com/category/traversing/tree-traversal/">jQuery</a> JavaScript API.</p>
+<h2>Introduction</h2>
+<p>The recommended way to find resources in the Sling repository is using tree-traversal methods, like <code>listChildren()</code> and <code>getParent()</code> rather than JCR queries. The latter are great for listing resources with given properties, but we can't leverage the repository tree structure with such queries. On the other hand, using tree-traversal method is quite verbose. Consider following code that takes an resource and returns its first ancestor, being <code>cq:Page</code>, with given <code>jcr:content/cq:template</code> attribute:</p>
+<p>Resource resource = ...; while ((resource = resource.getParent()) != null) { if (!resource.isResourceType("cq:Page")) { continue; } Resource template = resource.getChild("jcr:content/cq:template"); if (template != null &amp;&amp; "my/template".equals(template.adaptTo(String.class))) { break; } } if (resource != null) { // we've found appropriate ancestor }</p>
+<p>SlingQuery is a tool that helps creating such queries in a more concise way. Above code could be written as:</p>
+<p>import static org.apache.sling.query.SlingQuery.$; // ... $(resource).closest("cq:Page[jcr:content/cq:template=my/template]")</p>
+<p>Dollar sign is a static method that takes the resource array and creates SlingQuery object. The <code>closest()</code> method returns the first ancestor matching the selector string passed as the argument.</p>
+<p>SlingQuery is inspired by the jQuery framework. jQuery is the source of method names, selector string syntax and the dollar sign method used as a collection constructor.</p>
+<h2>Features</h2>
+<ul>
+  <li>useful <a href="https://github.com/Cognifide/Sling-Query/wiki/Method-list">operations</a> to traverse the resource tree,</li>
+  <li>flexible <a href="https://github.com/Cognifide/Sling-Query/wiki/Selector-syntax">filtering syntax</a>,</li>
+  <li>lazy evaluation of the query result,</li>
+  <li><code>SlingQuery</code> object is immutable (thread-safe),</li>
+  <li>fluent, friendly, jQuery-like API.</li>
+</ul>
+<h2>Installation</h2>
+<p>Add following Maven dependency to your <code>pom.xml</code>:</p>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.query</artifactId> <version>3.0.0</version> </dependency></p>
+<h2>Documentation</h2>
+<ul>
+  <li><a href="http://cognifide.github.io/Sling-Query/circuit2014/">CIRCUIT 2014 presentation</a></li>
+  <li><a href="https://github.com/Cognifide/Sling-Query/wiki/Basic-ideas">Basic ideas</a></li>
+  <li><a href="https://github.com/Cognifide/Sling-Query/wiki/Method-list">Method list</a></li>
+  <li><a href="https://github.com/Cognifide/Sling-Query/wiki/Selector-syntax">Selector syntax</a></li>
+  <li><a href="https://github.com/Cognifide/Sling-Query/wiki/Operator-list">Operator list</a></li>
+  <li><a href="https://github.com/Cognifide/Sling-Query/wiki/Modifier-list">Modifier list</a></li>
+  <li><a href="https://github.com/Cognifide/Sling-Query/wiki/Hierarchy-operator-list">Hierarchy operator list</a></li>
+  <li><a href="https://github.com/Cognifide/Sling-Query/wiki/Examples">Examples</a></li>
+</ul>
+<h2>External resources</h2>
+<ul>
+  <li>See the <a href="http://sling.apache.org/">Apache Sling website</a> for the Sling reference documentation. Apache Sling, Apache and Sling are trademarks of the <a href="http://apache.org">Apache Software Foundation</a>.</li>
+  <li>Method names, selector syntax and some parts of documentation are inspired by the <a href="http://jquery.com/">jQuery</a> library.</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/sling-settings-org-apache-sling-settings.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/sling-settings-org-apache-sling-settings.html b/documentation/bundles/sling-settings-org-apache-sling-settings.html
new file mode 100644
index 0000000..74976c1
--- /dev/null
+++ b/documentation/bundles/sling-settings-org-apache-sling-settings.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Settings and Run Modes (org.apache.sling.settings)</h1></header><h1>Overview</h1>
+<p>The Sling Settings Bundle exposes the <code>SlingSettingsService</code> which allows access to the following information pertinent to a Sling instance:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Method </th>
+      <th>Bundle Context Property </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+</table>
+<p>| <code>String getSlingId()</code> | --- | A unique identifier of the running Sling instance. This value is created when Sling is first started and may be used to identify the instance, for example if multiple Sling instances are running on top of a Jackrabbit Repository Cluster | | <code>String getSlingHomePath()</code> | <code>sling.home</code> | The absolute filesystem path to the directory where Sling stores all its content | | <code>URL getSlingHome()</code> | <code>sling.home.url</code> | The Sling Home path as an <code>java.net.URL</code> instance | | <code>Set&lt;String&gt; getRunModes()</code> | <code>sling.run.modes</code> | The active Run Modes of the running Sling instance |</p>
+<p>The new Sling Settings Bundle replaces the former [Run Modes (org.apache.sling.runmode)]({{ refs.run-modes-org-apache-sling-runmode.path }}) Bundle and the <code>SlingSettingsService</code> previously provided by the Sling Engine bundle, as it also implements the run modes logic.</p>
+<h2>Selecting the active run modes</h2>
+<p>The run modes are selected based on the <code>sling.run.modes</code> property (the "selection property"), specified in the Sling settings file or as a command-line parameter (which takes precedence), out of the valid run modes defined by the properties described below. The value is a String which contains a list of comma-separated run modes. If a run mode is given here which is not contained in any group of valid run modes (given in <code>sling.run.mode.install.options</code> or <code>sling.run.mode.options</code>) it is always active, on the other hand run modes which are contained in any of the predefined groups may be modified/removed (see below for the details).</p>
+<p>Using <code>-Dsling.run.modes=foo,bar</code> on the JVM command-line, for example, activates the <em>foo</em> and <em>bar</em> run modes if that combination is valid.</p>
+<p>The absolute truth about run modes definition and selection is found in the <a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/settings/src/test/java/org/apache/sling/settings/impl/RunModeImplTest.java">RunModeImplTest</a> which should be self-explaining.</p>
+<h2>Defining valid run modes</h2>
+<p>Since <a href="https://issues.apache.org/jira/browse/SLING-2662">SLING-2662</a> the valid run modes are defined by the <code>sling.run.mode.options</code> and <code>sling.run.mode.install.options</code> configuration properties, usually defined in the <code>sling.properties</code> file or in the provisioning model of a Sling Launchpad instance.</p>
+<p>The <code>sling.run.mode.install.options</code> property is only used on the first startup on the Sling instance and the run modes that it defines cannot be changed later.</p>
+<p>The <code>sling.run.mode.options</code> property on the other hand is used at each startup, so the run modes that it defines can be changed between executions of a given Sling instance.</p>
+<p>The value of the both these properties is a string which looks like:</p>
+<p>red,green,blue|one|moon,mars</p>
+<p>where <em>comma-separated run modes form a group</em>. The individual groups are separated by a pipe character (<code>|</code>, which is not an OR operation, it's just as separator). A group defines a number of run modes which are <strong>mutually exclusive</strong>. It means once a group is defined, exactly one run mode will be active from that group.</p>
+<p>The example from above consists out of 3 different groups</p>
+<ol>
+  <li><code>red,green,blue</code></li>
+  <li><code>one</code></li>
+  <li><code>moon,mars</code></li>
+</ol>
+<p>The rules for determining the active run modes from the selected run mode (<code>sling.run.modes</code>) and the run mode options (<code>sling.run.mode.install.options</code> and <code>sling.run.mode.options</code>) are as follows :</p>
+<ol>
+  <li>If none of the run modes in the options are selected, the first one from each group in the options is activated by default.</li>
+  <li>If one is selected from a group in the options, this is active.</li>
+  <li>If several are selected from one group in the options, the first one from the list of valid run modes is used.</li>
+  <li>If the selected run mode is not mentioned in any of the option groups it is active</li>
+</ol>
+<p>Examples</p>
+<p>sling.run.mode.options=a,b|c,d,e</p>
+<table>
+  <thead>
+    <tr>
+      <th>User defined run modes (e.g. via property <code>sling.run.modes</code>) </th>
+      <th>Effectively active run modes</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>(none) </td>
+      <td><code>a,c</code></td>
+    </tr>
+    <tr>
+      <td><code>a</code> </td>
+      <td><code>a,c</code></td>
+    </tr>
+    <tr>
+      <td><code>b</code> </td>
+      <td><code>b,c</code></td>
+    </tr>
+    <tr>
+      <td><code>a,b</code> </td>
+      <td><code>a,c</code></td>
+    </tr>
+    <tr>
+      <td><code>a,d</code> </td>
+      <td><code>a,d</code></td>
+    </tr>
+    <tr>
+      <td><code>a,e,f</code> </td>
+      <td><code>a,e</code></td>
+    </tr>
+  </tbody>
+</table>
+<p>Remember to look at the <code>RunModeImplTest</code> mentioned above for details, and feel free to enhance it with useful examples.</p>
+<h3>Getting the Run Modes of the Sling instance</h3>
+<p>The <code>SlingSettings</code> service provides the Run Modes of the running Sling instance as in this example:</p>
+<p>:::java SlingSettings settings = ...get from BundleContext... Set<String> currentRunModes = settings.getRunModes();</p>
+<p>Set<String> expectedRunModes = new HashSet<String>(){{ add("foo");add("wii"); }}; if(expectedRunModes.removeAll(currentRunModes)) { // at least one of (foo,wii) run modes // is active }</p>
+<p>Getting run modes in this way is usually not needed, it's better to define bundles or configurations that are only valid in specific run modes, rather than making decisions in code based on run modes.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/subsystem-installer-factory.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/subsystem-installer-factory.html b/documentation/bundles/subsystem-installer-factory.html
new file mode 100644
index 0000000..777a35e
--- /dev/null
+++ b/documentation/bundles/subsystem-installer-factory.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Subsystems Installer Factory</h1></header><p>The subsystems installer factory provides support for subsystems to the <a href="/documentation/bundles/osgi-installer.html">OSGI installer</a>. The provisioning of artifacts is handled by installer providers like the file installer or the JCR installer.</p>
+<h2>Subsystems</h2>
+<p>The subsystem file must end with ".esa" and the manifest must at least contain the subsystem symbolic name "Subsystem-SymbolicName" header.</p>
+<h1>Project Info</h1>
+<ul>
+  <li>Subsystems installer factory (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/factories/subsystems">org.apache.sling.installer.factory.subsystems</a>)</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[25/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation.md
----------------------------------------------------------------------
diff --git a/content/documentation.md b/content/documentation.md
deleted file mode 100644
index 33f100b..0000000
--- a/content/documentation.md
+++ /dev/null
@@ -1,202 +0,0 @@
-title=Documentation		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-#Overview
-
-The documentation is split into different parts:
-
-* [Getting Started](/documentation/getting-started.html), the right place to start!
-* [The Sling Engine](/documentation/the-sling-engine.html), all about the heart of Sling
-* [Development](/documentation/development.html), how do I get and develop with Sling
-* [Bundles](/documentation/bundles.html), which bundle delivers which features to Sling
-* [Tutorials & How-Tos](/documentation/tutorials-how-tos.html)
-* [Wiki](http://cwiki.apache.org/SLING/)
-* [Configuration](/documentation/configuration.html)
-* [API Doc](http://sling.apache.org/apidocs/sling8/index.html)
-
-
-# How you can contribute
-
-We're on the way to improve the documentation, but it's a long way. If you would like to contribute to the documentation you are very welcome. Please directly post your proposals to the [public wiki](http://cwiki.apache.org/SLING/) or post your suggestions to the [mailing list](/project-information.html).
-
-
-# How the documentation is generated
-
-*The Sling web site and documentation are managed with the [Apache CMS](https://www.apache.org/dev/cms.html).
-For Apache Sling specific extensions see the [The Sling Site](#the-sling-site)
-section below.*
-
-<div class="info">
-<p>
-The Sling site was converted from a Confluence exported site to an
-Apache CMS managed site. All non-fully converted pages will show a tip box pointing to
-the original Confluence exported page for reference.
-</p>
-
-<p>
-Once migration of a page has completed the <code>translation_pending</code>
-header should be removed from the page source. After that the tip box will not be
-shown any more.
-</p>
-
-</div>
-
-The basic documentation of Sling is made up of four parts:
-
-1. The Sling Site at http://sling.apache.org/ (you are here)
-1. The Public Wiki at http://cwiki.apache.org/SLING
-1. The JavaDoc
-1. The Maven plugin documentation
-
-This page is about how this documentation is maintained and who is allowed to do what.
-
-
-## The Sling Site
-
-The site is managed with the [Apache CMS](https://www.apache.org/dev/cms.html)
-where the source is kept in SVN at <https://svn.apache.org/repos/asf/sling/site/trunk/content>.
-
-This section lists some Apache Sling features to help with the maintenance
-of the site, such as automatic link generation.
-
-Start the file with a `Title:` line to define the page title and the first H1 tag:
-
-
-Here comes the content separated with a blank like from the
-header ...
-
-The last modification information from SVN (revision, committer, and
-date/time) is automatically added when the page is rendered
-
-Excerpts can be added to a page using the `Excerpt:` header:
-
-Excerpt: Summary of the page for inclusion in other pages;
-continuation of the excerpt must be indented
-
-Here comes the content separated with a blank like from the
-header ...
-
-Metadata from child pages can be referred to in the content with the
-Django variable reference notation using the child page name (without
-extension) as its container; e.g. for the child page named `childpage`:
-
-:::django
-{{ y|default:"{{" }} children.childpage.headers.excerpt }}
-{{ y|default:"{{" }} children.childpage.headers.title }}
-
-Content Pages can contain Django templates of the form `{{ y|default:"{{" }}...}}` and `{{ y|default:"{%" }}...%}`.
-If so, the page content is evaluated as a Django template before running
-it through the page template.
-
-Any page in the site can be referenced with refs.pagename returning properties:
-
-`.path`
-:    the absolute path of the page on the site
-
-`.headers`
-:    page headers (e.g. `.title`, `.excerpt`)
-
-`.content`
-:    the raw page content
-
-All pages in the children namespace are also available in the refs namespace
-
-Some usefull hints:
-
-Printing title of another page "handler":
-
-:::django
-{{ y|default:"{{" }} refs.handler.headers.title }}
-
-Printing excerpt of another page "handler":
-
-:::django
-{{ y|default:"{{" }} refs.handler.headers.excerpt }}
-
-Linking to another page "handler":
-
-:::django
-({{ y|default:"{{" }} refs.handler.path }})
-
-Printing title as a link to another page "handler":
-
-:::django
-[{{ y|default:"{{" }} refs.handler.headers.title }}]({{ y|default:"{{" }} refs.handler.path }})
-
-Printing excerpt as a link to another page "handler":
-
-:::django
-[{{ y|default:"{{" }} refs.handler.headers.excerpt }}]({{ y|default:"{{" }} refs.handler.path }})
-
-Print a bullet pointed child page list:
-
-:::django
-{{ y|default:"{%" }} for label, page in children %}* [{{ y|default:"{{" }} page.headers.title }}]({{ y|default:"{{" }} page.path }})
-{{ y|default:"{%" }} endfor %}
-
-<div class="note">
-It is important to have the first part as a single line, otherwise
-the Django/Markdown combo will create a list for each entry.
-</div>
-
-### Code Highlighting
-
-Code Highlighting works by indenting code by four blanks. To indicate the
-type of highlighting preced the code style text with either `:::<lexer>` to
-get high lighted code using the given `<lexer>` or `#!<lexer>` to get high
-lighted code with line numbers using the given `<lexer>`. See
-<http://www.apache.org/dev/cmsref.html#code-hilighter> for main info and
-<http://pygments.org/docs/lexers/> for supported lexers
-
-
-### Manual Generation
-
-When commiting changes to pages into SVN the pages are automatically
-generated in [the staging site](http://sling.staging.apache.org).
-
-To manually generate the site or single pages the [site](http://svn.apache.org/repos/asf/felix/site)
-can be checked out from SVN. In addition Perl and Python must be installed
-for the build tools to work.
-
-To prepare for site build, the Markdown daemon has to be started:
-
-:::sh
-$ export MARKDOWN_SOCKET="$PWD/tools/build/../markdown.socket"
-$ export PYTHONPATH="$PWD/tools/build"
-$ python "$PWD/tools/build/markdownd.py"
-
-The `MARKDOWN_SOCKET` environment variables is also required by the `build_site.pl`
-and `build_file.pl` scripts to connect to the Markdown daemon.
-
-To build the complete site use the `build_site.pl` script:
-
-:::sh
-$ tools/build/build_site.pl --source-base $PWD/trunk         --target-base $PWD/trunk/target
-
-To build a single page use the `build_file.pl` script:
-
-:::sh
-$ tools/build/build_site.pl --source-base $PWD/trunk         --target-base $PWD/trunk/target         --source content/documentation.mdtext
-
-The argument to the `--source` parameter is relative to the `--source-base` folder.
-
-
-## The Public Wiki
-
-The public wiki of Sling is available at [http://cwiki.apache.org/SLING](http://cwiki.apache.org/SLING) and is maintained in the Confluence space *SLING*. Everyone can create an account there. To gain edit rights please ask via the [mailing list](/project-information.html). Any of the administrators listed in the [Space Overview](https://cwiki.apache.org/confluence/spaces/viewspacesummary.action?key=SLING&showAllAdmins=true) can give you access.
-
-
-## The JavaDoc
-
-With every major release of Sling the JavaDoc of all containing bundles are published below [http://sling.apache.org/apidocs/](http://sling.apache.org/apidocs/).
-The script for generating this aggregation JavaDoc is at [http://svn.apache.org/repos/asf/sling/trunk/tooling/release/](http://svn.apache.org/repos/asf/sling/trunk/tooling/release/) in `generate_javadoc_for_release.sh`
-
-In addition every released bundle is released together with its JavaDoc (which is also pushed to Maven Central).
-
-## The Maven Plugin Documentation
-
-For the most important Maven Plugins the according Maven Sites (generated with the `maven-site-plugin`) are published at [http://sling.apache.org/components/](http://sling.apache.org/components/). The description on how to publish can be found at [Release Management](/documentation/development/release-management.html).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles.md b/content/documentation/bundles.md
deleted file mode 100644
index 279aa03..0000000
--- a/content/documentation/bundles.md
+++ /dev/null
@@ -1,72 +0,0 @@
-title=Bundles		
-type=page
-status=published
-~~~~~~
-
-## Content
-
-* [Content Loading (jcr.contentloader)](/documentation/bundles/content-loading-jcr-contentloader.html)
-* [Internationalization Support (i18n)](/documentation/bundles/internationalization-support-i18n.html)
-* [Manipulating Content - The SlingPostServlet (servlets.post)](/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html)
-* [Rendering Content - Default GET servlets (servlets.get)](/documentation/bundles/rendering-content-default-get-servlets.html)
-* [Validation](/documentation/bundles/validation.html)
-* [Repository Initialization](/documentation/bundles/repository-initialization.html)
-
-## Resource Providers
-
-* [Accessing File System Resources (org.apache.sling.fsresource)](/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html)
-* [Bundle Resources (extensions.bundleresource)](/documentation/bundles/bundle-resources-extensions-bundleresource.html)
-* [NoSQL Resource Providers (org.apache.sling.nosql)](/documentation/bundles/nosql-resource-providers.html)
-* [Resource Merger (org.apache.sling.resourcemerger)](/documentation/bundles/resource-merger.html)
-
-## Users, Groups, Access, Permissions, ACLs on Resources
-
-* [Managing users and groups (jackrabbit.usermanager)](/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html)
-* [Managing permissions (jackrabbit.accessmanager)](/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html)
-* [Resource Access Security (resourceaccesssecurity)](/documentation/bundles/resource-access-security.html)
-* [Sling Oak Restrictions (sling-oak-restrictions)](/documentation/bundles/sling-oak-restrictions.html)
-
-
-## OSGi Installer
-The OSGi installer is a very flexible and powerful service to manage provisioning and updates of an OSGi system. It is independent of Sling and can be extended by several plugins.
-
-* [OSGi Installer](/documentation/bundles/osgi-installer.html)
-* [Configuration Installer Factory](/documentation/bundles/configuration-installer-factory.html)
-* [Subsystem Installer Factory](/documentation/bundles/subsystem-installer-factory.html)
-* [JCR Installer Provider](/documentation/bundles/jcr-installer-provider.html)
-* [File Installer Provider](/documentation/bundles/file-installer-provider.html)
-
-## Development and Utilities
-* [Commons Thread Pools](/documentation/bundles/apache-sling-commons-thread-pool.html)
-* [Commons HTML Utilities](/documentation/bundles/commons-html-utilities.html)
-* [MIME Type Support (commons.mime and commons.contentdetection)](/documentation/bundles/mime-type-support-commons-mime.html)
-* [Scripting](/documentation/bundles/scripting.html)
-* [Sling Settings (org.apache.sling.settings)](/documentation/bundles/sling-settings-org-apache-sling-settings.html)
-* [Caching Services](/documentation/bundles/caching-services.html)
-* [Sling Models](/documentation/bundles/models.html)
-* [Sling Pax Exam Utilities](/documentation/pax-exam-utils.html)
-* [Sling Query Library](/documentation/bundles/sling-query.html)
-* [Junit Server-Side Tests Support](/documentation/bundles/org-apache-sling-junit-bundles.html)
-* [Sling Pipes](/documentation/bundles/sling-pipes.html)
-* [Sling Metrics](/documentation/bundles/metrics.html)
-* [Servlet Helpers](/documentation/bundles/servlet-helpers.html)
-* [Context-Aware Configuration](/documentation/bundles/context-aware-configuration/context-aware-configuration.html)
-
-## Content Presentation and Rendering
-* [Scripting](/documentation/bundles/scripting.html) (aka Templating)
-* [Output Rewriting Pipelines (org.apache.sling.rewriter)](/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.html)
-* [XML Support](/documentation/bundles/xml-support.html)
-* [Sling Resource Editor](/documentation/bundles/resource-editor.html)
-* [Sling Dynamic Include (org.apache.sling.dynamic-include)](/documentation/bundles/dynamic-includes.html)
-
-## Troubleshooting
-* [Request Processing Analyzer (org.apache.sling.reqanalyzer)](/documentation/bundles/request-analysis.html)
-* [Sling Health Check Tool](/documentation/bundles/sling-health-check-tool.html)
-
-## Misc
-* [Eventing and Job Handling](/documentation/bundles/apache-sling-eventing-and-job-handling.html)
-* [Scheduler Service (commons scheduler)](/documentation/bundles/scheduler-service-commons-scheduler.html)
-* [Web Console Extensions (org.apache.sling.extensions.webconsolebranding, org.apache.sling.extensions.webconsolesecurityprovider)](/documentation/bundles/web-console-extensions.html)
-* [Discovery API and its Implementations (discovery.api, discovery.impl)](/documentation/bundles/discovery-api-and-impl.html)
-* [Datasource Provider](/documentation/bundles/datasource-providers.html)
-* [Log Tracer](/documentation/bundles/log-tracers.html)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/2010-07-01_1036.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/2010-07-01_1036.png b/content/documentation/bundles/2010-07-01_1036.png
deleted file mode 100644
index 4b6ef56..0000000
Binary files a/content/documentation/bundles/2010-07-01_1036.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/Slide14.jpg
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/Slide14.jpg b/content/documentation/bundles/Slide14.jpg
deleted file mode 100644
index f877c86..0000000
Binary files a/content/documentation/bundles/Slide14.jpg and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.md b/content/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.md
deleted file mode 100644
index dd34c28..0000000
--- a/content/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.md
+++ /dev/null
@@ -1,125 +0,0 @@
-title=Accessing File System Resources (org.apache.sling.fsresource)		
-type=page
-status=published
-~~~~~~
-[TOC]
-
-
-## Introduction
-
-The Apache Sling File System Resource Provider provides access to the operating system's file system through the Sling `ResourceResolver`. Multiple locations may be mapped into the resource tree by configuring the file system location and the resource tree root path for each location to be mapped. The provider supports mapping folders and files as binaries, and content structures stored in JSON files or FileVault XML format.
-
-To activate this feature, install the `org.apache.sling.fsresource` bundle. You can get it from the Sling downloads page or from [Maven Central][maven-central].
-
-Currently two major versions are maintained - choose the correct version depending on your Sling environment:
-
-* fsresource 2.x ([trunk][src-trunk]): compatible with Apache Sling API 2.11 and Apache Sling Resource Resolver 1.5.18 or above.
-* fsresource 1.x ([branch][src-branch]): compatible with Apache Sling API 2.4 and Apache Sling Resource Resolver 1.1.0 or above.
-
-
-## Resource Types
-
-Files and directories are mapped into the resource tree as regular `Resource` instances whose resource type depends on the actual nature of the mapped file system resource:
-
-* Regular files are assigned the `nt:file` resource type
-* Directories are assigned the `nt:folder` resource type
-
-Content stored in JSON or FileVault XML files are mapped with the resource type stored in the files. If a resource type is missing `nt:unstructured` is used as fallback.
-
-
-## Adapters
-
-File system resources extend from Sling's `AbstractResource` class and thus are adaptable to any type for which an `AdapterFactory` is registered supporting file system resources. In addition File system Resources support the following adapters natively:
-
-* `java.io.File` -- The Java file object providing access to the file system file
-* `java.net.URL` -- A valid `file://` URL to the file. This URL is derived from the `java.io.File` object by calling the `File.toURI().toURL()` sequence.
-* `java.io.InputStream` -- If the `java.io.File` can be read from (as per `File.canRead()` an `InputStream` to read from the file is returned.
-
-
-
-## Configuration
-
-The File System Resource Provider is configured with OSGi Configuration Admin factory configurtions whose factory PID is `org.apache.sling.fsprovider.internal.FsResourceProvider`. Configuration can be managed using the OSGi Configuration Admin API, through the Web Console or by any other means supporting Configuration Admin configurations. Each configuration "mounts" a specific file system path into the resource hierarchy.
-
-Which files are mounted depends on the 'File system layout' configuration parameter:
-
-* FILES_FOLDERS (default): Support only files and folders (classic mode).
-* INITIAL_CONTENT: Sling-Initial-Content filesystem layout, supports file and folders ant content files in JSON and jcr.xml format.
-* FILEVAULT_XML: FileVault XML format (expanded content package).
-
-Configuration parameters for each mapping:
-
-| Parameter | Name | Description |
-|-|-|-|
-| File System Root | `provider.file` | File system directory mapped to the virtual resource tree. This property must not be an empty string. If the path is relative it is resolved against sling.home or the current working directory. The path may be a file or folder. If the path does not address an existing file or folder, an empty folder is created. |
-| Provider Root	| `provider.root` (2.x), `provider.roots` (1.x) | Location in the virtual resource tree where the file system resources are mapped in. This property must not be an empty string. Only one path is supported. |
-| File system layout | `provider.fs.mode` | File system layout mode for files, folders and content. |
-| Init. Content Options | `provider.initial.content.import.options` | Import options for Sling-Initial-Content file system layout. Supported options: overwrite, ignoreImportProviders. |
-| FileVault Filter | `provider.filevault.filterxml.path` | Path to META-INF/vault/filter.xml when using FileVault XML file system layout. |
-| Check Interval | `provider.checkinterval` | If the interval has a value higher than 100, the provider will check the file system for changes periodically. This interval defines the period in milliseconds (the default is 1000). If a change is detected, resource events are sent through the event admin. |
-| Cache Size | `provider.cache.size` | Max. number of content files cached in memory.  |
-
-
-### FILES_FOLDERS file system layout
-
-The mode maps only files and folders. This was the only mode supported in fsresource versions before 1.3.
-
-Notes:
-
-* No caching is used for this mode.
-* Resource events are sent when file oder folder changes are detected.
-
-
-### INITIAL_CONTENT file system layout
-
-The mode maps files and folders, and content files stored in JSON or jcr.xml files. The layout has to match the conventions of the [Apache Sling JCR Content Loader][jcr-contentloader]. The bundle header `Sling-Initial-Content` defines where and how the content should be loaded to.
-
-This mode is best use together with the [Maven Sling Plugin][maven-sling-plugin], which automatically creates the appropriate File System Resource Provider configurations for a Maven bundle project containing content structures. For each path an individual configuration is created.
-
-Usage - deploy OSGi bundle from current maven project and register the appropriate OSGi configuration mappings:
-
-$ mvn -Dsling.mountByFS=true sling:install
-
-Only register the appropriate mappings:
-
-$ mvn sling:fsmount
-
-Remove the mappings:
-
-$ mvn sling:fsunmount
-
-Notes:
-
-* The content of JSON or jcr.xml files is cached in-memory until it changes.
-* Resource events are sent when file oder folder changes are detected. When a JSON or jcr.xml file is changed resource events are sent for each resource contained in this file.
-* When 'overwrite:=true' is not set for a path in the `Sling-Initial-Content` header the resource provider falls back to the parent resource provider (e.g. JCR repository) if a requested resource is not find in the file system (version 2.x, with version 1.x this always happens).
-
-
-### FILEVAULT_XML file system layout
-
-The mode maps an maven project containing an expanded content package which uses the [Jackrabbit FileVault XML layout][vaultfs] in the running Sling instance. The existing of a filter file `META-INF/vault/filter.xml` is mandatory.
-
-This mode is best use together with the [Maven Sling Plugin][maven-sling-plugin], which automatically creates the appropriate File System Resource Provider configurations. For each path defined in the filter.xml one mapping configuration is created. The include/exclude definitions are respected as well.
-
-Usage - register the appropriate mappings:
-
-$ mvn sling:fsmount
-
-Remove the mappings:
-
-$ mvn sling:fsunmount
-
-Notes:
-
-* The content of .content.xml files is cached in-memory until it changes.
-* Resource events are sent when file oder folder changes are detected. When a JSON or jcr.xml file is changed resource events are sent for each resource contained in this file.
-* Content excluded by the filter definition is not mounted by the resource provider, if a resource of the relevant path is requested the resource provider falls back to the parent resource provider (e.g. JCR repository).
-
-
-
-[src-trunk]: https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/fsresource/
-[src-branch]: https://svn.apache.org/repos/asf/sling/branches/fsresource-1.x/
-[maven-central]: https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.sling%22%20AND%20a%3A%22org.apache.sling.fsresource%22
-[jcr-contentloader]: content-loading-jcr-contentloader.html
-[maven-sling-plugin]: http://sling.apache.org/components/maven-sling-plugin/
-[vaultfs]: http://jackrabbit.apache.org/filevault/vaultfs.html

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/apache-sling-commons-thread-pool.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/apache-sling-commons-thread-pool.md b/content/documentation/bundles/apache-sling-commons-thread-pool.md
deleted file mode 100644
index 67c6743..0000000
--- a/content/documentation/bundles/apache-sling-commons-thread-pool.md
+++ /dev/null
@@ -1,12 +0,0 @@
-title=Apache Sling Commons Thread Pool		
-type=page
-status=published
-~~~~~~
-
-The Apache Sling Commons Thread Pool bundle provides a thread pool services. All thread pools are managed by the `org.apache.sling.commons.threads.ThreadPoolManager`. This service can be used to get a thread pool.
-
-Thread pools are managed by name - there is a default thread pool and custom thread pools can be generated on demand using a unique name.
-
-The thread pools are actually wrappers around the thread pool support (executer) from the Java library. The advantage of using this thread pool service is, that the pools can be configured and managed through OSGi configurations. In addition the bundle contains a plugin for the Apache Felix Web Console.
-
-When using the `ThreadPoolMananger` it is important to release a thread pool using the manager after it has been used.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/apache-sling-eventing-and-job-handling.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/apache-sling-eventing-and-job-handling.md b/content/documentation/bundles/apache-sling-eventing-and-job-handling.md
deleted file mode 100644
index b8183f4..0000000
--- a/content/documentation/bundles/apache-sling-eventing-and-job-handling.md
+++ /dev/null
@@ -1,205 +0,0 @@
-title=Apache Sling Eventing and Job Handling		
-type=page
-status=published
-~~~~~~
-
-
-## Overview
-
-The Apache Sling Event Support bundle adds additional features to the OSGi Event Admin and for distributed event processing.
-
-The bundle provides the following features
-
-* [Jobs](#jobs-guarantee-of-processing)
-* [Distributed Events](#distributed-events)
-* [Scheduled Events](#sending-scheduled-events)
-
-To get some hands on code, you can refer to the following tutorials:
-
-* [How to Manage Events in Sling](/documentation/tutorials-how-tos/how-to-manage-events-in-sling.html)
-* [Scheduler Service (commons scheduler)](/documentation/bundles/scheduler-service-commons-scheduler.html)
-
-## Jobs (Guarantee of Processing)
-
-In general, the eventing mechanism (OSGi EventAdmin) has no knowledge about the contents of an event. Therefore, it can't decide if an event is important and should be processed by someone. As the event mechanism is a "fire event and forget about it" algorithm, there is no way for an event admin to tell if someone has really processed the event. Processing of an event could fail, the server or bundle could be stopped etc.
-
-On the other hand, there are use cases where the guarantee of processing is a must and usually this comes with the requirement of processing exactly once. Typical examples are sending notification emails (or sms), post processing of content (like thumbnail generation of images or documents), workflow steps etc.
-
-The Sling Event Support adds the notion of a job. A job is a special event that has to be processed exactly once.
-To be precise, the processing guarantee is at least once. However, the time window for a single job where exactly
-once can't be guaranteed is very small. It happens if the instance which processes a job crashes after the job
-processing is finished but before this state is persisted. Therefore a job consumer should be prepared to process
-a job more than once. Of course, if there is no job consumer for a job, the job is never processed. However this
-is considered a deployment error.
-
-The Sling Jobs Processing adds some overhead, so in some cases it might be better to use just the [Commons Scheduler Service](/documentation/bundles/scheduler-service-commons-scheduler.html) or the [Commons Thread Pool](/documentation/bundles/apache-sling-commons-thread-pool.html) for asynchronous execution of code.
-
-While older versions of the job handling were based on sending and receiving events through the OSGi event admin, newer versions provide enhanced support through special Java interface. This approach is preferred over the still supported but deprecated event admin way.
-
-A job consists of two parts, the job topic describing the nature of the job and the payload which is a key value map of serializable objects. A client can initiate a job by calling the *JobManager.addJob* method:
-
-import org.apache.sling.jobs.JobManager;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import java.util.Map;
-import java.util.HashMap;
-
-@Component
-public class MyComponent {
-
-@Reference
-private JobManager jobManager;
-
-public void startJob() {
-final Map<String, Object> props = new HashMap<String, Object>();
-props.put("item1", "/something");
-props.put("count", 5);
-
-jobManager.addJob("my/special/jobtopic", props);
-}
-}
-
-The job topic follows the conventions for the topic of an OSGi event. All objects in the payload must be serializable and publically available (exported by a bundle). This is required as the job is persisted and unmarshalled before processing.
-
-As soon as the method returns from the job manager, the job is persisted and the job manager ensures that this job will be processed exactly once.
-
-### JobBuilder
-
-Instead of creating the jobs by calling `JobManager.addJob("my/special/jobtopic", props);` the `JobBuilder` can be used, which is retrieved via `JobManager.createJob("my/special/jobtopic")`. The last method being called on the `JobBuilder` must be `add(...)`, which finally adds the job to the queue.
-
-
-### Scheduled Jobs
-
-Scheduled Jobs are put in the queue at a specific time (optionally periodically). For that the `ScheduleBuilder` must be used which is retrieved via `JobBuilder.schedule()`.
-
-An example code for scheduling a job looks like this:
-
-import org.apache.sling.jobs.JobManager;
-import org.apache.sling.event.jobs.JobBuilder.ScheduleBuilder;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-
-@Component
-public class MyComponent {
-
-@Reference
-private JobManager jobManager;
-
-public void startScheduledJob() {
-ScheduleBuilder scheduleBuilder = jobManager.startJob("my/special/jobtopic").schedule();
-scheduleBuilder.daily(0,0); // execute daily at midnight
-if (scheduleBuilder.add() == null) {
-// something went wrong here, use scheduleBuilder.add(List<String>) instead to get further information about the error
-}
-}
-}
-
-
-Internally the scheduled Jobs use the [Commons Scheduler Service](/documentation/bundles/scheduler-service-commons-scheduler.html). But in addition they are persisted (by default below `/var/eventing/scheduled-jobs`) and survive therefore even server restarts. When the scheduled time is reached, the job is automatically added as regular Sling Job through the `JobManager`.
-
-
-### Job Consumers
-
-A job consumer is a service consuming and processing a job. It registers itself as an OSGi service together with a property defining which topics this consumer can process:
-
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
-import org.apache.sling.event.jobs.Job;
-import org.apache.sling.event.jobs.consumer.JobConsumer;
-
-@Component
-@Service(value={JobConsumer.class})
-@Property(name=JobConsumer.PROPERTY_TOPICS, value="my/special/jobtopic",)
-public class MyJobConsumer implements JobConsumer {
-
-public JobResult process(final Job job) {
-// process the job and return the result
-return JobResult.OK;
-}
-}
-
-The *Job* interface allows to query the topic, the payload and additional information about the current job. The consumer can either return *JobResult.OK* indicating that the job has been processed, *JobResult.FAILED* indicating the processing failed, but can be retried or *JobResult.CANCEL* the processing has failed permanently.
-
-### Job Handling
-
-New jobs are first persisted in the resource tree (for failover etc.), then the job is distributed to an instance responsible for processing the job and on that instance the job is put into a processing queue. There are different types of queues defining how the jobs are processed (one after the other, in parallel etc.).
-
-For managing queues, the Sling Job Handler uses the OSGi ConfigAdmin - it is possible to configure one or more queue configurations through the ConfigAdmin. One way of creating and configuring such configurations is the Apache Felix WebConsole. If there is no specific queue configuration maintained for the given job topic, the Sling Job Handler falls back to using the `Apache Sling Job Default Queue` (which can be configured through OSGi as well).
-
-#### Queue Configurations
-
-A queue configuration can have the following properties:
-
-| Property Name | Description |
-|--|--|
-| `queue.name` | The name of the queue. If matching is used for topics, the value {0} can be used for replacing the matched part. |
-| `queue.type` | The type of the queue: ORDERED, UNORDERED, TOPIC_ROUND_ROBIN |
-| `queue.topics` | A list of topics processed by this queue. Either the concrete topic is specified or the topic string ends with /* or /. If a star is at the end all topics and sub topics match, with a dot only direct sub topics match. |
-| `queue.maxparallel` | How many jobs can be processed in parallel? -1 for number of processors.|
-| `queue.retries` | How often the job should be retried in case of failure (i.e. Job did not finish with succeeded or cancelled result). -1 for endless retries. In case of exceptions there is no retry. |
-| `queue.retrydelay` | The waiting time in milliseconds between job retries. |
-| `queue.priority` | The thread priority: NORM, MIN, or MAX |
-| `service.ranking` | A ranking for this configuration.|
-
-The configurations are processed in order of their service ranking. The first matching queue configuration is used for the job.
-
-#### Ordered Queues
-
-An ordered queue processes one job after the other.
-
-#### Unordered Queues (or Parallel queues)
-
-Unordered queues process jobs in parallel.
-
-#### Topic-Round-Robin Queues
-
-The jobs are processed in parallel. Scheduling of the jobs is based on the topic of the jobs. These are started by doing round-robin on the available topics.
-
-
-### Job Distributing
-
-For job distribution (= distributing the processing in a cluster), the job handling uses the topology feature from Sling - each instance in the topology announces the set of topics (consumers) it currently has - and this defines the job capabilities, a mapping from an instance to the topics it can process.
-
-When a job is scheduled, the job manager uses these capabilities to find out the set of instances which is able to process the request. If the queue type is *ordered* then all jobs are processed by the leader of this set. For parallel queues, the jobs are distributed equally amongst those instance.
-
-Failover is handled by the leader: if an instance dies, the leader will detect this through the topology framework and then redistribute jobs from the dead instance to the available instances. Of course this takes a leader change into account as well. In addition if the job capabilities change and this require a reschedule of jobs, that's done by the leader as well.
-
-### Job Creation Patterns
-
-The job manager ensures that a job is processed exactly once. However, the client code has to take care that a job is created exactly once. We'll discuss this based on some general usage patterns:
-
-#### Jobs based on user action
-
-If a user action results in the creation of a job, the thread processing the user action can directly create the job. This ensures that even in a clustered scenario the job is created only once.
-
-#### Jobs based on observation / events
-
-If an observation event or any other OSGi event results in the creation of a job, special care needs to be taken in a clustered installation to avoid the job is created on all cluster instances. The easiest way to avoid this, is to use the topology api and make sure the job is only created on the leader instance.
-
-
-## Distributed Events
-
-In addition to the job handling, the Sling Event support adds handling for distributed events. A distributed event is an OSGi event which is sent across JVM boundaries to a different VM. A potential use case is to broadcast information in a clustered environment.
-
-### Basic Principles
-
-The foundation of the distributed event mechanism is to distribute each event to every node in a clustered environment. The event distribution mechanism has no knowledge about the intent of the event and therefore is not able to make delivery decisions by itself. It is up to the sender to decide what should happen. The sender must explicitly declare an event to be distributed as for example framework related events (bundle stopped, installed etc.) should not be distributed.
-
-The event mechanism will provide additional functionality making it easier for event receivers to decide if they should process an event. The event receiver can determine if the event is a local event or comming from a remote application node. Therefore a general rule of thumb is to process events only if they're local and just regard remote events as a FYI.
-
-For distributed events two properties are defined (check the *EventUtil* class):
-
-* *event.distribute* - this flag is set by the sender of an event to give a hint if the event should be distributed across instances. For example JCR observation based events are already distributed on all instances, so there is no further need to distribute them. If the flag is present, the event will be distributed. The value has currently no meaning, however the EventUtil method should be used to add this property. If the flag is absent the event is distributed locally only.
-* *event.application* - An identifier for the current application node in the cluster. This information will be used to detect if an event has been created on different nodes. If the event has been created on the same node, the *event.application* is missing, if it is a remote event, the *event.application* contains the ID of the node, the event has been initially created. Use the *EventUtil.isLocal(Event)* method to detect if the event is a local or a distributed event.
-
-While the *event.distribute* must be set by the sender of an event (if the event should be distributed), the *event.application* property is maintained by the event mechanism. Therefore a client sending an event should *never* set this information by itself. This will confuse the local event handlers and result in unexpected behaviour. On remote events the *event.application* is set by the event distribution mechanism.
-
-### Event Distribution Across Application Nodes (Cluster)
-
-The (local) event admin is the service distributing events locally. The Sling Distributing Event Handler is a registered event handler that is listening for events to be distributed. It distributes the events to remote application notes, Sling's resource tree is used for distribution. The distributing event handler writes the events into the resource tree, the distributing event handlers on other application nodes get notified through observation and then distribute the read events locally.
-
-As mentioned above, the client sending an event has to mark an event to be distributed in a cluster by setting the *event.distribute* in the event properties (through *EventUtil*). This distribution mechanism has the advantage that the application nodes do not need to know each other and the distribution mechanism is independent from the used event admin implementation.
-
-## Sending Scheduled Events
-
-Scheduled events are OSGi events that have been created by the environemnt. They are generated on each application node of the cluster through an own scheduler instance. Sending these events works the same as sending events based on JCR events (see above).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/bundle-resources-extensions-bundleresource.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/bundle-resources-extensions-bundleresource.md b/content/documentation/bundles/bundle-resources-extensions-bundleresource.md
deleted file mode 100644
index 0dd16cb..0000000
--- a/content/documentation/bundles/bundle-resources-extensions-bundleresource.md
+++ /dev/null
@@ -1,49 +0,0 @@
-title=Bundle Resources (extensions.bundleresource)		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-## Introduction
-
-The Bundle Resource Provider provides access to files/directories included in an OSGi bundle through the Sling `ResourceResolver`.
-
-## Resource Types
-
-Files and directories are mapped into the resource tree as regular `Resource` instances whose resource type depends on the actual nature of the mapped resource:
-
-* Regular files are assigned the `nt:file` resource type
-* Directories are assigned the `nt:folder` resource type
-
-
-## Adapters
-
-Filesystem resources extend from Sling's `AbstractResource` class and thus are adaptable to any type for which an `AdapterFactory` is registered supporting bundle resources. In addition `BundleResource` support the following adapters natively:
-
-* `java.net.URL` -- A valid `bundle://` URL to the resource in the bundle.
-* `java.io.InputStream` -- An `InputStream` to read file contents. Doesn't apply to folders.
-
-
-## Configuration
-
-Providing bundles have a Bundle manifest header `Sling-Bundle-Resources` containing a list of absolute paths provided by the bundle. The paths are separated by comma or whitespace (SP, TAB, VTAB, CR, LF).
-
-Example (manifest.mf):
-
-
-...
-Sling-Bundle-Resources: /libs/sling/explorer,
-/libs/sling/servlet/default/explorer
-...
-
-
-It's also possible to map resources from the bundle to a different location in the resource tree. In this case the path has to be extended with a path attrribute to declare where the resources are in the bundle:
-
-
-...
-Sling-Bundle-Resources: /somepath/inthe/resourcetree;path:=/path/inthe/bundle
-...
-
-
-The Bundle Resource Provider also has a web console plugin through which the currently installed bundles can be seen.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/caching-services.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/caching-services.md b/content/documentation/bundles/caching-services.md
deleted file mode 100644
index 76fa334..0000000
--- a/content/documentation/bundles/caching-services.md
+++ /dev/null
@@ -1,11 +0,0 @@
-title=Sling Caching Services		
-type=page
-status=published
-~~~~~~
-
-Caching services are available as a contribution at [https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/cache](https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/cache)
-
-Both EhCache and Infinispan implementations are provided, with good unit and integration tests coverage.
-
-A portal cache provider API implementation is provided, that depends on the whiteboard portal modules
-found under [https://svn.apache.org/repos/asf/sling/whiteboard/portal](https://svn.apache.org/repos/asf/sling/whiteboard/portal)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/commons-html-utilities.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/commons-html-utilities.md b/content/documentation/bundles/commons-html-utilities.md
deleted file mode 100644
index b7b1075..0000000
--- a/content/documentation/bundles/commons-html-utilities.md
+++ /dev/null
@@ -1,6 +0,0 @@
-title=Commons HTML Utilities (org.apache.sling.commons.html)		
-type=page
-status=published
-~~~~~~
-
-The Apache Sling Commons HTML Utilities bundle provides an HTML parser which can be used to parse HTML and either generate a DOM or SAX events out of the HTML. Therefore the parser transforms the HTML into proper XHTML.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/configuration-installer-factory.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/configuration-installer-factory.md b/content/documentation/bundles/configuration-installer-factory.md
deleted file mode 100644
index 3e9a551..0000000
--- a/content/documentation/bundles/configuration-installer-factory.md
+++ /dev/null
@@ -1,83 +0,0 @@
-title=Configuration Installer Factory		
-type=page
-status=published
-~~~~~~
-
-The configuration installer factory provides support for configurations to the [OSGI installer](/documentation/bundles/osgi-installer.html). The provisioning of artifacts is handled by installer providers like the file installer or the JCR installer.
-
-
-## Configurations
-
-Configuration file names are related to the PID and factory PID. The structure of the file name is as follows:
-
-
-filename ::= <pid> ( '-' <subname> )? ('.cfg'|'.config')
-
-
-If the form is `<pid>('.cfg'|'.config')`, the file contains the properties for a Managed Service. The `<pid>` is then the PID of the Managed Service. See the Configuration Admin service for details.
-
-When a Managed Service Factory is used, the situation is different. The `<pid>` part then describes the PID of the Managed Service Factory. You can pick any `<subname>`, the installer will then create an instance for the factory for each unique name. For example:
-
-
-com.acme.xyz.cfg // configuration for Managed Service
-// com.acme.xyz
-com.acme.abc-default.cfg // Managed Service Factory,
-// creates an instance for com.acme.abc
-
-
-If a configuration is modified, the file installer will write the configuration back to a file to ensure peristence across restarts (if `sling.fileinstall.writeback` is enabled).
-
-### Property Files (.cfg)
-
-Configuration files ending in '.cfg' are plain property files (`java.util.Property`). The format is simple:
-
-
-file ::= ( header | comment ) *
-header ::= <header> ( ':' | '=' ) <value> ( '<nl> <value> ) *
-comment ::= '#' <any>
-
-Notice that this model only supports string properties. For example:
-
-# default port
-ftp.port = 21
-
-### Configuration Files (.config)
-
-Configuration files ending in '.config' use the format of the Apache Felix ConfigAdmin implementation. It allows to specify the type and cardinality of a configuration property and is not limited to string values.
-
-The first line of such a file might start with a comment line (a line starting with a #). Comments within the file are not allowed.
-
-The format is:
-
-file ::= (comment) (header) *
-comment ::= '#' <any>
-header ::= prop '=' value
-prop ::= symbolic-name // 1.4.2 of OSGi Core Specification
-symbolic-name ::= token { '.' token }
-token ::= { [ 0..9 ] | [ a..z ] | [ A..Z ] | '_' | '-' }
-value ::= [ type ] ( '[' values ']' | '(' values ')' | simple )
-values ::= simple { ',' simple }
-simple ::= '"' stringsimple '"'
-type ::= <1-char type code>
-stringsimple ::= <quoted string representation of the value where both '"' and '=' need to be escaped>
-
-The quoted string format is equal to the definition from HTTP 1.1 ([RFC2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html)), except that both '"' and '=' need to be escaped.
-
-The 1 character type code is one of:
-
-* 'T' : simple string
-* 'I' : Integer
-* 'L' : Long
-* 'F' : Float
-* 'D' : Double
-* 'X' : Byte
-* 'S' : Short
-* 'C' : Character
-* 'B' : Boolean
-
-A number of such .config files exist in the Sling codebase and can be used as examples.
-
-# Project Info
-
-* Configuration installer factory ([org.apache.sling.installer.factory.configuration](http://svn.apache.org/repos/asf/sling/trunk/installer/factories/configuration))
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/content-distribution.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/content-distribution.md b/content/documentation/bundles/content-distribution.md
deleted file mode 100644
index b0605f9..0000000
--- a/content/documentation/bundles/content-distribution.md
+++ /dev/null
@@ -1,174 +0,0 @@
-title=Content Distribution (org.apache.sling.distribution)		
-type=page
-status=published
-~~~~~~
-[TOC]
-
-
-## Introduction
-
-The Sling Content Distribution (SCD) module allows one to distribute Sling resources between different Sling instances. The API works at path level and the distribution agents basically enable distribution of specific paths between instances. There are several main usecases in which SCD can help. Typically the distribution is done from one or more source instances to one or more target instances.
-
-## Distribution usecases
-
-Some of the usecases have sample configuration in [Distribution Sample Module](https://github.com/apache/sling/tree/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution) and are tested in [Distribution ITs Module](https://github.com/apache/sling/tree/trunk/contrib/extensions/distribution/it).
-
-### Forward distribution
-A forward distribution setup allows one to transfer content from a source instance to a farm of target instances. That is done by pushing the content from source to target.
-
-#### Setup overview
-
-* one source instance
-* one distribution agent connected to importer endpoints for all target instances.
-* N target instances
-* one distribution importer on each target instance used to import packages into the local instance.
-
-#### Sample configuration
-
-* on source instance: one forward agent
-
-org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish.json
-name="publish"
-packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default"]
-
-* on target instance: one local importer
-
-org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory-default
-name="default"
-
-
-### Reverse distribution
-
-A reverse distribution setup allows one to transfer content from a farm of source instances to a target instance. That is done by pulling the content from source instances into the target instance.
-
-#### Setup overview
-* one target instance
-* one distribution agent connected to exporter endpoints for all target instances.
-* N source instances
-* one distribution (queue) agent on each source instance; changes from the source instances are placed in the queues of these agents.
-* one distribution exporter on each source instance that exports packages from the queue agent.
-
-#### Sample configuration
-
-* on target instance: one reverse agent
-
-org.apache.sling.distribution.agent.impl.ReverseDistributionAgentFactory-reverse.json
-name="reverse"
-packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse"]
-
-* on source instance: one queue agent and one exporter for that agent
-
-org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json
-name="reverse"
-
-org.apache.sling.distribution.packaging.impl.exporter.AgentDistributionPackageExporterFactory-reverse
-name="reverse"
-agent.target="(name=reverse)"
-
-
-
-### Sync distribution
-
-A sync distribution setup allows one to synchronize content in a farm of instances. That is done by using a coordinator instance (typically an author instance) that pulls content from all instances in a farm and pushes it back to all.
-
-#### Setup overview:
-* one coordinator instance
-* one distribution agent connected to exporter/importer endpoints for all farm instances.
-* N farm instances
-* one distribution (queue) agent on each farm instance; changes from these instances are placed in the queues of the queue agents.
-* one distribution exporter on each farm instance that exports packages from the queue agent.
-* one distribution importer on each farm instance used to import packages into the local instance.
-
-#### Sample configuration
-
-* on coordinator instance: one sync agent
-
-org.apache.sling.distribution.agent.impl.SyncDistributionAgentFactory-sync.json
-name="sync"
-packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse", "http://localhost:4504/libs/sling/distribution/services/exporters/reverse"]
-packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]
-
-
-* on each farm instance: one local exporter and one local importer
-
-org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json
-name="reverse"
-
-org.apache.sling.distribution.packaging.impl.exporter.AgentDistributionPackageExporterFactory-reverse
-name="reverse"
-agent.target="(name=reverse)"
-
-org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory-default
-name="reverse"
-agent.target="(name=reverse)"
-
-
-
-
-### Multidatacenter sync distribution
-
-A multidatacenter sync distribution setup allows one to synchronize content in a farm of publish instances across datacenters. This a variation of sync distribution but using a coordinator in each datacenter.
-
-#### Setup overview
-
-* one coordinator instance in each datacenter
-* one distribution agent for intra-datacenter synchronization. Like a regular sync agent it connects to all farm instances in its datacenter and syncronizes them. In addition to a regular sync agent it keeps the packages also in dedicated queues for the other DCs, so that the coordinators from the other DCs can pull the updates.
-* one distribution exporter for each queue dedicated for the remote DCs. The inter-dc coordinators from the other DCs will connect to these exporter endpoints.
-* one distribution agent for inter-datacenter synchronization; it conntects to the dedicated queues exposed by intra-dc coordinators from the other datacenters.
-* N farm instances in each datacenter
-* one distribution (queue) agent on each farm instance; changes from these instances are placed in the queues of the queue agents.
-* one distribution exporter on each farm instance that exports packages from the queue agent.
-* one distribution importer on each farm instance used to import packages into the local instance.
-
-#### Sample configuration
-
-
-* on coordinator instance: one intradcsync agent with two exporters for the other dcs, and one interdcsync agent that connects to remote exporters.
-
-org.apache.sling.distribution.agent.impl.SyncDistributionAgentFactory-intradcsync
-name="intradcsync"
-packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse", "http://localhost:4504/libs/sling/distribution/services/exporters/reverse"]
-packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]
-passiveQueues=["dc2queue", "dc3queue"]
-
-org.apache.sling.distribution.packaging.impl.exporter.AgentDistributionPackageExporterFactory-dc2queue
-name="dc2queue"
-agent.target="(name=intradcsync)"
-queue="dc2queue"
-
-org.apache.sling.distribution.packaging.impl.exporter.AgentDistributionPackageExporterFactory-dc3queue
-name="dc3queue"
-agent.target="(name=intradcsync)"
-queue="dc3queue"
-
-org.apache.sling.distribution.agent.impl.SyncDistributionAgentFactory-interdcsync
-name="interdcsync"
-packageExporter.endpoints=["http://localhost:5502/libs/sling/distribution/services/exporters/dc1queue", "http://localhost:6502/libs/sling/distribution/services/exporters/dc1queue"]
-packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]
-
-
-* on each farm instance: one local exporter and one local importer
-
-org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json
-name="reverse"
-
-org.apache.sling.distribution.packaging.impl.exporter.AgentDistributionPackageExporterFactory-reverse
-name="reverse"
-agent.target="(name=reverse)"
-
-org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory-default
-name="default"
-
-
-
-
-## Additional options
-
-### How to trigger distribution over HTTP?
-
-### How to configure binary-less distribution?
-
-### How to configure priority paths?
-
-### How to configure error queues?
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/content-loading-jcr-contentloader.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/content-loading-jcr-contentloader.md b/content/documentation/bundles/content-loading-jcr-contentloader.md
deleted file mode 100644
index b6f6998..0000000
--- a/content/documentation/bundles/content-loading-jcr-contentloader.md
+++ /dev/null
@@ -1,281 +0,0 @@
-title=Content Loading and Nodetype Support (jcr.contentloader)		
-type=page
-status=published
-~~~~~~
-
-Apache Sling provides support for initial content loading into a repository and for registering node types. The `sling-jcr-contentloader` bundle provides loading of content from a bundle into the repository and the `sling-jcr-base` bundle provides node type registration.
-
-## Initial Content Loading
-
-Bundles can provide initial content, which is loaded into the repository when the bundle has entered the *started* state. Such content is expected to be contained in the bundles accessible through the Bundle entry API methods. Content to be loaded is declared in the `Sling-Initial-Content` bundle manifest header. This header takes a comma-separated list of bundle entry paths. Each entry and all its child entries are accessed and entered into starting with the child entries of the listed entries.
-
-Adding this content preserves the paths of the entries as shown in this table, which assumes a `Sling-Initial-Content` header entry of `SLING-INF/content` (with no further directives):
-
-| Source Entry Paths in Bundle | Target Repository Path |
-|---|---|
-| `SLING-INF/content/home` | `/home` |
-| `SLING-INF/content/content/playground/en/home` | `/content/playground/en/home` |
-| `SLING-INF/someothercontent/playground/en/home` | not installed at all, because not below the `Sling-Initial-Content` header entry |
-
-Bundle entries are installed as follows:
-
-| Entry Type | Installation method |
-|---|---|
-| Directory | Created as a node of type `sling:Folder` unless a content definition file of the same name exists in the same directory as the directory to be installed. Example: A directory `SLING-INF/content/dir` is installed as node `/dir` of type `nt:folder` unless a `SLING-INF/content/dir.xml` or `SLING-INF/content/dir.json` file exists which defines the content for the `/dir` node. |
-| File | Unless the file is a content definition file (see below) an `nt:file` node is created for the file and an `nt:resource` node is created as its `jcr:content` child node to take the contents of the bundle file. The properties of the `nt:resource` node are set from file information as available. If a content definition file exists with the same name as the file plus `.json` or `.xml` these properties are set additionally on the imported file. See below for the content definition file specification. |
-
-It is possible to modify the intial content loading default behaviour by using certain optional directives. Directives should be specified separated by semicolon. They are defined as follows:
-
-| Directive | Definition | Default value | Description |
-|---|---|---|---|
-| `overwrite` | <code>overwrite:=(true&#124;false)<code> | `false` | The overwrite directive specifies if content nodes should be overwritten (at the target repository path, which is "/" by default) or just initially added.  If this is true, existing nodes are deleted and a new node is created in the same place. This directive should be used together with the `path` directive to limit overwriting. |
-| `overwriteProperties` | <code>overwriteProperties:=(true&#124;false)</code> | `false` | The overwriteProperties directive specifying if content properties should be overwritten or just initially added (at the target repository path, which is "/" by default). This directive should be used together with the `path` directive to limit overwriting. |
-| `uninstall` | <code>uninstall:=(true&#124;false)</code> | value from `overwrite` | The uninstall directive specifies if content should be uninstalled when bundle is unregistered. This value defaults to the value of the `overwrite` directive. |
-| `path` | <code>path:=*/target/location*</code> | `/` | The path directive specifies the target node where initial content will be loaded. If the path does not exist yet in the repository, it is created by the content loader. The intermediate nodes are of type `sling:Folder`. |
-| `checkin` | <code>checkin:=(true&#124;false)</code> | `false` | The checkin directive specifies whether versionable nodes should be checked in. |
-| `ignoreImportProviders` | `ignoreImportProviders:=list of extensions` | `empty` | This directive can be used to not run one of the configured extractors (see below). |
-
-Examples of these directives within `Sling-Initial-Content` header entries:
-
-| `Sling-Initial-Content` header entry | Behaviour |
-|---|---|
-| `SLING-INF/content/home;overwrite:=true;path:=/home` | Overwrites already existing content in */home* and uninstalls the content when the bundle is unregistered. |
-| `SLING-INF/content/home;overwriteProperties:=true;path:=/home` | Overwrites properties of existing content in */home*. |
-| `SLING-INF/content/home;path:=/sites/sling_website` | This loads the content given in *SLING-INF/content/home* into */sites/sling_website*. |
-| `SLING-INF/content/home;checkin:=true` | After content loading, versionable nodes are checked in. |
-
-## Loading initial content from bundles
-
-Repository items to be loaded into the repository, when the bundle is first installed, may be defined in four ways:
-
-1. Directories
-1. Files
-1. XML descriptor files
-1. JSON descriptor files
-
-Depending on the bundle entry found in the location indicated by the Sling-Initial-Content bundle manifest header, nodes are created (and/or updated) as follows:
-
-### Directories
-
-Unless a node with the name of the directory already exists or has been defined in an XML or JSON descriptor file (see below) a directory is created as a node with the primary node type "nt:folder" in the repository.
-
-### Files
-
-Unless a node with the name of the file already exists or has been defined in an XML or JSON descriptor file (see below) a file is created as two nodes in the repository. The node bearing the name of the file itself is created with the
-primary node type "nt:file". Underneath this file node, a resource node with the primary node type "nt:resource" is created, which is set to the contents of the file.
-
-The MIME type is derived from the file name extension by first trying to resolve it from the Bundle entry URL. If this does not resolve to a MIME type, the Sling MIME type resolution service is used to try to find a mime type. If all fals, the MIME type is defaulted to "application/octet-stream".&nbsp;&nbsp;
-
-### XML Descriptor Files
-
-Nodes, Properties and in fact complete subtrees may be described in XML files using either the JCR SystemView format, or the format described below. In either case, the file must have the .xml extension.
-
-<node>
-<!--
-optional on top level, defaults to XML file name without .xml extension
-required for child nodes
--->
-<name>xyz</name>
-
-<!--
-optional, defaults to nt:unstructured
--->
-<primaryNodeType>nt:file</primaryNodeType>
-
-<!--
-optional mixin node type
-may be repeated for multiple mixin node types
--->
-<mixinNodeType>mix:versionable</mixinNodeType>
-<mixinNodeType>mix:lockable</mixinNodeType>
-
-<!--
-Optional properties for the node. Each <property> element defines
-a single property of the node. The element may be repeated.
--->
-<property>
-<!--
-required property name
--->
-<name>prop</name>
-
-<!--
-value of the property.
-For multi-value properties, the values are defined by multiple
-<value> elements nested inside a <values> element instead of a
-single <value> element
--->
-<value>property value as string</value>
-
-<!--
-Optional type of the property value, defaults to String.
-This must be one of the property type strings defined in the
-JCR PropertyType interface.
--->
-<type>String</type>
-</property>
-
-<!--
-Additional child nodes. May be further nested.
--->
-<node>
-....
-</node>
-</node>
-
-
-#### Using a custom XML format
-
-By writing an XSLT stylesheet file, you can use whatever XML format you prefer. The XML file references an XSLT stylesheet by using the xml-stylesheet processing instruction:
-
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="my-transform.xsl" type="text/xsl"?> <!-- The path to my-transform.xsl is relative to this file -->
-
-<your_custom_root_node>
-<your_custom_element>
-...
-</your_custom_element>
-...
-</your_custom_root_node>
-
-
-The my-transform.xsl file is then responsible for translating your format into one of the supported XML formats:
-
-
-
-<xsl:stylesheet version="1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0"
-xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
-xmlns:rep="internal" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="your_custom_element">
-<node>
-...
-</node>
-</xsl:template>
-...
-</xsl:stylesheet>
-
-
-
-### JSON Descriptor Files
-
-Nodes, Properties and in fact complete subtrees may be described in JSON files using the following skeleton structure (see [http://www.json.org](http://www.json.org) or information on the syntax of JSON) :
-
-{
-// child node name
-"nodename" : {
-
-// optional primary node type, default "nt:unstructured"
-"jcr:primaryType": "sling:ScriptedComponent",
-
-// optional mixin node types as array
-"jcr:mixinTypes": [ ],
-
-// additional properties as name value pairs.
-// Multi-value properties are defined as JSON array.
-// Property type is derived from the value
-
-// String value (default)
-"sling:contentClass": "com.day.sling.jcr.test.Test",
-
-// Multi-value String
-"sampleMulti": [ "v1", "v2" ],
-
-// Long value, single and multi
-"sampleStruct": 1,
-"sampleStructMulti": [ 1, 2, 3 ],
-
-// Date follows pattern yyyy-mm-ddTHH:MM:SS.sss±HH:MM
-"sampleDate": "2014-11-27T13:26:00.000+01:00",
-
-// JCR Node Reference with name prefix (removed to derive node name)
-"jcr:reference:sampleRef": "386b0f48-49c3-4c58-8735-ceee6bfc1933",
-
-// JCR Path with name prefix (removed to derive node name)
-"jcr:path:samplePath": "/content/data",
-
-// JCR Name with name prefix (removed to derive node name)
-"jcr:name:sampleName": "data",
-
-// URI with name prefix (removed to derive node name)
-"jcr:uri:sampleUri": "http://sling.apache.org/",
-
-// Child nodes are simple JSON objects
-"sling:scripts": {
-"jcr:primaryType": "sling:ScriptList",
-"sling:Script": {
-"jcr:primaryType": "sling:Script",
-"sling:name": "/test/content/jsp/start.jsp",
-"sling:type": "jsp",
-"sling:glob": "*"
-}
-}
-}
-
-
-### Extractors
-
-By default, the `sling-jcr-contentloader` bundle tries to extract certain file types during content loading. These include `json`, `xml`, `zip`, and `jar` files. Therefore all available extractors are used for content processing. However if some files should be put into the repository unextracted, the `ignoreImportProviders` directive can be used with a comma separated list of extensions that should not be extracted, like `ignoreImportProviders:="jar,zip"`. Please note that the value needs to be put into quotation marks if more than one value is used like in the example.
-
-### Workspace Targetting
-
-By default, initial content will be loaded into the default workspace. To override this, add a `Sling-Initial-Content-Workspace` bundle manifest header to specify the workspace. Note that *all* content from a bundle will be loaded into the same workspace.
-
-### Example: Load i18n JSON files
-
-The Sling Internationalization Support (i18n) supports providing JSON-filed based i18n files (see [i18n documentation][i18n-json-file-based]).
-In this case the JSON file is not interpreted as content definition file, but is stored as binary file in the repository.
-Additionally a mixin `mix:language` and a property `jcr:language` with the language code has to be set on the file node.
-
-This is an example how such an i18n file can be loaded from an OSGi bundle with the Sling Content Loader.
-
-Within your bundle header you have to define a separate path for the i18n files where you have to explicitly disable the JSON provider:
-
-<Sling-Initial-Content>
-SLING-INF/i18n;overwrite:=true;ignoreImportProviders:=json;path:=/apps/myapp/i18n
-</Sling-Initial-Content>
-
-The folder `SLING-INF/i18n` from your bundles contains a pair of files for each language, e.g.:
-
-* `en.json` - The JSON file containing the i18n keys
-* `en.json.xml` - Additional content descriptor file setting the mixing and language property
-
-Example for the content descriptor:
-
-<?xml version="1.0" encoding="UTF-8"?>
-<node>
-<name>en.json</name>
-<mixinNodeType>mix:language</mixinNodeType>
-<property>
-<name>jcr:language</name>
-<value>en</value>
-<type>String</type>
-</property>
-</node>
-
-
-## Declared Node Type Registration
-
-The `sling-jcr-base` bundle provides low-level repository operations which are at the heart of the functionality of Sling:
-* *Node Type Definitions* - The class `org.apache.sling.content.jcr.base.NodeTypeLoader` provides methods to register custom node types with a repository given a repository session and a node type definition file in CND format. This class is also used by this bundle to register node types on behalf of other bundles.
-
-Bundles may list node type definition files in CND format in the `Sling-Nodetypes` bundle header. This header is a comma-separated list of resources in the respective bundle. Each resource is taken and fed to the `NodeTypeLoader` to define the node types.
-
-After a bundle has entered the *resolved* state, the node types listed in the `Sling-Nodetypes` bundle header are registered with the repository.
-
-Node types installed by this mechanism will never be removed again by the `sling-jcr-base` bundle.
-
-Starting with revision 911430, re-registration of existing node types is enabled by default. To disable this, add `;rereigster:=false` to the resource names for which re-registration should be disabled.
-
-<div class="warning">
-Support for re-registration of node types is relatively limited. In Jackrabbit, for example, only "trivial" changes are allowed.
-</div>
-
-### Automated tests
-
-The initial content found in the [sling-test folder of the launchpad initial content](http://svn.apache.org/repos/asf/sling/trunk/launchpad/content/src/main/resources/content/sling-test) is verified by the [InitialContentTest](http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java) when running the *launchpad/testing* integration tests.
-
-Those tests can be used as verified examples of initial content loading. Contributions are welcome to improve the coverage of those tests.
-
-
-[i18n-json-file-based]: https://sling.apache.org/documentation/bundles/internationalization-support-i18n.html#json-file-based

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/context-aware-configuration/config-resource-lookup.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/context-aware-configuration/config-resource-lookup.png b/content/documentation/bundles/context-aware-configuration/config-resource-lookup.png
deleted file mode 100644
index 8255ca3..0000000
Binary files a/content/documentation/bundles/context-aware-configuration/config-resource-lookup.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/context-aware-configuration/context-and-config-reference.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/context-aware-configuration/context-and-config-reference.png b/content/documentation/bundles/context-aware-configuration/context-and-config-reference.png
deleted file mode 100644
index 9dbd0b9..0000000
Binary files a/content/documentation/bundles/context-aware-configuration/context-and-config-reference.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/context-aware-configuration/context-aware-config-example.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/context-aware-configuration/context-aware-config-example.png b/content/documentation/bundles/context-aware-configuration/context-aware-config-example.png
deleted file mode 100644
index 8c900a6..0000000
Binary files a/content/documentation/bundles/context-aware-configuration/context-aware-config-example.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.md b/content/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.md
deleted file mode 100644
index 7df5413..0000000
--- a/content/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.md
+++ /dev/null
@@ -1,100 +0,0 @@
-title=Apache Sling Context-Aware Configuration - Default Implementation		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-# About
-
-By default the 'default implementation' us used by the Context-Aware Configuration concerning lookup and persistence of configuration data, resource and property inheritance and context path detection. Using the [SPI](http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html) it is possible to overlay, extend or replace this functionality.
-
-This page documents the details of the default implementation.
-
-
-# Repository paths
-
-By default all configuration data is stored in `/conf`. Fallback paths are `/conf/global`, `/apps/conf`and `/libs/conf`.
-
-The paths are configurable in the service configuration.
-
-
-# Context paths
-
-The content resource hierarchy is defined by setting `sling:configRef` properties. Each resource that has a `sling:configRef` property set defines the root resource of a context, the whole subtree is the context. Within the subtree further nested contexts can be defined.
-
-
-# Configuration resource resolving
-
-This illustration shows an example for configuration resource lookup:
-
-![Configuration resource lookup](config-resource-lookup.png)
-
-If you get the context-aware configuration via the API for any resource below `/content/tenant1/region1/site1` it is looked up in this path in this order:
-
-1. `/conf/brand1/tenant1/region1/site1` - because referenced by `/content/tenant1/region1/site1`
-2. `/conf/brand1/tenant1/region1` - because referenced by `/content/tenant1/region1` (parent context)
-3. `/conf/brand1/tenant1` - because referenced by `/content/tenant1` (parent context)
-4. `/conf/brand1` - because it is a parent of by `/conf/brand1/tenant1`
-5. `/conf/global` - because it is configured as fallback path
-6. `/apps/conf` - because it is configured as fallback path
-7. `/libs/conf` - because it is configured as fallback path
-
-So the basic rules are:
-
-* Go up in the content resource tree until a resource with `sling:configRef` is found. This is the 'inner-most' context. Check if a configuration resource exists at the path the property points to.
-* Check for parent resources of the references configuration resource (below `/conf`)
-* Go further up in the content resource tree for parent contexts, and check their configuration resources as well (they may reference completely different location below `/conf`)
-* Check the fallback paths
-
-
-# Configuration persistence
-
-Example for the resource structure for a configuration resource at `/conf/mysite`:
-
-/conf
-/mysite
-/sling:configs
-/x.y.z.MyConfig
-@prop1 = 'value1'
-@prop2 = 123
-@prop3= true
-
-Explanation:
-
-* `sling:configs` is the bucket named which is used by the ConfigurationResolver by default for context-aware configurations. May be another name if you use the ConfigurationResourceResolver directly.
-* `x.y.z.MyConfig` is the configuration name, in this case derived from an annotation class. May be any other custom name as well.
-* `prop1..3`are example for configuration properties
-* It is possible to use deeper hierarchies below `sling:configs` as well.
-* Nested configurations are supported as well. This can be mapped to annotation classes referencing other annotation classes.
-
-
-# Resource inheritance
-
-We distinguish between:
-
-- Singleton resources: Configuration resources looked up by the `get`/`as` method variants
-- Collection resources: Configuration resources lists looked up by the `getCollection`/`asCollection` method variants
-
-For singleton resources, there is not resource inheritance. The first resource that is found in the configuration resource resolving lookup order is returned.
-
-For collection resources there is no resource inheritance enabled by default. The children of the first resource that is found in the configuration resource resolving lookup order are returned.
-
-By defining a property `sling:configCollectionInherit` on the configuration resource, the children of the next resource that is found in the configuration resource resolving lookup order are combined with the children of the current configuration resource, returned a merged list. If both configuration resources contain child resources with the same name, duplicates are eliminated and only the children of the first resource are included.
-
-By setting the property `sling:configCollectionInherit` on multiple configuration resources that are part of the lookup order it is possible to form deeper inheritance chains following the same rules.
-
-Example for resource inheritance:
-
-![Resource inheritance](resource-inheritance.png)
-
-The result of this example is: **C, A, B**. It would by just **C** if the `sling:configCollectionInherit` is not set.
-
-
-# Property inheritance
-
-By default, no property inheritance takes place. That means only the properties that are stored in the configuration resource are mapped to the annotation class or returned as value map, regardless whether singleton or collection resources are returned, or if resource collection inheritance is enabled or not.
-
-By defining a property `sling:configPropertyInherit` on the configuration resource, property merging is enabled between the current configuration resource and the next resource with the same name (singleton or resource collection item) in the configuration resource lookup order. That means that all properties that are not defined on the current configuration resource are inherited from the next resources and a merged value map is used for the configuration mapping.
-
-By setting the property `sling:configPropertyInherit` on multiple configuration resources that are part of the lookup order it is possible to form deeper inheritance chains following the same rules.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/context-aware-configuration/context-aware-configuration-override.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/context-aware-configuration/context-aware-configuration-override.md b/content/documentation/bundles/context-aware-configuration/context-aware-configuration-override.md
deleted file mode 100644
index 97373cd..0000000
--- a/content/documentation/bundles/context-aware-configuration/context-aware-configuration-override.md
+++ /dev/null
@@ -1,70 +0,0 @@
-title=Apache Sling Context-Aware Configuration - Override		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-
-# About
-
-Using overrides it is possible to override context-aware configuration values globally or for specific content paths (and their subtrees) within an instance. If an override is active the Configuration API returns the overridden values instead of the values from the configuration resources.
-
-An example use case is to overwrite the Site URLs on your staging system which has a copy of the configuration content of the production system installed.
-
-Via the [SPI](http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html) you can add your own override providers - but in most cases the built-in ones described in this page are sufficient. All override providers use the same override syntax.
-
-
-# Override syntax
-
-Generally an override consists of one single line. Syntax examples:
-
-{configName}/{propertyName}={propertyJsonValue}
-{configName}={propertyJsonObject}
-[{contextPath}]{configName}/{propertyName}={propertyJsonValue}
-[{contextPath}]{configName}={propertyJsonObject}
-
-The different parts:
-
-* `{configName}` - Configuration name - can be a relative path with sub-resources
-* `{propertyName}` - Property name
-* `{propertyJsonValue}` - Property value in JSON value syntax.
-* `{propertyJsonObject}` - If the property name is missing a JSON object can be defined containing all properties as key-value pairs.
-* `{contextPath}` - If the context path is missing, the override is applied to all context path. If it is defined (enclosed in brackets), the override is applied only to this content path and it's subtree.
-
-When the syntax `{configName}/{propertyName}={propertyJsonValue}` is used, only this specific property is overwritten leaving all other properties in the configuration resource untouched. When the syntax `{configName}={propertyJsonObject}` is used, all configuration properties in the configuration resources are replaced with the set from the JSON object.
-
-Override string examples with real values:
-
-my-config/property1="value 1"
-my-config/sub1/property1="value 1"
-my-config/property1=["value 1","value 2"]
-my-config/property1=123
-x.y.z.MyConfig={"prop1"="value1","prop2"=[1,2,3],"prop3"=true,"prop4"=1.23}
-[/content/region1]my-config/property1="value 1"
-[/content/region1]my-config/sub1={"prop1":"value 1"}
-
-If multiple statements are defined affecting the same content path, configuration name and property name, they overwrite each other. That means the override string defined last wins.
-
-
-# Built-in override providers
-
-## Override via system properties
-
-Allows to define configuration property overrides from system environment properties.
-
-The parameters are defined when starting the JVM using the -D command line parameter. Each parameter contains an override string. All parameter names have to be prefixed with the string `sling.caconfig.override.`.
-
-Example:
-
--Dsling.caconfig.override.my-config/sub1/property1=123
--D"sling.caconfig.override.my-config/property1=["value 1","value 2"]"
--D"sling.caconfig.override.[/content/region1]x.y.z.MyConfig={"prop1"="value1","prop2"=[1,2,3],"prop3"=true,"prop4"=1.23}"
-
-This provider is not active by default, it has to be activated via OSGi configuration ("Apache Sling Context-Aware System Property Configuration Override Provider").
-
-## Override via OSGi configuration
-
-Allows to define configuration property overrides from OSGi configuration.
-
-You can provide multiple providers using a factory configuration ("Apache Sling Context-Aware OSGi Configuration Override Provider"), each of them provides list of override strings.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.md b/content/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.md
deleted file mode 100644
index 8981ed2..0000000
--- a/content/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.md
+++ /dev/null
@@ -1,61 +0,0 @@
-title=Apache Sling Context-Aware Configuration - SPI		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-
-# About
-
-The Context-Aware Configuration implementation provides a set of Service Provider Interfaces (SPI) that allows you to overlay, enhance or replace the default implementation and adapt it to your needs.
-
-Please use the SPI with care, and first check if the [Default Implementation](http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html) does not already fulfill your needs.
-
-
-
-# General principles
-
-All SPIs share a common principle:
-
-- Support multiple strategies at the same time
-- No need to switch off or „copy“ the initial strategy
-- Apply additional strategies only for those places where needed (“minimally invasive”)
-
-All existing implementations are iterated in order of their service ranking.
-
-
-# Context Path Strategy
-
-By providing an implementation of `org.apache.sling.caconfig.resource.spi.ContextPathStrategy` you can provide additional ways how context paths and their configuration references are detected in your content resource hierarchy.
-
-E.g. you could implement detecting context paths by project-specific conventions.
-
-
-# Configuration Resource Resolver Strategy
-
-By providing an implementation of `org.apache.sling.caconfig.resource.spi.ConfigurationResourceResolvingStrategy` you can define where configuration data is looked up, and how resource and property inheritance is handled.
-
-
-# Configuration Inheritance Strategy
-
-By providing an implementation of `org.apache.sling.caconfig.spi.ConfigurationInheritanceStrategy` you can define if and how resources are inherited across the inheritance chain.
-
-
-# Configuration Persistence Strategy
-
-By providing an implementation of `org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy2` you can define the persistence structure of the configuration within the configuration resources.
-
-E.g. you could use a specific JCR node type or slightly different content structure to store the configuration data.
-
-
-# Configuration Metadata Provider
-
-By providing an implementation of `org.apache.sling.caconfig.spi.ConfigurationMetadataProvider` you can provide information about configuration metadata from other sources than annotation classes.
-
-
-# Configuration Override Provider
-
-By providing an implementation of `org.apache.sling.caconfig.spi.ConfigurationOverrideProvider` you can provide your own overrides - if the built-in override providers do not fit your needs.
-
-See [Override](http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html) for the list of built-in providers and the override syntax.


[10/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/obr/thirdparty.xml
----------------------------------------------------------------------
diff --git a/content/obr/thirdparty.xml b/content/obr/thirdparty.xml
deleted file mode 100644
index d1eb82d..0000000
--- a/content/obr/thirdparty.xml
+++ /dev/null
@@ -1,673 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<?xml-stylesheet type="text/xml" href="obr2html.xsl"?>
-
-<repository lastmodified="20090518141006.997" name="Apache Sling Third Party Repository">
-<resource id="org.apache.jackrabbit.jackrabbit-api/1.5.0" presentationname="Jackrabbit API" symbolicname="org.apache.jackrabbit.jackrabbit-api" uri="http://repo1.maven.org/maven2/org/apache/jackrabbit/jackrabbit-api/1.5.0/jackrabbit-api-1.5.0.jar" version="1.5.0">
-<description>Jacrabbit-specific extensions to the JCR API</description>
-<size>26810</size>
-<documentation>http://jackrabbit.apache.org</documentation>
-<source>org/apache/jackrabbit/jackrabbit-api/1.5.0/jackrabbit-api-1.5.0-sources.jar</source>
-<license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-<category id="org.apache.jackrabbit"/>
-<capability name="bundle">
-<p n="manifestversion" v="2"/>
-<p n="presentationname" v="Jackrabbit API"/>
-<p n="symbolicname" v="org.apache.jackrabbit.jackrabbit-api"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.api.jsr283.security"/>
-<p n="uses:" v="javax.jcr,javax.jcr.version,javax.jcr.lock"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.api.security.user"/>
-<p n="uses:" v="javax.jcr,org.apache.jackrabbit.api.security.principal,javax.security.auth"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.api.jsr283.retention"/>
-<p n="uses:" v="javax.jcr,javax.jcr.version,javax.jcr.lock"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.api.jsr283.nodetype"/>
-<p n="uses:" v="javax.jcr,javax.jcr.nodetype"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.api.security.principal"/>
-<p n="uses:" v="javax.jcr"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.api.observation"/>
-<p n="uses:" v="javax.jcr.observation"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.api.jsr283"/>
-<p n="uses:" v="javax.jcr,javax.jcr.version,javax.jcr.nodetype,javax.jcr.lock"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.api"/>
-<p n="uses:" v="javax.jcr,org.apache.jackrabbit.api.security.user,org.apache.jackrabbit.api.security.principal,javax.transaction.xa,javax.jcr.nodetype,org.xml.sax"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<require extend="false" filter="(&amp;(package=javax.jcr)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr</require>
-<require extend="false" filter="(&amp;(package=javax.jcr.lock)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr.lock</require>
-<require extend="false" filter="(&amp;(package=javax.jcr.nodetype)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr.nodetype</require>
-<require extend="false" filter="(&amp;(package=javax.jcr.observation)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr.observation</require>
-<require extend="false" filter="(&amp;(package=javax.jcr.version)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr.version</require>
-<require extend="false" filter="(&amp;(package=javax.security.auth)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.security.auth</require>
-<require extend="false" filter="(&amp;(package=javax.transaction.xa)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.transaction.xa</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.api)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.api ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.api.jsr283)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.api.jsr283 ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.api.jsr283.nodetype)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.api.jsr283.nodetype ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.api.jsr283.retention)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.api.jsr283.retention ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.api.jsr283.security)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.api.jsr283.security ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.api.observation)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.api.observation ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.api.security.principal)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.api.security.principal ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.api.security.user)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.api.security.user ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.xml.sax)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package org.xml.sax</require>
-</resource>
-<resource id="org.apache.jackrabbit.jackrabbit-jcr-commons/1.5.0" presentationname="Jackrabbit JCR Commons" symbolicname="org.apache.jackrabbit.jackrabbit-jcr-commons" uri="http://repo1.maven.org/maven2/org/apache/jackrabbit/jackrabbit-jcr-commons/1.5.0/jackrabbit-jcr-commons-1.5.0.jar" version="1.5.0">
-<description>General purpose classes for use with the JCR API</description>
-<size>202761</size>
-<documentation>http://jackrabbit.apache.org</documentation>
-<source>org/apache/jackrabbit/jackrabbit-jcr-commons/1.5.0/jackrabbit-jcr-commons-1.5.0-sources.jar</source>
-<license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-<category id="org.apache.jackrabbit"/>
-<capability name="bundle">
-<p n="manifestversion" v="2"/>
-<p n="presentationname" v="Jackrabbit JCR Commons"/>
-<p n="symbolicname" v="org.apache.jackrabbit.jackrabbit-jcr-commons"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.uuid"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.commons.xml"/>
-<p n="uses:" v="javax.jcr,javax.xml.parsers,javax.jcr.nodetype,org.xml.sax,org.apache.jackrabbit.value,org.apache.jackrabbit.commons,javax.xml.transform,javax.xml.transform.stream,javax.xml.transform.sax,org.xml.sax.helpers,org.apache.jackrabbit.util"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.commons.iterator"/>
-<p n="uses:" v="javax.jcr.query,javax.jcr,javax.jcr.observation,javax.jcr.version,javax.jcr.nodetype"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.commons.repository"/>
-<p n="uses:" v="javax.jcr,javax.naming,org.apache.jackrabbit.commons"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.name"/>
-<p n="uses:" v="javax.jcr,org.apache.jackrabbit,org.apache.jackrabbit.util"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.commons.packaging"/>
-<p n="uses:" v="javax.jcr,org.apache.jackrabbit.commons.predicate"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.value"/>
-<p n="uses:" v="javax.jcr,org.apache.jackrabbit.name,org.apache.jackrabbit.uuid,org.apache.jackrabbit.util"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.commons"/>
-<p n="uses:" v="javax.jcr,org.apache.jackrabbit.commons.xml,javax.jcr.nodetype,javax.jcr.version,org.xml.sax,javax.jcr.lock,javax.xml.transform,javax.xml.transform.stream,javax.xml.transform.sax,org.apache.jackrabbit.util"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.util.name"/>
-<p n="uses:" v="javax.jcr,org.apache.jackrabbit.name,org.xml.sax.helpers,org.xml.sax"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.commons.visitor"/>
-<p n="uses:" v="javax.jcr,org.apache.jackrabbit.commons.predicate"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.commons.predicate"/>
-<p n="uses:" v="javax.jcr,javax.jcr.nodetype"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.commons.query"/>
-<p n="uses:" v="javax.jcr.query,javax.jcr,javax.jcr.nodetype,org.apache.jackrabbit.commons.iterator,org.apache.jackrabbit.util"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.apache.jackrabbit.util"/>
-<p n="uses:" v="javax.jcr,javax.jcr.nodetype,javax.jcr.lock,org.apache.jackrabbit.name,javax.jcr.observation,javax.jcr.util"/>
-<p n="version" t="version" v="1.5.0"/>
-</capability>
-<require extend="false" filter="(&amp;(package=javax.jcr)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr</require>
-<require extend="false" filter="(&amp;(package=javax.jcr.lock)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr.lock</require>
-<require extend="false" filter="(&amp;(package=javax.jcr.nodetype)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr.nodetype</require>
-<require extend="false" filter="(&amp;(package=javax.jcr.observation)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr.observation</require>
-<require extend="false" filter="(&amp;(package=javax.jcr.query)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr.query</require>
-<require extend="false" filter="(&amp;(package=javax.jcr.util)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr.util</require>
-<require extend="false" filter="(&amp;(package=javax.jcr.version)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.jcr.version</require>
-<require extend="false" filter="(&amp;(package=javax.naming)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.naming</require>
-<require extend="false" filter="(&amp;(package=javax.xml.parsers)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.xml.parsers</require>
-<require extend="false" filter="(&amp;(package=javax.xml.transform)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.xml.transform</require>
-<require extend="false" filter="(&amp;(package=javax.xml.transform.sax)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.xml.transform.sax</require>
-<require extend="false" filter="(&amp;(package=javax.xml.transform.stream)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package javax.xml.transform.stream</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.commons)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.commons ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.commons.iterator)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.commons.iterator ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.commons.packaging)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.commons.packaging ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.commons.predicate)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.commons.predicate ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.commons.query)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.commons.query ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.commons.repository)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.commons.repository ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.commons.visitor)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.commons.visitor ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.commons.xml)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.commons.xml ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.name)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.name ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.util)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.util ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.util.name)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.util.name ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.uuid)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.uuid ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.apache.jackrabbit.value)(version&gt;=1.5.0))" multiple="false" name="package" optional="false">Import package org.apache.jackrabbit.value ;version=1.5.0</require>
-<require extend="false" filter="(&amp;(package=org.xml.sax)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package org.xml.sax</require>
-<require extend="false" filter="(&amp;(package=org.xml.sax.helpers)(version&gt;=0.0.0))" multiple="false" name="package" optional="false">Import package org.xml.sax.helpers</require>
-</resource>
-<resource id="groovy-all/1.6.0.RC-3" presentationname="Groovy Runtime" symbolicname="groovy-all" uri="http://repository.codehaus.org/org/codehaus/groovy/groovy-all/1.6-RC-3/groovy-all-1.6-RC-3.jar" version="1.6.0.RC-3">
-<description>Groovy Runtime</description>
-<size>4392238</size>
-<documentation>http://groovy.codehaus.org/</documentation>
-<category id="org.codehaus.groovy"/>
-<capability name="bundle">
-<p n="manifestversion" v="2"/>
-<p n="presentationname" v="Groovy Runtime"/>
-<p n="symbolicname" v="groovy-all"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.xml.streamingmarkupsupport"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.actions.java"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.text"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.preprocessor"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.util.slurpersupport"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.tools.shell.util"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.syntax"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.vmplugin"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.collections.impl"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.swing.factory"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.inspect.swingui"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.ASdebug"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.runtime.typehandling"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.io"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.swing.impl"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.servlet"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.control.io"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.ast"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.ui"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.binding"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.xml.dom"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.tools.groovydoc"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.actions.cpp"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.swing"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.beans"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.runtime.metaclass"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.classgen"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.runtime.callsite"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarasm.asm.tree"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.debug.misc"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.ui.view"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.reflection.stdclasses"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.jmx.builder"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.runtime.dgmimpl"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.grape"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.jsr223"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.sql"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.groovydoc"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.swing.binding"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.ast.expr"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.control.messages"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.ui.icons"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.ast.stmt"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.ant"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarasm.asm.signature"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.bsf"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.tools.groovydoc.gstring-templates.top-level"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.runtime.dgmimpl.arrays"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.antlr.java"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.transform"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.xml"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.util"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.lang"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarcommonscli"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.tools.shell"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.tools"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.runtime.wrappers"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.vmplugin.v5"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.vmplugin.v4"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.tools.xml"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.tools.groovydoc.gstring-templates.package-level"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.mock.interceptor"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.antlr.parser"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.debug"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.build"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarasm.asm"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.antlr"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.reflection"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.ui.text"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.antlr.treewalker"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.control"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.tools.groovydoc.gstring-templates.class-level"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.security"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.tools.shell.commands"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.runtime"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.collections"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.time"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.model"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.actions.python"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovy.inspect"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="groovyjarjarantlr.actions.csharp"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.tools.javac"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<capability name="package">
-<p n="package" v="org.codehaus.groovy.util"/>
-<p n="version" t="version" v="1.6.0.RC-3"/>
-</capability>
-<require extend="false" filter="(&amp;(package=com.thoughtworks.xstream)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package com.thoughtworks.xstream</require>
-<require extend="false" filter="(&amp;(package=groovy.beans)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.beans ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.grape)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.grape ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.inspect)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.inspect ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.inspect.swingui)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.inspect.swingui ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.io)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.io ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.jmx.builder)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.jmx.builder ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.lang)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.lang ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.mock.interceptor)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.mock.interceptor ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.model)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.model ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.security)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.security ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.servlet)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.servlet ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.sql)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.sql ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.swing)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.swing ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.swing.binding)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.swing.binding ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.swing.factory)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.swing.factory ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.swing.impl)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.swing.impl ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.text)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.text ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.time)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.time ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.ui)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.ui ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.ui.icons)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.ui.icons ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.ui.text)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.ui.text ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.ui.view)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.ui.view ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.util)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.util ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.util.slurpersupport)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.util.slurpersupport ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.xml)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.xml ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.xml.dom)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.xml.dom ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovy.xml.streamingmarkupsupport)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovy.xml.streamingmarkupsupport ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.ASdebug)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.ASdebug ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.actions.cpp)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.actions.cpp ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.actions.csharp)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.actions.csharp ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.actions.java)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.actions.java ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.actions.python)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.actions.python ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.build)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.build ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.collections)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.collections ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.collections.impl)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.collections.impl ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.debug)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.debug ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.debug.misc)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.debug.misc ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarantlr.preprocessor)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarantlr.preprocessor ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarasm.asm)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarasm.asm ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarasm.asm.signature)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarasm.asm.signature ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarasm.asm.tree)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarasm.asm.tree ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarasm.asm.tree.analysis)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package groovyjarjarasm.asm.tree.analysis</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarasm.asm.util)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package groovyjarjarasm.asm.util</require>
-<require extend="false" filter="(&amp;(package=groovyjarjarcommonscli)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package groovyjarjarcommonscli ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=javax.accessibility)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.accessibility</require>
-<require extend="false" filter="(&amp;(package=javax.management)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.management</require>
-<require extend="false" filter="(&amp;(package=javax.management.modelmbean)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.management.modelmbean</require>
-<require extend="false" filter="(&amp;(package=javax.management.remote)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.management.remote</require>
-<require extend="false" filter="(&amp;(package=javax.script)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.script</require>
-<require extend="false" filter="(&amp;(package=javax.servlet)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.servlet</require>
-<require extend="false" filter="(&amp;(package=javax.servlet.http)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.servlet.http</require>
-<require extend="false" filter="(&amp;(package=javax.servlet.jsp)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.servlet.jsp</require>
-<require extend="false" filter="(&amp;(package=javax.sql)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.sql</require>
-<require extend="false" filter="(&amp;(package=javax.swing)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.swing</require>
-<require extend="false" filter="(&amp;(package=javax.swing.border)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.swing.border</require>
-<require extend="false" filter="(&amp;(package=javax.swing.event)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.swing.event</require>
-<require extend="false" filter="(&amp;(package=javax.swing.plaf)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.swing.plaf</require>
-<require extend="false" filter="(&amp;(package=javax.swing.plaf.metal)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.swing.plaf.metal</require>
-<require extend="false" filter="(&amp;(package=javax.swing.table)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.swing.table</require>
-<require extend="false" filter="(&amp;(package=javax.swing.text)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.swing.text</require>
-<require extend="false" filter="(&amp;(package=javax.swing.tree)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.swing.tree</require>
-<require extend="false" filter="(&amp;(package=javax.swing.undo)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.swing.undo</require>
-<require extend="false" filter="(&amp;(package=javax.xml.namespace)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.xml.namespace</require>
-<require extend="false" filter="(&amp;(package=javax.xml.parsers)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.xml.parsers</require>
-<require extend="false" filter="(&amp;(package=javax.xml.transform)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.xml.transform</require>
-<require extend="false" filter="(&amp;(package=javax.xml.transform.dom)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.xml.transform.dom</require>
-<require extend="false" filter="(&amp;(package=javax.xml.transform.stream)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.xml.transform.stream</require>
-<require extend="false" filter="(&amp;(package=javax.xml.xpath)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package javax.xml.xpath</require>
-<require extend="false" filter="(&amp;(package=jline)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package jline</require>
-<require extend="false" filter="(&amp;(package=junit.framework)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package junit.framework</require>
-<require extend="false" filter="(&amp;(package=junit.textui)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package junit.textui</require>
-<require extend="false" filter="(&amp;(package=org.apache.bsf)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.bsf</require>
-<require extend="false" filter="(&amp;(package=org.apache.bsf.util)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.bsf.util</require>
-<require extend="false" filter="(&amp;(package=org.apache.commons.cli)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.commons.cli</require>
-<require extend="false" filter="(&amp;(package=org.apache.commons.lang)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.commons.lang</require>
-<require extend="false" filter="(&amp;(package=org.apache.ivy)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.ivy</require>
-<require extend="false" filter="(&amp;(package=org.apache.ivy.core.cache)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.ivy.core.cache</require>
-<require extend="false" filter="(&amp;(package=org.apache.ivy.core.module.descriptor)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.ivy.core.module.descriptor</require>
-<require extend="false" filter="(&amp;(package=org.apache.ivy.core.module.id)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.ivy.core.module.id</require>
-<require extend="false" filter="(&amp;(package=org.apache.ivy.core.report)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.ivy.core.report</require>
-<require extend="false" filter="(&amp;(package=org.apache.ivy.core.resolve)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.ivy.core.resolve</require>
-<require extend="false" filter="(&amp;(package=org.apache.tools.ant)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.tools.ant</require>
-<require extend="false" filter="(&amp;(package=org.apache.tools.ant.helper)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.tools.ant.helper</require>
-<require extend="false" filter="(&amp;(package=org.apache.tools.ant.input)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.tools.ant.input</require>
-<require extend="false" filter="(&amp;(package=org.apache.tools.ant.taskdefs)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.tools.ant.taskdefs</require>
-<require extend="false" filter="(&amp;(package=org.apache.tools.ant.types)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.tools.ant.types</require>
-<require extend="false" filter="(&amp;(package=org.apache.tools.ant.util)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.apache.tools.ant.util</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.ant)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.ant ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.antlr)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.antlr ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.antlr.java)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.antlr.java ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.antlr.parser)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.antlr.parser ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.antlr.treewalker)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.antlr.treewalker ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.ast)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.ast ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.ast.expr)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.ast.expr ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.ast.stmt)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.ast.stmt ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.binding)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.binding ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.bsf)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.bsf ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.classgen)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.classgen ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.control)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.control ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.control.io)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.control.io ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.control.messages)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.control.messages ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.groovydoc)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.groovydoc ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.jsr223)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.jsr223 ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.reflection)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.reflection ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.reflection.stdclasses)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.reflection.stdclasses ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.runtime)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.runtime ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.runtime.callsite)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.runtime.callsite ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.runtime.dgmimpl)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.runtime.dgmimpl ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.runtime.dgmimpl.arrays)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.runtime.dgmimpl.arrays ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.runtime.metaclass)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.runtime.metaclass ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.runtime.typehandling)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.runtime.typehandling ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.runtime.wrappers)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.runtime.wrappers ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.syntax)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.syntax ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.tools)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.tools ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.tools.groovydoc)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.tools.groovydoc ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.tools.groovydoc.gstring-templates.class-level)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.tools.groovydoc.gstring-templates.class-level ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.tools.groovydoc.gstring-templates.package-level)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.tools.groovydoc.gstring-templates.package-level ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.tools.groovydoc.gstring-templates.top-level)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.tools.groovydoc.gstring-templates.top-level ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.tools.javac)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.tools.javac ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.tools.shell)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.tools.shell ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.tools.shell.commands)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.tools.shell.commands ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.tools.shell.util)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.tools.shell.util ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.tools.xml)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.tools.xml ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.transform)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.transform ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.util)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.util ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.vmplugin)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.vmplugin ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.vmplugin.v4)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.vmplugin.v4 ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.codehaus.groovy.vmplugin.v5)(version&gt;=1.6.0.RC-3))" multiple="false" name="package" optional="true">Import package org.codehaus.groovy.vmplugin.v5 ;version=1.6.0.RC-3</require>
-<require extend="false" filter="(&amp;(package=org.w3c.dom)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.w3c.dom</require>
-<require extend="false" filter="(&amp;(package=org.xml.sax)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.xml.sax</require>
-<require extend="false" filter="(&amp;(package=org.xml.sax.ext)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.xml.sax.ext</require>
-<require extend="false" filter="(&amp;(package=org.xml.sax.helpers)(version&gt;=0.0.0))" multiple="false" name="package" optional="true">Import package org.xml.sax.helpers</require>
-<require extend="false" filter="(|(ee=J2SE-1.5))" multiple="false" name="ee" optional="false">Execution Environment (|(ee=J2SE-1.5))</require>
-</resource>
-</repository>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/old-stuff.md
----------------------------------------------------------------------
diff --git a/content/old-stuff.md b/content/old-stuff.md
deleted file mode 100644
index d557ddb..0000000
--- a/content/old-stuff.md
+++ /dev/null
@@ -1,10 +0,0 @@
-title=Old Stuff		
-type=page
-status=published
-~~~~~~
-translation_pending: true
-
-Should either be deleted or reviewed and updated to match the current code:
-
-{% for label, page in children %}* [{{ page.headers.title }}]({{ page.path }})
-{% endfor %}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/plugins.md
----------------------------------------------------------------------
diff --git a/content/plugins.md b/content/plugins.md
deleted file mode 100644
index 4a26182..0000000
--- a/content/plugins.md
+++ /dev/null
@@ -1,10 +0,0 @@
-title=Plugins		
-type=page
-status=published
-~~~~~~
-translation_pending: true
-
-These pages present the various Maven Plugins of Sling:
-
-{% for label, page in children %}* [{{ page.headers.title }}]({{ page.path }})
-{% endfor %}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/project-information.md
----------------------------------------------------------------------
diff --git a/content/project-information.md b/content/project-information.md
deleted file mode 100644
index 39bd1fb..0000000
--- a/content/project-information.md
+++ /dev/null
@@ -1,129 +0,0 @@
-title=Project Information		
-type=page
-status=published
-~~~~~~
-
-This document provides an overview of the various documents and links that are part of this project's general information:
-
-* [Community Roles and Processes](/project-information/apache-sling-community-roles-and-processes.html)
-* [Project Team](/project-information/project-team.html)
-* [Mailing Lists](#mailing-lists)
-* [Issue Tracking](#issue-tracking)
-* [Source Repository](#source-repository)
-* [Continuous Integration](#continuous-integration)
-* [Project License](/project-information/project-license.html)
-* [Documentation Repository](#documentation-repository)
-
-
-## Mailing Lists
-
-These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.
-
-The Sling Users List is the preferred way of getting help with Sling. However, you can also [Ask a Sling question on StackOverflow](http://stackoverflow.com/questions/ask?tags=sling) if you prefer.
-
-| Name | Subscribe | Unsubscribe | Post | Archive | Other Archives |
-|--|--|--|--|--|--|
-| Sling Users List | [Subscribe](mailto:users-subscribe@sling.apache.org) | [Unsubscribe](mailto:users-unsubscribe@sling.apache.org) | users at sling.apache.org | [lists.apache.org](https://lists.apache.org/list.html?users@sling.apache.org) | [www.mail-archive.com](http://www.mail-archive.com/users@sling.apache.org/) [MarkMail](http://sling.markmail.org) [Nabble](http://apache-sling.73963.n3.nabble.com/Sling-Users-f73968.html) |
-| Sling Developers List | [Subscribe](mailto:dev-subscribe@sling.apache.org) | [Unsubscribe](mailto:dev-unsubscribe@sling.apache.org) | dev at sling.apache.org | [lists.apache.org](https://lists.apache.org/list.html?dev@sling.apache.org) | [www.mail-archive.com](http://www.mail-archive.com/dev@sling.apache.org/) [MarkMail](http://sling.markmail.org) [Nabble](http://apache-sling.73963.n3.nabble.com/Sling-Dev-f73966.html) |
-| Sling Source Control List | [Subscribe](mailto:commits-subscribe@sling.apache.org) | [Unsubscribe](mailto:commits-unsubscribe@sling.apache.org) | | [lists.apache.org](https://lists.apache.org/list.html?commits@sling.apache.org) | [www.mail-archive.com](http://www.mail-archive.com/commits@sling.apache.org/) [MarkMail](http://sling.markmail.org) |
-
-
-## Issue Tracking
-
-This project uses JIRA a J2EE-based, issue tracking and project management application. Issues, bugs, and feature requests should be submitted to the following issue tracking system for this project.
-
-The issue tracker can be found at [http://issues.apache.org/jira/browse/SLING](http://issues.apache.org/jira/browse/SLING)
-
-
-## Source Repository
-
-This project uses Subversion to manage its source code. Instructions on Subversion use can be found at [http://svnbook.red-bean.com/](http://svnbook.red-bean.com/).
-
-### Web Access
-
-The following is a link to the online source repository.
-
-
-http://svn.apache.org/viewvc/sling/trunk
-
-
-### Anonymous access
-
-The source can be checked out anonymously from SVN with this command:
-
-
-$ svn checkout http://svn.apache.org/repos/asf/sling/trunk sling
-
-
-### Developer access
-
-Everyone can access the Subversion repository via HTTPS, but Committers must checkout the Subversion repository via HTTPS.
-
-
-$ svn checkout https://svn.apache.org/repos/asf/sling/trunk sling
-
-
-To commit changes to the repository, execute the following command to commit your changes (svn will prompt you for your password)
-
-
-$ svn commit --username your-username -m "A message"
-
-
-### Access from behind a firewall
-
-For those users who are stuck behind a corporate firewall which is blocking http access to the Subversion repository, you can try to access it via the developer connection:
-
-
-$ svn checkout https://svn.apache.org/repos/asf/sling/trunk sling
-
-
-### Access through a proxy
-
-The Subversion client can go through a proxy, if you configure it to do so. First, edit your "servers" configuration file to indicate which proxy to use. The files location depends on your operating system. On Linux or Unix it is located in the directory "~/.subversion". On Windows it is in "%APPDATA%Subversion". (Try "echo %APPDATA%", note this is a hidden directory.)
-
-There are comments in the file explaining what to do. If you don't have that file, get the latest Subversion client and run any command; this will cause the configuration directory and template files to be created.
-
-Example : Edit the 'servers' file and add something like :
-
-
-[global]
-http-proxy-host = your.proxy.name
-http-proxy-port = 3128
-
-
-## Continuous Integration
-
-Sling builds run automatically on the [ASF's Jenkins instance](https://builds.apache.org/), triggered
-by commits.
-
-We maintain multiple build jobs, typically one or two per module. These are grouped into two views:
-
-* [Sling](https://builds.apache.org/view/S-Z/view/Sling/), which holds all Sling-related jobs
-* [Sling-Dashboard](https://builds.apache.org/view/S-Z/view/Sling-Dashboard/), which holds all Sling jobs needing attention, such as failed jobs.
-
-More documentation regarding the Jenkins setup is available as wiki links from the views mentioned above.
-
-## Documentation Repository
-The documentation website, in fact the very page that you are reading right now, is located at [The ASF Content Management System’s Sling project](https://cms.apache.org/sling/). You can contribute without being an official project committer.
-
-###Save your changes as an SVN patch:
-
-1. Log in as username *anonymous* and leave the password blank.
-1. Click *Get sling Working Copy* to check out a local branch through the browser.
-1. Navigate to a document and click *edit*.
-1. Edit the page in the online markdown editor.
-1. Uncheck *Quick Mail*.
-1. Click *submit*.
-1. Click *Diff*, then *Download Diff* and save the SVN patch to your computer.
-
-###Submit your changes:
-
-1. Navigate to the [Jira issue tracker](https://issues.apache.org/jira/browse/SLING).
-1. Create an account and/or login.
-1. Create a ticket, enter a description and choose *Documentation* for *Components*.
-1. Select the ticket, click *more*, select *attach files* and attach your SVN patch.
-
-###Further resources:
-
-1. Read the [ASF CMS reference for non-committers](http://www.apache.org/dev/cmsref#non-committer).
-1. Watch a [video tutorial by Rob Weir for anonymous users](http://s.apache.org/cms-anonymous-tutorial).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/project-information/apache-sling-community-roles-and-processes.md
----------------------------------------------------------------------
diff --git a/content/project-information/apache-sling-community-roles-and-processes.md b/content/project-information/apache-sling-community-roles-and-processes.md
deleted file mode 100644
index a3ae232..0000000
--- a/content/project-information/apache-sling-community-roles-and-processes.md
+++ /dev/null
@@ -1,56 +0,0 @@
-title=Apache Sling Community Roles and Processes		
-type=page
-status=published
-~~~~~~
-
-The Community Roles and Processes are put in effect as of 13/May/2009. Updated 7/December/2009 to reflect Sling being a top level project.
-
-## Roles
-
-There are different roles with which Sling community members may be associated: User, Contributor, Committer, and PMC (Project Management Committee) Member. These roles are assigned and assumed based on merit.
-
-The User and Contributor roles are acquired by using the software and participating in the community, but the Committer and PMC member roles can only be granted by a PMC vote.
-
-The roles defined here conform to the ASF's [definition of roles](http://www.apache.org/foundation/how-it-works.html#roles).
-
-### Users
-
-Users are the people who use any of the products of the Sling project. People in this role are not contributing code, but they are using the products, reporting bugs, making feature requests, testing code, and such. This is by far the most important category of people, since without users there is no reason for Sling. When a user starts to contribute code or documentation patches, they become a *Contributor*.
-
-### Contributors
-
-Contributors are the people who write code or documentation patches or contribute positively to the project in other ways. A volunteer's contribution is always recognized.
-
-### Committers
-
-Contributors who give frequent and valuable contributions to a subproject of Sling can have their status promoted to that of a *[Committer](http://www.apache.org/dev/committers.html)*. A Committer has write access to Sling's source code repository. Contributors of documentation are eligible as committers in the same way as contributors of pure code.
-
-### PMC Members
-
-Committers showing continued interest in the project and taking an active part in the evolution of the project may be elected as  *[PMC](http://www.apache.org/dev/pmc.html) members*. The PMC (Project Management Committee) is the official managing body of project and is responsible for setting its overall direction.
-
-## Processes
-
-### Becoming a User or Contributor
-
-There is no requirement for becoming a User or Contributor; these roles are open to everyone.
-
-
-### Becoming a Committer
-
-In order for a Contributor to become a Committer, a member of the PMC can nominate that Contributor to the PMC. Once a Contributor is nominated, the PMC calls a vote on the PMC private mailing list.
-
-If there are at least three positive votes and no negative votes after three days (72 hours), the results are posted to the PMC private mailing list.
-
-Upon a positive vote result, the Contributor will be emailed by the PMC to invite him/her to become a Committer. If the invitation is accepted, an announcement about the new Committer is made to the developer mailing list and he/she is given write access to the source code repository. A Contributor will not officially become a Committer member until the appropriate legal paperwork is submitted.
-
-
-### Becoming a PMC Member
-
-In order for a Committer to become a member of the PMC, a member of the PMC can nominate that Committer to the PMC. Once a Committer is nominated, the PMC calls a vote on the PMC private mailing list.
-
-If there are at least three positive votes and no negative votes after three days (72 hours), the results are posted to the PMC private mailing list.
-
-To have the Committer being accepted as a PMC member, the ASF Board has acknowledge the addition to the PMC. The Committer should not be consulted about his/her desire to become a PMC member before the board acknowledgement, or be informed that they are being considered, since this could create hard feelings if the vote does not pass.
-
-Upon a positive vote result, the PMC member will be emailed by the PMC to invite him/her to become a PMC member. If the invitation is accepted, an announcement about the new PMC member is made to the developer mailing list.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/project-information/project-license.md
----------------------------------------------------------------------
diff --git a/content/project-information/project-license.md b/content/project-information/project-license.md
deleted file mode 100644
index e6f903a..0000000
--- a/content/project-information/project-license.md
+++ /dev/null
@@ -1,9 +0,0 @@
-title=Project License		
-type=page
-status=published
-~~~~~~
-
-As with all projects of the
-[Apache Software Foundation](http://apache.org),
-Apache Sling is licensed under the
-[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/project-information/project-team.md
----------------------------------------------------------------------
diff --git a/content/project-information/project-team.md b/content/project-information/project-team.md
deleted file mode 100644
index d0ce0ed..0000000
--- a/content/project-information/project-team.md
+++ /dev/null
@@ -1,86 +0,0 @@
-title=Project Team		
-type=page
-status=published
-~~~~~~
-
-A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.
-
-The team is comprised of Committers and Contributors. Committers have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.
-
-## Committers and PMC members
-
-The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.
-
-Committers marked with an asterisk (*) are also members of the Sling Project Management Commitee ([PMC](http://www.apache.org/dev/pmc.html)) as defined in [Apache Sling Community Roles and Processes](/project-information/apache-sling-community-roles-and-processes.html)
-
-This page is currently maintained manually, the ASF's LDAP information is the ultimate reference.
-
-| Id | Name | Organization | Roles |
-|--|--|--|--|
-| aheimoz | Alison Heimoz | Adobe | Technical Writer |
-| amitgupt | Amit Gupta | Adobe | Java Developer |
-| apopescu (*) | Alexandru Popescu | | Java Developer |
-| asanso (*) | Antonio Sanso | Adobe | Java Developer |
-| bdelacretaz (*) | Bertrand Delacretaz | Adobe | Java Developer |
-| clemens | Clemens Wyss | MySign AG | Java Developer |
-| chetanm (*) | Chetan Mehrotra | | Java Developer |
-| clombart (*) | Christophe Lombart | | Java Developer |
-| cziegeler (*) | Carsten Ziegeler | Adobe | Chair, Java Developer |
-| dklco (*) | Dan Klco | Six Dimensions |  Java Developer |
-| dulvac | Andrei Dulvac | Adobe | Java Developer |
-| fmeschbe (*) | Felix Meschberger | Adobe | Java Developer |
-| enorman | Eric Norman | | Java Developer |
-| gianugo (*) | Gianugo Rabellino | | |
-| ghenzler | Georg Henzler | Netcentric | Java Developer |
-| jckautzmann | Jean-Christophe Kautzmann | Adobe | Java Developer |
-| jsedding | Julian Sedding | | Java Developer |
-| justin (*) | Justin Edelson | Adobe | Java Developer |
-| hannonpi (*) | Padraic Hannon | Edmunds Inc. | Java Developer |
-| ieb (*) | Ian Boston | Adobe | Java Developer |
-| juanjo (*) | Juan José Vázquez Delgado | | Java Developer |
-| kwin (*) | Konrad Windszus | Netcentric | Java Developer |
-| mduerig | Michael Dürig | Adobe | Java Developer |
-| mykee (*) | Mike Müller | MySign AG | Java Developer |
-| npeltier | Nicolas Peltier | Adobe | Java Developer |
-| olli (*) | Oliver Lietz | | Java Developer |
-| pauls (*) | Karl Pauls | | Java Developer |
-| radu (*) | Radu Cotescu | Adobe | Java Developer |
-| rombert (*) | Robert Munteanu | Adobe | Java Developer |
-| sboehme | Sandro Boehme | inovex GmbH | Java Developer |
-| sseifert (*) | Stefan Seifert | pro!vision GmbH | Java Developer |
-| stefanegli (*) | Stefan Egli | Adobe | Java Developer |
-| thecarlhall | Carl Hall | Hallway Technologies | Java Developer |
-| tmaret | Timothee Maret | Adobe | Java Developer |
-| tommaso | Tommaso Teofili | Adobe | Java Developer |
-| tomekr | Tomek Rękawek | | Java Developer |
-| vramdal | Vidar Ramdal | | Java Developer |
-| mpetria | Marius Petria | Adobe | Java Developer |
-
-## Emeritus Committers and PMC members
-
-The following list of former committers and PMC members have chosen to go emeritus. We are still thankful for their help and guidance during earlier phases of the Sling project.
-
-| Id | Name | Organization | Roles |
-|--|--|--|--|
-| farra | **J Aaron Farr** | | Mentor |
-| jukka | **Jukka Zitting** | Adobe | Champion, Mentor |
-
-Committers with their names printed in bold face have also been members of the PMC (or PPMC during Sling incubation) as defined in [Apache Sling Community Roles and Processes](/project-information/apache-sling-community-roles-and-processes.html)
-
-## Emeritus PMC members
-
-The following list of former PMC members have chosen to go emeritus as a PMC member but stay active as a committer. We are still thankful for their help and guidance.
-
-| Id | Name | Organization | Roles |
-|--|--|--|--|
-| vramdal | Vidar Ramdal | | Java Developer |
-
-## Special Thanks
-
-Special thanks go to **Chris Millar** who provided the new Apache Sling Logo in 2017.
-
-The original Sling logo was created by Paul Walker in 2008 as part of the Google Highly Open Participation contest.
-
-## Contributors
-
-There are no contributors listed for this project.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/project-information/security.md
----------------------------------------------------------------------
diff --git a/content/project-information/security.md b/content/project-information/security.md
deleted file mode 100644
index 6c265dc..0000000
--- a/content/project-information/security.md
+++ /dev/null
@@ -1,33 +0,0 @@
-title=Security		
-type=page
-status=published
-~~~~~~
-
-# Reporting New Security Problems with Apache Sling
-
-The Apache Software Foundation takes a very active stance in eliminating security problems and denial of service attacks against Apache Sling.
-
-We strongly encourage folks to report such problems to our private security mailing list first, before disclosing them in a public forum.
-
-*Please note that the security mailing list should only be used for reporting undisclosed security vulnerabilities in Apache Sling and managing the process of fixing such vulnerabilities. We cannot accept regular bug reports or other queries at this address. All mail sent to this address that does not relate to an undisclosed security problem in the Apache Sling source code will be ignored.*
-
-If you need to report a bug that isn't an undisclosed security vulnerability, please use our [public issue tracker](https://issues.apache.org/jira/browse/SLING).
-
-Questions about:
-
-* how to configure Sling securely
-* whether a published vulnerability applies to your particular application
-* obtaining further information on a published vulnerability
-* availability of patches and/or new releases
-
-should be addressed to our public users mailing list. Please see the [Project Information](/project-information.html) page for details of how to subscribe.
-
-The private security mailing address is: security(at)sling.apache.org.
-
-Note that all networked servers are subject to denial of service attacks, and we cannot promise magic workarounds to generic problems (such as a client streaming lots of data to your server, or re-requesting the same URL repeatedly). In general our philosophy is to avoid any attacks which can cause the server to consume resources in a non-linear relationship to the size of inputs.
-
-For more information on handling security issues at the Apache Software Foundation please refer to the [ASF Security Team](http://www.apache.org/security/) page and to the [security process description for committers](http://www.apache.org/security/committers.html).
-
-# Errors and omissions
-
-Please report any errors or omissions to security(at)sling.apache.org.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/site-conversion.md
----------------------------------------------------------------------
diff --git a/content/site-conversion.md b/content/site-conversion.md
deleted file mode 100644
index 691cfd3..0000000
--- a/content/site-conversion.md
+++ /dev/null
@@ -1,17 +0,0 @@
-title=Site conversion in progress - excuse our mess...		
-type=page
-status=published
-~~~~~~
-
-The Sling website was recently converted to use the Apache CMS for content management,
-and we still have to check a number of pages for correct conversion.
-
-During this transition phase, old versions of a number of pages are still present under
-/site, along with their converted versions at other, more specific paths.
-
-To find the new pages, you can use the site navigation or search the Web for phrases that
-are present in the old pages, and select results that do not contain /site/ in their URLs.
-
-If you see new pages that look good and match the contents of the corresponding old pages,
-feel free to let us know, via the Sling users mailing list or the
-[SLING-2002](https://issues.apache.org/jira/browse/SLING-2002) issue.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/xsd/bundle-list-1.0.0.xsd
----------------------------------------------------------------------
diff --git a/content/xsd/bundle-list-1.0.0.xsd b/content/xsd/bundle-list-1.0.0.xsd
deleted file mode 100644
index c290553..0000000
--- a/content/xsd/bundle-list-1.0.0.xsd
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0"?>
-<!-- =================== DO NOT EDIT THIS FILE ====================         -->
-<!-- Generated by Modello 1.8.1,                                            -->
-<!-- any modifications will be overwritten.                                 -->
-<!-- ==============================================================         -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://sling.apache.org/bundles/1.0.0" targetNamespace="http://sling.apache.org/bundles/1.0.0">
-  <xs:element name="bundles" type="BundleList">
-    <xs:annotation>
-      <xs:documentation source="version">1.0.0</xs:documentation>
-      <xs:documentation source="description">List of bundles.</xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:complexType name="BundleList">
-    <xs:annotation>
-      <xs:documentation source="version">1.0.0</xs:documentation>
-      <xs:documentation source="description">List of bundles.</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element minOccurs="0" name="startLevel" type="StartLevel" maxOccurs="unbounded">
-        <xs:annotation>
-          <xs:documentation source="version">1.0.0</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="StartLevel">
-    <xs:annotation>
-      <xs:documentation source="version">1.0.0</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element minOccurs="0" name="bundle" type="Bundle" maxOccurs="unbounded">
-        <xs:annotation>
-          <xs:documentation source="version">1.0.0</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-    </xs:sequence>
-    <xs:attribute name="level" type="xs:string">
-      <xs:annotation>
-        <xs:documentation source="version">1.0.0</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="Bundle">
-    <xs:annotation>
-      <xs:documentation source="version">0.0.0+</xs:documentation>
-      <xs:documentation source="description">A bundle.</xs:documentation>
-    </xs:annotation>
-    <xs:all>
-      <xs:element minOccurs="0" name="groupId" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">1.0.0</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element minOccurs="0" name="artifactId" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">1.0.0</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element minOccurs="0" name="version" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">1.0.0</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element minOccurs="0" name="type" type="xs:string" default="jar">
-        <xs:annotation>
-          <xs:documentation source="version">1.0.0</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element minOccurs="0" name="classifier" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">1.0.0</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element minOccurs="0" name="startLevel" type="xs:int" default="0">
-        <xs:annotation>
-          <xs:documentation source="version">1.0.0</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element minOccurs="0" name="runModes" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">1.0.0</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-    </xs:all>
-  </xs:complexType>
-</xs:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/conversion-scripts/fix-front-matter.sh
----------------------------------------------------------------------
diff --git a/conversion-scripts/fix-front-matter.sh b/conversion-scripts/fix-front-matter.sh
deleted file mode 100755
index 65e8bef..0000000
--- a/conversion-scripts/fix-front-matter.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-MARKER="~~~~~~"
-COPYING=0
-TMPFILE=/tmp/$$.tmp
-cat > $TMPFILE
-TITLE=$(cat $TMPFILE | grep ^Title: | cut -d: -f2- | sed 's/^ *//g')
-
-doFrontMatter() {
-cat << EOFM
-title=$TITLE		
-type=page
-status=published
-${MARKER}
-EOFM
-}
-
-cat $TMPFILE | while read line
-do
-	if [[ $COPYING -eq 1 ]]
-	then
-		echo "$line"
-	elif [[ "$line" == "$MARKER" ]]
-	then
-		COPYING=1
-		doFrontMatter
-	fi
-done | grep -v ^Title:
-rm -f $TMPFILE
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/conversion-scripts/refs-conversion-script.sh
----------------------------------------------------------------------
diff --git a/conversion-scripts/refs-conversion-script.sh b/conversion-scripts/refs-conversion-script.sh
deleted file mode 100755
index fa714b2..0000000
--- a/conversion-scripts/refs-conversion-script.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-# conversion of the Sling website to JBake
-# generates a conversion script for links
-find content -name '*.md' | while read f
-do
-	r=$(echo $f | sed 's/^content//' | sed 's/\//\\\//g' | sed 's/md$/html/')
-	b=$(basename $f | sed 's/\.md/\.path/')
-	echo "sed s'/{{ *refs\.${b} *}}/${r}/g'" \| \\
-done
-echo cat
\ No newline at end of file


[04/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-original-logo-from-SLING-174/microsling.svg
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-original-logo-from-SLING-174/microsling.svg b/sling-archives/logo/sling-original-logo-from-SLING-174/microsling.svg
deleted file mode 100644
index b32dd48..0000000
--- a/sling-archives/logo/sling-original-logo-from-SLING-174/microsling.svg
+++ /dev/null
@@ -1,1799 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="306px" height="215.391px" viewBox="0 0 306 215.391" enable-background="new 0 0 306 215.391" xml:space="preserve">
-<font horiz-adv-x="1000">
-<!-- Copyright 1989, 1995 , 2002Adobe Systems Incorporated. All Rights Reserved.  -->
-<font-face font-family="VAGRoundedStd-Black" units-per-em="1000" underline-position="-100" underline-thickness="50"/>
-<missing-glyph horiz-adv-x="500" d="M0,0l500,0l0,700l-500,0M250,395l-170,255l340,0M280,350l170,255l0,-510M80,50l170,255l170,-255M50,605l170,-255l-170,-255z"/>
-<glyph unicode="&#xB5;" horiz-adv-x="556" d="M36,-141C36,-186 68,-222 114,-222C160,-222 192,-186 192,-141l0,184l2,0C208,16 236,-6 280,-6C310,-6 339,7 369,44C380,20 404,-6 442,-6C488,-6 520,30 520,75l0,382C520,502 488,538 442,538C396,538 364,502 364,457l0,-233C364,170 332,130 278,130C237,130 192,157 192,216l0,241C192,502 160,538 114,538C68,538 36,502 36,457z"/>
-</font>
-
-	<g>
-	<g id="Sling">
-		<path fill="#00678C" d="M34.152,54.241c-5.775,0-8.878,1.964-12.19,5.232c-3.314,3.267-4.971,7.464-4.971,12.587
-			c0,3.155,0.594,6.029,1.785,8.617c1.188,2.593,2.844,4.762,4.968,6.508s6.471,4.196,13.041,7.35l10.194,4.815
-			c8.496,4,14.456,8.774,17.883,14.319C68.287,119.22,70,126.272,70,134.834c0,9.295-3.75,17.181-11.256,23.658
-			c-7.503,6.479-17.542,9.716-30.115,9.716c-11.044,0-20.473-2.593-28.29-7.773l6.202-15.547c3.172,2.312,7.122,4.241,11.851,5.788
-			C23.12,152.228,27.354,153,31.093,153c6.625,0,11.948-1.801,15.97-5.404c4.021-3.606,6.032-8.199,6.032-13.773
-			c0-4.167-1.119-8.04-3.355-11.617c-2.239-3.577-7.857-7.479-16.863-11.702l-10.025-4.648c-8.495-3.94-14.428-8.615-17.797-14.022
-			C1.685,86.423,0,79.917,0,72.314c0-9.237,3.283-16.897,9.855-22.98c6.568-6.083,15.007-9.125,25.314-9.125"/>
-		<path fill="#00678C" d="M83,68.042l16.304,0.167v76.901c0,8.43,0.566,13.458,5.696,15.072c-2.522,4.687-4.825,7.026-10.913,7.026
-			c-7.392,0-11.087-5.022-11.087-15.07V68.042z"/>
-		<path fill="#00678C" d="M122.683,166.208v-55.363H116V97.74h22.674v68.469H122.683z M130.835,71.208
-			c2.528,0,4.688,0.903,6.479,2.717c1.792,1.812,2.686,3.995,2.686,6.552c0,2.559-0.895,4.74-2.686,6.554
-			c-1.792,1.812-3.951,2.718-6.479,2.718c-2.527,0-4.687-0.905-6.478-2.718c-1.792-1.813-2.687-3.995-2.687-6.554
-			c0-2.557,0.895-4.74,2.687-6.552C126.148,72.112,128.308,71.208,130.835,71.208z"/>
-		<path fill="#00678C" d="M202.025,165.208v-39.15c0-5.774-1.118-9.991-3.354-12.648c-2.237-2.653-5.892-3.984-10.96-3.984
-			c-2.343,0-4.847,0.654-7.509,1.962c-2.66,1.308-4.737,2.932-6.229,4.868v48.953H158V97.473h14.498l-0.059,6.324
-			c4.348-5.059,10.757-7.589,19.234-7.589c8.136,0,14.557,2.414,19.264,7.24c4.707,4.829,7.062,11.564,7.062,20.207v41.553H202.025z
-			"/>
-		<path fill="#00678C" d="M267.352,198.995c6.094,0,11.854-1.083,17.459-3.517c1.404-0.608,2.781-1.432,3.868-2.531
-			c1.985-2.011,2.836-5.396,0.919-7.751c-1.828-2.249-4.845-2.909-7.59-2.875c-1.643,0.02-3.238,0.323-4.867,0.475
-			c-3.93,0.367-7.871,0.688-11.758,1.394c-5.168,0.939-10.365,1.643-15.625,1.213c-5.727-0.468-12.57-2.209-14.697-8.338
-			c-2.119-6.109,2.02-11.507,6.372-14.805c1.649-1.249,3.347-2.485,5.084-3.608c-1.687-1.116-3.079-2.555-4.595-3.884
-			c-2.411-2.116-4.612-4.489-6.366-7.192c-1.816-2.801-3.123-6.916-3.847-10.179c-0.789-3.558-0.896-8.249-0.438-11.858
-			c0.494-3.91,1.364-8.014,3.045-11.569c1.721-3.642,3.883-6.737,6.656-9.648c3.229-3.393,7.596-6.233,11.956-7.942
-			c4.722-1.848,9.794-1.927,14.82-1.99c5.017-0.064,9.817,1.361,14.588,3.027c1.399,0.489,3.048,1.663,4.18,2.44
-			c0.996-1.117,8.609-8.254,8.974-8.646c0.951,1.005,8.51,8,8.51,8l-8.665,8.728c0,0,3.046,4.855,4.125,7.777
-			c0.792,2.144,1.742,5.392,1.997,9.722c0.206,3.505-0.055,8.044-0.731,11.486c-0.647,3.295-1.69,7.527-3.269,10.493
-			c-1.504,2.829-3.502,5.361-5.879,7.499c-2.396,2.156-5.13,3.917-8.01,5.344c-7.461,3.693-15.137,4.388-23.306,3.697
-			c-1.417-0.121-1.845-0.156-3.265-0.228c-0.238,0.242-3.925,1.862-5.709,3.177c-1.49,1.099-5.807,3.854-4.129,6.308
-			c1.118,1.634,3.545,1.383,5.23,1.159c5.688-0.75,11.336-1.891,17.004-2.776c2.551-0.397,5.104-0.807,7.668-1.102
-			c1.652-0.19,3.312-0.316,4.976-0.341c3.64-0.051,7.332,0.393,10.767,1.68c1.471,0.551,2.93,1.279,4.266,2.11
-			c1.574,0.982,3.101,2.18,4.424,3.487c1.181,1.167,2.212,2.538,3.017,3.997c2.296,4.161,1.698,9.258-0.175,13.455
-			c-0.504,1.129-1.111,2.247-1.794,3.28c-0.92,1.396-2.029,2.745-3.222,3.917c-1.279,1.259-2.718,2.411-4.192,3.43
-			c-7.427,5.135-16.403,7.7-27.776,7.7 M266.87,107.507c-5.91,0-10.737,1.956-14.469,5.864c-3.734,3.911-5.6,8.657-5.6,14.242
-			c0,6.256,1.807,13.436,5.423,17.539c3.611,4.106,8.494,6.16,14.646,6.16c6.034,0,10.753-1.996,14.157-5.99
-			c3.406-3.995,5.107-11.23,5.107-17.709c0-5.585-1.836-10.331-5.51-14.242C276.951,109.463,272.366,107.507,266.87,107.507z
-			 M234.994,171.028"/>
-	</g>
-	<g id="BL-Corner">
-		<path id="B" fill="#00678C" d="M29,213.208H0v-9.983c0.37,0,13.488-0.063,14-0.017"/>
-		<path id="L" fill="#00678C" d="M14,174.075c0,0-7.577-1.631-14-5.866v36h14V174.075z"/>
-	</g>
-	<rect id="T-Border" x="34" y="40.208" fill="#00678C" width="270" height="14"/>
-	<rect id="R-Border" x="290" y="40.208" fill="#00678C" width="14" height="59"/>
-	<path id="G-tail_Stop" fill="#00678C" d="M234,213.196c12.82,0.03,16.655-0.002,29.476-0.006c0.186,0,4.524-0.001,4.524-0.001
-		c0-0.014,0-13.971,0-13.973c0-0.012-1.975,0.02-2.04,0.02c-2.207-0.01-4.415-0.033-6.622-0.025
-		c-1.189,0.004-3.561,0.008-3.561,0.008h-1.227"/>
-	
-		<radialGradient id="_xB5_-Bubble_1_" cx="220.8301" cy="7.6665" r="78.6687" gradientTransform="matrix(1.0042 0 0 0.9915 -0.5075 0.6076)" gradientUnits="userSpaceOnUse">
-		<stop  offset="0" style="stop-color:#FAFEFF"/>
-		<stop  offset="1" style="stop-color:#D1F1FF"/>
-	</radialGradient>
-	
-		<ellipse id="_xB5_-Bubble" fill="url(#_xB5_-Bubble_1_)" stroke="#00678C" stroke-width="8" cx="221.25" cy="47.208" rx="39.5" ry="39"/>
-	<g>
-		<g>
-			
-				<text transform="matrix(0.981 0.2352 -0.2407 0.9706 201.0615 53.4639)" fill="#B50052" font-family="'VAGRoundedStd-Black'" font-size="66.365">µ</text>
-		</g>
-		<g>
-			
-				<text transform="matrix(0.981 0.2352 -0.2407 0.9706 200.0615 54.4639)" fill="#E8005F" font-family="'VAGRoundedStd-Black'" font-size="66.365">µ</text>
-		</g>
-	</g>
-	<g id="Feather">
-		<g>
-			<path stroke="#000000" stroke-width="0.5956" d="M23.533,198.037c40.225,0.696,80.593,3.076,120.742,0.612
-				c9.68-0.594,19.388-1.188,29.092-1.253c9.615-0.063,19.286-0.896,28.822-0.818c5.511,0.045,11.009,0.344,16.369,0.425
-				c7.339,0.11,14.135-0.824,20.903-2.237c3.294-0.688,6.389-1.595,9.244-3.115c-8.047,0.928-15.746,1.805-23.646,2.112
-				c-7.866,0.307-15.907,0.025-24.311-0.233c-8.532-0.263-17.269-0.225-25.604-0.598c-12.804-0.574-25.835-1.67-38.639-0.437
-				c-3.655,0.352-7.519,1.929-11.236,2.235c-7.931,0.654-14.019-0.28-21.971-0.023c-2.261,0.073-6.313,0.635-8.568,0.673
-				c-2.55,0.043-5.396-0.271-7.927-0.286c-12.622-0.072-25.2,0.737-37.744,1.492c-3.575,0.215-7.211,0.387-10.815,0.566
-				c-4.494,0.224-9.005,0.443-13.474,0.788C24.362,197.971,23.941,198.039,23.533,198.037z"/>
-			
-				<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-3736.6982" y1="-3349.2861" x2="-3737.7009" y2="-3322.7273" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_1_)" stroke="#000000" stroke-width="0.254" d="M88.161,212.601L88.161,212.601
-				c0.772,0.371,1.159,0.557,1.935,0.925c0.789,0.156,1.183,0.23,1.974,0.384c0.82-0.039,1.232-0.06,2.054-0.102
-				c0.852-0.232,1.279-0.349,2.132-0.586c0.849-0.346,1.274-0.519,2.124-0.869c0.869-0.477,1.303-0.718,2.171-1.199
-				c0.839-0.569,1.26-0.855,2.098-1.43c0.842-0.62,1.262-0.932,2.103-1.557c0.8-0.648,1.2-0.973,1.998-1.625
-				c0.755-0.658,1.132-0.992,1.884-1.654c0.726-0.639,1.088-0.958,1.811-1.6c0.675-0.605,1.013-0.908,1.685-1.516
-				c0.612-0.501,0.917-0.752,1.526-1.254c0.554-0.396,0.831-0.594,1.383-0.99c0.468-0.254,0.7-0.38,1.167-0.635
-				c0.404-0.104,0.606-0.154,1.01-0.258l0,0c-0.327-0.001-0.49-0.001-0.817-0.002c-0.345-0.002-0.518-0.002-0.863-0.004
-				c-0.393,0.018-0.589,0.023-0.982,0.041c-0.392,0.015-0.588,0.023-0.98,0.038c-0.396,0.018-0.592,0.028-0.988,0.046
-				c-0.393,0.016-0.591,0.021-0.984,0.037c-0.389-0.005-0.583-0.007-0.973-0.012c-0.351,0.018-0.525,0.027-0.876,0.045l0,0
-				c-0.605,0.458-0.909,0.687-1.516,1.143c-0.584,0.435-0.878,0.651-1.465,1.084c-0.521,0.438-0.781,0.656-1.304,1.093
-				c-0.479,0.442-0.718,0.662-1.198,1.103c-0.476,0.415-0.714,0.625-1.191,1.038c-0.456,0.417-0.685,0.625-1.142,1.041
-				c-0.434,0.396-0.65,0.591-1.084,0.985c-0.453,0.372-0.68,0.559-1.134,0.929c-0.452,0.369-0.677,0.554-1.129,0.922
-				c-0.469,0.323-0.705,0.483-1.174,0.805c-0.49,0.32-0.736,0.479-1.226,0.797c-0.551,0.289-0.827,0.434-1.377,0.721
-				c-0.57,0.267-0.854,0.399-1.423,0.663c-0.631,0.234-0.948,0.352-1.579,0.583c-0.691,0.203-1.037,0.304-1.728,0.503
-				C89.311,212.382,88.928,212.456,88.161,212.601z"/>
-			
-				<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-3724.0757" y1="-3343.3286" x2="-3724.9224" y2="-3320.9062" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_2_)" stroke="#000000" stroke-width="0.254" d="M81.578,211.491L81.578,211.491
-				c0.912,0.276,1.369,0.411,2.286,0.683c0.87,0.135,1.305,0.202,2.179,0.332c0.828,0.019,1.243,0.023,2.073,0.038
-				c0.802-0.099,1.203-0.15,2.007-0.253c0.76-0.213,1.139-0.322,1.901-0.539c0.705-0.289,1.06-0.432,1.766-0.725
-				c0.717-0.355,1.075-0.533,1.792-0.893c0.663-0.428,0.994-0.645,1.656-1.076c0.665-0.454,0.998-0.68,1.662-1.137
-				c0.627-0.503,0.939-0.756,1.565-1.262c0.634-0.551,0.951-0.827,1.583-1.381c0.607-0.532,0.91-0.8,1.516-1.335
-				c0.626-0.534,0.938-0.802,1.562-1.338c0.626-0.536,0.938-0.806,1.562-1.345c0.616-0.495,0.924-0.744,1.539-1.242
-				c0.629-0.453,0.944-0.68,1.57-1.135l0,0c-0.217,0.005-0.326,0.008-0.543,0.013c-0.238-0.017-0.357-0.024-0.595-0.042
-				c-0.218,0.007-0.328,0.01-0.546,0.017c-0.239,0.003-0.358,0.006-0.597,0.009c-0.241,0.003-0.361,0.005-0.603,0.008
-				c-0.242,0.026-0.363,0.038-0.604,0.064c-0.239,0.002-0.359,0.005-0.599,0.007c-0.239,0.005-0.358,0.005-0.597,0.01
-				c-0.239,0.003-0.358,0.004-0.598,0.006c-0.262,0.001-0.393,0.003-0.654,0.004c-0.243,0.025-0.365,0.04-0.607,0.065
-				c-0.26,0-0.391-0.002-0.651-0.002s-0.391,0.002-0.651,0.002c-0.262,0-0.392-0.004-0.654-0.004
-				c-0.258-0.021-0.388-0.031-0.646-0.054c-0.259,0-0.388,0.001-0.647,0.001l0,0c-0.24,0.282-0.36,0.421-0.601,0.703
-				c-0.291,0.344-0.438,0.516-0.729,0.858c-0.368,0.399-0.551,0.599-0.919,0.997c-0.391,0.419-0.586,0.63-0.979,1.047
-				c-0.465,0.454-0.699,0.678-1.165,1.13c-0.487,0.448-0.732,0.674-1.22,1.12c-0.512,0.466-0.767,0.697-1.279,1.16
-				c-0.531,0.439-0.797,0.658-1.329,1.096c-0.549,0.415-0.823,0.624-1.371,1.037c-0.544,0.392-0.817,0.586-1.36,0.975
-				c-0.56,0.343-0.842,0.513-1.401,0.854c-0.526,0.281-0.788,0.42-1.313,0.699c-0.516,0.215-0.772,0.323-1.287,0.536
-				c-0.5,0.129-0.751,0.194-1.251,0.322c-0.464,0.047-0.695,0.068-1.158,0.113C82.217,211.578,82.003,211.549,81.578,211.491z"/>
-			
-				<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-3710.7017" y1="-3353.8486" x2="-3711.6309" y2="-3329.2373" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_3_)" stroke="#000000" stroke-width="0.254" d="M77.251,210.94L77.251,210.94
-				c0.514,0.133,0.772,0.201,1.287,0.338c0.497,0.112,0.747,0.17,1.247,0.283c0.489,0.049,0.733,0.071,1.224,0.118
-				c0.501-0.017,0.753-0.025,1.256-0.044c0.505-0.038,0.758-0.057,1.265-0.097c0.499-0.127,0.749-0.189,1.25-0.318
-				c0.505-0.171,0.758-0.257,1.265-0.43c0.545-0.255,0.816-0.384,1.363-0.641c0.551-0.299,0.829-0.447,1.38-0.749
-				c0.562-0.363,0.843-0.547,1.406-0.912c0.576-0.452,0.865-0.679,1.441-1.134c0.607-0.494,0.911-0.743,1.518-1.24
-				c0.643-0.602,0.966-0.901,1.608-1.507c0.676-0.666,1.012-0.999,1.687-1.669c0.705-0.731,1.057-1.101,1.76-1.837
-				c0.741-0.842,1.111-1.265,1.849-2.111l0,0c-0.365-0.031-0.546-0.046-0.911-0.078c-0.346-0.008-0.518-0.01-0.863-0.018
-				c-0.35,0.012-0.525,0.015-0.875,0.026c-0.349,0.013-0.524,0.02-0.873,0.031c-0.349,0.012-0.523,0.017-0.872,0.027
-				c-0.348,0.009-0.522,0.014-0.87,0.021c-0.385-0.037-0.576-0.057-0.96-0.095c-0.405-0.039-0.607-0.059-1.012-0.099l0,0
-				c-0.398,0.305-0.599,0.459-0.998,0.763c-0.378,0.327-0.568,0.488-0.947,0.813c-0.378,0.306-0.565,0.458-0.943,0.763
-				c-0.383,0.344-0.576,0.517-0.959,0.859c-0.38,0.322-0.571,0.483-0.951,0.805c-0.361,0.347-0.541,0.517-0.902,0.862
-				c-0.381,0.318-0.572,0.478-0.953,0.795c-0.364,0.343-0.545,0.515-0.909,0.856c-0.378,0.318-0.568,0.477-0.946,0.794
-				c-0.378,0.316-0.566,0.475-0.943,0.789c-0.399,0.312-0.599,0.469-0.998,0.78c-0.376,0.293-0.566,0.44-0.941,0.732
-				c-0.411,0.264-0.616,0.396-1.026,0.658c-0.413,0.264-0.617,0.396-1.028,0.659c-0.408,0.262-0.61,0.392-1.016,0.655
-				C77.917,210.611,77.694,210.719,77.251,210.94z"/>
-			
-				<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-3699.9434" y1="-3349.6802" x2="-3700.7815" y2="-3327.4783" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_4_)" stroke="#000000" stroke-width="0.254" d="M72.729,210.164L72.729,210.164
-				c0.364,0.257,0.546,0.385,0.91,0.644c0.426,0.135,0.64,0.201,1.066,0.338c0.451-0.01,0.676-0.012,1.127-0.019
-				c0.491-0.129,0.737-0.195,1.229-0.321c0.505-0.212,0.757-0.314,1.263-0.522c0.543-0.31,0.814-0.463,1.361-0.771
-				c0.554-0.349,0.831-0.523,1.387-0.875c0.571-0.435,0.86-0.654,1.433-1.091c0.553-0.464,0.827-0.696,1.381-1.162
-				c0.582-0.481,0.874-0.722,1.457-1.206c0.538-0.492,0.808-0.738,1.346-1.232c0.538-0.474,0.806-0.711,1.344-1.188
-				c0.515-0.477,0.774-0.718,1.29-1.197c0.483-0.419,0.724-0.626,1.207-1.047c0.451-0.361,0.677-0.543,1.127-0.905
-				c0.398-0.305,0.597-0.459,0.995-0.765c-2.317-0.018-3.474-0.032-5.779-0.088l0,0c-0.314,0.307-0.471,0.46-0.785,0.766
-				c-0.332,0.302-0.499,0.45-0.831,0.751c-0.311,0.309-0.467,0.466-0.778,0.773c-0.312,0.301-0.467,0.45-0.779,0.75
-				c-0.313,0.305-0.47,0.456-0.783,0.76c-0.333,0.299-0.501,0.45-0.834,0.748c-0.312,0.302-0.467,0.452-0.779,0.753
-				c-0.332,0.297-0.498,0.445-0.829,0.741c-0.35,0.273-0.525,0.407-0.875,0.68c-0.353,0.292-0.527,0.438-0.877,0.731
-				c-0.346,0.274-0.518,0.412-0.864,0.688c-0.387,0.266-0.581,0.4-0.967,0.668c-0.387,0.271-0.58,0.405-0.966,0.678
-				c-0.409,0.271-0.613,0.407-1.021,0.68c-0.425,0.248-0.637,0.372-1.062,0.622C73.396,209.791,73.173,209.916,72.729,210.164z"/>
-			
-				<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-3686.0088" y1="-3357.0166" x2="-3686.8711" y2="-3334.1799" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_5_)" stroke="#000000" stroke-width="0.254" d="M63.667,208.064L63.667,208.064
-				c0.58,0.475,0.869,0.715,1.45,1.192c0.562,0.327,0.844,0.489,1.406,0.818c0.587,0.182,0.88,0.276,1.467,0.461
-				c0.586,0.055,0.879,0.081,1.466,0.139c0.582-0.05,0.873-0.073,1.455-0.12c0.574-0.131,0.86-0.196,1.434-0.324
-				c0.57-0.238,0.855-0.357,1.426-0.593c0.585-0.315,0.879-0.471,1.465-0.782c0.578-0.398,0.867-0.598,1.445-0.992
-				c0.584-0.417,0.875-0.625,1.461-1.037c0.553-0.504,0.828-0.756,1.386-1.257c0.583-0.494,0.875-0.739,1.46-1.236
-				c0.569-0.544,0.854-0.816,1.423-1.363c0.574-0.565,0.86-0.851,1.435-1.419c0.553-0.573,0.831-0.859,1.384-1.436
-				c0.551-0.556,0.827-0.833,1.377-1.392l0,0c-0.392,0.019-0.589,0.027-0.981,0.044c-0.3-0.016-0.45-0.023-0.75-0.04
-				c-0.215-0.006-0.323-0.012-0.538-0.019c-0.195-0.003-0.292-0.001-0.487-0.004c-0.193-0.002-0.29-0.002-0.483-0.004
-				c-0.19-0.025-0.284-0.042-0.474-0.068c-0.279-0.016-0.419-0.021-0.698-0.037c-0.362-0.027-0.542-0.045-0.903-0.074l0,0
-				c-0.5,0.511-0.75,0.766-1.249,1.274c-0.491,0.467-0.736,0.701-1.225,1.168c-0.486,0.447-0.729,0.671-1.214,1.121
-				c-0.517,0.381-0.774,0.569-1.291,0.953c-0.486,0.346-0.729,0.521-1.215,0.87c-0.482,0.326-0.724,0.49-1.206,0.819
-				c-0.497,0.284-0.745,0.426-1.241,0.713c-0.468,0.248-0.703,0.373-1.171,0.623c-0.461,0.208-0.69,0.312-1.151,0.521
-				c-0.457,0.189-0.686,0.285-1.142,0.477c-0.425,0.128-0.638,0.192-1.063,0.322c-0.4,0.113-0.601,0.17-1,0.284
-				c-0.398,0.093-0.597,0.139-0.995,0.232c-0.348,0.054-0.521,0.081-0.869,0.136c-0.342,0.013-0.513,0.019-0.855,0.032
-				C64.11,208.066,63.962,208.066,63.667,208.064z"/>
-			
-				<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-3676.6572" y1="-3355.8887" x2="-3677.479" y2="-3334.126" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_6_)" stroke="#000000" stroke-width="0.254" d="M58.853,207.376L58.853,207.376
-				c0.657,0.132,0.985,0.199,1.642,0.333c0.641,0.092,0.96,0.138,1.601,0.232c0.634,0.005,0.953,0.007,1.587,0.015
-				c0.62-0.035,0.93-0.053,1.55-0.085c0.585-0.076,0.878-0.113,1.463-0.187c0.595-0.141,0.893-0.21,1.488-0.348
-				c0.561-0.183,0.841-0.272,1.402-0.452c0.551-0.245,0.826-0.368,1.377-0.61c0.555-0.262,0.834-0.394,1.389-0.652
-				c0.521-0.308,0.781-0.459,1.303-0.764c0.527-0.346,0.79-0.517,1.318-0.859c0.514-0.388,0.772-0.581,1.287-0.966
-				c0.498-0.407,0.746-0.61,1.244-1.015c0.486-0.449,0.729-0.673,1.216-1.119c0.49-0.469,0.735-0.703,1.227-1.171
-				c0.474-0.49,0.711-0.733,1.187-1.226l0,0c-0.425-0.036-0.637-0.057-1.062-0.095c-0.471-0.025-0.704-0.039-1.172-0.063
-				c-0.446-0.021-0.672-0.032-1.118-0.051c-0.445-0.038-0.666-0.054-1.11-0.089c-0.386-0.007-0.579-0.011-0.964-0.016
-				c-0.317-0.02-0.477-0.029-0.794-0.048c-0.235-0.006-0.352-0.007-0.586-0.012c-0.109,0.008-0.165,0.01-0.274,0.018l0,0
-				c-0.047,0.038-0.07,0.059-0.118,0.097c-0.124,0.092-0.186,0.138-0.309,0.229c-0.198,0.148-0.298,0.225-0.497,0.374
-				c-0.245,0.188-0.367,0.278-0.612,0.467c-0.273,0.227-0.411,0.342-0.684,0.569c-0.344,0.264-0.516,0.395-0.86,0.659
-				c-0.37,0.283-0.553,0.428-0.922,0.712c-0.413,0.302-0.619,0.452-1.031,0.756c-0.457,0.297-0.686,0.444-1.142,0.743
-				c-0.478,0.319-0.717,0.48-1.194,0.802c-0.476,0.302-0.713,0.454-1.188,0.758c-0.517,0.297-0.774,0.444-1.291,0.743
-				c-0.532,0.277-0.798,0.417-1.329,0.695c-0.53,0.257-0.795,0.388-1.325,0.646c-0.543,0.217-0.815,0.325-1.359,0.543
-				C59.657,207.116,59.389,207.202,58.853,207.376z"/>
-			
-				<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-3663.9805" y1="-3361.3638" x2="-3664.6772" y2="-3342.908" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_7_)" stroke="#000000" stroke-width="0.254" d="M52.362,207.314L52.362,207.314
-				c0.549,0.143,0.824,0.214,1.373,0.357c0.538,0.078,0.807,0.117,1.345,0.196c0.575-0.025,0.862-0.038,1.437-0.063
-				c0.582-0.067,0.873-0.099,1.454-0.165c0.594-0.15,0.891-0.228,1.485-0.377c0.58-0.195,0.871-0.291,1.452-0.485
-				c0.588-0.234,0.882-0.354,1.471-0.586c0.599-0.295,0.899-0.438,1.5-0.73c0.559-0.317,0.839-0.476,1.398-0.791
-				c0.566-0.338,0.85-0.507,1.416-0.843c0.548-0.358,0.821-0.535,1.369-0.891c0.533-0.378,0.801-0.566,1.334-0.942
-				c0.515-0.399,0.773-0.6,1.289-0.996c0.49-0.378,0.735-0.57,1.226-0.946c0.451-0.381,0.675-0.568,1.126-0.947
-				c0.429-0.381,0.644-0.569,1.073-0.948l0,0c-0.251-0.029-0.377-0.045-0.629-0.073c-0.319-0.014-0.479-0.02-0.798-0.032
-				c-0.338-0.018-0.507-0.027-0.846-0.044c-0.358-0.037-0.537-0.056-0.895-0.092c-0.342,0.006-0.512,0.011-0.854,0.018
-				c-0.339-0.011-0.508-0.017-0.848-0.026c-0.276-0.005-0.415-0.007-0.691-0.012c-0.238,0.021-0.357,0.03-0.595,0.051l0,0
-				c-0.007,0.042-0.012,0.063-0.019,0.105c-0.103,0.097-0.156,0.146-0.259,0.242c-0.24,0.172-0.359,0.258-0.6,0.43
-				c-0.334,0.206-0.501,0.308-0.835,0.515c-0.407,0.264-0.61,0.397-1.016,0.662c-0.476,0.304-0.713,0.455-1.188,0.76
-				c-0.522,0.323-0.785,0.485-1.306,0.81c-0.542,0.319-0.813,0.479-1.354,0.801c-0.565,0.342-0.847,0.511-1.412,0.854
-				c-0.564,0.345-0.846,0.519-1.41,0.865c-0.54,0.327-0.81,0.49-1.349,0.818c-0.513,0.285-0.769,0.427-1.281,0.713
-				c-0.465,0.269-0.697,0.403-1.161,0.672c-0.414,0.208-0.621,0.312-1.035,0.52c-0.32,0.149-0.48,0.225-0.8,0.374
-				C52.702,207.176,52.588,207.222,52.362,207.314z"/>
-			
-				<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-3651.9258" y1="-3361.1968" x2="-3652.7056" y2="-3340.5452" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_8_)" stroke="#000000" stroke-width="0.254" d="M45.253,206.792L45.253,206.792
-				c0.284,0.361,0.426,0.54,0.71,0.9c0.418,0.178,0.627,0.27,1.045,0.446c0.544,0.037,0.817,0.053,1.361,0.089
-				c0.629-0.107,0.944-0.161,1.573-0.269c0.709-0.212,1.063-0.317,1.773-0.529c0.744-0.313,1.116-0.47,1.861-0.782
-				c0.8-0.376,1.2-0.563,2.001-0.938c0.785-0.417,1.177-0.629,1.963-1.045c0.794-0.459,1.19-0.686,1.986-1.143
-				c0.753-0.459,1.131-0.688,1.885-1.145c0.707-0.438,1.061-0.655,1.769-1.09c0.625-0.424,0.938-0.637,1.564-1.058
-				c0.546-0.339,0.82-0.507,1.367-0.844c0.41-0.286,0.615-0.428,1.025-0.712c0.267-0.188,0.399-0.284,0.666-0.472
-				c0.12-0.076,0.178-0.116,0.298-0.192l0,0c-0.275-0.004-0.414-0.003-0.689-0.007c-0.298-0.007-0.446-0.01-0.745-0.016
-				c-0.319-0.007-0.479-0.012-0.798-0.018c-0.317-0.004-0.475-0.005-0.792-0.008c-0.344,0.012-0.518,0.015-0.862,0.027
-				c-0.34-0.006-0.509-0.007-0.849-0.012c-0.339-0.004-0.509-0.005-0.848-0.008c-0.361-0.007-0.541-0.009-0.902-0.015l0,0
-				c-0.417,0.203-0.625,0.303-1.042,0.506c-0.416,0.206-0.624,0.309-1.039,0.515c-0.421,0.226-0.632,0.339-1.054,0.564
-				c-0.396,0.21-0.593,0.317-0.988,0.528c-0.417,0.226-0.627,0.338-1.044,0.563c-0.404,0.253-0.605,0.38-1.009,0.633
-				c-0.418,0.229-0.626,0.343-1.044,0.571c-0.397,0.23-0.596,0.344-0.993,0.574c-0.423,0.25-0.634,0.376-1.057,0.626
-				c-0.396,0.231-0.594,0.349-0.99,0.58c-0.416,0.229-0.625,0.343-1.04,0.571c-0.396,0.23-0.593,0.348-0.988,0.578
-				c-0.414,0.209-0.62,0.312-1.033,0.521c-0.415,0.209-0.623,0.312-1.037,0.521c-0.391,0.207-0.586,0.312-0.978,0.519
-				C45.87,206.513,45.663,206.606,45.253,206.792z"/>
-			
-				<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-3640.9482" y1="-3367.1846" x2="-3641.1616" y2="-3357.1763" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_9_)" stroke="#000000" stroke-width="0.254" d="M40,206.514L40,206.514
-				c0.338,0.155,0.507,0.23,0.845,0.385c0.346,0.091,0.521,0.139,0.867,0.229c0.353,0.047,0.527,0.068,0.88,0.114
-				c0.366-0.036,0.55-0.052,0.917-0.088c0.372-0.082,0.556-0.125,0.928-0.207c0.399-0.12,0.601-0.179,1-0.3
-				c0.43-0.185,0.646-0.28,1.076-0.466c0.458-0.226,0.687-0.336,1.145-0.562c0.507-0.266,0.761-0.399,1.268-0.665
-				c0.536-0.309,0.803-0.462,1.339-0.771c0.583-0.346,0.875-0.52,1.459-0.865c0.651-0.364,0.977-0.547,1.629-0.911
-				c0.72-0.401,1.079-0.603,1.8-1.003c0.771-0.442,1.157-0.66,1.929-1.102c0.838-0.456,1.257-0.686,2.097-1.14
-				c0.929-0.469,1.395-0.702,2.325-1.167l0,0c-0.362-0.005-0.544-0.007-0.906-0.012c-0.402-0.007-0.602-0.012-1.005-0.019
-				c-0.357-0.026-0.536-0.038-0.893-0.063c-0.36-0.004-0.541-0.007-0.901-0.011c-0.319-0.001-0.477-0.001-0.796-0.001
-				c-0.256,0.004-0.386,0.006-0.642,0.01c-0.173,0.011-0.259,0.018-0.432,0.028c-0.066,0.016-0.098,0.023-0.164,0.039l0,0
-				c-0.053,0.062-0.079,0.091-0.132,0.152c-0.147,0.119-0.22,0.18-0.367,0.299c-0.217,0.157-0.326,0.236-0.543,0.394
-				c-0.289,0.216-0.434,0.321-0.723,0.537c-0.359,0.253-0.539,0.381-0.897,0.634c-0.409,0.298-0.613,0.444-1.021,0.742
-				c-0.43,0.291-0.645,0.436-1.074,0.727c-0.494,0.311-0.742,0.469-1.235,0.779c-0.494,0.31-0.74,0.465-1.233,0.774
-				c-0.514,0.308-0.77,0.46-1.283,0.768c-0.506,0.265-0.761,0.396-1.267,0.661c-0.53,0.265-0.796,0.396-1.326,0.659
-				c-0.499,0.221-0.749,0.334-1.247,0.554c-0.493,0.179-0.74,0.267-1.232,0.444c-0.462,0.115-0.693,0.175-1.155,0.289
-				C40.618,206.435,40.412,206.46,40,206.514z"/>
-			
-				<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-3636.958" y1="-3387.0679" x2="-3631.3704" y2="-3349.896" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_10_)" stroke="#000000" stroke-width="0.254" d="M36.259,205.619L36.259,205.619
-				c0.454,0.23,0.68,0.348,1.133,0.577c0.512,0.129,0.768,0.19,1.28,0.317c0.553,0.003,0.829,0.008,1.382,0.009
-				c0.587-0.104,0.881-0.156,1.469-0.262c0.62-0.169,0.93-0.255,1.55-0.425c0.607-0.233,0.909-0.351,1.517-0.586
-				c0.64-0.297,0.959-0.446,1.6-0.745c0.603-0.345,0.904-0.519,1.508-0.863c0.583-0.346,0.877-0.517,1.461-0.863
-				c0.567-0.369,0.851-0.554,1.418-0.923c0.522-0.352,0.784-0.529,1.307-0.881c0.46-0.356,0.689-0.535,1.149-0.891
-				c0.409-0.294,0.614-0.438,1.024-0.731c0.315-0.258,0.473-0.386,0.789-0.644c0.241-0.175,0.362-0.264,0.604-0.438
-				c0.148-0.121,0.225-0.181,0.373-0.302l0,0c-0.34-0.001-0.511-0.003-0.852-0.004c-0.321,0.002-0.482,0.004-0.803,0.006
-				c-0.317,0.001-0.476,0.002-0.794,0.003c-0.322,0.021-0.483,0.029-0.805,0.05c-0.298,0.004-0.448,0.007-0.746,0.011
-				c-0.319,0-0.479-0.003-0.798-0.003c-0.343,0.02-0.515,0.032-0.858,0.052c-0.34,0-0.509,0-0.849,0l0,0
-				c-0.29,0.217-0.436,0.326-0.725,0.543c-0.312,0.214-0.469,0.321-0.781,0.535c-0.288,0.216-0.431,0.321-0.718,0.537
-				c-0.313,0.237-0.47,0.354-0.783,0.591c-0.316,0.257-0.474,0.386-0.79,0.642c-0.312,0.234-0.468,0.353-0.779,0.587
-				c-0.333,0.234-0.5,0.351-0.833,0.584c-0.334,0.232-0.502,0.349-0.835,0.581c-0.33,0.212-0.495,0.318-0.824,0.53
-				c-0.328,0.211-0.492,0.316-0.82,0.527c-0.349,0.187-0.523,0.28-0.872,0.467c-0.32,0.167-0.48,0.248-0.8,0.414
-				c-0.363,0.145-0.545,0.22-0.908,0.363c-0.336,0.121-0.505,0.181-0.841,0.301c-0.352,0.08-0.528,0.12-0.879,0.199
-				C36.781,205.54,36.607,205.564,36.259,205.619z"/>
-			
-				<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="-3622.2788" y1="-3371.8276" x2="-3622.5071" y2="-3361.1187" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_11_)" stroke="#000000" stroke-width="0.254" d="M31.859,203.705L31.859,203.705
-				c0.376,0.337,0.564,0.508,0.94,0.844c0.391,0.23,0.585,0.346,0.976,0.575c0.409,0.126,0.613,0.185,1.021,0.309
-				c0.417,0.061,0.626,0.092,1.043,0.15c0.432-0.046,0.648-0.069,1.08-0.117c0.439-0.093,0.66-0.141,1.099-0.235
-				c0.447-0.154,0.67-0.231,1.117-0.387c0.458-0.219,0.686-0.329,1.143-0.55c0.44-0.245,0.661-0.366,1.102-0.612
-				c0.471-0.305,0.707-0.457,1.179-0.764c0.452-0.311,0.679-0.467,1.131-0.778c0.455-0.332,0.681-0.499,1.136-0.831
-				c0.454-0.331,0.681-0.496,1.136-0.827c0.438-0.355,0.657-0.533,1.095-0.89c0.435-0.334,0.652-0.501,1.087-0.836
-				c0.432-0.315,0.648-0.474,1.081-0.789l0,0c-0.235,0.008-0.351,0.012-0.586,0.02c-0.261,0.025-0.392,0.038-0.652,0.063
-				c-0.275,0.002-0.413,0.005-0.688,0.007c-0.297,0.003-0.446,0.001-0.744,0.004c-0.323,0.021-0.484,0.031-0.807,0.051
-				c-0.34-0.001-0.509,0-0.849-0.001c-0.365,0.016-0.549,0.021-0.914,0.036c-0.341-0.002-0.51-0.001-0.851-0.004l0,0
-				c-0.145,0.246-0.218,0.369-0.362,0.615c-0.186,0.243-0.278,0.365-0.464,0.608c-0.185,0.223-0.276,0.333-0.461,0.556
-				c-0.225,0.219-0.337,0.328-0.562,0.547c-0.241,0.196-0.362,0.296-0.603,0.491c-0.265,0.193-0.397,0.288-0.662,0.48
-				c-0.263,0.192-0.395,0.289-0.657,0.48c-0.297,0.148-0.446,0.223-0.743,0.37c-0.3,0.147-0.451,0.222-0.751,0.369
-				c-0.317,0.123-0.476,0.185-0.792,0.307c-0.336,0.121-0.504,0.182-0.841,0.302c-0.332,0.077-0.499,0.112-0.83,0.188
-				c-0.349,0.055-0.522,0.084-0.871,0.138c-0.348,0.052-0.521,0.08-0.869,0.131c-0.364,0.009-0.546,0.012-0.91,0.019
-				C32.399,203.73,32.219,203.72,31.859,203.705z"/>
-			
-				<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="-3616.5718" y1="-3386.3896" x2="-3611.2925" y2="-3351.2705" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_12_)" stroke="#000000" stroke-width="0.254" d="M27.818,202.454L27.818,202.454
-				c0.338,0.188,0.506,0.284,0.844,0.472c0.363,0.15,0.546,0.226,0.909,0.375c0.389,0.106,0.583,0.158,0.972,0.263
-				c0.442,0.049,0.662,0.069,1.104,0.116c0.424,0.022,0.636,0.036,1.06,0.058c0.471-0.018,0.707-0.028,1.178-0.048
-				c0.46-0.085,0.69-0.127,1.15-0.213c0.46-0.085,0.688-0.127,1.148-0.214c0.449-0.153,0.673-0.229,1.123-0.384
-				c0.431-0.178,0.647-0.268,1.079-0.446c0.392-0.204,0.587-0.307,0.979-0.512c0.378-0.246,0.567-0.369,0.946-0.616
-				c0.339-0.274,0.508-0.413,0.848-0.688c0.301-0.297,0.452-0.446,0.754-0.744c0.244-0.346,0.366-0.515,0.61-0.86
-				c0.181-0.352,0.272-0.528,0.454-0.88l0,0c-0.255,0.004-0.384,0.005-0.64,0.009c-0.257,0.002-0.385,0.003-0.642,0.005
-				c-0.278,0.021-0.417,0.034-0.695,0.056c-0.279,0-0.419,0.002-0.698,0.002c-0.275,0-0.413-0.002-0.688-0.002
-				c-0.298-0.003-0.447-0.005-0.745-0.008c-0.32-0.004-0.479-0.008-0.799-0.013c-0.361-0.009-0.542-0.011-0.904-0.021l0,0
-				c-0.18,0.198-0.27,0.296-0.45,0.494c-0.2,0.197-0.301,0.296-0.5,0.493c-0.197,0.176-0.294,0.265-0.491,0.439
-				c-0.193,0.154-0.29,0.232-0.483,0.386c-0.194,0.153-0.29,0.226-0.483,0.378c-0.209,0.107-0.315,0.163-0.525,0.271
-				c-0.21,0.132-0.316,0.199-0.526,0.33c-0.209,0.107-0.314,0.16-0.523,0.267c-0.224,0.086-0.335,0.128-0.56,0.213
-				c-0.248,0.081-0.373,0.123-0.62,0.203c-0.247,0.082-0.37,0.121-0.617,0.202c-0.264,0.059-0.395,0.089-0.659,0.146
-				c-0.267,0.056-0.401,0.082-0.667,0.138c-0.284,0.054-0.425,0.081-0.709,0.134c-0.305,0.03-0.458,0.045-0.763,0.074
-				C28.279,202.379,28.126,202.404,27.818,202.454z"/>
-			
-				<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="-3605.6333" y1="-3375.1411" x2="-3605.8401" y2="-3365.436" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_13_)" stroke="#000000" stroke-width="0.254" d="M25.77,201.446L25.77,201.446
-				c0.108,0.142,0.163,0.212,0.271,0.354c0.179,0.108,0.268,0.163,0.447,0.271c0.225,0.071,0.338,0.108,0.562,0.179
-				c0.252,0.031,0.377,0.049,0.629,0.08c0.297,0.015,0.447,0.019,0.744,0.032c0.325-0.024,0.486-0.035,0.811-0.062
-				c0.351-0.068,0.526-0.103,0.877-0.172c0.352-0.067,0.529-0.103,0.88-0.172c0.359-0.111,0.539-0.167,0.898-0.28
-				c0.362-0.134,0.542-0.204,0.904-0.339c0.364-0.155,0.547-0.229,0.912-0.386c0.326-0.184,0.489-0.278,0.815-0.463
-				c0.33-0.203,0.496-0.306,0.825-0.51c0.29-0.23,0.435-0.345,0.724-0.576c0.229-0.236,0.342-0.354,0.57-0.59
-				c0.209-0.261,0.314-0.392,0.524-0.652l0,0c-0.192,0.007-0.288,0.012-0.479,0.018c-0.173,0.006-0.26,0.007-0.434,0.013
-				c-0.213,0.003-0.319,0.005-0.532,0.007c-0.194,0.004-0.291,0.007-0.484,0.01c-0.192,0.004-0.289,0.005-0.481,0.009
-				c-0.171,0.004-0.257,0.008-0.428,0.012c-0.149-0.014-0.223-0.021-0.372-0.035c-0.146-0.015-0.219-0.02-0.365-0.034l0,0
-				c-0.013,0.085-0.019,0.125-0.032,0.21c-0.214,0.149-0.322,0.225-0.536,0.374c-0.352,0.2-0.527,0.297-0.879,0.496
-				c-0.461,0.232-0.692,0.35-1.153,0.579c-0.545,0.22-0.817,0.327-1.361,0.544c-0.548,0.218-0.822,0.326-1.37,0.54
-				c-0.534,0.149-0.801,0.224-1.334,0.369C26.462,201.342,26.232,201.376,25.77,201.446z"/>
-			
-				<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="-3601.2983" y1="-3376.3208" x2="-3601.4983" y2="-3366.9397" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_14_)" stroke="#000000" stroke-width="0.254" d="M24.46,199.773L24.46,199.773c0,0.3,0,0.446,0,0.746
-				c0.079,0.202,0.119,0.306,0.198,0.508c0.155,0.107,0.233,0.161,0.388,0.269c0.225,0.073,0.336,0.106,0.562,0.179
-				c0.279-0.005,0.418-0.006,0.698-0.012c0.332-0.065,0.499-0.101,0.831-0.167c0.333-0.086,0.499-0.127,0.832-0.215
-				c0.362-0.128,0.542-0.194,0.905-0.323c0.365-0.15,0.548-0.224,0.913-0.375c0.346-0.175,0.518-0.264,0.864-0.439
-				c0.347-0.175,0.52-0.263,0.866-0.439c0.282-0.165,0.425-0.247,0.707-0.413c0.255-0.146,0.382-0.22,0.638-0.366
-				c0.188-0.109,0.28-0.164,0.468-0.273c0.118-0.074,0.177-0.109,0.295-0.184c0.028-0.04,0.042-0.061,0.071-0.101
-				c-1.671,0.031-2.507,0.042-4.178,0.045l0,0c-0.137,0.069-0.206,0.104-0.343,0.173c-0.229,0.082-0.344,0.123-0.573,0.204
-				c-0.27,0.097-0.405,0.145-0.674,0.24c-0.293,0.093-0.439,0.14-0.732,0.231c-0.316,0.109-0.475,0.165-0.791,0.273
-				c-0.288,0.069-0.432,0.105-0.72,0.174c-0.269,0.072-0.403,0.108-0.671,0.18C24.792,199.721,24.681,199.74,24.46,199.773z"/>
-			
-				<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="-3596.834" y1="-3373.3218" x2="-3597.0066" y2="-3365.2209" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_15_)" stroke="#000000" stroke-width="0.254" d="M29.517,198.211L29.517,198.211
-				c-0.361-0.019-0.542-0.029-0.902-0.05c-0.319-0.015-0.48-0.021-0.799-0.037c-0.297-0.017-0.445-0.022-0.742-0.04
-				c-0.278-0.015-0.417-0.022-0.694-0.038c-0.255-0.009-0.385-0.015-0.64-0.024c-0.276-0.017-0.414-0.022-0.689-0.04
-				c-0.28,0.006-0.421,0.005-0.701,0.009c-0.326,0.02-0.489,0.028-0.815,0.046l0,0c0.006,0.408,0.01,0.611,0.016,1.02
-				c0.16,0.216,0.24,0.325,0.4,0.54c0.296,0.042,0.445,0.061,0.741,0.101c0.393-0.053,0.59-0.079,0.983-0.134
-				c0.407-0.141,0.61-0.213,1.017-0.355c0.431-0.158,0.647-0.237,1.079-0.397c0.386-0.146,0.577-0.22,0.963-0.367
-				C29.045,198.351,29.204,198.304,29.517,198.211z"/>
-			
-				<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="-3596.6147" y1="-3384.2104" x2="-3596.9253" y2="-3369.634" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_16_)" stroke="#000000" stroke-width="0.254" d="M29.436,197.674L29.436,197.674
-				c-0.37,0.021-0.553,0.029-0.923,0.048c-0.32,0.005-0.48,0.006-0.8,0.009c-0.283,0.03-0.425,0.044-0.708,0.073
-				c-0.281,0.008-0.42,0.013-0.702,0.02c-0.261,0.03-0.392,0.046-0.652,0.075c-0.262,0.03-0.393,0.046-0.655,0.075
-				c-0.303,0.023-0.456,0.034-0.759,0.056c-0.328,0.04-0.491,0.061-0.818,0.1l0,0c0.045-0.465,0.066-0.694,0.111-1.159
-				c0.233-0.267,0.349-0.402,0.582-0.67c0.311-0.063,0.466-0.097,0.777-0.161c0.402,0.035,0.604,0.053,1.007,0.086
-				c0.409,0.138,0.612,0.205,1.021,0.341c0.406,0.158,0.61,0.236,1.017,0.393c0.339,0.17,0.508,0.256,0.848,0.424
-				C29.042,197.5,29.173,197.558,29.436,197.674z"/>
-			
-				<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="-3732.8643" y1="-3353.3984" x2="-3742.689" y2="-3385.7747" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_17_)" stroke="#000000" stroke-width="0.254" d="M87.761,181.233L87.761,181.233
-				c0.977-0.261,1.465-0.391,2.44-0.661c0.914-0.145,1.372-0.22,2.284-0.372c0.822,0.011,1.231,0.015,2.052,0.02
-				c0.764,0.106,1.147,0.159,1.911,0.262c0.723,0.23,1.084,0.347,1.808,0.575c0.649,0.308,0.972,0.46,1.622,0.767
-				c0.615,0.414,0.925,0.619,1.542,1.032c0.588,0.453,0.882,0.683,1.472,1.136c0.559,0.517,0.838,0.773,1.399,1.29
-				c0.537,0.558,0.804,0.836,1.344,1.395c0.533,0.58,0.801,0.871,1.337,1.452c0.516,0.601,0.775,0.9,1.293,1.501
-				c0.519,0.579,0.779,0.869,1.301,1.449c0.523,0.56,0.786,0.841,1.312,1.4c0.532,0.537,0.797,0.805,1.331,1.343
-				c0.559,0.498,0.839,0.745,1.4,1.243l0,0c-0.22,0.027-0.33,0.043-0.55,0.07c-0.238,0.005-0.357,0.009-0.595,0.014
-				c-0.238,0.006-0.357,0.006-0.595,0.012c-0.22,0.028-0.328,0.044-0.547,0.072c-0.239,0.007-0.36,0.01-0.6,0.017
-				c-0.239,0.005-0.357,0.006-0.596,0.011c-0.258,0.003-0.388,0.006-0.646,0.008c-0.238,0.006-0.357,0.007-0.596,0.013
-				c-0.24,0.002-0.359,0.005-0.599,0.007c-0.259,0.005-0.389,0.008-0.648,0.013c-0.263,0.024-0.394,0.033-0.657,0.058
-				c-0.239,0.004-0.358,0.009-0.597,0.013c-0.26,0.004-0.39,0.005-0.649,0.009c-0.261,0.023-0.392,0.034-0.653,0.057
-				c-0.281,0-0.421,0-0.703-0.001c-0.263,0.024-0.395,0.035-0.658,0.06l0,0c-0.169-0.314-0.253-0.473-0.422-0.787
-				c-0.222-0.388-0.333-0.578-0.554-0.966c-0.257-0.454-0.385-0.681-0.641-1.134c-0.319-0.459-0.479-0.689-0.797-1.148
-				c-0.332-0.502-0.497-0.754-0.827-1.256c-0.374-0.505-0.561-0.759-0.933-1.264c-0.413-0.509-0.618-0.761-1.029-1.27
-				c-0.415-0.488-0.623-0.731-1.036-1.22c-0.461-0.469-0.69-0.704-1.149-1.173c-0.461-0.427-0.691-0.642-1.151-1.068
-				c-0.469-0.386-0.704-0.582-1.172-0.969c-0.501-0.323-0.752-0.482-1.252-0.807c-0.487-0.261-0.73-0.391-1.217-0.653
-				c-0.502-0.177-0.752-0.266-1.254-0.444c-0.519-0.073-0.778-0.11-1.296-0.187C88.499,181.184,88.253,181.2,87.761,181.233z"/>
-			
-				<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="-3724.8501" y1="-3370.8105" x2="-3736.3335" y2="-3387.6157" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_18_)" stroke="#000000" stroke-width="0.254" d="M83.692,181.663L83.692,181.663
-				c0.556-0.122,0.834-0.184,1.39-0.309c0.521-0.064,0.782-0.098,1.303-0.166c0.492-0.029,0.739-0.045,1.231-0.077
-				c0.511,0.014,0.766,0.019,1.276,0.029c0.472,0.092,0.708,0.137,1.181,0.227c0.483,0.155,0.724,0.233,1.207,0.387
-				c0.456,0.194,0.685,0.289,1.14,0.481c0.463,0.28,0.695,0.421,1.159,0.7c0.474,0.344,0.71,0.515,1.185,0.857
-				c0.463,0.429,0.696,0.644,1.161,1.072c0.475,0.492,0.711,0.738,1.188,1.229c0.484,0.58,0.726,0.871,1.212,1.451
-				c0.514,0.667,0.772,1.001,1.289,1.669c0.504,0.756,0.758,1.135,1.266,1.891c0.537,0.844,0.806,1.264,1.347,2.108
-				c0.572,0.933,0.86,1.397,1.437,2.331l0,0c-0.389-0.008-0.583-0.012-0.972-0.02c-0.347,0.015-0.52,0.022-0.866,0.036
-				c-0.325-0.005-0.487-0.007-0.812-0.012c-0.304,0.019-0.456,0.029-0.76,0.048c-0.305,0.019-0.458,0.025-0.762,0.043
-				c-0.327,0.017-0.489,0.027-0.815,0.043c-0.374,0.032-0.562,0.045-0.936,0.076c-0.436,0.028-0.653,0.045-1.089,0.072l0,0
-				c-0.332-0.354-0.498-0.531-0.828-0.885c-0.307-0.373-0.46-0.559-0.766-0.932c-0.324-0.397-0.487-0.598-0.81-0.995
-				c-0.279-0.394-0.419-0.589-0.697-0.983c-0.301-0.394-0.453-0.59-0.753-0.984c-0.298-0.396-0.445-0.595-0.742-0.99
-				c-0.279-0.394-0.418-0.592-0.697-0.986c-0.299-0.396-0.448-0.592-0.746-0.988c-0.3-0.374-0.451-0.562-0.75-0.938
-				c-0.324-0.355-0.486-0.534-0.81-0.891c-0.303-0.355-0.455-0.531-0.758-0.888c-0.323-0.357-0.486-0.534-0.809-0.893
-				c-0.352-0.318-0.527-0.479-0.878-0.799c-0.378-0.279-0.566-0.42-0.945-0.701c-0.379-0.28-0.57-0.423-0.949-0.705
-				C84.305,182.03,84.1,181.909,83.692,181.663z"/>
-			
-				<linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="-3707.7065" y1="-3351.3989" x2="-3718.2542" y2="-3386.1575" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_19_)" stroke="#000000" stroke-width="0.254" d="M79.107,182.212L79.107,182.212
-				c0.456-0.279,0.683-0.419,1.139-0.695c0.469-0.104,0.703-0.158,1.171-0.266c0.488,0.026,0.731,0.04,1.219,0.063
-				c0.461,0.168,0.693,0.252,1.154,0.417c0.487,0.276,0.73,0.413,1.218,0.687c0.473,0.359,0.709,0.538,1.183,0.895
-				c0.479,0.44,0.718,0.662,1.197,1.101c0.47,0.505,0.706,0.753,1.177,1.256c0.464,0.543,0.697,0.818,1.163,1.36
-				c0.458,0.564,0.688,0.844,1.148,1.407c0.44,0.562,0.661,0.844,1.103,1.404c0.419,0.58,0.629,0.869,1.05,1.448
-				c0.385,0.531,0.578,0.795,0.964,1.326c0.391,0.489,0.587,0.736,0.979,1.226c0.343,0.422,0.514,0.631,0.858,1.053
-				c0.333,0.353,0.5,0.53,0.833,0.883c-2.366,0.069-3.547,0.098-5.906,0.131l0,0c-0.241-0.369-0.36-0.554-0.601-0.924
-				c-0.24-0.372-0.362-0.557-0.602-0.929c-0.217-0.366-0.325-0.553-0.542-0.919c-0.237-0.37-0.354-0.554-0.59-0.924
-				c-0.24-0.37-0.359-0.555-0.599-0.925c-0.232-0.392-0.348-0.59-0.58-0.981c-0.257-0.373-0.386-0.56-0.643-0.934
-				c-0.24-0.352-0.359-0.527-0.599-0.879c-0.282-0.354-0.423-0.53-0.704-0.886c-0.28-0.355-0.42-0.534-0.7-0.891
-				c-0.306-0.34-0.46-0.51-0.766-0.851c-0.329-0.32-0.493-0.479-0.822-0.801c-0.352-0.325-0.527-0.489-0.879-0.815
-				c-0.377-0.288-0.566-0.434-0.944-0.724c-0.403-0.271-0.602-0.404-1.007-0.677C79.752,182.594,79.537,182.465,79.107,182.212z"/>
-			
-				<linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="-3698.6621" y1="-3369.9653" x2="-3711.0674" y2="-3388.1194" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_20_)" stroke="#000000" stroke-width="0.254" d="M69.828,184.89L69.828,184.89
-				c0.737-0.551,1.105-0.828,1.842-1.374c0.689-0.378,1.032-0.566,1.721-0.939c0.641-0.228,0.962-0.339,1.602-0.562
-				c0.621-0.101,0.931-0.147,1.551-0.244c0.592,0.053,0.889,0.076,1.48,0.133c0.555,0.161,0.833,0.244,1.387,0.409
-				c0.532,0.29,0.798,0.438,1.326,0.728c0.497,0.349,0.745,0.521,1.242,0.867c0.479,0.452,0.719,0.677,1.198,1.126
-				c0.445,0.509,0.668,0.761,1.114,1.268c0.458,0.572,0.688,0.859,1.147,1.43c0.408,0.608,0.612,0.914,1.021,1.521
-				c0.428,0.63,0.643,0.943,1.073,1.572c0.399,0.669,0.6,1.002,1,1.67c0.402,0.669,0.603,1.004,1.007,1.672
-				c0.404,0.667,0.607,1,1.014,1.666l0,0c-0.408-0.02-0.611-0.029-1.019-0.051c-0.342-0.018-0.514-0.027-0.855-0.045
-				c-0.278-0.009-0.417-0.013-0.694-0.022c-0.262,0.014-0.394,0.02-0.656,0.033c-0.259,0.013-0.389,0.019-0.648,0.03
-				c-0.283,0.01-0.425,0.014-0.708,0.022c-0.323,0.005-0.482,0.01-0.805,0.014c-0.393,0.016-0.59,0.021-0.983,0.036l0,0
-				c-0.344-0.623-0.515-0.935-0.857-1.559c-0.332-0.56-0.499-0.839-0.83-1.399c-0.36-0.52-0.537-0.779-0.896-1.301
-				c-0.35-0.457-0.526-0.687-0.876-1.145c-0.378-0.396-0.567-0.599-0.946-0.996c-0.368-0.354-0.552-0.53-0.92-0.883
-				c-0.355-0.308-0.533-0.46-0.889-0.766c-0.384-0.265-0.578-0.396-0.962-0.659c-0.369-0.221-0.553-0.331-0.922-0.55
-				c-0.357-0.173-0.536-0.258-0.893-0.429c-0.382-0.153-0.573-0.23-0.955-0.382c-0.365-0.127-0.547-0.189-0.912-0.314
-				c-0.35-0.083-0.525-0.124-0.875-0.205c-0.353-0.079-0.528-0.119-0.881-0.197c-0.359-0.037-0.54-0.054-0.899-0.09
-				C70.334,184.94,70.165,184.922,69.828,184.89z"/>
-			
-				<linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="-3681.2964" y1="-3352.6807" x2="-3691.1121" y2="-3385.0276" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_21_)" stroke="#000000" stroke-width="0.254" d="M63.397,185.779L63.397,185.779
-				c0.743-0.2,1.115-0.301,1.857-0.498c0.688-0.136,1.031-0.204,1.718-0.336c0.673-0.048,1.009-0.069,1.682-0.113
-				c0.621,0.014,0.932,0.021,1.552,0.039c0.612,0.06,0.918,0.089,1.53,0.152c0.576,0.146,0.864,0.22,1.44,0.369
-				c0.548,0.189,0.821,0.284,1.368,0.478c0.515,0.254,0.773,0.385,1.288,0.643c0.507,0.296,0.761,0.442,1.267,0.741
-				c0.453,0.359,0.679,0.542,1.132,0.904c0.466,0.406,0.7,0.611,1.166,1.021c0.414,0.444,0.62,0.669,1.033,1.114
-				c0.41,0.489,0.615,0.73,1.025,1.218c0.378,0.524,0.568,0.787,0.947,1.31c0.354,0.564,0.531,0.845,0.887,1.408
-				c0.344,0.604,0.517,0.906,0.863,1.509l0,0c-0.452,0.008-0.678,0.011-1.129,0.017c-0.517-0.005-0.775-0.011-1.292-0.019
-				c-0.517-0.006-0.774-0.008-1.291-0.017c-0.517-0.008-0.774-0.014-1.29-0.021c-0.471-0.004-0.706-0.006-1.177-0.007
-				c-0.364-0.005-0.547-0.005-0.912-0.008c-0.276-0.016-0.414-0.024-0.69-0.039c-0.104-0.015-0.156-0.021-0.261-0.036l0,0
-				c-0.033-0.048-0.049-0.072-0.083-0.119c-0.09-0.096-0.136-0.143-0.226-0.238c-0.122-0.165-0.184-0.248-0.306-0.413
-				c-0.155-0.212-0.232-0.317-0.387-0.529c-0.192-0.259-0.288-0.388-0.479-0.646c-0.23-0.265-0.346-0.396-0.576-0.66
-				c-0.268-0.309-0.402-0.463-0.671-0.771c-0.305-0.336-0.458-0.504-0.763-0.839c-0.353-0.317-0.529-0.475-0.882-0.791
-				c-0.369-0.339-0.554-0.509-0.923-0.847c-0.417-0.321-0.625-0.481-1.042-0.801c-0.458-0.321-0.686-0.482-1.144-0.802
-				c-0.466-0.28-0.699-0.418-1.167-0.696c-0.513-0.26-0.772-0.391-1.285-0.648c-0.538-0.239-0.806-0.356-1.344-0.594
-				C64.257,186.038,63.97,185.951,63.397,185.779z"/>
-			
-				<linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="-3668.9053" y1="-3368.4595" x2="-3677.2922" y2="-3380.7332" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_22_)" stroke="#000000" stroke-width="0.254" d="M55.4,186.177L55.4,186.177
-				c0.61-0.194,0.916-0.29,1.526-0.484c0.601-0.132,0.901-0.195,1.502-0.326c0.625-0.021,0.938-0.034,1.562-0.054
-				c0.594,0.042,0.891,0.062,1.484,0.105c0.604,0.11,0.906,0.168,1.51,0.28c0.592,0.172,0.887,0.257,1.479,0.432
-				c0.561,0.237,0.84,0.358,1.399,0.598c0.574,0.284,0.861,0.426,1.434,0.713c0.524,0.324,0.785,0.486,1.308,0.812
-				c0.518,0.349,0.777,0.523,1.294,0.874c0.487,0.412,0.731,0.618,1.217,1.032c0.484,0.413,0.726,0.622,1.209,1.038
-				c0.419,0.434,0.628,0.647,1.046,1.083c0.414,0.453,0.621,0.682,1.034,1.137c0.369,0.451,0.553,0.68,0.922,1.133
-				c0.328,0.448,0.492,0.672,0.819,1.122l0,0c-0.273-0.015-0.41-0.023-0.684-0.037c-0.344,0.002-0.517,0.005-0.861,0.008
-				c-0.384-0.004-0.577-0.006-0.96-0.008c-0.407-0.004-0.61-0.006-1.017-0.008c-0.407-0.002-0.611-0.001-1.018-0.001
-				c-0.364,0.004-0.546,0.006-0.911,0.012c-0.318-0.012-0.478-0.016-0.795-0.026c-0.232-0.021-0.349-0.033-0.581-0.055l0,0
-				c0.008-0.043,0.012-0.062,0.02-0.105c-0.087-0.116-0.13-0.175-0.217-0.29c-0.183-0.167-0.276-0.25-0.459-0.417
-				c-0.279-0.242-0.42-0.363-0.699-0.604c-0.338-0.266-0.505-0.398-0.844-0.663c-0.396-0.315-0.594-0.471-0.99-0.785
-				c-0.455-0.338-0.682-0.507-1.138-0.844c-0.477-0.337-0.715-0.506-1.192-0.842c-0.476-0.34-0.714-0.511-1.19-0.85
-				c-0.499-0.338-0.748-0.506-1.247-0.843c-0.505-0.314-0.758-0.47-1.264-0.782c-0.465-0.288-0.7-0.433-1.166-0.72
-				c-0.433-0.246-0.649-0.369-1.083-0.614c-0.393-0.197-0.588-0.296-0.981-0.492c-0.324-0.129-0.486-0.196-0.81-0.325
-				C55.796,186.298,55.664,186.259,55.4,186.177z"/>
-			
-				<linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="-3652.6982" y1="-3354.5215" x2="-3661.2915" y2="-3382.8396" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_23_)" stroke="#000000" stroke-width="0.254" d="M47.728,187.234L47.728,187.234
-				c0.37-0.445,0.555-0.668,0.925-1.113c0.489-0.247,0.734-0.37,1.224-0.617c0.569-0.068,0.854-0.104,1.423-0.174
-				c0.637,0.039,0.955,0.062,1.592,0.102c0.677,0.193,1.017,0.287,1.693,0.48c0.726,0.282,1.089,0.424,1.814,0.707
-				c0.754,0.371,1.131,0.559,1.884,0.932c0.724,0.413,1.085,0.618,1.807,1.033c0.738,0.459,1.105,0.688,1.841,1.15
-				c0.667,0.478,1.001,0.717,1.667,1.197c0.629,0.458,0.944,0.687,1.572,1.147c0.564,0.452,0.844,0.682,1.407,1.137
-				c0.466,0.385,0.699,0.576,1.165,0.962c0.358,0.29,0.537,0.434,0.894,0.725c0.24,0.214,0.359,0.32,0.598,0.534
-				c0.115,0.076,0.175,0.115,0.29,0.191l0,0c-0.306,0.034-0.46,0.053-0.766,0.088c-0.341,0.012-0.511,0.018-0.852,0.03
-				c-0.366,0.008-0.55,0.013-0.917,0.021c-0.381-0.013-0.571-0.019-0.952-0.03c-0.406,0.01-0.61,0.013-1.016,0.023
-				c-0.408,0.008-0.612,0.014-1.02,0.022c-0.389,0.033-0.582,0.05-0.971,0.084c-0.39,0.034-0.587,0.052-0.977,0.086l0,0
-				c-0.367-0.22-0.55-0.329-0.918-0.549c-0.346-0.22-0.519-0.33-0.866-0.549c-0.367-0.239-0.55-0.357-0.917-0.596
-				c-0.343-0.239-0.514-0.359-0.857-0.598c-0.349-0.218-0.524-0.327-0.874-0.544c-0.343-0.237-0.515-0.354-0.857-0.591
-				c-0.367-0.238-0.55-0.358-0.917-0.597c-0.347-0.236-0.518-0.354-0.865-0.589c-0.349-0.219-0.526-0.328-0.875-0.547
-				c-0.344-0.235-0.516-0.353-0.861-0.587c-0.372-0.216-0.558-0.32-0.93-0.536c-0.355-0.194-0.533-0.292-0.888-0.486
-				c-0.35-0.217-0.525-0.324-0.875-0.541c-0.376-0.193-0.564-0.291-0.94-0.484c-0.375-0.197-0.562-0.296-0.938-0.493
-				C48.297,187.494,48.107,187.407,47.728,187.234z"/>
-			
-				<linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="-3636.8169" y1="-3374.1143" x2="-3637.2458" y2="-3353.979" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_24_)" stroke="#000000" stroke-width="0.254" d="M37.845,189.076L37.845,189.076
-				c0.518-0.298,0.778-0.445,1.296-0.744c0.558-0.149,0.836-0.224,1.395-0.375c0.564-0.041,0.848-0.063,1.412-0.105
-				c0.593,0.044,0.889,0.065,1.482,0.107c0.601,0.147,0.901,0.221,1.501,0.366c0.605,0.235,0.909,0.354,1.514,0.588
-				c0.579,0.273,0.868,0.409,1.446,0.682c0.57,0.316,0.854,0.477,1.424,0.792c0.521,0.354,0.781,0.53,1.302,0.885
-				c0.52,0.354,0.781,0.532,1.3,0.886c0.452,0.373,0.678,0.557,1.129,0.93c0.396,0.323,0.592,0.488,0.987,0.812
-				c0.355,0.302,0.534,0.45,0.889,0.752c0.274,0.275,0.411,0.411,0.686,0.687c0.204,0.185,0.306,0.278,0.51,0.463
-				c0.108,0.115,0.164,0.173,0.272,0.288l0,0c-0.342,0.019-0.515,0.027-0.857,0.046c-0.324,0.022-0.485,0.034-0.809,0.057
-				c-0.278,0.024-0.418,0.037-0.696,0.062c-0.279,0.003-0.418,0.006-0.697,0.009c-0.3,0.001-0.449,0.001-0.749,0.002
-				c-0.279,0.024-0.42,0.036-0.699,0.061c-0.324,0.022-0.487,0.03-0.811,0.053c-0.341,0.02-0.511,0.03-0.853,0.05l0,0
-				c-0.266-0.208-0.4-0.312-0.667-0.521c-0.263-0.212-0.395-0.315-0.659-0.527c-0.28-0.252-0.421-0.377-0.701-0.629
-				c-0.283-0.232-0.425-0.352-0.708-0.584c-0.3-0.254-0.451-0.38-0.751-0.635c-0.303-0.255-0.453-0.386-0.756-0.641
-				c-0.301-0.258-0.451-0.386-0.752-0.644c-0.305-0.233-0.458-0.349-0.763-0.582c-0.307-0.235-0.46-0.354-0.767-0.589
-				c-0.332-0.194-0.497-0.293-0.829-0.487c-0.334-0.194-0.503-0.29-0.837-0.485c-0.319-0.153-0.478-0.23-0.797-0.385
-				c-0.344-0.131-0.518-0.194-0.862-0.326c-0.331-0.091-0.496-0.139-0.827-0.23c-0.338-0.025-0.507-0.04-0.845-0.066
-				C38.358,189.087,38.188,189.083,37.845,189.076z"/>
-			
-				<linearGradient id="SVGID_25_" gradientUnits="userSpaceOnUse" x1="-3646.8242" y1="-3381.7432" x2="-3642.5601" y2="-3353.3755" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_25_)" stroke="#000000" stroke-width="0.254" d="M41.575,187.823L41.575,187.823
-				c0.398-0.206,0.597-0.308,0.995-0.515c0.406-0.142,0.609-0.212,1.016-0.354c0.375-0.059,0.562-0.091,0.936-0.15
-				c0.389-0.015,0.583-0.021,0.972-0.036c0.379,0.046,0.568,0.068,0.947,0.113c0.39,0.111,0.584,0.167,0.974,0.277
-				c0.424,0.179,0.638,0.269,1.062,0.447c0.438,0.198,0.657,0.298,1.095,0.496c0.472,0.267,0.707,0.399,1.178,0.666
-				c0.49,0.288,0.735,0.431,1.225,0.719c0.54,0.356,0.81,0.533,1.349,0.89c0.58,0.38,0.87,0.57,1.449,0.95
-				c0.64,0.405,0.959,0.607,1.599,1.013c0.697,0.433,1.045,0.647,1.741,1.082c0.751,0.478,1.126,0.719,1.876,1.198
-				c0.836,0.489,1.253,0.734,2.088,1.227l0,0c-0.341-0.004-0.511-0.007-0.852-0.01c-0.384,0.013-0.579,0.021-0.963,0.035
-				c-0.387,0.016-0.579,0.024-0.966,0.041c-0.39,0.035-0.585,0.052-0.976,0.088c-0.344,0.02-0.516,0.03-0.86,0.051
-				c-0.258,0.027-0.388,0.039-0.646,0.066c-0.193,0.007-0.288,0.014-0.48,0.021c-0.082-0.025-0.123-0.04-0.205-0.065l0,0
-				c-0.035-0.047-0.052-0.071-0.087-0.118c-0.13-0.114-0.196-0.171-0.326-0.285c-0.161-0.184-0.243-0.275-0.404-0.459
-				c-0.222-0.206-0.332-0.309-0.554-0.515c-0.277-0.254-0.417-0.381-0.694-0.635c-0.339-0.278-0.51-0.418-0.85-0.696
-				c-0.357-0.303-0.535-0.452-0.893-0.755c-0.398-0.305-0.598-0.459-0.997-0.764c-0.441-0.306-0.662-0.455-1.104-0.761
-				c-0.444-0.306-0.667-0.459-1.111-0.765c-0.489-0.27-0.734-0.404-1.225-0.674c-0.496-0.246-0.745-0.368-1.241-0.615
-				c-0.504-0.203-0.757-0.306-1.262-0.509c-0.513-0.145-0.77-0.216-1.283-0.361c-0.5-0.096-0.75-0.145-1.249-0.241
-				C42.339,187.882,42.084,187.862,41.575,187.823z"/>
-			
-				<linearGradient id="SVGID_26_" gradientUnits="userSpaceOnUse" x1="-3627.8022" y1="-3382.9443" x2="-3623.3308" y2="-3353.1992" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_26_)" stroke="#000000" stroke-width="0.254" d="M33.207,191.387L33.207,191.387
-				c0.444-0.384,0.666-0.576,1.111-0.962c0.448-0.278,0.673-0.418,1.122-0.698c0.436-0.175,0.653-0.265,1.089-0.44
-				c0.441-0.09,0.661-0.135,1.102-0.227c0.428,0.015,0.642,0.021,1.069,0.035c0.439,0.077,0.659,0.118,1.098,0.194
-				c0.45,0.143,0.677,0.211,1.127,0.353c0.422,0.183,0.632,0.275,1.054,0.457c0.429,0.266,0.645,0.398,1.073,0.664
-				c0.408,0.264,0.612,0.395,1.02,0.657c0.419,0.328,0.628,0.493,1.046,0.82c0.42,0.33,0.63,0.495,1.049,0.824
-				c0.418,0.326,0.628,0.487,1.046,0.813c0.393,0.347,0.587,0.524,0.98,0.871c0.393,0.349,0.59,0.521,0.982,0.869
-				c0.399,0.303,0.598,0.454,0.996,0.757l0,0c-0.259,0.025-0.388,0.038-0.646,0.063c-0.278,0.004-0.418,0.007-0.696,0.011
-				c-0.326,0.043-0.488,0.065-0.813,0.108c-0.345,0.019-0.518,0.027-0.862,0.046c-0.364,0.02-0.546,0.03-0.91,0.05
-				c-0.386,0.015-0.578,0.021-0.964,0.036c-0.365,0.02-0.547,0.028-0.912,0.048c-0.366,0.017-0.549,0.025-0.916,0.042l0,0
-				c-0.083-0.283-0.124-0.427-0.207-0.71c-0.113-0.244-0.169-0.365-0.282-0.609c-0.132-0.244-0.198-0.366-0.331-0.611
-				c-0.179-0.227-0.269-0.34-0.448-0.566c-0.182-0.205-0.271-0.308-0.454-0.513c-0.209-0.166-0.314-0.249-0.523-0.415
-				c-0.252-0.171-0.379-0.257-0.631-0.428c-0.255-0.147-0.383-0.221-0.639-0.368c-0.28-0.129-0.42-0.192-0.7-0.321
-				c-0.304-0.109-0.455-0.165-0.759-0.275c-0.308-0.089-0.463-0.133-0.771-0.223c-0.331-0.07-0.498-0.11-0.829-0.182
-				c-0.356-0.052-0.533-0.075-0.889-0.128c-0.36-0.031-0.541-0.045-0.901-0.077c-0.366,0.008-0.548,0.011-0.914,0.018
-				C33.788,191.377,33.593,191.381,33.207,191.387z"/>
-			
-				<linearGradient id="SVGID_27_" gradientUnits="userSpaceOnUse" x1="-3609.269" y1="-3384.1274" x2="-3604.7693" y2="-3354.1929" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_27_)" stroke="#000000" stroke-width="0.254" d="M26.2,194.122L26.2,194.122
-				c0.131-0.154,0.198-0.234,0.329-0.389c0.19-0.126,0.285-0.187,0.476-0.312c0.251-0.096,0.376-0.143,0.628-0.239
-				c0.264-0.054,0.396-0.081,0.661-0.136c0.304-0.028,0.457-0.044,0.761-0.073c0.341,0.02,0.512,0.03,0.853,0.048
-				c0.338,0.038,0.506,0.057,0.844,0.094c0.377,0.061,0.567,0.094,0.945,0.153c0.349,0.1,0.523,0.148,0.873,0.247
-				c0.368,0.124,0.551,0.184,0.919,0.307c0.341,0.16,0.512,0.239,0.853,0.398c0.314,0.179,0.471,0.268,0.785,0.445
-				c0.292,0.198,0.438,0.299,0.729,0.496c0.263,0.237,0.395,0.355,0.658,0.592c0.197,0.253,0.296,0.38,0.494,0.633
-				c0.172,0.271,0.258,0.408,0.43,0.679l0,0c-0.195,0.026-0.292,0.04-0.487,0.066c-0.238,0.022-0.359,0.031-0.597,0.053
-				c-0.237,0.021-0.356,0.033-0.594,0.054c-0.239,0.021-0.36,0.03-0.599,0.051c-0.213,0.002-0.32,0.002-0.533,0.004
-				c-0.173,0.007-0.259,0.011-0.432,0.018c-0.125-0.013-0.188-0.018-0.313-0.03c-0.043-0.004-0.063-0.007-0.106-0.011l0,0
-				c-0.078-0.051-0.117-0.077-0.195-0.128c-0.192-0.146-0.287-0.222-0.479-0.369c-0.333-0.204-0.5-0.307-0.833-0.513
-				c-0.394-0.229-0.592-0.344-0.986-0.575c-0.459-0.222-0.689-0.33-1.149-0.554c-0.527-0.207-0.792-0.313-1.319-0.523
-				c-0.514-0.146-0.769-0.22-1.283-0.368C27,194.193,26.732,194.17,26.2,194.122z"/>
-			
-				<linearGradient id="SVGID_28_" gradientUnits="userSpaceOnUse" x1="-3602.1484" y1="-3386.6724" x2="-3602.5979" y2="-3365.5806" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_28_)" stroke="#000000" stroke-width="0.254" d="M24.624,196.101L24.624,196.101
-				c0.028-0.336,0.043-0.502,0.071-0.838c0.122-0.241,0.181-0.362,0.303-0.604c0.172-0.148,0.259-0.222,0.431-0.37
-				c0.247-0.074,0.371-0.112,0.618-0.188c0.28-0.007,0.419-0.01,0.699-0.018c0.314,0.062,0.472,0.092,0.787,0.153
-				c0.33,0.082,0.495,0.126,0.825,0.207c0.368,0.13,0.552,0.191,0.919,0.319c0.339,0.166,0.507,0.25,0.846,0.415
-				c0.339,0.167,0.51,0.25,0.849,0.416c0.319,0.162,0.479,0.242,0.798,0.403c0.275,0.157,0.412,0.234,0.687,0.391
-				c0.236,0.152,0.355,0.229,0.591,0.382c0.197,0.105,0.295,0.158,0.492,0.264c0.093,0.094,0.142,0.14,0.235,0.233
-				c0.04,0.023,0.058,0.037,0.098,0.061c-1.731,0.133-2.595,0.192-4.325,0.296l0,0c-0.138-0.077-0.208-0.116-0.347-0.193
-				c-0.222-0.091-0.333-0.137-0.555-0.229c-0.239-0.114-0.359-0.171-0.599-0.285c-0.283-0.12-0.424-0.181-0.707-0.302
-				c-0.286-0.101-0.43-0.149-0.716-0.251c-0.289-0.077-0.432-0.115-0.721-0.193c-0.273-0.035-0.411-0.053-0.684-0.089
-				C24.981,196.091,24.862,196.092,24.624,196.101z"/>
-			
-				<linearGradient id="SVGID_29_" gradientUnits="userSpaceOnUse" x1="-3615.4663" y1="-3379.8384" x2="-3615.8687" y2="-3360.9524" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_29_)" stroke="#000000" stroke-width="0.254" d="M28.621,193.03L28.621,193.03
-				c0.377-0.234,0.565-0.35,0.942-0.586c0.39-0.17,0.584-0.255,0.975-0.427c0.43-0.144,0.644-0.217,1.073-0.362
-				c0.464-0.082,0.695-0.124,1.159-0.208c0.457-0.04,0.686-0.059,1.144-0.101c0.452-0.019,0.678-0.029,1.13-0.05
-				c0.466,0.043,0.701,0.062,1.167,0.104c0.458,0.08,0.686,0.119,1.144,0.198c0.432,0.123,0.647,0.184,1.079,0.306
-				c0.421,0.185,0.631,0.278,1.052,0.462c0.376,0.2,0.565,0.301,0.942,0.5c0.348,0.24,0.522,0.362,0.87,0.603
-				c0.319,0.281,0.479,0.42,0.797,0.7c0.251,0.316,0.376,0.475,0.627,0.791c0.18,0.355,0.27,0.532,0.449,0.888
-				c0.131,0.395,0.197,0.592,0.328,0.985l0,0c-0.279,0.003-0.419,0.006-0.698,0.008c-0.258,0.024-0.386,0.035-0.644,0.06
-				c-0.277-0.001-0.417-0.001-0.695-0.002c-0.302,0.021-0.454,0.032-0.756,0.052c-0.301,0.021-0.449,0.032-0.75,0.053
-				c-0.32-0.005-0.48-0.009-0.8-0.014c-0.347,0.038-0.521,0.056-0.867,0.093c-0.363,0.011-0.545,0.017-0.908,0.026l0,0
-				c-0.1-0.198-0.15-0.298-0.25-0.497c-0.122-0.183-0.185-0.273-0.307-0.456c-0.146-0.162-0.218-0.241-0.364-0.403
-				c-0.167-0.165-0.249-0.249-0.416-0.414c-0.191-0.146-0.288-0.217-0.479-0.362c-0.213-0.147-0.32-0.224-0.534-0.371
-				c-0.218-0.127-0.327-0.188-0.544-0.316c-0.24-0.107-0.36-0.161-0.601-0.269c-0.24-0.109-0.36-0.166-0.601-0.276
-				c-0.266-0.09-0.396-0.135-0.662-0.226c-0.246-0.067-0.37-0.099-0.616-0.166c-0.272-0.05-0.41-0.076-0.683-0.126
-				c-0.271-0.049-0.406-0.072-0.677-0.122c-0.273-0.03-0.409-0.046-0.682-0.077c-0.279-0.01-0.419-0.018-0.698-0.028
-				C29.009,193.011,28.88,193.017,28.621,193.03z"/>
-			
-				<linearGradient id="SVGID_30_" gradientUnits="userSpaceOnUse" x1="-3959.2222" y1="-3322.3462" x2="-3951.2214" y2="-3298.7883" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_30_)" stroke="#000000" stroke-width="0.254" d="M220.073,197.092L220.073,197.092
-				c0.031,0.054,0.049,0.081,0.08,0.135c0.078,0.14,0.118,0.207,0.196,0.347c0.1,0.219,0.148,0.331,0.248,0.55
-				c0.134,0.272,0.201,0.406,0.335,0.679c0.146,0.318,0.221,0.478,0.367,0.796c0.138,0.348,0.203,0.521,0.341,0.87
-				c0.108,0.384,0.162,0.576,0.271,0.962c0.086,0.38,0.132,0.568,0.218,0.951c0.042,0.385,0.061,0.579,0.103,0.969
-				c-0.036,0.352-0.053,0.528-0.089,0.885c-0.101,0.337-0.149,0.506-0.25,0.849c-0.175,0.289-0.261,0.437-0.436,0.73
-				c-0.293,0.229-0.442,0.343-0.736,0.575c-0.414,0.163-0.619,0.243-1.033,0.408c-0.543,0.062-0.816,0.097-1.36,0.161
-				c-0.68-0.04-1.021-0.061-1.7-0.1l0,0c0.154-0.2,0.232-0.299,0.387-0.496c0.117-0.223,0.176-0.336,0.293-0.556
-				c0.113-0.22,0.168-0.327,0.281-0.544c0.102-0.254,0.154-0.381,0.256-0.631c0.08-0.256,0.123-0.382,0.203-0.635
-				c0.062-0.273,0.093-0.408,0.155-0.679c0.039-0.262,0.061-0.393,0.1-0.651c0.043-0.273,0.062-0.409,0.104-0.68
-				c0.021-0.278,0.032-0.417,0.053-0.693c0.021-0.273,0.032-0.408,0.054-0.68c-0.002-0.266-0.003-0.399-0.005-0.664
-				c-0.026-0.257-0.04-0.385-0.066-0.641c-0.005-0.25-0.009-0.375-0.014-0.625c-0.033-0.229-0.048-0.342-0.081-0.57
-				c-0.054-0.234-0.078-0.352-0.132-0.586c-0.04-0.201-0.063-0.302-0.104-0.504l0,0c0.11,0.002,0.167,0.002,0.277,0.004
-				c0.086,0.008,0.129,0.014,0.215,0.021c0.109,0.001,0.161,0.001,0.271,0.002c0.087,0.01,0.13,0.016,0.217,0.025
-				c0.09-0.005,0.137-0.007,0.227-0.012c0.084,0.009,0.127,0.015,0.211,0.023c0.11,0,0.165,0.001,0.274,0.001
-				C219.912,197.091,219.964,197.091,220.073,197.092z"/>
-			
-				<linearGradient id="SVGID_31_" gradientUnits="userSpaceOnUse" x1="-3950.7925" y1="-3324.4922" x2="-3942.4631" y2="-3299.9666" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_31_)" stroke="#000000" stroke-width="0.254" d="M218.208,197.085L218.208,197.085
-				c0.106,0.836,0.16,1.254,0.267,2.088c0.041,0.742,0.061,1.115,0.103,1.865c-0.039,0.623-0.059,0.934-0.097,1.567
-				c-0.105,0.54-0.156,0.813-0.262,1.365c-0.151,0.462-0.227,0.692-0.378,1.165c-0.218,0.375-0.329,0.567-0.548,0.952
-				c-0.246,0.312-0.366,0.469-0.612,0.788c-0.254,0.25-0.383,0.373-0.637,0.628c-0.303,0.176-0.452,0.268-0.755,0.447
-				c-0.315,0.124-0.473,0.188-0.788,0.313c-0.301,0.064-0.452,0.096-0.753,0.161c-0.293,0.031-0.439,0.046-0.732,0.078
-				c-0.311-0.006-0.467-0.007-0.778-0.012c-0.258-0.042-0.387-0.062-0.645-0.103c-0.232-0.052-0.348-0.079-0.58-0.131
-				c-0.21-0.061-0.316-0.089-0.526-0.148l0,0c0.181-0.225,0.27-0.337,0.45-0.558c0.178-0.219,0.268-0.327,0.445-0.542
-				c0.165-0.254,0.25-0.378,0.415-0.627c0.146-0.254,0.216-0.379,0.361-0.629c0.149-0.28,0.226-0.42,0.375-0.694
-				c0.132-0.28,0.196-0.419,0.328-0.694c0.13-0.276,0.195-0.412,0.325-0.685c0.111-0.291,0.167-0.435,0.278-0.722
-				c0.093-0.295,0.14-0.442,0.232-0.733c0.074-0.31,0.113-0.464,0.188-0.771c0.048-0.299,0.071-0.446,0.119-0.742
-				c0.033-0.315,0.053-0.472,0.086-0.785c0.009-0.305,0.011-0.459,0.02-0.762c-0.012-0.324-0.017-0.483-0.028-0.807
-				c-0.034-0.3-0.054-0.448-0.087-0.748c-0.054-0.319-0.076-0.479-0.13-0.8l0,0c0.261,0.012,0.389,0.017,0.649,0.028
-				c0.265,0.014,0.397,0.02,0.661,0.033c0.241,0.007,0.361,0.009,0.603,0.017c0.235,0.021,0.355,0.032,0.591,0.054
-				c0.197,0.011,0.294,0.018,0.491,0.028c0.217,0.016,0.322,0.022,0.539,0.038c0.171,0.019,0.259,0.025,0.43,0.044
-				C217.98,197.068,218.056,197.073,218.208,197.085z"/>
-			
-				<linearGradient id="SVGID_32_" gradientUnits="userSpaceOnUse" x1="-3940.4434" y1="-3326.7959" x2="-3931.8647" y2="-3301.5364" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_32_)" stroke="#000000" stroke-width="0.254" d="M213.808,196.797L213.808,196.797
-				c0.059,0.306,0.09,0.46,0.148,0.766c0.038,0.374,0.058,0.561,0.096,0.935c-0.011,0.405-0.016,0.608-0.026,1.016
-				c-0.065,0.434-0.1,0.647-0.165,1.085c-0.09,0.477-0.134,0.717-0.224,1.2c-0.116,0.476-0.173,0.716-0.289,1.201
-				c-0.177,0.468-0.268,0.703-0.444,1.183c-0.216,0.455-0.322,0.684-0.538,1.151c-0.252,0.423-0.381,0.64-0.633,1.075
-				c-0.285,0.395-0.428,0.594-0.713,1.001c-0.356,0.32-0.532,0.483-0.889,0.813c-0.38,0.236-0.569,0.358-0.949,0.603
-				c-0.45,0.137-0.677,0.206-1.127,0.348c-0.485,0.005-0.726,0.008-1.211,0.017c-0.529-0.126-0.796-0.187-1.326-0.309
-				c-0.581-0.297-0.872-0.444-1.454-0.732l0,0c0.292-0.245,0.438-0.366,0.73-0.604c0.295-0.252,0.442-0.378,0.737-0.623
-				c0.257-0.273,0.386-0.409,0.643-0.676c0.232-0.256,0.349-0.381,0.581-0.631c0.196-0.292,0.295-0.435,0.491-0.721
-				c0.194-0.271,0.29-0.406,0.484-0.672c0.155-0.292,0.235-0.436,0.391-0.722s0.23-0.427,0.386-0.708
-				c0.113-0.292,0.171-0.438,0.284-0.727c0.095-0.307,0.143-0.459,0.237-0.762c0.072-0.295,0.108-0.44,0.181-0.732
-				c0.035-0.316,0.053-0.475,0.088-0.788c0.033-0.313,0.049-0.469,0.082-0.78c-0.013-0.31-0.016-0.462-0.028-0.77
-				c-0.007-0.322-0.014-0.485-0.021-0.807c-0.054-0.316-0.079-0.477-0.133-0.793l0,0c0.223-0.001,0.332-0.001,0.555-0.001
-				c0.263,0.01,0.396,0.017,0.657,0.026c0.266,0.012,0.398,0.017,0.663,0.028c0.263,0.011,0.395,0.016,0.657,0.026
-				c0.264,0.012,0.394,0.018,0.657,0.03c0.221,0,0.331-0.001,0.551,0c0.197,0.008,0.295,0.015,0.492,0.022
-				C213.581,196.78,213.656,196.785,213.808,196.797z"/>
-			
-				<linearGradient id="SVGID_33_" gradientUnits="userSpaceOnUse" x1="-3929.748" y1="-3328.7954" x2="-3920.5767" y2="-3301.7908" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_33_)" stroke="#000000" stroke-width="0.254" d="M196.969,209.017L196.969,209.017
-				c0.564,0.148,0.851,0.227,1.414,0.384c0.562,0.043,0.844,0.065,1.405,0.116c0.516-0.069,0.771-0.101,1.287-0.162
-				c0.488-0.143,0.733-0.214,1.222-0.349c0.483-0.229,0.728-0.34,1.211-0.559c0.436-0.301,0.651-0.448,1.087-0.737
-				c0.382-0.354,0.571-0.527,0.953-0.868c0.371-0.396,0.556-0.591,0.927-0.972c0.314-0.43,0.474-0.639,0.788-1.054
-				c0.28-0.456,0.421-0.681,0.702-1.123c0.221-0.472,0.33-0.707,0.551-1.167c0.158-0.478,0.24-0.712,0.398-1.179
-				c0.115-0.478,0.174-0.714,0.289-1.185c0.054-0.486,0.078-0.728,0.132-1.209c-0.013-0.484-0.019-0.725-0.031-1.206
-				c-0.079-0.47-0.119-0.706-0.198-1.175l0,0c-0.245-0.005-0.368-0.005-0.613-0.009s-0.367-0.007-0.612-0.01
-				c-0.261-0.022-0.391-0.032-0.651-0.054c-0.266-0.009-0.399-0.014-0.665-0.021c-0.265-0.007-0.397-0.012-0.663-0.018
-				c-0.286-0.012-0.429-0.014-0.716-0.024c-0.266-0.006-0.397-0.01-0.664-0.015c-0.287-0.011-0.431-0.018-0.718-0.027l0,0
-				c-0.072,0.286-0.108,0.431-0.181,0.718c-0.079,0.313-0.119,0.472-0.198,0.787c-0.111,0.354-0.168,0.529-0.279,0.886
-				c-0.114,0.368-0.172,0.552-0.285,0.925c-0.114,0.373-0.169,0.562-0.283,0.94c-0.117,0.394-0.178,0.59-0.295,0.991
-				c-0.163,0.404-0.245,0.611-0.408,1.025c-0.154,0.385-0.23,0.579-0.385,0.974c-0.177,0.392-0.265,0.588-0.441,0.99
-				c-0.168,0.369-0.253,0.559-0.421,0.938c-0.21,0.354-0.313,0.532-0.523,0.897c-0.218,0.312-0.327,0.472-0.544,0.793
-				c-0.229,0.265-0.343,0.397-0.571,0.669c-0.262,0.213-0.396,0.322-0.657,0.541c-0.268,0.144-0.4,0.215-0.668,0.362
-				C197.385,208.906,197.246,208.942,196.969,209.017z"/>
-			
-				<linearGradient id="SVGID_34_" gradientUnits="userSpaceOnUse" x1="-3993.4668" y1="-3256.4443" x2="-3988.2205" y2="-3226.6914" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1679.3441 2190.2681)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0891" style="stop-color:#732180"/>
-				<stop  offset="0.2293" style="stop-color:#8A207C"/>
-				<stop  offset="0.403" style="stop-color:#AF1F76"/>
-				<stop  offset="0.6019" style="stop-color:#E11E6F"/>
-				<stop  offset="0.6158" style="stop-color:#E51E6E"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_34_)" stroke="#000000" stroke-width="0.254" d="M203.742,196.417L203.742,196.417
-				c-0.225,0.006-0.337,0.009-0.562,0.016c-0.222-0.008-0.333-0.012-0.555-0.02c-0.199-0.002-0.298-0.003-0.498-0.004
-				c-0.221-0.021-0.33-0.029-0.551-0.049c-0.222-0.005-0.334-0.011-0.556-0.016c-0.202-0.002-0.302,0.002-0.504,0
-				c-0.223-0.004-0.335-0.007-0.558-0.011c-0.225,0.011-0.336,0.017-0.561,0.027l0,0c-0.111,0.268-0.168,0.401-0.279,0.67
-				c-0.098,0.3-0.147,0.448-0.245,0.75c-0.104,0.33-0.155,0.496-0.26,0.83c-0.105,0.348-0.16,0.521-0.266,0.872
-				c-0.087,0.356-0.13,0.535-0.217,0.896c-0.092,0.39-0.137,0.587-0.229,0.983c-0.114,0.394-0.173,0.594-0.287,0.996
-				c-0.109,0.387-0.161,0.582-0.27,0.978c-0.129,0.393-0.194,0.592-0.322,0.995c-0.151,0.398-0.228,0.6-0.379,1.009
-				c-0.186,0.369-0.279,0.556-0.465,0.937c-0.179,0.348-0.268,0.525-0.445,0.884c-0.237,0.328-0.357,0.495-0.595,0.833
-				c-0.252,0.3-0.376,0.453-0.628,0.763c-0.285,0.25-0.428,0.375-0.713,0.633c-0.337,0.19-0.507,0.288-0.844,0.486l0,0
-				c0.634-0.038,0.953-0.054,1.587-0.079c0.54-0.1,0.809-0.148,1.349-0.237c0.467-0.177,0.7-0.26,1.167-0.427
-				c0.412-0.216,0.618-0.324,1.03-0.531c0.358-0.273,0.538-0.408,0.897-0.672c0.305-0.327,0.458-0.485,0.764-0.802
-				c0.247-0.364,0.37-0.545,0.617-0.898c0.213-0.378,0.319-0.564,0.533-0.932c0.182-0.424,0.272-0.632,0.455-1.043
-				c0.159-0.433,0.24-0.644,0.399-1.064c0.124-0.445,0.182-0.663,0.307-1.097c0.13-0.463,0.198-0.696,0.328-1.148
-				c0.132-0.452,0.197-0.676,0.329-1.119c0.135-0.459,0.203-0.684,0.339-1.136c0.113-0.456,0.17-0.681,0.283-1.133
-				C203.502,197.101,203.582,196.873,203.742,196.417z"/>
-			
-				<linearGradient id="SVGID_35_" gradientUnits="userSpaceOnUse" x1="-3906.2856" y1="-3322.4297" x2="-3903.5667" y2="-3303.8481" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_35_)" stroke="#000000" stroke-width="0.254" d="M186.23,210.842L186.23,210.842
-				c0.834,0.082,1.251,0.12,2.089,0.2c0.733-0.056,1.103-0.082,1.84-0.139c0.624-0.171,0.935-0.258,1.561-0.428
-				c0.536-0.261,0.808-0.389,1.349-0.633c0.451-0.353,0.676-0.523,1.128-0.859c0.356-0.408,0.536-0.609,0.894-1
-				c0.323-0.451,0.485-0.67,0.81-1.104c0.25-0.499,0.376-0.746,0.628-1.226c0.191-0.509,0.288-0.757,0.48-1.248
-				c0.173-0.509,0.262-0.756,0.436-1.248c0.137-0.518,0.204-0.771,0.342-1.274c0.112-0.49,0.169-0.732,0.281-1.211
-				c0.115-0.495,0.172-0.739,0.288-1.225c0.11-0.454,0.165-0.683,0.275-1.131c0.145-0.413,0.219-0.617,0.364-1.025
-				c0.14-0.38,0.21-0.568,0.35-0.945l0,0c-0.244-0.007-0.368-0.009-0.612-0.016c-0.223-0.003-0.333-0.004-0.557-0.006
-				c-0.201,0.004-0.301,0.005-0.503,0.01c-0.226-0.002-0.34-0.002-0.566-0.003c-0.224,0-0.337-0.002-0.562-0.001
-				c-0.201,0.006-0.301,0.01-0.502,0.016c-0.223-0.013-0.333-0.018-0.556-0.029c-0.246-0.002-0.372-0.003-0.618-0.004l0,0
-				c0.012,0.046,0.019,0.07,0.03,0.116c0.019,0.106,0.025,0.158,0.044,0.265c0.007,0.163,0.011,0.245,0.017,0.409
-				c0.018,0.21,0.026,0.313,0.044,0.524c-0.02,0.262-0.028,0.394-0.048,0.657c-0.024,0.294-0.035,0.441-0.06,0.738
-				c-0.056,0.336-0.086,0.506-0.142,0.846c-0.109,0.377-0.165,0.565-0.273,0.949c-0.154,0.392-0.231,0.589-0.386,0.989
-				c-0.208,0.437-0.311,0.659-0.518,1.108c-0.297,0.454-0.446,0.683-0.742,1.154c-0.338,0.48-0.505,0.729-0.836,1.234
-				c-0.441,0.509-0.663,0.768-1.104,1.296c-0.528,0.552-0.79,0.831-1.316,1.406c-0.607,0.544-0.911,0.823-1.517,1.389
-				C187.328,209.963,186.962,210.252,186.23,210.842z"/>
-			
-				<linearGradient id="SVGID_36_" gradientUnits="userSpaceOnUse" x1="-3895.543" y1="-3324.3433" x2="-3892.6892" y2="-3304.8406" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_36_)" stroke="#000000" stroke-width="0.254" d="M178.906,211.928L178.906,211.928
-				c0.537,0.185,0.807,0.279,1.344,0.465c0.561,0.045,0.838,0.066,1.399,0.111c0.561-0.103,0.841-0.154,1.403-0.256
-				c0.578-0.203,0.869-0.304,1.449-0.504c0.573-0.299,0.861-0.449,1.437-0.743c0.567-0.378,0.853-0.564,1.422-0.933
-				c0.545-0.469,0.817-0.697,1.364-1.151c0.514-0.515,0.771-0.767,1.286-1.264c0.459-0.543,0.688-0.81,1.148-1.332
-				c0.428-0.578,0.642-0.86,1.07-1.416c0.375-0.597,0.572-0.88,0.956-1.442c0.3-0.59,0.45-0.878,0.752-1.444
-				c0.237-0.579,0.355-0.866,0.594-1.427c0.156-0.589,0.235-0.88,0.393-1.453c0.043-0.563,0.065-0.841,0.108-1.396
-				c-0.043-0.57-0.067-0.854-0.11-1.42c-2.144,0.053-3.199,0.128-5.279,0.226l0,0c-0.033,0.237-0.048,0.354-0.081,0.593
-				c-0.04,0.283-0.06,0.426-0.1,0.711c-0.089,0.306-0.133,0.458-0.222,0.767c-0.121,0.352-0.18,0.526-0.301,0.883
-				c-0.144,0.369-0.218,0.555-0.36,0.931c-0.191,0.399-0.285,0.602-0.476,1.01c-0.193,0.424-0.288,0.639-0.48,1.073
-				c-0.259,0.44-0.39,0.665-0.647,1.118c-0.28,0.45-0.42,0.679-0.7,1.142c-0.315,0.441-0.473,0.663-0.787,1.118
-				c-0.337,0.45-0.507,0.68-0.843,1.144c-0.395,0.438-0.59,0.663-0.983,1.115c-0.411,0.431-0.617,0.65-1.026,1.094
-				c-0.465,0.396-0.696,0.597-1.16,1.003c-0.498,0.36-0.748,0.538-1.245,0.907C179.7,211.461,179.436,211.617,178.906,211.928z"/>
-			
-				<linearGradient id="SVGID_37_" gradientUnits="userSpaceOnUse" x1="-3885.584" y1="-3327.71" x2="-3881.2534" y2="-3286.2454" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_37_)" stroke="#000000" stroke-width="0.254" d="M189.758,196.493L189.758,196.493
-				c-0.329,0.019-0.492,0.027-0.82,0.046c-0.411,0.005-0.617,0.006-1.028,0.01c-0.463,0.025-0.693,0.038-1.156,0.062
-				c-0.476,0.007-0.713,0.011-1.188,0.017c-0.462,0.025-0.694,0.036-1.155,0.062c-0.454,0.009-0.681,0.015-1.135,0.022
-				c-0.391,0.006-0.586,0.009-0.977,0.015c-0.301-0.009-0.45-0.015-0.751-0.023l0,0c-0.112,0.35-0.168,0.525-0.279,0.878
-				c-0.101,0.387-0.151,0.581-0.251,0.973c-0.118,0.391-0.178,0.587-0.296,0.983c-0.101,0.413-0.151,0.622-0.252,1.042
-				c-0.143,0.413-0.216,0.62-0.357,1.041c-0.125,0.442-0.187,0.669-0.311,1.12c-0.14,0.431-0.211,0.646-0.351,1.086
-				c-0.162,0.436-0.243,0.653-0.405,1.099c-0.178,0.424-0.265,0.642-0.442,1.075c-0.197,0.414-0.295,0.62-0.492,1.043
-				c-0.236,0.414-0.355,0.626-0.592,1.05c-0.251,0.385-0.376,0.581-0.626,0.975c-0.288,0.369-0.434,0.554-0.722,0.931
-				c-0.318,0.312-0.477,0.469-0.795,0.785c-0.336,0.294-0.504,0.441-0.84,0.74c-0.392,0.251-0.586,0.38-0.977,0.635l0,0
-				c0.398,0.122,0.596,0.18,0.994,0.303c0.43,0.044,0.646,0.067,1.077,0.111c0.442-0.037,0.66-0.055,1.103-0.092
-				c0.455-0.117,0.685-0.175,1.141-0.291c0.467-0.199,0.699-0.298,1.167-0.494c0.48-0.256,0.721-0.385,1.202-0.637
-				c0.472-0.331,0.709-0.492,1.182-0.815c0.486-0.424,0.729-0.637,1.217-1.049c0.455-0.454,0.684-0.678,1.14-1.119
-				c0.428-0.541,0.644-0.807,1.072-1.329c0.422-0.575,0.633-0.855,1.056-1.41c0.393-0.647,0.59-0.963,0.983-1.584
-				c0.346-0.681,0.518-1.015,0.865-1.669c0.314-0.705,0.473-1.053,0.788-1.732c0.269-0.769,0.401-1.144,0.671-1.888
-				C189.434,197.665,189.541,197.273,189.758,196.493z"/>
-			
-				<linearGradient id="SVGID_38_" gradientUnits="userSpaceOnUse" x1="-3871.8818" y1="-3329.1504" x2="-3868.8232" y2="-3308.249" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1634.6683 2225.4639)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>

<TRUNCATED>

[44/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/validation.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/validation.html b/documentation/bundles/validation.html
new file mode 100644
index 0000000..3684e21
--- /dev/null
+++ b/documentation/bundles/validation.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Validation</h1></header><p>[TOC]</p>
+<p>Many Sling projects want to be able to validate both Resources and request parameters. Through the Sling Validation framework this is possible with the help of validation model resources which define validation rules for a certain resourceType.</p>
+<h1>Prerequisites</h1>
+<p>To use this validation framework the following bundles need to be deployed</p>
+<ol>
+  <li><code>org.apache.sling.validation.api</code></li>
+  <li><code>org.apache.sling.validation.core</code></li>
+</ol>
+<p>In addition a <a href="/documentation/the-sling-engine/service-authentication.html">service resolver mapping</a> needs to be configured for the service name <code>org.apache.sling.validation.core</code>. The bound service user needs to have at least read access to all resources within the resource resolver's search paths (usually <code>/apps</code> and <code>/libs</code>).</p>
+<h1>Basic Usage</h1>
+<p>To validate a resource one first needs to get a <code>ValidationModel</code> and then validate the resource with that model. Both functionalities are provided by the <code>ValidationService</code> OSGi service:</p>
+<p>::java try { ValidationModel validationModel = validationService.getValidationModel(resource, true); if (validationModel != null) { ValidationResult result = validationService.validate(resource, validationModel); if (!result.isValid()) { // give out validation messages from result.get } } } catch (IllegalStateException e) { // give out error message that the validation model is invalid! }</p>
+<p>Apart from that it is also possible to validate resources including all child resources having their own validation model (i.e. a merged view of the validation models is applied). The appropriate validation model is being looked up by getting the resource type for each node. Since by default the JCR will return the primary type in case there is no <code>sling:resourceType</code> property found on the node, either the 2nd parameter <code>enforceValidation</code> should be set to <code>false</code> or some resource types must be explicitly ignored by the given filter in the 3rd parameter <code>filter</code> to also properly support validation models which have children resources on their own.</p>
+<p>::java try { final Predicate ignoreResourceType1Predicate = new Predicate<Resource>() { @Override public boolean test(final Resource resource) { return !"resourcetype1".equals(resource.getResourceType()); } }; ValidationResult result = validationService.validateResourceRecursively(resource, false, ignoreResourceType1Predicate, false); if (!result.isValid()) { // give out validation messages from result.getFailureMessages() }</p>
+<p>} catch (IllegalStateException e) { // give out error message that an invalid validation model for at least one sub resource was found } catch (IllegalArgumentException e) { // one of the resource types is absolute or there was no validation model found for at least one sub resource }</p>
+<p>All methods to retrieve a validation model support a boolean parameter <code>considerResourceSuperTypeModels</code>. If this is set to true, the validation model is not only being looked up for exactly the given resource type but also for all its resource super types. The returned model is then a merged model of all found validation model along the resource type hierarchy.</p>
+<h2>ValidationResult</h2>
+<p>The <code>ValidationResult</code> indicates whether a given <code>Resource</code> or <code>ValueMap</code> is valid or invalid according to a given validation model. In the latter case it aggregates one or more <code>ValidationFailure</code>s. Each <code>ValidationFailure</code> is encapsulating an error message and a severity. The severity may be set on the following locations (where locations on top may overwrite severity from locations below):</p>
+<ol>
+  <li>validation model (per use case of a <code>Validator</code>)</li>
+  <li>severity defined on the <code>Validator</code></li>
+  <li>the default severity (may be set through the OSGi configuration for PID <code>org.apache.sling.validation.impl.ValidationServiceImpl</code>, is 0 by default)</li>
+</ol>
+<p>You have to use a <code>ResourceBundle</code> (<a href="/documentation/bundles/internationalization-support-i18n.html">Internationalization Support</a>) to resolve the message for a specific locale. By default Sling Validation comes only with English failure messages.</p>
+<h1>Validation Model Resources</h1>
+<p>The <code>ValidationModel</code> is constructed from resources with the resourceType <strong>sling/validation/model</strong>. Those resources are considered validation model resources if they are located below the Sling ResourceResolver search paths (*/apps* and <em>/libs</em>).</p>
+<p>The resources should have the following format:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property/Resource Name </th>
+      <th>Property or Resource </th>
+      <th>Type </th>
+      <th>Description </th>
+      <th>Mandatory </th>
+      <th>Example</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>sling:resourceType</code> </td>
+      <td>Property </td>
+      <td><code>String</code> </td>
+      <td>Always <code>sling/validation/model</code>, otherwise model will never be picked up by Sling Validation. </td>
+      <td>yes </td>
+      <td><code>sling/validation/model</code></td>
+    </tr>
+    <tr>
+      <td><code>validatingResourceType</code> </td>
+      <td>Property </td>
+      <td><code>String</code> </td>
+      <td>The resource type of the resource for which this validation model should be applied. Must always be relative to the resource resolver's search path (i.e. not start with a "/"). </td>
+      <td>yes </td>
+      <td><code>my/own/resourcetype</code></td>
+    </tr>
+    <tr>
+      <td><code>applicablePaths</code> </td>
+      <td>Property </td>
+      <td><code>String[]</code> </td>
+      <td>Path prefixes which restrict the validation model to resources which are below one of the given prefixes. No wildcards are supported. If not given, there is no path restriction. If there are multiple validation models registered for the same resource type the one with the longest matching applicablePath is chosen. </td>
+      <td>no </td>
+      <td><code>/content/mysite</code></td>
+    </tr>
+  </tbody>
+</table>
+<p><code>properties&lt;propertyName&gt;</code> | Resource | - | This resource ensures that the property with the name <code>&lt;propertyName&gt;</code> is there. The resource name has no longer a meaning if the property <code>nameRegex</code> is set on this node. | no | <code>false</code> <code>properties&lt;propertyName&gt;optional</code> | Property | <code>Boolean</code> | If <code>true</code> it is not an error if there is no property with the given <code>&lt;propertyName&gt;</code> or none matching the <code>nameRegex</code>. If not set or <code>false</code> the property must be there. | no | <code>false</code> <code>properties&lt;propertyName&gt;propertyMultiple</code> | Property | <code>Boolean</code> | If <code>true</code> only multivalue properties are allowed with the name <code>&lt;propertyName&gt;</code> or matching the <code>nameRegex</code>. If not set or <code>false</code>, multi- and single-value properties are accepted. | no | <code>false</code> <code>properties&lt;p
 ropertyName&gt;nameRegex</code> | Property | <code>String</code> | If set the <code>&lt;propertyName&gt;</code> has no longer a meaning. Rather all properties which match the given regular expression are considered. At least one match is required, otherwise the validated resource/valuemap is considered invalid. | no | <code>property[0-8]</code> <code>properties&lt;propertyName&gt;validators&lt;validatorId&gt;</code> | Resource | - | The <code>&lt;validatorId&gt;</code> must be the id of a validator. The id is given by the OSGi service property <code>validator.id</code> set in the validator. Each validators node might have arbitrarily many child resources (one per validator). | no | <code>false</code> <code>properties&lt;propertyName&gt;validators&lt;validatorId&gt;validatorArguments</code> | Property | <code>String[]</code> | The parametrization for the validator with the id <code>&lt;validatorId&gt;</code>. Each value must have the pattern <code>key=value</code>. The parametrizatio
 n differs per validator. | no | <code>regex=^[a-z]*$</code> <code>properties&lt;propertyName&gt;validators&lt;validatorId&gt;severity</code> | Property | <code>Integer</code> | The severity which should be set on all emitted validation failures by this validator. | no | <code>0</code> <code>children&lt;resourceName&gt;</code> | Resource | - | This resource ensures that the resource with the name <code>&lt;resourceName&gt;</code> is there. The resource name has no longer a meaning if the property <code>nameRegex</code> is set on this node. | no | <code>child1</code> <code>children&lt;resourceName&gt;nameRegex</code> | Property | <code>String</code> | If set the <code>&lt;resourceName&gt;</code> has no longer a meaning. Rather all resources whose name match the given regular expression are considered. At least one match is required, otherwise the validated resource/valuemap is considered invalid. | no | <code>child[1-9]</code> <code>children&lt;resourceName&gt;optional</code> | Proper
 ty | <code>Boolean</code> | If <code>true</code> it is not an error if there is no resource with the given <code>&lt;resourceName&gt;</code> or none matching the <code>nameRegex</code>. If not set or <code>false</code> the resource must be there. | no | <code>false</code> <code>children&lt;resourceName&gt;properties</code> | Resource | - | The properties can be configured on the child level in the same way as on the root level. | no | -</p>
+<h2>Validation Model Inheritance</h2>
+<p>Sling Validation optionally supports the inheritance of Sling Validation Models. This means not only the model for exactly the given resource type is considered, but also the models for all resource super types. To overwrite some property or child from one of the super type models, just define a property/child on the same level and with the same name in a model for a resource type which is more specific. That way the property/child on the super validation model is no longer effective.</p>
+<h2>Precedence of Validation Models</h2>
+<p>In case there are multiple validation models registered for the same resource type the one gets chosen which has the longest matching applicablePath. In case even that does not resolve to a single model the one in the first resource resolver's search path is chosen (models below <code>/apps</code> before the ones below <code>/libs</code>). If even that does not resolve to a single validation model any of the equally ranked models might be picked.</p>
+<h1>Usage in <a href="/documentation/bundles/models.html">Sling Models</a></h1>
+<h2>Since Sling Models 1.2.0</h2>
+<p>See <a href="/documentation/bundles/models.html#validation">Sling Models validation</a></p>
+<h2>Before Sling Models 1.2.0</h2>
+<p>One needs to call the validate method within the PostConstruct method of the according Sling Model</p>
+<p>::java @SlingObject protected Resource resource;</p>
+<p>@OSGiService protected ValidationService validation;</p>
+<p>@PostConstruct public void validate() { try { ValidationModel validationModel = validation.getValidationModel(resource); if (validationModel == null) { LOG.warn("No validation defined for resource '{}' with type '{}'", resource.getPath(), resource.getResourceType());</p>
+<p>} else { ValidationResult result = validation.validate(resource, validationModel); if (!result.isValid()) { // give out the validation result } } } catch (IllegalStateException e) { LOG.warn("Invalid validation model for resource '{}' with type '{}'", resource.getPath(), resource.getResourceType()); } }</p>
+<h1>Validators</h1>
+<table>
+  <thead>
+    <tr>
+      <th>Validator ID </th>
+      <th>Description </th>
+      <th>Parameters </th>
+      <th>Since</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/validators/RegexValidator.java"><code>org.apache.sling.validation.core.RegexValidator</code></a> </td>
+      <td>Validates that a property value matches a given regular expression </td>
+      <td><code>regex</code>, mandatory parameter giving a regular expression according to the pattern described in <a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html">java.util.regex.Pattern</a>. Only if the property value matches this expression it is considered valid. </td>
+      <td>1.0.0</td>
+    </tr>
+  </tbody>
+</table>
+<h1>Writing Validators</h1>
+<p>To write a validator one needs to implement the <a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/spi/Validator.java"><code>org.apache.sling.validation.spi.Validator</code></a> interface in an OSGi service (look at <a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/validators/RegexValidator.java"><code>org.apache.sling.validation.core.RegexValidator</code></a> for an example). That interface defines the method <code>validate</code>. That is called for each property which is bound to the validator through the validation model. Each validator needs to specify one type parameter which defines upon which classes the validator can act (usually <code>String</code>). Array types are also supported here. Collection types are not supported. If a property value cannot be converted to the requested type from the validator (throu
 gh <code>ValueMap.get(name, type)</code>), validation will fail.</p>
+<p>In addition the OSGi service must expose a String property named <code>validation.id</code>. The value of this property should always start with the providing bundle's symbolic name. Only through this value the validator can be referenced from validation models. If multiple validators have the same <code>validation.id</code> value the one with the highest service ranking gets always chosen.</p>
+<p>A validator may also expose a service property named <code>validation.severity</code> with an Integer value. This defines the default severity of the Validator (which may be overwritten in the validation model).</p>
+<h1>References</h1>
+<ol>
+  <li><a href="http://www.slideshare.net/raducotescu/apache-sling-generic-validation-framework">Apache Sling Generic Validation Framework, adaptTo 2014</a></li>
+</ol></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/web-console-extensions.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/web-console-extensions.html b/documentation/bundles/web-console-extensions.html
new file mode 100644
index 0000000..8ba13cc
--- /dev/null
+++ b/documentation/bundles/web-console-extensions.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Web Console Extensions</h1></header><p>The Apache Sling project provides two extensions to the <a href="http://felix.apache.org/site/apache-felix-web-console.html">Apache Felix Web Console</a> (in addition to a number of plugins, of course):</p>
+<p>[TOC]</p>
+<h2>Branding (org.apache.sling.extensions.webconsolebranding)</h2>
+<p>The Apache Sling Web Console Branding provided by Apache Sling is currently just for the product logo displayed in the upper right corner of the Web Console and some titles and strings.</p>
+<p>This bundle will attach as a fragment bundle to the Apache Felix Web Console bundle. To enable it after installation into a running system, you might have to refresh the package imports of the Apache Felix Web Console bundle. If you install using the Apache Felix Web Console bundle installation functionality, this will be taken care of by the Web Console.</p>
+<h2>Security Provider (org.apache.sling.extensions.webconsolesecurityprovider)</h2>
+<p>The Apache Sling Web Console Security Provider implements the Apache Felix Web Console <code>WebConsoleSecurityProvider</code> and <code>WebConsoleSecurityProvider2</code> interface for authenticating Web Console users against the JCR repository. Each username and password presented is used to login to the JCR repository and to check the respective session.</p>
+<ol>
+  <li>Ensure the username and password can be used to login to the default workspace. If not, access is denied</li>
+  <li>If the username presented is one of the user names configured with the <code>users</code> configuration property, access is granted.</li>
+  <li>Otherwise if the user is a (direct or indirect) member of one of the groups configured with the <code>groups</code> configuration property, access is granted.</li>
+</ol>
+<p>Access is denied if the username and password cannot be used to login to the default workspace or if the user is neither one of the configured allowed users nor in any of the configured groups.</p>
+<h3>Configuration</h3>
+<p>The Security Provider is configured with the configuration PID <code>org.apache.sling.extensions.webconsolesecurityprovider.internal.SlingWebConsoleSecurityProvider</code> supporting the following properties:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Type </th>
+      <th>Default Value </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>users</code> </td>
+      <td><code>String</code>, <code>String[]</code> or <code>Vector&lt;String&gt;</code> </td>
+      <td>admin </td>
+      <td>The list of users granted access to the Web Console </td>
+    </tr>
+  </tbody>
+</table>
+<p>| <code>groups</code>| <code>String</code>, <code>String[]</code> or <code>Vector&lt;String&gt;</code> | --- | The list of groups whose (direct or indirect) members are granted access to the Web Console |</p>
+<p>Note, that while the default value explicitly grants the <em>admin</em> user to access the Web Console it is suggested that system administrators define a special group and assign users with Web Console access to this group.</p>
+<h3>Authentication Handling</h3>
+<p>As long as the web console security provider bundle is not activate and has not installed one of the above mentioned services, the default authentication of the web console is used. Once the bundle is active and a JCR repository service is available, the repository is used for authentication as explained above. But still the login form of the web console is used which is usually basic authentication. Once startup is finished and a Sling authentication service is available as well, the security provider replaces the JCR repository based auth provider with a Sling based auth provider. Both authenticate against the JCR repository, however the Sling based one using Sling to render the login form. Therefore, this provider is not registered until startup is finished</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/xml-support.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/xml-support.html b/documentation/bundles/xml-support.html
new file mode 100644
index 0000000..283529d
--- /dev/null
+++ b/documentation/bundles/xml-support.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>XML support</h1></header><p>Excerpt: XML mechanisms supported by Sling</p>
+<p>Out of the box, Sling provides no special bundles for XML. However, Sling supports multiple mechanisms and libraries. The ones we have validated with integration tests are:</p>
+<ul>
+  <li>XPath ( see the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/XpathServlet.java">XPathServlet</a> )</li>
+  <li>SAX ( see the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/SaxServlet.java">SaxServlet</a> )</li>
+  <li>DOM ( see the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/servlets/DomServlet.java">DomServlet</a> )</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/configuration.html
----------------------------------------------------------------------
diff --git a/documentation/configuration.html b/documentation/configuration.html
new file mode 100644
index 0000000..ba94b3d
--- /dev/null
+++ b/documentation/configuration.html
@@ -0,0 +1,222 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Configuration</h1></header><h2>Introduction</h2>
+<p>Configuration in Sling is aligned with respective support by the OSGi specification:</p>
+<ul>
+  <li>Framework and Java system properties are available through the <code>BundleContext.getProperty(String)</code> method. These properties are provided in Sling through the Sling launcher.</li>
+  <li>Bundle Header values are available through the <code>Bundle.getHeaders()</code> and <code>Bundle.getHeaders(String)</code> methods. These header values are set by the bundle developer in the <code>META-INF/MANIFEST.MF</code> file. In fact, all main manifest attributes are available through these methods.</li>
+  <li>Components managed by the Service Component Runtime and declared in component descriptor files listed in the <code>Service-Component</code> manifest header access configuration properties through the <code>ComponentContext.getProperties()</code> method. These properties have three sources:</li>
+</ul>
+<ol>
+  <li>Configuration specified specifically for factory components</li>
+  <li>Properties retrieved from the Configuration Admin Service</li>
+  <li>Properties set in the component descriptor</li>
+</ol>
+<ul>
+  <li>Configuration properties provided to <code>ManagedService</code> and <code>ManagedServiceFactory</code> instances by the Configuration Admin Service.</li>
+</ul>
+<p>For the discussion to follow we differentiate between initial configuration provided by Framework and system properties and managed configuration provided by the Configuration Admin Service.</p>
+<p>Components managed by the Service Component Runtime are generally configured (as listed above) through the descriptor properties and configuration set by Configuration Admin Service configuration. The descriptor property values may be seen as configuration default values set by the component developer, which may be overwritten by user configuration through the Configuration Admin Service. Components may but are not required to make use of Framework properties by accessing the <code>BundleContext</code> through the <code>ComponentContext</code> given to the <code>activate(ComponentContext)</code> method of the component.</p>
+<h2>Initial Configuration</h2>
+<p>The lifecycle of the OSGi framework implemented by an instance of the <code>org.apache.felix.framework.Felix</code> class is managed by the Sling launcher class <code>org.apache.sling.launcher.Sling</code>. This class is used by the standalone main class (<code>org.apache.sling.launcher.main.Main</code>) and the Sling Servlet (<code>org.apache.sling.launcher.servlet.SlingServlet</code>) to control the lifecycle.</p>
+<p>The Sling launcher is responsible to provide the Framework properties to the OSGi framework. The properties are prepared as a <code>java.util.Map&lt;String, String&gt;</code> instance as follows (later steps may overwrite properties defined in earlier steps) :</p>
+<ol>
+  <li>Load core properties from the embedded <code>sling.properties</code> file.</li>
+  <li>Resolve any property file inclusions. This is mainly used to resolve the correct JRE package definitions for the JRE version used.</li>
+  <li>Overwrite with any properties provided by the main class or the Sling Servlet.</li>
+  <li>Make sure the <code>sling.home</code> property is set defining a sensible default value if missing</li>
+  <li>Load the contents of the <code>${sling.home}/sling.properties</code> file</li>
+  <li>Overwrite properties with Java system properties. This step only considers system properties of the same names as properties already existing. That is, the system properties are not just copied into the properties here. Additionally this step my be omitted if the <code>sling.ignoreSystemProperties</code> property is set to <code>true</code>.</li>
+  <li>Resolve any property file inclusions. This may be used to provide more configurability depending on the integration.</li>
+  <li>Handle OSGi boot delegation support (see below).</li>
+  <li>Resolve property references of the form <code>${propName</code>}</li>
+  <li>For each property value starting with <code>ontext:/</code> do the following, assuming the value to be an URL with scheme <code>context:</code>:</li>
+</ol>
+<ul>
+  <li>Copy the application resource to <code>${sling.home</code>} preserving the URL path unless such a file already exists.</li>
+  <li>Replace the property value with the path to the newly created file. The path has the form <code>${sling.home}/relpath</code>.</li>
+</ul>
+<ol>
+  <li>Store the properties as <code>${sling.home}/sling.properties</code> to be re-used on next startup</li>
+  <li>Setup Bundle auto installation for the Felix Framework</li>
+</ol>
+<p>Using file system copies of the initial configuration and referred files, it is easy to modify this configuration without the need to unpack and repackage the web application archive.</p>
+<p>The only property really required is actually the <code>sling.home</code> property, which defines the file system location where runtime files will be placed. The default if this property is missing will be <em>sling</em> in the current working directory as defined the <code>user.dir</code> system property.</p>
+<h3>Standalone Application</h3>
+<p>When launching Sling as a standalone application the <code>sling-app.jar</code> file is used. This is an executable JAR File. The <code>sling.properties</code> file as well as the <code>sling_install.properties</code> and JRE specific properties files are located at the root of the JAR file hierarchy.</p>
+<p>The standalone application currently sets properties for the third step of the configuration setup to ensure the HTTP Servlet integration is using the Apache Felix <em>http.jetty</em> bundle. Additionally system properties may be set using the <code>-D</code> command line switch of the Java binary.</p>
+<p>In addition the following command line arguments are accepted:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Argument </th>
+      <th>Sling property </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>-l loglevel</code> </td>
+      <td><code>org.apache.sling.osgi.log.level</code> </td>
+      <td>The initial loglevel (0..4, FATAL, ERROR, WARN, INFO, DEBUG) </td>
+    </tr>
+    <tr>
+      <td><code>-f logfile</code> </td>
+      <td><code>org.apache.sling.osgi.log.file</code> </td>
+      <td>The log file, "-" for stdout </td>
+    </tr>
+    <tr>
+      <td><code>-c slinghome</code> </td>
+      <td><code>sling.home</code> </td>
+      <td>the sling context directory </td>
+    </tr>
+  </tbody>
+</table>
+<p>| <code>-a address</code> | -- | the interfact to bind to (use 0.0.0.0 for any) (not supported yet) | | <code>-p port</code> | <code>org.osgi.service.http.port</code> | the port to listen to (default 8080) | | <code>-h</code> | -- | Prints a simple usage message and exits. |</p>
+<p>The standalone application exits with status code 0 (zero) if Sling terminates normally, that is if the OSGi framework is stopped or if just the usage note has been displayed. If any error occurrs during command line parsing, the cause is printed to the error output and the application exists with status code 1 (one). If the OSGi framework fails to start, the cause is printed to the error output and the application exists with status code 2.</p>
+<h3>Web Application</h3>
+<p>When launching Sling as a web application using the <code>sling-servlet.war</code> or any derived Web Application archive file, the <code>sling.properties</code> file is located in the <code>WEB-INF</code> folder along with the <code>sling_install.properties</code> and JRE specific properties files.</p>
+<p>The Sling Servlet uses the Servlet Context and Servlet <code>init-param</code> configurations to prepare the properties for the third step of the configuration setup.</p>
+<p>If the OSGi framework fails to startup for any reason a <code>javax.servlet.UnavailableException</code>.</p>
+<h3>Property File Inclusions</h3>
+<p>Twice in the configuration setup (second and seventh step) any property file inclusions will be handled. Property files may be included by defining one or more properties containing a comma-separated list of properties files to include. Property file inclusion looks at the <code>sling.include</code> property and any other property whose prefix is <code>sling.include.</code>. When such properties exist, the files listed in those properties are included.</p>
+<p>The order of handling the property file inclusion properties is defined as natural sort order of the actual property names. So the properties of the files listed in the <code>sling.include.first</code> property will be loaded before the files listed in the <code>sling.include.second</code> but after the files listed in the <code>sling.include.a</code> property.</p>
+<p>Any file which does not exist is silently ignored.</p>
+<p>The names of the files are resolved as follows:</p>
+<ol>
+  <li>If a resource exists at the same location as the initial <code>sling.properties</code> file packaged with the application, that resource is used</li>
+  <li>If the name is a relative file name, it is looked for in the <code>sling.home</code> directory</li>
+  <li>If the name is an absolute file name, it is used as is</li>
+</ol>
+<p><em>Example</em></p>
+<p>The packaged <code>sling.properties</code> file contains the following properties file inclusion setting:</p>
+<p>sling.include.jre = jre-${java.specification.version}.properties</p>
+<p>This is used to include the JRE package list to be made visible inside the OSGi framework.</p>
+<h3>OSGi Boot Delegation Support</h3>
+<p>Some packages may have to be shared between bundles in an OSGi framework and the rest of Java VM in which the framework has been launched. This is especially true for OSGi framework instances launched in embedding such as Servlet Containers. In the case of a Sling Application accessing a JCR Repository launched in a different Web Application, this mainly concerns an API packages as well as the JNDI Initial Factory package(s).</p>
+<p>To cope with this sharing issue, the OSGi core specification defines two properties, which may list packages to be used from the environment:</p>
+<ul>
+  <li><em><code>org.osgi.framework.system.packages</code></em> - This property lists package names which are added to the list of exported packages of the system bundle of the OSGi framework. These packages are used in the resolution process just as any package listed in an <code>Export-Package</code> bundle manifest header.</li>
+  <li><em><code>org.osgi.framework.bootdelegation</code></em> - This property lists packages, which are always used from the environment. As such, these packages will never be looked up in package wirings as are packages imported by listing them in the <code>Import-Package</code> bundle manifest header.</li>
+</ul>
+<p>Sometimes, especially in the Servlet Container case, it is important to use the shared classes from the container and not resolve using standard OSGi resolution. In such cases, the packages of these shared classes must be listed in the <code>org.osgi.framework.bootdelegation</code> property. Sling provides a mechanism to extend the default setting of the <code>org.osgi.framework.bootdelegation</code> property by adding properties prefixed with <code>sling.bootdelegation.</code>. The value of each of these prefixed properties is conditionally appended to the <code>org.osgi.framework.bootdelegation</code> property. <em>Conditionally</em> means, that the property name may contain the fully qualified name of a class, which is checked to see whether to add the property value or not.</p>
+<p><em>Examples</em></p>
+<table>
+  <thead>
+    <tr>
+      <th>Configuration </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>sling.bootdelegation.simple = com.some.package</code> </td>
+      <td>This setting unconditionally adds the <code>com.some.package</code> package to the <code>org.osgi.framework.bootdelegation</code> property </td>
+    </tr>
+    <tr>
+      <td><code>sling.bootdelegation.class.com.some.other.Main = com.some.other</code> </td>
+      <td>This setting checks whether the <code>com.some.other.Main</code> class is known. If so, the <code>com.some.other</code> package is added to the <code>org.osgi.framework.bootdelegation</code> property. Otherwise the <code>com.some.other</code> package is not added - and therefore must be exported by a bundle if required for use inside the framework. </td>
+    </tr>
+  </tbody>
+</table>
+<p><em>Note</em> Even though packages listed in the <code>org.osgi.framework.bootdelegation</code> property will always be loaded from the environment, any bundles using these packages must still import them (through <code>Import-Package</code> or <code>DynamicImport-Package</code>) and the bundles must resolve for being usable.</p>
+<h3>OSGi System Packages Support</h3>
+<p>As listed in the above section on OSGi Boot Delegation Support, the <code>org.osgi.framework.system.packages</code> property may be used to extend the export list of the system bundle. Similar to the support for extending the boot delegation packages list, Sling supports extending the system packages list. The mechanism to extend the default setting of the <code>org.osgi.framework.system.packages</code> property by adding properties prefixed with <code>sling.system.packages.</code>. The value of each of these prefixed properties is conditionally appended to the <code>org.osgi.framework.system.packages</code> property. <em>Conditionally</em> means, that the property name may contain the fully qualified name of a class, which is checked to see whether to add the property value or not.</p>
+<p><em>Examples</em></p>
+<table>
+  <thead>
+    <tr>
+      <th>Configuration </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>sling.system.packages.simple = com.some.package</code> </td>
+      <td>This setting unconditionally adds the <code>com.some.package</code> package to the <code>org.osgi.framework.system.packages</code> property </td>
+    </tr>
+    <tr>
+      <td><code>sling.system.packages.class.com.some.other.Main = com.some.other</code> </td>
+      <td>This setting checks whether the <code>com.some.other.Main</code> class is known. If so, the <code>com.some.other</code> package is added to the <code>org.osgi.framework.system.packages</code> property. Otherwise the <code>com.some.other</code> package is not added - and therefore must be exported by a bundle if required for use inside the framework. </td>
+    </tr>
+  </tbody>
+</table>
+<p><em>Note</em> Packages listed in the <code>org.osgi.framework.system.packages</code> required by any bundles must be imported by those bundles by listing them in the <code>Import-Package</code> or <code>DynamicImport-Package</code> manifest header.</p>
+<h2>Recommendations for property names</h2>
+<p>The following system property names are reserved:</p>
+<ul>
+  <li>Names starting with <code>org.osgi.</code> are reserved for OSGi defined Framework properties</li>
+  <li>Names starting with <code>org.apache.felix.</code> are reserved for the Felix Framework</li>
+  <li>Names starting with <code>sling.</code> and <code>org.apache.sling.</code> are reserved for Sling</li>
+</ul>
+<p>To prevent property name collisions, I suggest the following convention:</p>
+<ul>
+  <li>Use fully qualified property names for initial configuration through Framework properties</li>
+  <li>Use unqualified property names for configuration through the Configuration Admin Service</li>
+</ul>
+<h2>Well Known Properties</h2>
+<p>The following table is a collection of well known property names from different parts of Project Sling.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>sling.home</code> </td>
+      <td>Defines the file system location where Project Sling will write copies of the initial configuration. This property should also be used to define other local file system locations such as the directory to use for the Apache Felix Bundle Cache (<code>${sling.home}/felix</code> by default). If this property is not set it defaults to <code>${user.dir}/sling</code>. </td>
+    </tr>
+    <tr>
+      <td><code>sling.home.url</code> </td>
+      <td>Contains the Sling directory set in the <code>sling.home</code> property as a valid URL. This property may be used in situations where the Sling directory is required as an URL. This property is automatically set by the Sling application and may not be modified by configuration files. </td>
+    </tr>
+    <tr>
+      <td><code>sling.ignoreSystemProperties</code> </td>
+      <td>Whether to overwrite any configuration properties with Java system properties or not. By default this property is set to <code>true</code> by the Sling Servlet but not set by the Sling main class. The reason to set this by default in the Sling Servlet is to not induce values from the environment, which may not be appropriate in the Web Application case. </td>
+    </tr>
+    <tr>
+      <td><code>obr.repository.url</code> </td>
+      <td>A comma-separated list of OSGi Bundle Repository URLs. See <em>sling.properties</em> on the page <a href="/documentation/the-sling-engine/the-sling-launchpad.html#slingproperties">the Sling Launchpad</a>. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.*</code> </td>
+      <td>Properties providing initial configuration to the Sling Log Service. See <em>sling.properties</em> on the page <a href="/documentation/the-sling-engine/the-sling-launchpad.html#slingproperties">the Sling Launchpad</a>. </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Configuration Admin Service</h2>
+<p>Configuration of the system entities, such as services and components, by the system administrator is supported the Configuration Admin Service. The Configuration Admin Service acts as the center for the management of the configuration data, to which GUI-based tools will connect to retrieve and update configuration data. The Configuration Admin Service is responsible for persisting the configuration data and for providing configuration consumers with the configuration data. Specifically services registered with the <code>ManagedService</code> or <code>ManagedServiceFactory</code> interfaces are updated with the configuration upon updated. The Service Component Runtime on the other hand recognizes updated configuration and provides it to the managed components as defined in the OSGi Declarative Services Specification.</p>
+<p>By default the Configuration Admin Service is installed when Sling is started for the first time. This service is used by the Service Component Runtime launching the OSGi components declared in the bundles with configuration values. The Sling Management Console provides a simple GUI to manage these configuration elements on the 'Configuration' page.</p>
+<p>For more information on the Configuration Admin Service refer to the OSGi Configuration Admin Service Specification in the OSGi Service Platform Service Compendium book.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development.html
----------------------------------------------------------------------
diff --git a/documentation/development.html b/documentation/development.html
new file mode 100644
index 0000000..9e4455f
--- /dev/null
+++ b/documentation/development.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Development</h1></header><p>Welcome to the wonderful world of extending Sling. Refer to these pages to find out how we envision the extension of Sling and how to do it.</p>
+<h2>Using Sling as your Development Framework</h2>
+<p>Look here for more information on developper support when your are using Sling to build your own applications.</p>
+<ul>
+  <li><a href="/documentation/development/getting-and-building-sling.html">Getting and Building Sling</a></li>
+  <li><a href="/documentation/development/slingstart.html">Defining and Launching a Sling based Application</a></li>
+  <li><a href="/documentation/development/embedding-sling.html">Embedding Sling</a></li>
+  <li><a href="/documentation/development/logging.html">Logging</a></li>
+  <li><a href="/documentation/development/client-request-logging.html">Client Request Logging</a></li>
+  <li><a href="/documentation/development/monitoring-requests.html">Monitoring Requests</a></li>
+  <li><a href="/documentation/development/repository-based-development.html">Repository Based Development</a></li>
+  <li><a href="/documentation/development/ide-tooling.html">Sling IDE Tooling</a></li>
+  <li><a href="/documentation/development/jsr-305.html">Leveraging JSR-305 null annotations</a></li>
+</ul>
+<h2>Testing Sling-based Applications</h2>
+<ul>
+  <li><a href="/documentation/tutorials-how-tos/testing-sling-based-applications.html">Testing Sling-based Applications</a></li>
+  <li><a href="/documentation/bundles/org-apache-sling-junit-bundles.html">Junit Server-Side Tests Support</a></li>
+  <li><a href="/documentation/development/resourceresolver-mock.html">Resource Resolver Mock</a></li>
+  <li><a href="/documentation/development/sling-mock.html">Sling Mocks</a></li>
+  <li><a href="/documentation/development/osgi-mock.html">OSGi Mocks</a></li>
+  <li><a href="/documentation/development/jcr-mock.html">JCR Mocks</a></li>
+  <li><a href="/documentation/development/hamcrest.html">Hamcrest integration</a></li>
+</ul>
+<h2>Maven Stuff</h2>
+<p>Sling is using Apache Maven 3 as its build system. Over time we have created a number of Maven 3 plugins and gathered a whole range of knowledge about using Maven.</p>
+<ul>
+  <li><a href="http://sling.apache.org/components/maven-sling-plugin/">Maven Sling Plugin</a></li>
+  <li><a href="http://sling.apache.org/components/htl-maven-plugin/">HTL Maven Plugin</a></li>
+  <li><a href="http://sling.apache.org/components/slingstart-maven-plugin/">SlingStart Maven Plugin</a></li>
+  <li><a href="/documentation/development/maven-launchpad-plugin.html">Maven Launchpad Plugin</a></li>
+  <li><a href="http://sling.apache.org/components/jspc-maven-plugin/">JspC Maven Plugin</a></li>
+  <li><a href="/documentation/development/maven-archetypes.html">Maven Archetypes</a></li>
+  <li><a href="/documentation/development/maventipsandtricks.html">Maven Tips &amp; Tricks</a></li>
+</ul>
+<h2>Sling Development</h2>
+<p>Last but not least, here is some more information on how we ourselves are working on Sling</p>
+<ul>
+  <li><a href="/documentation/development/dependency-management.html">Dependency Management</a></li>
+  <li><a href="/documentation/development/version-policy.html">Version Policy</a></li>
+  <li><a href="/documentation/development/issue-tracker.html">Issue Tracker</a></li>
+  <li><a href="/documentation/development/release-management.html">Release Management</a></li>
+  <li><a href="/documentation/development/maven-usage.html">Maven Usage</a></li>
+  <li>To run our integration tests suite see the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/README.txt">launchpad/testing module README</a> and the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/README.txt">launchpad/integration-tests README</a> for how to run individual integration tests. We use the <a href="https://issues.apache.org/jira/issues/?jql=labels%20%3D%20sling-IT">sling-IT</a> label in JIRA for known issues with our integration tests.</li>
+  <li>A Sonar analysis is available on the <a href="https://analysis.apache.org/dashboard/index/org.apache.sling:sling-builder">analysis.apache.org</a> server.</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/client-request-logging.html
----------------------------------------------------------------------
diff --git a/documentation/development/client-request-logging.html b/documentation/development/client-request-logging.html
new file mode 100644
index 0000000..0504b59
--- /dev/null
+++ b/documentation/development/client-request-logging.html
@@ -0,0 +1,325 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Client Request Logging</h1></header><p>Sling provides extensive support to log various information at the before and after processing client requests. Out of the box, there are two loggers configured to write traditional <code>access.log</code> and <code>request.log</code> files. In addition more logging can be configured by providing OSGi Configuration Admin configuration.</p>
+<h2>Traditional access.log and request.log Files</h2>
+<p>In the Web Console configure the <em>Apache Sling Request Logger</em> (PID=<code>org.apache.sling.engine.impl.log.RequestLogger</code>) configuration.</p>
+<p>In the Sling Web Console locate the Configuration page (<code>/system/console/configMgr</code>) and click on the pencil (edit) symbol on the <em>Apache Sling Request Logger</em> line. This opens a dialog to enter the configuration whose properties can be configured as follows:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter </th>
+      <th>Name </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Request Log Name </td>
+      <td><code>request.log.output</code> </td>
+      <td>logs/request.log </td>
+      <td>Name of the destination for the request log. The request log logs the entry and exit of each request into and out of the system together with the entry time, exit time, time to process the request, a request counter as well as the final status code and response content type. In terms of Request Logger Service formats, request entry is logged with the format <code>%t [%R] -&gt; %m %U%q %H</code> and request exit is logged with the format <code>%{end}t [%R] &lt;- %s %{Content-Type}o %Dms</code> (See <a href="#log-format-specification">Log Format Specification</a> below for the specification of the format). </td>
+    </tr>
+    <tr>
+      <td>Request Log Type </td>
+      <td><code>request.log.outputtype</code> </td>
+      <td>Logger Name </td>
+      <td>Type of Logger named with the Logger Name parameter. See <a href="#log-output">Log Output</a> below </td>
+    </tr>
+    <tr>
+      <td>Enable Request Log </td>
+      <td><code>request.log.enabled</code> </td>
+      <td>true </td>
+      <td>Whether to enable Request logging or not. </td>
+    </tr>
+    <tr>
+      <td>Access Log Name </td>
+      <td><code>access.log.output</code> </td>
+      <td>logs/access.log </td>
+      <td>Name of the destination for the access log. The access log writes an entry for each request as the request terminates using the NCSA extended/combined log format. In terms of Request Logger Service formats the access log is written with the format <code>%h %l %u %t &quot;%r&quot; %&gt;s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;</code> (See <a href="#log-format-specification">Log Format Specification</a> below for the specification of the format). </td>
+    </tr>
+    <tr>
+      <td>Access Log Type </td>
+      <td><code>access.log.outputtype</code> </td>
+      <td>Logger Name </td>
+      <td>Type of Logger named with the Logger Name parameter. See <a href="#log-output">Log Output</a> below </td>
+    </tr>
+    <tr>
+      <td>Enable Access Log </td>
+      <td><code>access.log.enabled</code> </td>
+      <td>true </td>
+      <td>Whether to enable Access logging or not. </td>
+    </tr>
+  </tbody>
+</table>
+<h4>Log Output</h4>
+<p>Output of client request logging is defined by the Logger Type and and Logger Name where the use of the Logger Name property value depends on the Logger Type:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Type Code </th>
+      <th>Type Name </th>
+      <th>Description and Logger Name interpretation </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>0 </td>
+      <td>Logger Name </td>
+      <td>Writes the logging information to a named SLF4J Logger. The name of the Logger is defined in the Logger Name property. The actual destination of the log messages is defined the SLF4J configuration for the named logger </td>
+    </tr>
+    <tr>
+      <td>1 </td>
+      <td>File Name </td>
+      <td>Writes the logging information to a file, on message per line. The file name is an absolute or relative path name. If the name is relative, it is resolved against the <code>sling.home</code> framework property. </td>
+    </tr>
+    <tr>
+      <td>2 </td>
+      <td>RequestLog Service </td>
+      <td>Sends the logging information to a <code>org.apache.sling.engine.RequestLog</code> service whose <code>requestlog.name</code> service registration property must the same as the value of the Logger Name property. If more than one such service is registered, all services are called. If no such service is registered, the logging information is discarded. Using RequestLog Services is deprecated. </td>
+    </tr>
+  </tbody>
+</table>
+<p><strong>Note:</strong> If logging to a file, this file is not rotated and/or limited by size. To get log file rotation use the <em>Logger Name</em> logging type. See <a href="#rotating-logger-files">Rotating Logger Files</a> below for information on how logging information can be written to rotated and/or size limited files.</p>
+<h3>Additional per-request Loggers</h3>
+<p>In the Web Console create <em>Apache Sling Customizable Request Data Logger</em> (Factory PID=<code>org.apache.sling.engine.impl.log.RequestLoggerService</code>) configuration.</p>
+<p>In the Sling Web Console locate the Configuration page (<code>/system/console/configMgr</code>) and click on the <code>+</code> (plus) symbol on the <em>Apache Sling Customizable Request Data Logger</em> line. This opens a dialog to enter the configuration whose properties can be configured as follows:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter </th>
+      <th>Name </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Log Format </td>
+      <td><code>request.log.service.format</code> </td>
+      <td>&nbsp; </td>
+      <td>Specify a <a href="#log-format-specification">Log Format Specification</a> as described below </td>
+    </tr>
+    <tr>
+      <td>Logger Type </td>
+      <td><code>request.log.service.outputtype</code> </td>
+      <td>Logger Name/<code>0</code> </td>
+      <td>Type of Logger named with the Logger Name parameter. See <a href="#log-output">Log Output</a> above </td>
+    </tr>
+    <tr>
+      <td>Logger Name </td>
+      <td><code>request.log.service.output</code> </td>
+      <td><code>request.log</code> </td>
+      <td>Name of the Logger to be used. See <a href="#log-output">Log Output</a> above </td>
+    </tr>
+    <tr>
+      <td>Request Entry </td>
+      <td><code>request.log.service.onentry</code> </td>
+      <td>unchecked/<code>false</code> </td>
+      <td>Whether logger is called at the start of request processing or after processing the request </td>
+    </tr>
+  </tbody>
+</table>
+<h4>Log Format Specification</h4>
+<p>The log format specification generally follows the <a href="http://httpd.apache.org/docs/current/mod/mod_log_config.html">definition of the <code>format</code> argument for the <code>LogFormat</code> and <code>CustomLog</code> directives of Apache httpd</a>. Please see the below table for details and exceptions.</p>
+<p>The characteristics of the request itself are logged by placing "%" directives in the format string, which are replaced in the log file by the values as follows:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Format String </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>%%</code> </td>
+      <td>The percent sign </td>
+    </tr>
+    <tr>
+      <td><code>%a</code> </td>
+      <td>Remote IP-address </td>
+    </tr>
+    <tr>
+      <td><code>%A</code> </td>
+      <td>Local IP-address </td>
+    </tr>
+    <tr>
+      <td><code>%B</code> </td>
+      <td>Size of response in bytes, excluding HTTP headers. </td>
+    </tr>
+    <tr>
+      <td><code>%b</code> </td>
+      <td>Size of response in bytes, excluding HTTP headers. In CLF format, i.e. a '-' rather than a 0 when no bytes are sent. </td>
+    </tr>
+    <tr>
+      <td><code>%{Foobar}C</code> </td>
+      <td>The contents of cookie Foobar in the request sent to the server. </td>
+    </tr>
+    <tr>
+      <td><code>%D</code> </td>
+      <td>The time taken to serve the request, in milliseconds. Please note that this deviates from the Apache httpd format. </td>
+    </tr>
+    <tr>
+      <td><code>%{FOOBAR}e</code> </td>
+      <td>Not supported in Sling; prints nothing. </td>
+    </tr>
+    <tr>
+      <td><code>%f</code> </td>
+      <td>The absolute path of the resolved resource </td>
+    </tr>
+    <tr>
+      <td><code>%h</code> </td>
+      <td>Remote host </td>
+    </tr>
+    <tr>
+      <td><code>%H</code> </td>
+      <td>The request protocol </td>
+    </tr>
+    <tr>
+      <td><code>%{Foobar}i</code> </td>
+      <td>The contents of Foobar: header line(s) in the request sent to the server. </td>
+    </tr>
+    <tr>
+      <td><code>%k</code> </td>
+      <td>Not supported in Sling; prints nothing. </td>
+    </tr>
+    <tr>
+      <td><code>%l</code> </td>
+      <td>Not supported in Sling; prints nothing. </td>
+    </tr>
+    <tr>
+      <td><code>%m</code> </td>
+      <td>The request method </td>
+    </tr>
+    <tr>
+      <td><code>%{Foobar}n</code> </td>
+      <td>Not supported in Sling; prints nothing. </td>
+    </tr>
+    <tr>
+      <td><code>%{Foobar}o</code> </td>
+      <td>The contents of Foobar: header line(s) in the reply. </td>
+    </tr>
+    <tr>
+      <td><code>%p</code> </td>
+      <td>The canonical port of the server serving the request </td>
+    </tr>
+    <tr>
+      <td><code>%{format}p</code> </td>
+      <td>The canonical port of the server serving the request or the server's actual port or the client's actual port. Valid formats are canonical, local, or remote. </td>
+    </tr>
+    <tr>
+      <td><code>%P</code> </td>
+      <td>The <em>name of the thread</em> ~~process ID of the child~~ that serviced the request. </td>
+    </tr>
+    <tr>
+      <td><code>%{format}P</code> </td>
+      <td>Same as <code>%P</code>; the <code>format</code> parameter is ignored. </td>
+    </tr>
+    <tr>
+      <td><code>%q</code> </td>
+      <td>The query string (prepended with a ? if a query string exists, otherwise an empty string) </td>
+    </tr>
+    <tr>
+      <td><code>%r</code> </td>
+      <td>First line of request </td>
+    </tr>
+    <tr>
+      <td><code>%R</code> </td>
+      <td>The number of requests processed by Sling since the last start. </td>
+    </tr>
+    <tr>
+      <td><code>%s</code> </td>
+      <td>Status. </td>
+    </tr>
+    <tr>
+      <td><code>%t</code> </td>
+      <td>Time the request was received (standard english format) </td>
+    </tr>
+    <tr>
+      <td><code>%{format}t</code> </td>
+      <td>Same as <code>%t</code>; the <code>format</code> parameter is ignored unless it is the literal value <em>end</em> indicating to use the time of request terminating (instead of the time of request receipt). </td>
+    </tr>
+    <tr>
+      <td><code>%T</code> </td>
+      <td>The time taken to serve the request, in seconds. </td>
+    </tr>
+    <tr>
+      <td><code>%u</code> </td>
+      <td>Remote user (from auth; may be bogus if return status (%s) is 401) </td>
+    </tr>
+    <tr>
+      <td><code>%U</code> </td>
+      <td>The URL path requested, not including any query string. </td>
+    </tr>
+    <tr>
+      <td><code>%v</code> </td>
+      <td>The canonical ServerName of the server serving the request. </td>
+    </tr>
+    <tr>
+      <td><code>%V</code> </td>
+      <td>Same as <code>%v</code>. </td>
+    </tr>
+    <tr>
+      <td><code>%X</code> </td>
+      <td>Not supported in Sling; prints nothing. </td>
+    </tr>
+    <tr>
+      <td><code>%I</code> </td>
+      <td>Not supported in Sling; prints nothing. </td>
+    </tr>
+    <tr>
+      <td><code>%O</code> </td>
+      <td>Not supported in Sling; prints nothing. </td>
+    </tr>
+  </tbody>
+</table>
+<p><strong>Modifiers</strong></p>
+<p>Particular items can be restricted to print only for responses with specific HTTP status codes by placing a comma-separated list of status codes immediately following the "%". For example, "%400,501{User-agent}i" logs User-agent on 400 errors and 501 errors only. For other status codes, the literal string "-" will be logged. The status code list may be preceded by a "!" to indicate negation: "%!200,304,302{Referer}i" logs Referer on all requests that do not return one of the three specified codes.</p>
+<p>The Apache httpd modifiers "&lt;" and "&gt;" are not supported by Sling and currently ignored.</p>
+<p><strong>Some Notes</strong></p>
+<p>For security reasons non-printable and other special characters in %C, %i and %o are escaped using uhhhh sequences, where hhhh stands for the hexadecimal representation of the character's unicode value. Exceptions from this rule are " and , which are escaped by prepending a backslash, and all whitespace characters, which are written in their Java-style notation (n, t, etc).</p>
+<h4>Rotating Logger Files</h4>
+<p>If you want to write the request (and access) logging information into a rotated file, you should configure as follows:</p>
+<ol>
+  <li>Configure the Log Type to be a <em>Logger Name</em> and some usefull Logger name. For example <code>clientlog.request</code>.</li>
+  <li>Create an <em>Apache Sling Logging Logger Configuration</em> for this Logger name according to [Logging Configuration]({{ refs.logging-logger-configuration.path }}) with the following setup:</li>
+</ol>
+<ul>
+  <li>Allow message at INFO (Information) level to be logged which is the level used by the request loggers</li>
+  <li>Define the appropriate log file name, for example <code>logs/client.request.log</code></li>
+  <li>Use only <code>{5</code>} as the message format because request logger messages are generally already fully formated with required timestamp etc.</li>
+  <li>Add any Logger names used for the client request log configuration, <code>clientlog.request</code> in the example above, to the Logger field. By clicking on the <code>+</code> (plus) button you may add more than a single logger name whose messages are written to this file.</li>
+</ul>
+<ol>
+  <li>Optionally, you may create an <em>Apache Sling Logging Writer Configuration</em> for the log file defined in the previous step to better control rotation setup. See [Log Writer Configuration]({{ refs.logging-log-writer-configuration.path }}) for full details.</li>
+</ol></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[41/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/maven-usage.html
----------------------------------------------------------------------
diff --git a/documentation/development/maven-usage.html b/documentation/development/maven-usage.html
new file mode 100644
index 0000000..bbeded9
--- /dev/null
+++ b/documentation/development/maven-usage.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Maven Usage</h1></header><p>Apache Sling uses Maven as a build tool. This page documents some of the choices that we made when using Maven.</p>
+<h2>Parent POM</h2>
+<p>We separate the reactor POM from the parent POM. While the reactor POM functions as a simple aggregator, the parent POM, currently located at <a href="http://svn.apache.org/repos/asf/sling/trunk/parent/pom.xml">parent/pom.xml</a>, holds the common build configuration for all modules.</p>
+<p>The reference to the parent POM is usually set to a released version since we don't deploy it as a SNAPSHOT during the build process. That reference must also contain an empty parentPath element, otherwise recent version of Maven will try to find it in the local filesystem, disregarding the version if the groupId and artifactId match. An example of how to reference the parent POM is</p>
+<h1>!xml</h1>
+<p><parent> <groupId>org.apache.sling</groupId> <artifactId>sling</artifactId> <version>$VERSION</version> <relativePath/> </parent></p>
+<p>Where <code>$VERSION</code> is replaced by the latest parent POM version.</p>
+<h2>Java version</h2>
+<p>The version of Java targeted by a module can be declared by setting a property in the pom.xml named <code>sling.java.version</code>. Configuration inherited from the parent POM will ensure that all the plugins will be correctly configured, including</p>
+<ul>
+  <li>maven-compiler-plugin: source and target arguments to use when compiling code</li>
+  <li>animal-sniffer-maven-plugin: signatures to use when validating compliance with a given Java version</li>
+  <li>maven-bundle-plugin: value of the Bundle-RequiredExecutionEnvironment header</li>
+</ul>
+<h2>Dependency management</h2>
+<p>See <a href="/documentation/development/dependency-management.html">Dependency Management</a></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/maventipsandtricks.html
----------------------------------------------------------------------
diff --git a/documentation/development/maventipsandtricks.html b/documentation/development/maventipsandtricks.html
new file mode 100644
index 0000000..f5529a6
--- /dev/null
+++ b/documentation/development/maventipsandtricks.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>MavenTipsAndTricks</h1></header><p>translation_pending: true</p>
+<p>Here's our collection of tips and tricks for building Sling with <a href="http://maven.apache.org">Maven</a>.</p>
+<h1>Maven local repository</h1>
+<p>The first time you run a Maven build, or when Maven needs additional build components, it downloads plugins and dependencies under its <em>local repository</em> folder on your computer. By default, this folder is named <em>.m2/repository</em> in your home directory.</p>
+<p>Maven uses this repository as a cache for artifacts that it might need for future builds, which means that the first Sling build usually takes much longer than usual, as Maven needs to download many tools and dependencies into its local repository while the build progresses.</p>
+<p>The build might fail if one of those downloads fails, in that case it might be worth retrying the build, to check if that was just a temporary connection problem, or if there's a more serious error.</p>
+<p>In some cases, the local Maven repository might get corrupted - if your build fails on a computer and works on another one, clearing the local repository before restarting the build might be worth trying.</p>
+<h1>Maven settings</h1>
+<h2>Ignore your local settings</h2>
+<p>To make sure you're getting the same results as we are when building Sling, it is recommend to ignore any local settings.</p>
+<p>On unixish platforms, using</p>
+<p>mvn -s /dev/null ...</p>
+<p>does the trick.</p>
+<div class="note">
+Does anyone have a similar command-line option that works under Windows?
+</div>
+<p>#</p>
+<h1>MAVEN_OPTS</h1>
+<p>The MAVEN_OPTS environment variable defines options for the JVM that executes Maven.</p>
+<p>Set it according to your platform, i.e. <code>export MAVEN*OPTS=...</code> on unixish systems or <code>set MAVEN*OPTS=...</code> on Windows.</p>
+<h2>Increase JVM memory if needed</h2>
+<p>If getting an OutOfMemoryException when running mvn, try setting</p>
+<p>MAVEN_OPTS="-Xmx256M -XX:MaxPermSize=256m"</p>
+<p>to allocate 256MB of RAM to Maven.</p>
+<h2>Debugging code launched by Maven</h2>
+<p>To run the Sling launchpad webapp in debug mode from Maven, for example, use something like</p>
+<p>MAVEN_OPTS="-agentlib:jdwp=transport=dt_socket,address=30303,server=y,suspend=n"</p>
+<p>And then connect to port 30303 with a remote JVM debugger (most IDEs do this).</p>
+<h2>Avoid spaces in Maven repository and workspace paths</h2>
+<p>Some Maven plugins do not like spaces in paths. It is better to avoid putting your Maven repository, or your code, under paths like <em>Documents and Settings</em>, for example.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/monitoring-requests.html
----------------------------------------------------------------------
diff --git a/documentation/development/monitoring-requests.html b/documentation/development/monitoring-requests.html
new file mode 100644
index 0000000..c6cf78c
--- /dev/null
+++ b/documentation/development/monitoring-requests.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Monitoring Requests</h1></header><p>Sling provides a simple OSGi console plugin to monitor recent requests. This is quite useful when debugging and to understand how things work, though it's obviously not a replacement for full-blown HTTP trafic monitoring tools.</p>
+<p>The console plugin is available at /system/console/requests, listed as <em>Recent Requests</em> in the console menu.</p>
+<p>The plugin keeps track of the latest 20 requests processed by Sling, and displays the information provided by the RequestProgressTracker, for the selected request. The screenshot below shows an example.</p>
+<p>Any information that's added to the RequestProgressTracker (which is available from the SlingHttpServletRequest object) during request processing will be displayed by this plugin.</p>
+<p><img src="sling-requests-plugin.jpg" /></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/osgi-mock.html
----------------------------------------------------------------------
diff --git a/documentation/development/osgi-mock.html b/documentation/development/osgi-mock.html
new file mode 100644
index 0000000..db728d0
--- /dev/null
+++ b/documentation/development/osgi-mock.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>OSGi Mocks</h1></header><p>Mock implementation of selected OSGi APIs for easier testing.</p>
+<p>[TOC]</p>
+<h2>Maven Dependency</h2>
+<h1>!xml</h1>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.osgi-mock</artifactId> </dependency></p>
+<p>See latest version on the <a href="/downloads.cgi">downloads page</a>.</p>
+<p>There are two major version ranges available:</p>
+<ul>
+  <li>osgi-mock 1.x: compatible with OSGi R4 and above</li>
+  <li>osgi-mock 2.x: compatible with OSGi R6 and above</li>
+</ul>
+<h2>Implemented mock features</h2>
+<p>The mock implementation supports:</p>
+<ul>
+  <li>Instantiating OSGi <code>Bundle</code>, <code>BundleContext</code> and <code>ComponentContext</code> objects and navigate between them.</li>
+  <li>Register OSGi SCR services and get references to service instances</li>
+  <li>Supports reading OSGi SCR metadata from <code>/OSGI-INF/&lt;pid&gt;.xml</code> and from <code>/OSGI-INF/serviceComponents.xml</code></li>
+  <li>Apply service properties/component configuration provided in unit test and from SCR metadata</li>
+  <li>Inject SCR dependencies - static and dynamic</li>
+  <li>Call lifecycle methods for activating, deactivating or modifying SCR components</li>
+  <li>Service and bundle listener implementation</li>
+  <li>Mock implementation of <code>LogService</code> which logs to SLF4J in JUnit context</li>
+  <li>Mock implementation of <code>EventAdmin</code> which supports <code>EventHandler</code> services</li>
+  <li>Mock implementation of <code>ConfigAdmin</code></li>
+  <li>Context Plugins</li>
+</ul>
+<p>Since osgi-mock 2.0.0:</p>
+<ul>
+  <li>Support OSGi R6 and Declarative Services 1.3: Field-based reference bindings and component property types</li>
+</ul>
+<h2>Usage</h2>
+<h3>OSGi Context JUnit Rule</h3>
+<p>The OSGi mock context can be injected into a JUnit test using a custom JUnit rule named <code>OsgiContext</code>. This rules takes care of all initialization and cleanup tasks required to make sure all unit tests can run independently (and in parallel, if required).</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>public class ExampleTest {</p>
+<p>@Rule public final OsgiContext context = new OsgiContext();</p>
+<p>@Test public void testSomething() {</p>
+<p>// register and activate service with configuration MyService service1 = context.registerInjectActivateService(new MyService(), "prop1", "value1");</p>
+<p>// get service instance OtherService service2 = context.getService(OtherService.class);</p>
+<p>}</p>
+<p>}</p>
+<p>It is possible to combine such a unit test with a <code>@RunWith</code> annotation e.g. for <a href="http://mockito.github.io/mockito/docs/current/org/mockito/runners/MockitoJUnitRunner.html">Mockito JUnit Runner</a>.</p>
+<p>The <code>OsgiContext</code> object provides access to mock implementations of:</p>
+<ul>
+  <li>OSGi Component Context</li>
+  <li>OSGi Bundle Context</li>
+</ul>
+<p>Additionally it supports:</p>
+<ul>
+  <li>Registering and activating OSGi services and inject dependencies</li>
+</ul>
+<h3>Getting OSGi mock objects</h3>
+<p>The factory class <code>MockOsgi</code> allows to instantiate the different mock implementations.</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>// get bundle context BundleContext bundleContext = MockOsgi.newBundleContext();</p>
+<p>// get component context with configuration BundleContext bundleContext = MockOsgi.newComponentContext(properties, "prop1", "value1");</p>
+<p>It is possible to simulate registering of OSGi services (backed by a simple hash map internally):</p>
+<h1>!java</h1>
+<p>// register service bundleContext.registerService(MyClass.class, myService, properties);</p>
+<p>// get service instance ServiceReference ref = bundleContext.getServiceReference(MyClass.class.getName()); MyClass service = bundleContext.getService(ref);</p>
+<h3>Activation and Dependency Injection</h3>
+<p>It is possible to simulate OSGi service activation, deactivation and dependency injection and the mock implementation tries to to its best to execute all as expected for an OSGi environment.</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>// get bundle context BundleContext bundleContext = MockOsgi.newBundleContext();</p>
+<p>// create service instance manually MyService service = new MyService();</p>
+<p>// inject dependencies MockOsgi.injectServices(service, bundleContext);</p>
+<p>// activate service MockOsgi.activate(service, props);</p>
+<p>// operate with service...</p>
+<p>// deactivate service MockOsgi.deactivate(service);</p>
+<p>Please note:</p>
+<ul>
+  <li>You should ensure that you register you services in the correct order of their dependency chain. Only dynamic references will be handled automatically independent of registration order.</li>
+  <li>The injectServices, activate and deactivate Methods can only work properly when the SCR XML metadata files are preset in the classpath at <code>/OSGI-INF</code>. They are generated automatically by the Maven SCR plugin, but might be missing if your clean and build the project within your IDE (e.g. Eclipse). In this case you have to compile the project again with maven and can run the tests - or use a Maven IDE Integration like m2eclipse.</li>
+</ul>
+<h3>Provide your own configuration via ConfigAdmin</h3>
+<p>If you want to provide your own configuration to an OSGi service that you do not register and activate itself in the mock context you can provide your own custom OSGi configuration via the mock implementation of the <code>ConfigAdmin</code> service.</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>ConfigurationAdmin configAdmin = context.getService(ConfigurationAdmin.class); Configuration myServiceConfig = configAdmin.getConfiguration(MY_SERVICE_PID); Dictionary&lt;String, Object&gt; props = new Hashtable&lt;String, Object&gt;(); props.put("prop1", "value1"); myServiceConfig.update(props);</p>
+<h3>Context Plugins</h3>
+<p>OSGi Mocks supports "Context Plugins" that hook into the lifecycle of each test run and can prepare test setup before or after the other setUp actions, and execute test tear down code before or after the other tearDown action.</p>
+<p>To define a plugin implement the <code>org.apache.sling.testing.mock.osgi.context.ContextPlugin&lt;OsgiContextImpl&gt;</code> interface. For convenience it is recommended to extend the abstract class <code>org.apache.sling.testing.mock.osgi.context.AbstractContextPlugin&lt;OsgiContextImpl&gt;</code>. These plugins can be used with OSGi Mock context, but also with context instances deriving from it like Sling Mocks and AEM Mocks. In most cases you would just override the <code>afterSetUp</code> method. In this method you can register additional OSGi services or do other preparation work. It is recommended to define a constant pointing to a singleton of a plugin instance for using it.</p>
+<p>To use a plugin in your unit test class, use the <code>OsgiContextBuilder</code> class instead of directly instantiating the <code>OsgiContext</code>class. This allows you in a fluent style to configure more options, with the <code>plugin(...)</code> method you can add one or more plugins.</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>@Rule public OsgiContext context = new OsgiContextBuilder().plugin(MY_PLUGIN).build();</p>
+<p>More examples:</p>
+<ul>
+  <li><a href="https://github.com/apache/sling/blob/trunk/contrib/extensions/contextaware-config/testing/mocks/caconfig-mock-plugin/src/main/java/org/apache/sling/testing/mock/caconfig/ContextPlugins.java">Apache Sling Context-Aware Configuration Mock Plugin</a></li>
+  <li><a href="https://github.com/apache/sling/blob/trunk/contrib/extensions/contextaware-config/testing/mocks/caconfig-mock-plugin/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java">Apache Sling Context-Aware Configuration Mock Plugin Test</a></li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/release-management.html
----------------------------------------------------------------------
diff --git a/documentation/development/release-management.html b/documentation/development/release-management.html
new file mode 100644
index 0000000..973003f
--- /dev/null
+++ b/documentation/development/release-management.html
@@ -0,0 +1,320 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Release Management</h1></header><p>Sling releases (and SNAPSHOTS) are deployed to the <a href="http://repository.apache.org">Nexus repository</a> instead of the traditional deployment via the Maven 2 mirrors source on <code>people.apache.org</code>. This makes the release process much leaner and simpler. In addtion we can benefit from the Apache Parent POM 6, which has most of the release profile setup built-in.</p>
+<p>Most of the hard work of preparing and deploying the release is done by Maven.</p>
+<p>[TOC]</p>
+<h2>Prerequisites</h2>
+<ul>
+  <li>To prepare or perform a release you <em>MUST BE</em> at least be an Apache Sling Committer.</li>
+  <li>Each and every release must be signed; therefore the public key should be cross signed by other Apache committers (not required but suggested) and this public key should be added to <a href="https://people.apache.org/keys/group/sling.asc">https://people.apache.org/keys/group/sling.asc</a> and either on pool.sks-keyservers.net or pgp.mit.edu (See Appendix A)</li>
+  <li>Make sure you have all <a href="http://maven.apache.org/developers/committer-settings.html">Apache servers</a> defined in your <code>settings.xml</code></li>
+  <li>See Appendix B for Maven and SCM credentials</li>
+</ul>
+<p><em>Note</em>: Listing the Apache servers in the <code>settings.xml</code> file also requires adding the password to that file. Starting with Maven 2.1 this password may be encrypted and needs not be give in plaintext. Please refer to <a href="http://maven.apache.org/guides/mini/guide-encryption.html">Password Encryption</a> for more information.</p>
+<p>In the past we staged release candidates on our local machines using a semi-manual process. Now that we inherit from the Apache parent POM version 6, a repository manager will automatically handle staging for you. This means you now only need to specify your GPG passphrase in the release profile of your <code>${user.home}/.m2/settings.xml</code>:</p>
+<p><settings> ... <profiles> <profile> <id>apache-release</id> <properties> &lt;gpg.passphrase&gt; <!-- YOUR KEY PASSPHRASE --> &lt;/gpg.passphrase&gt; </properties> </profile> </profiles> ... </settings></p>
+<p>Everything else has been configured in the latest Sling Parent POM:</p>
+<p><parent> <groupId>org.apache.sling</groupId> <artifactId>sling</artifactId> <version>6</version> </parent></p>
+<h2>Staging the Release Candidates</h2>
+<p>First prepare your POMs for release:</p>
+<ol>
+  <li>Make sure there are no snapshots in the POMs to be released. In case you rely on a release version which is not yet promoted, you have to temporarily switch that dependency version to the release version. This might break the Jenkins CI build though, as the staged version is not yet visible to Jenkins, so revert this change after you have staged the release candidate.</li>
+  <li>Check that your POMs will not lose content when they are rewritten during the release process</li>
+</ol>
+<p>$ mvn release:prepare -DdryRun=true</p>
+<p>Compare the original <code>pom.xml</code> with the one called <code>pom.xml.tag</code> to see if the license or any other info has been removed. This has been known to happen if the starting <code>&lt;project&gt;</code> tag is not on a single line. The only things that should be different between these files are the <code>&lt;version&gt;</code> and <code>&lt;scm&gt;</code> elements. If there are any other changes, you must fix the original <code>pom.xml</code> file and commit before proceeding with the release.</p>
+<ol>
+  <li>Publish a snapshot</li>
+</ol>
+<p>$ mvn deploy ... [INFO] [deploy:deploy] [INFO] Retrieving previous build number from apache.snapshots.https ...</p>
+<ul>
+  <li>If you experience an error during deployment like a HTTP 401 check your settings for the required server entries as outlined in the <em>Prerequisites</em></li>
+  <li>Make sure the generated artifacts respect the Apache release <a href="http://www.apache.org/dev/release.html">rules</a>: NOTICE and LICENSE files should be present in the META-INF directory within the jar. For -sources artifacts, be sure that your POM does not use the maven-source-plugin:2.0.3 which is broken. The recommended version at this time is 2.0.4</li>
+  <li>You should verify the deployment under the <a href="https://repository.apache.org/content/groups/snapshots/org/apache/sling">snapshot</a> repository on Apache</li>
+</ul>
+<ol>
+  <li>Prepare the release</li>
+</ol>
+<p>$ mvn release:clean $ mvn release:prepare</p>
+<ul>
+  <li>Preparing the release will create the new tag in SVN, automatically checking in on your behalf</li>
+  <li>If you get a build failure because of an SVN commit problem (namely <em>The specified baseline is not the latest baseline, so it may not be checked out.</em>), just repeat the <code>mvn release:prepare</code> command until SVN is happy. This is based on a known timing issue when using the European SVN mirror.</li>
+</ul>
+<ol>
+  <li>Stage the release for a vote</li>
+</ol>
+<p>$ mvn release:perform</p>
+<ul>
+  <li>The release will automatically be inserted into a temporary staging repository for you, see the Nexus <a href="http://www.sonatype.com/books/nexus-book/reference/staging.html">staging documentation</a> for full details</li>
+  <li>You can continue to use <code>mvn release:prepare</code> and <code>mvn release:perform</code> on other sub-projects as necessary on the same machine and they will be combined in the same staging repository - this is useful when making a release of multiple Sling modules.</li>
+</ul>
+<ol>
+  <li>Close the staging repository:</li>
+</ol>
+<ul>
+  <li>Login to <a href="https://repository.apache.org">https://repository.apache.org</a> using your Apache SVN credentials. Click on <em>Staging</em> on the left. Then click on <em>org.apache.sling</em> in the list of repositories. In the panel below you should see an open repository that is linked to your username and IP. Right click on this repository and select <em>Close</em>. This will close the repository from future deployments and make it available for others to view. If you are staging multiple releases together, skip this step until you have staged everything</li>
+</ul>
+<ol>
+  <li>Verify the staged artifacts</li>
+</ol>
+<ul>
+  <li>If you click on your repository, a tree view will appear below. You can then browse the contents to ensure the artifacts are as you expect them. Pay particular attention to the existence of *.asc (signature) files. If you don't like the content of the repository, right click your repository and choose <em>Drop</em>. You can then rollback your release (see <em>Canceling the Release</em>) and repeat the process
+</li>
+  <li>Note the staging repository URL, especially the number at the end of the URL. You will need this in your vote email</li>
+</ul>
+<h2>Starting the Vote</h2>
+<p>Propose a vote on the dev list with the closed issues, the issues left, and the staging repository - for example:</p>
+<p>To: "Sling Developers List" <a href="mailto:&#100;e&#118;&#x40;&#x73;&#x6c;&#x69;&#110;&#x67;&#x2e;a&#112;&#x61;&#99;h&#101;&#46;&#111;r&#103;">&#100;e&#118;&#x40;&#x73;&#x6c;&#x69;&#110;&#x67;&#x2e;a&#112;&#x61;&#99;h&#101;&#46;&#111;r&#103;</a> Subject: [VOTE] Release Apache Sling ABC version X.Y.Z</p>
+<p>Hi,</p>
+<p>We solved N issues in this release: https://issues.apache.org/jira/browse/SLING/fixforversion/...</p>
+<p>There are still some outstanding issues: https://issues.apache.org/jira/browse/SLING/component/...</p>
+<p>Staging repository: https://repository.apache.org/content/repositories/orgapachesling-[YOUR REPOSITORY ID]/</p>
+<p>You can use this UNIX script to download the release and verify the signatures: http://svn.apache.org/repos/asf/sling/trunk/check_staged_release.sh</p>
+<p>Usage: sh check_staged_release.sh [YOUR REPOSITORY ID] /tmp/sling-staging</p>
+<p>Please vote to approve this release:</p>
+<p>[ ] +1 Approve the release [ ] 0 Don't care [ ] -1 Don't release, because ...</p>
+<p>This majority vote is open for at least 72 hours.</p>
+<h2>Wait for the Results</h2>
+<p>From <a href="http://www.apache.org/foundation/voting.html">Votes on Package Releases</a>:</p>
+<blockquote>
+  <p>Votes on whether a package is ready to be released follow a format similar to majority approval -- except that the decision is officially determined solely by whether at least three +1 votes were registered. Releases may not be vetoed. Generally the community will table the vote to release if anyone identifies serious problems, but in most cases the ultimate decision, once three or more positive votes have been garnered, lies with the individual serving as release manager. The specifics of the process may vary from project to project, but the 'minimum of three +1 votes' rule is universal.</p>
+</blockquote>
+<p>The list of binding voters is available on the <a href="/project-information/project-team.html">Project Team</a> page.</p>
+<p>If the vote is successful, post the result to the dev list - for example:</p>
+<p>To: "Sling Developers List" <a href="mailto:d&#x65;&#118;&#x40;&#x73;&#108;&#105;n&#x67;&#x2e;a&#112;&#x61;&#x63;&#104;&#101;&#46;&#111;&#114;&#x67;">d&#x65;&#118;&#x40;&#x73;&#108;&#105;n&#x67;&#x2e;a&#112;&#x61;&#x63;&#104;&#101;&#46;&#111;&#114;&#x67;</a> Subject: [RESULT] [VOTE] Release Apache Sling ABC version X.Y.Z</p>
+<p>Hi,</p>
+<p>The vote has passed with the following result :</p>
+<p>+1 (binding): &lt;<list of names>&gt; +1 (non binding): &lt;<list of names>&gt;</p>
+<p>I will copy this release to the Sling dist directory and promote the artifacts to the central Maven repository.</p>
+<p>Be sure to include all votes in the list and indicate which votes were binding. Consider -1 votes very carefully. While there is technically no veto on release votes, there may be reasons for people to vote -1. So sometimes it may be better to cancel a release when someone, especially a member of the PMC, votes -1.</p>
+<p>If the vote is unsuccessful, you need to fix the issues and restart the process - see <em>Canceling the Release</em>. Note that any changes to the artifacts under vote require a restart of the process, no matter how trivial. When restarting a vote version numbers must not be reused, since binaries might have already been copied around.</p>
+<p>If the vote is successful, you need to promote and distribute the release - see <em>Promoting the Release</em>.</p>
+<h2>Canceling the Release</h2>
+<p>If the vote fails, or you decide to redo the release:</p>
+<ol>
+  <li>Remove the release tag from Subversion (<code>svn del ...</code>)</li>
+  <li>Login to <a href="https://repository.apache.org">https://repository.apache.org</a> using your Apache SVN credentials. Click on <em>Staging</em> on the left. Then click on <em>org.apache.sling</em> in the list of repositories. In the panel below you should see a closed repository that is linked to your username and IP (if it's not yet closed you need to right click and select <em>Close</em>). Right click on this repository and select <em>Drop</em>.</li>
+  <li>Remove the old version from Jira</li>
+  <li>Create a new version in Jira with a version number following the one of the cancelled release</li>
+  <li>Move all issues with the fix version set to the cancelled release to the next version</li>
+  <li>Delete the old version from Jira</li>
+  <li>Commit any fixes you need to make and start a vote for a new release.</li>
+</ol>
+<h2>Promoting the Release</h2>
+<p>If the vote passes:</p>
+<ol>
+  <li>Push the release to <a href="https://dist.apache.org/repos/dist/release/sling/">https://dist.apache.org/repos/dist/release/sling/</a>. This is only possible for PMC members (for a reasoning look at <a href="http://www.apache.org/dev/release.html#upload-ci">http://www.apache.org/dev/release.html#upload-ci</a>). If you are not a PMC member, please ask one to do the upload for you.</li>
+  <li>Commit the released artifacts to <a href="https://dist.apache.org/repos/dist/release/sling/">https://dist.apache.org/repos/dist/release/sling/</a> which is replicated to <a href="http://www.apache.org/dist/sling/">http://www.apache.org/dist/sling/</a> quickly via svnpubsub. Hint: use svn import to avoid having to checkout the whole folder first. The easiest to do this is to get the released artifact using the check script (check&#95;staged&#95;release.sh) and then simply copy the artifacts from the downloaded folder to your local checkout folder. Make sure to not add the checksum files for the signature file <em>.asc.</em>).</li>
+</ol>
+<ul>
+  <li>Make sure to <em>not</em> change the end-of-line encoding of the .pom when uploaded via svn import! Eg when a windows style eol encoded file is uploaded with the setting '*.pom = svn:eol-style=native' this would later fail the signature checks!</li>
+</ul>
+<ol>
+  <li>Delete the old release artifacts from that same dist.apache.org svn folder (the dist directory is archived)</li>
+  <li>Push the release to Maven Central</li>
+  <li>Login to <a href="https://repository.apache.org">https://repository.apache.org</a> with your Apache SVN credentials. Click on <em>Staging</em>. Find your closed staging repository and select it by checking the select box. Select the <em>Releases</em> repository from the drop-down list and click <em>Release</em> from the menu above.</li>
+  <li>Once the release is promoted click on <em>Repositories</em>, select the <em>Releases</em> repository and validate that your artifacts are all there.</li>
+  <li>Update the news section on the website at <a href="/news.html">news</a>.</li>
+  <li>Update the download page on the website at <a href="/downloads.cgi">downloads</a> to point to the new release.</li>
+</ol>
+<p>For the last two tasks, it's better to give the mirrors some time to distribute the uploaded artifacts (one day should be fine). This ensures that once the website (news and download page) is updated, people can actually download the artifacts.</p>
+<h2>Update JIRA</h2>
+<p>Go to <a href="https://issues.apache.org/jira/plugins/servlet/project-config/SLING/versions">Manage Versions</a> section on the SLING JIRA and mark the X.Y.Z version as released setting the release date to the date the vote has been closed.</p>
+<p>Also create a new version X.Y.Z+2, if that hasn't already been done.</p>
+<p>And keep the versions sorted, so when adding a new version moved it down to just above the previous versions.</p>
+<p>Close all issues associated with the released version.</p>
+<h2>Create an Announcement</h2>
+<p>We usually do such announcements only for "important" releases, as opposed to small individual module releases which are just announced on our <a href="/news.html">news</a> page.</p>
+<p>To: "Sling Developers List" <a href="mailto:&#x64;&#101;&#118;&#64;&#115;&#x6c;&#105;&#110;&#103;&#x2e;&#97;&#112;&#x61;&#99;&#x68;&#x65;&#x2e;&#x6f;&#114;&#x67;">&#x64;&#101;&#118;&#64;&#115;&#x6c;&#105;&#110;&#103;&#x2e;&#97;&#112;&#x61;&#99;&#x68;&#x65;&#x2e;&#x6f;&#114;&#x67;</a>, "Apache Announcements" <a href="mailto:&#97;&#110;n&#111;&#x75;&#x6e;c&#x65;&#64;&#97;&#112;&#x61;&#99;h&#x65;&#46;&#111;&#x72;&#103;">&#97;&#110;n&#111;&#x75;&#x6e;c&#x65;&#64;&#97;&#112;&#x61;&#99;h&#x65;&#46;&#111;&#x72;&#103;</a> Subject: [ANN] Apache Sling ABC version X.Y.Z Released</p>
+<p>The Apache Sling team is pleased to announce the release of Apache Sling ABC version X.Y.Z</p>
+<p>Apache Sling is a web framework that uses a Java Content Repository, such as Apache Jackrabbit, to store and manage content. Sling applications use either scripts or Java servlets, selected based on simple name conventions, to process HTTP requests in a RESTful way.</p>
+<p>&lt;<insert short description of the sub-project>&gt;</p>
+<p>http://sling.apache.org/site/apache-sling-ABC.html</p>
+<p>This release is available from http://sling.apache.org/site/downloads.cgi</p>
+<p>Building from verified sources is recommended, but convenience binaries are also available via Maven:</p>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.ABC</artifactId> <version>X.Y.Z</version> </dependency></p>
+<p>Release Notes:</p>
+<p>&lt;<insert release notes in text format from JIRA>&gt;</p>
+<p>Enjoy!</p>
+<p>-The Sling team</p>
+<p><em>Important</em>: Add the release to the Software section of the next board report below <a href="https://cwiki.apache.org/confluence/display/SLING/Reports">Reports</a>.</p>
+<h2>Related Links</h2>
+<ol>
+  <li><a href="http://www.apache.org/dev/release-signing.html">http://www.apache.org/dev/release-signing.html</a></li>
+  <li><a href="http://wiki.apache.org/incubator/SigningReleases">http://wiki.apache.org/incubator/SigningReleases</a></li>
+</ol>
+<h2>Releasing the Sling IDE Tooling</h2>
+<p>While the Sling IDE tooling is built using Maven, the toolchain that it is based around does not cooperate well with the maven-release-plugin. As such, the release preparation and execution are slightly different. The whole process is outlined below, assuming that we start with a development version of 1.0.1-SNAPSHOT.</p>
+<ol>
+  <li>set the fix version as released: <code>mvn tycho-versions:set-version -DnewVersion=1.0.2</code></li>
+  <li>update the version of the source-bundle project to 1.0.2</li>
+  <li>commit the change to svn</li>
+  <li>manually tag in svn using <code>svn copy https://svn.apache.org/repos/asf/sling/trunk/tooling/ide https://svn.apache.org/repos/asf/sling/tags/sling-ide-tooling-1.0.2</code></li>
+  <li>update to next version: <code>mvn tycho-versions:set-version -DnewVersion=1.0.3-SNAPSHOT</code> and also update the version of the source-bundle project</li>
+  <li>commit the change to svn</li>
+  <li>Checkout the version from the tag and proceed with the build from there <code>https://svn.apache.org/repos/asf/sling/tags/sling-ide-tooling-1.0.2</code></li>
+  <li>build the project with p2/gpg signing enabled: <code>mvn clean package -Psign</code></li>
+  <li>build the source bundle from the source-bundle directory: <code>mvn clean package</code></li>
+  <li>copy the following artifacts to https://dist.apache.org/repos/dist/dev/sling/ide-tooling-1.0.2</li>
+  <li>source bundle ( org.apache.sling.ide.source-bundle-1.0.2.zip )</li>
+  <li>zipped p2 repository ( org.apache.sling.ide.p2update-1.0.2.zip )</li>
+  <li>ensure the artifacts are checksummed and gpg-signed by using the <code>tooling/ide/sign.sh</code> script</li>
+  <li>call the vote</li>
+</ol>
+<p>The format of the release vote should be</p>
+<p>To: "Sling Developers List" <a href="mailto:&#x64;&#101;&#118;&#64;&#x73;&#x6c;&#x69;&#110;&#103;&#46;&#x61;&#x70;&#97;&#99;h&#x65;.&#111;&#114;g">&#x64;&#101;&#118;&#64;&#x73;&#x6c;&#x69;&#110;&#103;&#46;&#x61;&#x70;&#97;&#99;h&#x65;.&#111;&#114;g</a> Subject: [VOTE] Release Apache Sling IDE Tooling version X.Y.Z</p>
+<p>Hi,</p>
+<p>We solved N issues in this release: https://issues.apache.org/jira/browse/SLING/fixforversion/</p>
+<p>There are still some outstanding issues: https://issues.apache.org/jira/browse/SLING/component/12320908</p>
+<p>The release candidate has been uploaded at https://dist.apache.org/repos/dist/dev/sling, The release artifact is the source bundle - org.apache.sling.ide.source-bundle-X.Y.Z.zip - which can be used to build the project using</p>
+<p>mvn clean package</p>
+<p>The resulting binaries can be installed into an Eclipse instance from the update site which is found at p2update/target/repository after building the project.</p>
+<p>You can use this UNIX script to download the release and verify the signatures: http://svn.apache.org/repos/asf/sling/trunk/tooling/ide/check_staged_release.sh</p>
+<p>Usage: sh check_staged_release.sh X.Y.Z /tmp/sling-staging</p>
+<p>Please vote to approve this release:</p>
+<p>[ ] +1 Approve the release [ ] 0 Don't care [ ] -1 Don't release, because ...</p>
+<p>This majority vote is open for at least 72 hours</p>
+<p>Once the release has passed, the following must be done:</p>
+<ol>
+  <li>announce the result of the vote, see <a href="#wait-for-the-results">Wait for the results</a></li>
+  <li>update versions in jira, see <a href="#update-jira">Update JIRA</a></li>
+  <li>upload p2update.zip* to https://dist.apache.org/repos/dist/release/sling/</li>
+  <li>upload unzipped update site to https://dist.apache.org/repos/dist/release/sling/eclipse/1.0.2</li>
+  <li>upload the source bundle to https://dist.apache.org/repos/dist/release/sling/eclipse/1.0.2</li>
+  <li>create GPG signatures and checksums for all uploaded jars using the <code>tooling/ide/sign.sh</code> script</li>
+  <li>update https://dist.apache.org/repos/dist/release/sling/eclipse/composite{Content,Artifacts}.xml to point version 1.0.2</li>
+  <li>archive the old artifact versions but leave pointers to archive.apache.org, using compositeArtifacts.xml/compositeContent.xml , with a single child entry pointing to https://archive.apache.org/dist/sling/eclipse/1.0.0/</li>
+  <li>remove the staged artifacts from https://dist.apache.org/repos/dist/dev/sling/ide-tooling-1.0.2</li>
+  <li>update the news page and the download pages</li>
+  <li>update the Eclipse Marketplace listing</li>
+</ol>
+<h2>Appendix A: Create and Add your key to <a href="https://people.apache.org/keys/group/sling.asc">https://people.apache.org/keys/group/sling.asc</a></h2>
+<p>Considering that you are using a *nix system with a working OpenSSH, GnuPG, and bash you can create and add your own key with the following commands:</p>
+<ol>
+  <li>Create a public/private pair key:</li>
+</ol>
+<p>$ gpg --gen-key</p>
+<p>When gpg asks for e-mail linked the key you <em>MUST USE</em> the &lt;committer&gt;@apache.org one. When gpg asks for comment linked the key you <em>SHOULD USE</em> "CODE SIGNING KEY"</p>
+<ol>
+  <li>
+  <p>Add the key to <a href="https://people.apache.org/keys/group/sling.asc">https://people.apache.org/keys/group/sling.asc</a></p></li>
+  <li>
+  <p>Type the following command replacing the word <code>&lt;e-mail&gt;</code> with your Apache's one (&lt;committer&gt;@apache.org) to get the key signature</p></li>
+</ol>
+<p>$ gpg --fingerprint <e-mail></p>
+<p>The key signature is in the output following the <code>Key fingerprint =</code> part.</p>
+<ol>
+  <li>
+  <p>Add the key signature into the field 'OpenPGP Public Key Primary Fingerprint' in your profile at <a href="https://id.apache.org">https://id.apache.org</a>.</p></li>
+  <li>
+  <p>You are <em>DONE</em>, but to see the changes on <a href="https://people.apache.org/keys/group/sling.asc">https://people.apache.org/keys/group/sling.asc</a> you may need to wait a few hours;</p></li>
+  <li>
+  <p>You also have to add your public key either on <code>pool.sks-keyservers.net</code> or <code>pgp.mit.edu</code> (for the staging repository). To do so you can follow these steps:</p></li>
+  <li>Extract the key id from all the secret keys stored in the system:</li>
+</ol>
+<p>$ gpg --list-secret-keys.</p>
+<p>The output is something like this</p>
+<p>gpg --list-secret-keys</p>
+<h2>/Users/konradwindszus/.gnupg/secring.gpg</h2>
+<p>sec 2048R/455ECC7C 2016-01-21 uid Konrad Windszus <a href="mailto:&#x6b;&#x77;&#x69;&#110;&#64;a&#112;&#97;&#x63;h&#101;&#46;&#111;&#x72;&#103;">&#x6b;&#x77;&#x69;&#110;&#64;a&#112;&#97;&#x63;h&#101;&#46;&#111;&#x72;&#103;</a> ssb 2048R/226BCE00 2016-01-21</p>
+<p>The key id in this case is <code>455ECC7C</code>.</p>
+<ol>
+  <li>Send the key towards e.g. <code>pool.sks-keyservers.net</code> via</li>
+</ol>
+<p>$ gpg --keyserver pool.sks-keyservers.net --send-key <key-id></p>
+<h2>Appendix B: Maven and SCM credentials</h2>
+<p>For running the <code>mvn release:prepare</code> command without giving credentials on command line add <code>svn.apache.org</code> to your <code>settings.xml</code>:</p>
+<p><server> <id>svn.apache.org</id> <username>USERNAME</username> <password>ENCRYPTED_PASSWORD</password> </server></p>
+<h2>Appendix C: Deploy bundles on the Sling OBR (obsolete)</h2>
+<p><em>Update November 2016: We do now longer maintain the Sling OBR for new releases.</em></p>
+<p>We are mainting an OSGi Bundle Repository providing all release of the Sling Bundles. This repository is maintained as part of the Apache Sling site and is available at <a href="http://sling.apache.org/obr/sling.xml">http://sling.apache.org/obr/sling.xml</a>. The source for this page is maintained in the SVN repository below the <em>site</em>, that is at <a href="http://svn.apache.org/repos/asf/sling/site/">http://svn.apache.org/repos/asf/sling/site/</a>. To update the Sling OBR repository you must be an Apache Sling Committer since this requires SVN write access.</p>
+<p>To update the OBR you may use the Apache Felix Maven Bundle Plugin which prepares the bundle descriptor to be added to the OBR file. Follow these steps to update the OBR:</p>
+<ol>
+  <li>Checkout or update the Site Source</li>
+</ol>
+<p>$ svn checkout https://svn.apache.org/repos/asf/sling/site</p>
+<p>Note, that you have to checkout the site using the <code>https</code> URL, otherwise you will not be able to commit the changes later.</p>
+<ol>
+  <li>Deploy the Descriptor</li>
+</ol>
+<p>To deploy the project descriptor, checkout the tag of the bundle to deploy and run maven</p>
+<p>$ svn checkout http://svn.apache.org/repos/asf/sling/tags/the_module_tag $ cd the_module_tag $ mvn clean install org.apache.felix:maven-bundle-plugin:deploy -DprefixUrl=http://repo1.maven.org/maven2 -DremoteOBR=sling.xml -DaltDeploymentRepository=apache.releases::default::file:///path_to_site_checkout/trunk/content/obr</p>
+<p>This generates the bundle descriptor and adds it to the sling.xml file of your site checkout. As it also installs a fresh compiled version of the artifacts, it's better to remove that version from your local repository again (A new binary has new checksums etc.).</p>
+<ol>
+  <li>Variant: Refer to Maven Repository</li>
+</ol>
+<p>Instead of checking out and building the project locally, you may also use the <code>deploy-file</code> goal of the Maven Bundle Plugin:</p>
+<p>$ wget http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.jar $ wget http://repo1.maven.org/maven2/org/apache/sling/the_moduleversion/the_module-version.pom $ mvn org.apache.felix:maven-bundle-plugin:deploy-file -Dfile=the_module-version.jar -DpomFile=the_module-version.pom -DbundleUrl=http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.jar -Durl=file:///path_to_site_checkout/obr -DprefixUrl=http://repo1.maven.org/maven2 -DremoteOBR=sling.xml $ rm the_module-version.jar the_module-version.pom</p>
+<ol>
+  <li>Commit the Site Changes</li>
+</ol>
+<p>In the Site checkout folder commit the changes to the <code>trunk/content/obr/sling.xml</code> files (you may also review the changes using the <code>svn diff</code> command).</p>
+<p>$ svn commit -m"Add Bundle ABC Version X.Y.Z" trunk/content/obr/sling.xml</p>
+<ol>
+  <li>Update the Site</li>
+</ol>
+<p>Wait for the buildbot to update the staging area with your site update (see dev list for an email). Then go to the CMS at <a href="https://cms.apache.org/redirect?uri=http://sling.apache.org/obr">https://cms.apache.org/redirect?uri=http://sling.apache.org/obr</a> , update your checkout and then publish the site.</p>
+<h2>Appendix D: Deploy Maven plugin documentation (if applicable)</h2>
+<p>When releasing a Maven plugin, the Maven-generated documentation published under <a href="http://sling.apache.org/components/">http://sling.apache.org/components/</a> needs to be updated.</p>
+<p>This is currently supported for:</p>
+<ul>
+  <li><code>maven-sling-plugin</code></li>
+  <li><code>htl-maven-plugin</code></li>
+  <li><code>slingstart-maven-plugin</code></li>
+  <li><code>jspc-maven-plugin</code></li>
+</ul>
+<p>To publish the plugin documentation execute the following steps after the release:</p>
+<ol>
+  <li>
+  <p>Checkout the release tag of the released plugin (or reset your workspace)</p></li>
+  <li>
+  <p>Build and stage the maven site of the plugin. Note that this <em>commits</em> the generated content to the components folder mentioned below.</p></li>
+</ol>
+<p>$ mvn clean site:site site:stage scm-publish:publish-scm</p>
+<ol>
+  <li>Checkout the 'components' subtree of the Sling website</li>
+</ol>
+<p>$ svn checkout https://svn.apache.org/repos/asf/sling/site/trunk/content/components</p>
+<ol>
+  <li>
+  <p>SVN-rename the generated documenation that the site plugin commited to <code>&lt;plugin-name&gt;-archives/&lt;plugin-name&gt;-LATEST</code> to <code>&lt;plugin-name&gt;-archives/&lt;plugin-name&gt;-&lt;version&gt;</code></p></li>
+  <li>
+  <p>SVN-remove the existing folder <code>&lt;plugin-name&gt;</code> and SVN-copy the folder <code>&lt;plugin-name&gt;-archives/&lt;plugin-name&gt;-&lt;version&gt;</code> to <code>&lt;plugin-name&gt;</code></p></li>
+  <li>
+  <p>Commit the changes.</p></li>
+  <li>
+  <p>Publish the Sling site to production</p></li>
+  <li>
+  <p>Check the results at <a href="http://sling.apache.org/components/">http://sling.apache.org/components/</a></p></li>
+</ol>
+<p>For background information about this process see the <a href="http://maven.apache.org/developers/website/deploy-component-reference-documentation.html">Maven components reference documentation</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/repository-based-development.html
----------------------------------------------------------------------
diff --git a/documentation/development/repository-based-development.html b/documentation/development/repository-based-development.html
new file mode 100644
index 0000000..b581cda
--- /dev/null
+++ b/documentation/development/repository-based-development.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Repository Based Development</h1></header><p>[TOC]</p>
+<h1>WebDAV Support</h1>
+<p>WebDAV support in Sling is based on the <a href="http://jackrabbit.apache.org/jcr/components/jackrabbit-jcr-server.html#Simple_Webdav_Server">Simple WebDAV</a> implementation of Apache Jackrabbit which is integrated in the <code>jcr/webdav</code> project. This bundle provides WebDAV access to Sling's repository in two flavours:</p>
+<ol>
+  <li>Access to all workspaces of the repository on a separate URI space -- by default rooted at <code>/dav</code> in the Sling context -- and</li>
+  <li>access to the workspace used by Sling itself at the root of the Sling context.</li>
+</ol>
+<h2>Example</h2>
+<p>Consider Sling be installed on a Servlet container in the <code>/sling</code> context on <code>some.host.net:8080</code>. Here you would access the Sling workspace by directing your WebDAV client to the URL <code>http://some.host.net:8080/sling</code>. To access the <code>sample</code> workspace, which is not used by Sling itself, you would direct your WebDAV client to the URL <code>http://some.host.net:8080/sling/dav/sample</code>.</p>
+<p>Please note that accessing the repository in the separate URI space is actually faster, since requests do not pass the Sling resource and script resolution framework but instead hit the Jackrabbit Simple WebDAV Servlet directly.</p>
+<h2>Separate URI Space WebDAV</h2>
+<p>When accessing the repository through WebDAV in its separate URI Space, the URLs have the following generic structure:</p>
+<p><slingroot>/<prefix>/<workspace>/<item></p>
+<ul>
+  <li><code>slingroot</code> is the URL of the Sling web application context. In the above example, this would <code>http://some.host.net:8080/sling</code>.</li>
+  <li><code>prefix</code> is the URL prefix to address the WebDAV servlet. By default this is set to <code>/dav</code> but may be configured to any valid path.</li>
+  <li><code>workspace</code> is the name of the workspace to be accessed through WebDAV.</li>
+  <li><code>item</code> is the path to the JCR Item to access.</li>
+</ul>
+<p>If you access the WebDAV server at the prefix path -- e.g. <code>http://localhost:8080/dav</code> -- you will be redirected to the default workspace with a temporary redirect status 302. Some clients, such as the Linux <em>davfs</em>, do not like this redirection and must be configured to explicitly address the default workspace.</p>
+<h2>Configuration</h2>
+<p>The Jackrabbit Simple WebDAV support in Sling has the following configuration options:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Default </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Root Path </td>
+      <td><code>/dav</code> </td>
+      <td>The root path at which the Simple WebDAV Servlet is accessible. Access to the repository is provided in two ways. You may connect your WebDAV client directly to the root of the Sling web application to access the workspace of Sling directly. The other way is required if you want to connect your WebDAV client to any other workspace besides the Sling workspace. In this case you connect your WebDAV client to another a path comprised of this root path plus the name of the workspace. For example to connect to the <code>some*other</code> workspace, you might connect to <code>http://slinghost/dav/some*other</code>.</td>
+    </tr>
+    <tr>
+      <td>Authentication Realm </td>
+      <td><code>Sling WebDAV</code> </td>
+      <td>The name of the HTTP Basic Authentication Realm presented to the client to ask for authentication credentials to access the repository.</td>
+    </tr>
+    <tr>
+      <td>Non Collection Node Types </td>
+      <td><code>nt:file</code>, <code>nt:resource</code> </td>
+      <td>The JCR Node Types considered being non-collection resources by WebDAV. Any node replying <code>true</code> to <code>Node.isNodeType()</code> for one of the listed types is considered a non-collection resource. Otherwise the respective node is considered a collection resource.</td>
+    </tr>
+    <tr>
+      <td>Filter Prefixes </td>
+      <td><code>jcr</code>, <code>rep</code> </td>
+      <td>A list of namespace prefixes indicating JCR items filtered from being reported as collection members or properties. The default list includes jcr and rep (Jackrabbit internal namespace prefix) items. Do not modify this setting unless you know exactly what you are doing.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Filter Node Types | -- | Nodetype names to be used to filter child nodes. A child node can be filtered if the declaring nodetype of its definition is one of the nodetype names specified in the nodetypes Element. E.g. defining rep:root as filtered nodetype would result in <code>jcr:system</code> being hidden but no other child node of the root node, since those are defined by the nodetype nt:unstructered. The default is empty. Do not modify this setting unless you know exactly what you are doing. Filter URIs | -- | A list of namespace URIs indicating JCR items filtered from being reported as collection members or properties. The default list is empty. Do not modify this setting unless you know exactly what you are doing. Collection Primary Type | <code>sling:Folder</code> | The JCR Primary Node Type to assign to nodes created to reflect WebDAV collections. You may name any primary node type here, provided it allows the creation of nodex of this type and the defined Non-Collection 
 Primary Type below it. Non-Collection Primary Type | <code>nt:file</code> | The JCR Primary Node Type to assign to nodes created to reflect WebDAV non-collection resources. You may name any primary node type here, provided the node type is allowed to be created below nodes of the type defined for the Collection Primary Type and that a child node with the name <code>jcr:content</code> may be created below the non-collection resource whose type is defined by the Content Primary Type. Content Primary Type | <code>nt:resource</code> | The JCR Primary Node Type to assign to the jcr:content child node of a WebDAV non-collection resource. You may name any primary node type here, provided the node type is allowed to be created as the jcr:content child node of the node type defined by the Non-Collection Primary Type. In addition the node type must allow at least the following properties: jcr:data (binary), jcr:lastModified (date), and jcr:mimeType (string).</p>
+<h2>Advanced Technical Details</h2>
+<p>Since the Jackrabbit Simple WebDAV Servlet is originally configured using an XML configuration file, which provides a great deal of flexibility, the integration into Sling had to assume some simplifications, of which some of the above parameters are part:</p>
+<h3>IOManager</h3>
+<p>This implementation uses the standard <code>org.apache.jackrabbit.server.io.IOManagerImpl</code> class and adds the <code>org.apache.jackrabbit.server.io.DirListingExportHandler</code> and <code>org.apache.jackrabbit.server.io.DefaultHandler</code> IO handlers as its only handlers. The <code>DefaultHandler</code> is configured from the three node types listed as configuration parameters above (collection, non-collection, and content primary node types).</p>
+<h3>PropertyManager</h3>
+<p>This implementation uses the standard <code>org.apache.jackrabbit.server.io.PropertyManagerImpl</code> and adds the same <code>DirListingExportHandler</code> and <code>DefaultHanlder</code> instances as its own handlers as are used by the IO Manager.</p>
+<h3>ItemFilter</h3>
+<p>This implementation uses the standard <code>org.apache.jackrabbit.webdav.simple.DefaultItemFilter</code> implementation as its item filter and configures the filter with the namespace prefixes and URIs as well as the node types configured as parameters.</p>
+<h3>Collection Node Types</h3>
+<p>This implementation only supports listing node types which are considered representing non-collection resources. All nodes which are instances of any of the configured node types are considered non-collection resources. All other nodes are considere collection resources.</p>
+<h1>DavEx Support</h1>
+<p><a href="https://wiki.apache.org/jackrabbit/RemoteAccess">DavEx</a> (WebDAV with JCR Extensions) allows to remotely access a JCR repository. Sling provides support based on the <a href="http://jackrabbit.apache.org/jcr/components/jackrabbit-jcr-server.html#JCR_Webdav_Server">JCR WebDAV Server</a> implementation of Apache Jackrabbit which is integrated in the <code>jcr/davex</code> project. By default the server listens on request urls starting with <code>/server</code>.</p>
+<h1>Eclipse plugin for JCR</h1>
+<p>see <a href="/documentation/development/ide-tooling.html">Sling IDE Tooling</a></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/resourceresolver-mock.html
----------------------------------------------------------------------
diff --git a/documentation/development/resourceresolver-mock.html b/documentation/development/resourceresolver-mock.html
new file mode 100644
index 0000000..9db8e3a
--- /dev/null
+++ b/documentation/development/resourceresolver-mock.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Resource Resolver Mock</h1></header><p>Mock for the resource resolver / factory for easier testing. It uses an in-memory map for storing the resource data, and supports reading, writing and a certain level of transaction and eventing support.</p>
+<p>[TOC]</p>
+<h2>Maven Dependency</h2>
+<h1>!xml</h1>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.resourceresolver-mock</artifactId> </dependency></p>
+<p>See latest version on the <a href="/downloads.cgi">downloads page</a>.</p>
+<h2>Implemented mock features</h2>
+<p>The mock implementation supports:</p>
+<ul>
+  <li>All read and write operations of the Sling Resource API</li>
+  <li>Mimics transactions using via commit()/revert() methods</li>
+  <li>OSGi events for adding/changing/removing resources</li>
+  <li>The implementation tries to be as close as possible to the behavior of the JCR resource implementation e.g. concerning date and binary handling</li>
+</ul>
+<p>The following features are <em>not supported</em>:</p>
+<ul>
+  <li>Authentication not supported ("login" always possible with null authentication info)</li>
+  <li>Querying with queryResources/findResources not supported (always returns empty result set)</li>
+  <li>Sling Mapping is not supported</li>
+  <li>Resolving resource super types</li>
+</ul>
+<h2>Usage</h2>
+<p>To create a mocked resource resolver:</p>
+<h1>!java</h1>
+<p>MockResourceResolverFactory factory = new MockResourceResolverFactory(); ResourceResolver resolver = factory.getResourceResolver(null);</p>
+<p>With the resolver you can use all Sling Resource features including reading and writing data using the Sling API.</p>
+<p>You cannot do any operations that require the JCR API because no JCR is underlying and adapting to JCR objects will just return null.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[02/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-original-logo-from-SLING-174/sling.svg
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-original-logo-from-SLING-174/sling.svg b/sling-archives/logo/sling-original-logo-from-SLING-174/sling.svg
deleted file mode 100644
index d4a4d7c..0000000
--- a/sling-archives/logo/sling-original-logo-from-SLING-174/sling.svg
+++ /dev/null
@@ -1,1774 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="306px" height="175.183px" viewBox="0 0 306 175.183" enable-background="new 0 0 306 175.183" xml:space="preserve">
-<g>
-	<g id="Sling_2_">
-		<path fill="#00678C" d="M34.152,14.033c-5.775,0-8.879,1.964-12.191,5.232c-3.314,3.267-4.971,7.464-4.971,12.587
-			c0,3.155,0.594,6.029,1.785,8.617c1.188,2.593,2.844,4.762,4.969,6.508c2.123,1.746,6.471,4.196,13.041,7.35l10.193,4.815
-			c8.496,4,14.456,8.774,17.883,14.319C68.287,79.012,70,86.063,70,94.626c0,9.295-3.75,17.181-11.256,23.658
-			C51.24,124.763,41.201,128,28.629,128c-11.045,0-20.473-2.593-28.29-7.773l6.202-15.547c3.172,2.312,7.121,4.241,11.851,5.788
-			c4.729,1.552,8.962,2.323,12.702,2.323c6.625,0,11.947-1.801,15.969-5.404c4.021-3.606,6.033-8.199,6.033-13.773
-			c0-4.167-1.119-8.04-3.355-11.617c-2.239-3.577-7.857-7.479-16.863-11.702l-10.025-4.648c-8.496-3.94-14.429-8.615-17.797-14.022
-			C1.686,46.215,0,39.709,0,32.105c0-9.237,3.283-16.897,9.855-22.98C16.424,3.042,24.863,0,35.17,0"/>
-		<path fill="#00678C" d="M83,27.833L99.305,28v76.901c0,8.43,0.565,13.458,5.695,15.072c-2.521,4.687-4.825,7.026-10.912,7.026
-			C86.695,127,83,121.978,83,111.93V27.833z"/>
-		<path fill="#00678C" d="M122.684,126V70.637H116V57.531h22.674V126H122.684z M130.835,31c2.528,0,4.688,0.903,6.479,2.717
-			c1.791,1.812,2.686,3.995,2.686,6.552c0,2.559-0.895,4.74-2.686,6.554c-1.792,1.812-3.951,2.718-6.479,2.718
-			c-2.527,0-4.687-0.905-6.478-2.718c-1.793-1.813-2.688-3.995-2.688-6.554c0-2.557,0.895-4.74,2.688-6.552
-			C126.148,31.903,128.308,31,130.835,31z"/>
-		<path fill="#00678C" d="M202.025,125V85.85c0-5.774-1.118-9.991-3.354-12.648c-2.237-2.653-5.892-3.984-10.96-3.984
-			c-2.343,0-4.847,0.654-7.509,1.962c-2.66,1.308-4.737,2.932-6.229,4.868V125H158V57.265h14.498l-0.059,6.324
-			C176.787,58.53,183.196,56,191.674,56c8.136,0,14.557,2.414,19.264,7.24C215.645,68.069,218,74.805,218,83.447V125H202.025z"/>
-		<path fill="#00678C" d="M267.352,158.786c6.094,0,11.854-1.083,17.459-3.517c1.404-0.608,2.781-1.432,3.868-2.531
-			c1.985-2.011,2.836-5.396,0.919-7.751c-1.828-2.249-4.845-2.909-7.59-2.875c-1.643,0.02-3.238,0.323-4.867,0.475
-			c-3.93,0.367-7.871,0.688-11.758,1.394c-5.168,0.939-10.365,1.643-15.625,1.213c-5.727-0.468-12.57-2.209-14.697-8.338
-			c-2.119-6.109,2.02-11.507,6.372-14.805c1.649-1.249,3.347-2.485,5.084-3.608c-1.687-1.116-3.079-2.555-4.595-3.884
-			c-2.411-2.116-4.612-4.489-6.366-7.192c-1.816-2.801-3.123-6.916-3.847-10.179c-0.789-3.558-0.896-8.249-0.438-11.858
-			c0.494-3.91,1.364-8.014,3.045-11.569c1.721-3.642,3.883-6.737,6.656-9.648c3.229-3.393,7.596-6.233,11.956-7.942
-			c4.722-1.848,9.794-1.927,14.82-1.99c5.017-0.064,9.817,1.361,14.588,3.027c1.399,0.489,3.048,1.663,4.18,2.44
-			c0.996-1.117,8.609-8.254,8.974-8.646c0.951,1.005,8.51,8,8.51,8l-8.665,8.728c0,0,3.046,4.855,4.125,7.777
-			c0.792,2.144,1.742,5.392,1.997,9.722c0.206,3.505-0.055,8.044-0.731,11.486c-0.647,3.295-1.69,7.527-3.269,10.493
-			c-1.504,2.829-3.502,5.361-5.879,7.499c-2.396,2.156-5.13,3.917-8.01,5.344c-7.461,3.693-15.137,4.388-23.306,3.697
-			c-1.417-0.121-1.845-0.156-3.265-0.228c-0.238,0.242-3.925,1.862-5.709,3.177c-1.49,1.099-5.807,3.854-4.129,6.308
-			c1.118,1.634,3.545,1.383,5.23,1.159c5.688-0.75,11.336-1.891,17.004-2.776c2.551-0.397,5.104-0.807,7.668-1.102
-			c1.652-0.19,3.312-0.316,4.976-0.341c3.64-0.051,7.332,0.393,10.767,1.68c1.471,0.551,2.93,1.279,4.266,2.11
-			c1.574,0.982,3.101,2.18,4.424,3.487c1.181,1.167,2.212,2.538,3.017,3.997c2.296,4.161,1.698,9.258-0.175,13.455
-			c-0.504,1.129-1.111,2.247-1.794,3.28c-0.92,1.396-2.029,2.745-3.222,3.917c-1.279,1.259-2.718,2.411-4.192,3.43
-			c-7.427,5.135-16.403,7.7-27.776,7.7 M266.87,67.299c-5.91,0-10.737,1.956-14.469,5.864c-3.734,3.911-5.6,8.657-5.6,14.242
-			c0,6.256,1.807,13.436,5.423,17.539c3.611,4.106,8.494,6.16,14.646,6.16c6.034,0,10.753-1.996,14.157-5.99
-			c3.406-3.995,5.107-11.23,5.107-17.709c0-5.585-1.836-10.331-5.51-14.242C276.951,69.255,272.366,67.299,266.87,67.299z
-			 M234.994,130.819"/>
-	</g>
-	<g id="BL-Corner_2_">
-		<path id="B_2_" fill="#00678C" d="M29,173H0v-9.983c0.369,0,13.488-0.063,14-0.017"/>
-		<path id="L_2_" fill="#00678C" d="M14,133.866c0,0-7.577-1.631-14-5.866v36h14V133.866z"/>
-	</g>
-	<rect id="T-Border_2_" x="34" fill="#00678C" width="270" height="14"/>
-	<rect id="R-Border_2_" x="290" fill="#00678C" width="14" height="59"/>
-	<path id="G-tail_Stop_1_" fill="#00678C" d="M234,172.987c12.82,0.03,16.655-0.002,29.476-0.006c0.186,0,4.524-0.001,4.524-0.001
-		c0-0.014,0-13.971,0-13.973c0-0.012-1.975,0.02-2.04,0.02c-2.207-0.01-4.415-0.033-6.622-0.025
-		c-1.189,0.004-3.561,0.008-3.561,0.008h-1.227"/>
-	<g id="Feather_2_">
-		<g>
-			<path stroke="#000000" stroke-width="0.5956" d="M23.533,157.828c40.226,0.693,80.587,3.073,120.742,0.612
-				c9.681-0.594,19.387-1.189,29.092-1.253c9.615-0.063,19.286-0.896,28.822-0.818c5.511,0.045,11.009,0.344,16.369,0.425
-				c7.339,0.11,14.135-0.825,20.903-2.238c3.294-0.688,6.389-1.596,9.244-3.116c-8.047,0.928-15.746,1.806-23.646,2.113
-				c-7.866,0.307-15.907,0.025-24.311-0.233c-8.532-0.263-17.27-0.22-25.604-0.595c-12.801-0.576-25.838-1.672-38.64-0.439
-				c-3.654,0.352-7.518,1.93-11.235,2.236c-7.931,0.654-14.02-0.278-21.972-0.021c-2.261,0.073-6.313,0.631-8.568,0.669
-				c-2.55,0.043-5.396-0.27-7.926-0.284c-12.622-0.072-25.199,0.738-37.744,1.492c-3.575,0.215-7.212,0.388-10.816,0.567
-				c-4.494,0.224-9.004,0.442-13.473,0.787C24.362,157.763,23.941,157.83,23.533,157.828z"/>
-			
-				<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-3741.7573" y1="-3407.2129" x2="-3742.7603" y2="-3380.6497" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_1_)" stroke="#000000" stroke-width="0.254" d="M88.16,172.393L88.16,172.393
-				c0.772,0.371,1.159,0.556,1.935,0.924c0.789,0.156,1.185,0.233,1.976,0.387c0.82-0.039,1.231-0.062,2.054-0.104
-				c0.852-0.232,1.278-0.347,2.131-0.584c0.849-0.346,1.273-0.521,2.123-0.871c0.869-0.477,1.303-0.718,2.172-1.199
-				c0.839-0.569,1.261-0.855,2.099-1.43c0.842-0.62,1.262-0.932,2.102-1.557c0.801-0.648,1.2-0.975,1.998-1.627
-				c0.755-0.658,1.133-0.988,1.885-1.65c0.726-0.639,1.088-0.96,1.811-1.602c0.675-0.605,1.011-0.907,1.683-1.515
-				c0.612-0.501,0.92-0.753,1.529-1.255c0.554-0.396,0.83-0.594,1.381-0.99c0.468-0.254,0.7-0.379,1.167-0.634
-				c0.404-0.104,0.606-0.155,1.01-0.259l0,0c-0.327-0.001-0.491-0.004-0.818-0.005c-0.345-0.002-0.517,0-0.862-0.002
-				c-0.393,0.018-0.589,0.024-0.982,0.042c-0.392,0.015-0.588,0.023-0.98,0.038c-0.396,0.018-0.592,0.026-0.987,0.044
-				c-0.393,0.016-0.591,0.023-0.984,0.039c-0.389-0.005-0.583-0.008-0.973-0.013c-0.351,0.018-0.526,0.027-0.877,0.045l0,0
-				c-0.605,0.458-0.909,0.688-1.516,1.144c-0.584,0.435-0.878,0.651-1.464,1.084c-0.521,0.438-0.781,0.656-1.304,1.093
-				c-0.479,0.442-0.719,0.663-1.199,1.104c-0.476,0.415-0.715,0.623-1.192,1.036c-0.456,0.417-0.684,0.626-1.14,1.042
-				c-0.434,0.396-0.651,0.591-1.085,0.985c-0.453,0.372-0.68,0.559-1.134,0.929c-0.452,0.369-0.677,0.554-1.129,0.922
-				c-0.469,0.323-0.705,0.483-1.174,0.805c-0.49,0.32-0.735,0.479-1.226,0.798c-0.551,0.289-0.827,0.434-1.377,0.721
-				c-0.57,0.267-0.854,0.398-1.424,0.662c-0.631,0.234-0.948,0.352-1.579,0.583c-0.691,0.203-1.036,0.304-1.727,0.503
-				C89.312,172.174,88.928,172.247,88.16,172.393z"/>
-			
-				<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-3729.1362" y1="-3401.251" x2="-3729.9829" y2="-3378.8225" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_2_)" stroke="#000000" stroke-width="0.254" d="M81.58,171.282L81.58,171.282
-				c0.912,0.276,1.369,0.411,2.285,0.683c0.87,0.135,1.306,0.202,2.179,0.332c0.828,0.019,1.242,0.023,2.073,0.038
-				c0.802-0.099,1.202-0.148,2.006-0.251c0.76-0.213,1.141-0.324,1.902-0.541c0.705-0.289,1.059-0.432,1.765-0.725
-				c0.717-0.355,1.075-0.533,1.792-0.893c0.663-0.428,0.994-0.644,1.656-1.075c0.665-0.454,0.997-0.681,1.661-1.138
-				c0.627-0.503,0.94-0.756,1.566-1.262c0.634-0.551,0.951-0.827,1.583-1.381c0.607-0.532,0.91-0.8,1.516-1.335
-				c0.626-0.534,0.938-0.803,1.562-1.339c0.626-0.536,0.94-0.804,1.564-1.343c0.616-0.495,0.924-0.745,1.538-1.243
-				c0.629-0.453,0.942-0.68,1.569-1.136l0,0c-0.217,0.005-0.326,0.008-0.543,0.013c-0.238-0.017-0.356-0.023-0.594-0.041
-				c-0.218,0.007-0.329,0.011-0.547,0.018c-0.239,0.003-0.358,0.005-0.597,0.008c-0.241,0.003-0.362,0.005-0.604,0.008
-				c-0.242,0.026-0.362,0.038-0.604,0.064c-0.239,0.002-0.359,0.004-0.599,0.006c-0.239,0.005-0.359,0.006-0.598,0.011
-				c-0.239,0.003-0.358,0.005-0.597,0.007c-0.262,0.001-0.392,0.003-0.653,0.004c-0.243,0.025-0.365,0.038-0.607,0.063
-				c-0.26,0-0.389-0.001-0.649-0.001s-0.392,0-0.652,0c-0.262,0-0.394-0.002-0.655-0.002c-0.258-0.021-0.386-0.03-0.645-0.053
-				c-0.259,0-0.388-0.001-0.647-0.001l0,0c-0.24,0.282-0.361,0.422-0.602,0.704c-0.291,0.344-0.438,0.516-0.729,0.858
-				c-0.368,0.399-0.55,0.599-0.919,0.997c-0.391,0.419-0.588,0.63-0.98,1.047c-0.465,0.454-0.699,0.68-1.165,1.132
-				c-0.487,0.448-0.729,0.672-1.217,1.118c-0.512,0.466-0.768,0.698-1.28,1.161c-0.531,0.439-0.799,0.656-1.33,1.094
-				c-0.549,0.415-0.822,0.624-1.371,1.037c-0.544,0.392-0.817,0.587-1.36,0.976c-0.56,0.343-0.841,0.514-1.4,0.854
-				c-0.526,0.281-0.789,0.419-1.314,0.698c-0.516,0.215-0.773,0.323-1.287,0.536c-0.5,0.129-0.75,0.194-1.25,0.322
-				c-0.464,0.047-0.695,0.067-1.158,0.112C82.218,171.368,82.005,171.341,81.58,171.282z"/>
-			
-				<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-3715.7637" y1="-3411.7705" x2="-3716.6929" y2="-3387.1614" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_3_)" stroke="#000000" stroke-width="0.254" d="M77.253,170.731L77.253,170.731
-				c0.514,0.133,0.772,0.201,1.287,0.338c0.497,0.112,0.746,0.169,1.246,0.282c0.489,0.049,0.732,0.071,1.223,0.118
-				c0.501-0.017,0.753-0.023,1.256-0.042c0.505-0.038,0.76-0.059,1.267-0.099c0.499-0.127,0.749-0.188,1.249-0.317
-				c0.505-0.171,0.758-0.258,1.264-0.431c0.545-0.255,0.818-0.383,1.365-0.64c0.551-0.299,0.826-0.45,1.378-0.752
-				c0.562-0.363,0.844-0.544,1.408-0.909c0.576-0.452,0.863-0.679,1.44-1.134c0.607-0.494,0.911-0.744,1.518-1.241
-				c0.643-0.602,0.966-0.899,1.608-1.505c0.676-0.666,1.013-1.002,1.688-1.672c0.705-0.731,1.057-1.101,1.76-1.837
-				c0.741-0.842,1.111-1.263,1.849-2.109l0,0c-0.365-0.031-0.547-0.046-0.912-0.078c-0.346-0.008-0.518-0.012-0.863-0.02
-				c-0.35,0.012-0.525,0.018-0.875,0.029c-0.349,0.013-0.524,0.019-0.874,0.03c-0.349,0.012-0.522,0.017-0.871,0.027
-				c-0.348,0.009-0.522,0.014-0.87,0.021c-0.384-0.037-0.576-0.055-0.96-0.093c-0.405-0.039-0.607-0.061-1.012-0.101l0,0
-				c-0.398,0.305-0.597,0.459-0.996,0.763c-0.378,0.327-0.569,0.488-0.948,0.813c-0.378,0.306-0.566,0.458-0.944,0.763
-				c-0.383,0.344-0.575,0.517-0.958,0.859c-0.38,0.322-0.571,0.482-0.951,0.804c-0.361,0.347-0.541,0.517-0.902,0.862
-				c-0.381,0.318-0.571,0.479-0.952,0.796c-0.363,0.343-0.546,0.515-0.909,0.856c-0.378,0.318-0.567,0.478-0.945,0.795
-				c-0.378,0.316-0.567,0.474-0.944,0.788c-0.399,0.312-0.599,0.471-0.998,0.782c-0.376,0.293-0.565,0.438-0.94,0.73
-				c-0.411,0.264-0.616,0.396-1.026,0.658c-0.412,0.264-0.618,0.395-1.029,0.657c-0.408,0.262-0.609,0.394-1.015,0.657
-				C77.917,170.402,77.696,170.511,77.253,170.731z"/>
-			
-				<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-3705.0015" y1="-3407.603" x2="-3705.8396" y2="-3385.4011" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_4_)" stroke="#000000" stroke-width="0.254" d="M72.728,169.955L72.728,169.955
-				c0.364,0.257,0.547,0.385,0.912,0.644c0.426,0.135,0.639,0.202,1.065,0.339c0.451-0.01,0.677-0.013,1.128-0.02
-				c0.491-0.129,0.737-0.193,1.229-0.319c0.505-0.212,0.756-0.318,1.262-0.526c0.543-0.31,0.815-0.461,1.362-0.77
-				c0.554-0.349,0.83-0.523,1.386-0.875c0.571-0.435,0.859-0.654,1.433-1.091c0.553-0.464,0.829-0.696,1.383-1.162
-				c0.582-0.481,0.873-0.722,1.456-1.206c0.538-0.492,0.807-0.74,1.345-1.234c0.538-0.474,0.807-0.709,1.344-1.186
-				c0.515-0.477,0.772-0.718,1.288-1.197c0.483-0.419,0.725-0.626,1.208-1.047c0.451-0.361,0.676-0.543,1.126-0.905
-				c0.398-0.305,0.597-0.459,0.995-0.765c-2.317-0.018-3.474-0.032-5.779-0.088l0,0c-0.314,0.307-0.47,0.459-0.784,0.765
-				c-0.332,0.302-0.5,0.451-0.832,0.752c-0.311,0.309-0.467,0.466-0.778,0.773c-0.312,0.301-0.467,0.451-0.778,0.751
-				c-0.313,0.305-0.47,0.455-0.783,0.76c-0.333,0.299-0.499,0.449-0.832,0.747c-0.312,0.302-0.47,0.452-0.781,0.753
-				c-0.332,0.297-0.496,0.445-0.827,0.741c-0.35,0.273-0.527,0.406-0.876,0.679c-0.353,0.292-0.526,0.438-0.876,0.731
-				c-0.346,0.274-0.519,0.413-0.865,0.689c-0.387,0.266-0.582,0.399-0.968,0.667c-0.387,0.271-0.58,0.406-0.966,0.679
-				c-0.409,0.271-0.612,0.407-1.021,0.68c-0.425,0.248-0.638,0.37-1.062,0.62C73.396,169.58,73.172,169.707,72.728,169.955z"/>
-			
-				<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-3691.0664" y1="-3414.939" x2="-3691.9287" y2="-3392.1023" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_5_)" stroke="#000000" stroke-width="0.254" d="M63.666,167.855L63.666,167.855
-				c0.58,0.475,0.871,0.715,1.451,1.192c0.562,0.327,0.842,0.49,1.404,0.819c0.587,0.182,0.88,0.276,1.467,0.461
-				c0.586,0.055,0.88,0.08,1.467,0.138c0.582-0.05,0.873-0.073,1.455-0.12c0.574-0.131,0.86-0.196,1.434-0.324
-				c0.57-0.238,0.856-0.357,1.427-0.593c0.585-0.315,0.877-0.471,1.463-0.782c0.578-0.398,0.868-0.598,1.446-0.992
-				c0.584-0.417,0.877-0.626,1.462-1.038c0.553-0.504,0.826-0.753,1.383-1.254c0.583-0.494,0.876-0.74,1.461-1.237
-				c0.569-0.544,0.854-0.818,1.424-1.365c0.574-0.565,0.86-0.85,1.435-1.418c0.553-0.573,0.83-0.859,1.383-1.436
-				c0.551-0.556,0.826-0.834,1.377-1.393l0,0c-0.392,0.019-0.589,0.028-0.981,0.045c-0.3-0.016-0.45-0.023-0.75-0.04
-				c-0.215-0.006-0.322-0.01-0.537-0.017c-0.195-0.003-0.292-0.003-0.488-0.006c-0.193-0.002-0.29-0.002-0.482-0.004
-				c-0.19-0.025-0.284-0.041-0.474-0.067c-0.279-0.016-0.418-0.021-0.697-0.038c-0.362-0.027-0.544-0.045-0.906-0.074l0,0
-				c-0.5,0.511-0.749,0.766-1.248,1.274c-0.491,0.467-0.736,0.7-1.225,1.167c-0.486,0.447-0.728,0.671-1.213,1.121
-				c-0.517,0.381-0.776,0.57-1.292,0.954c-0.486,0.346-0.729,0.521-1.215,0.869c-0.482,0.326-0.724,0.491-1.206,0.82
-				c-0.497,0.284-0.746,0.426-1.242,0.713c-0.468,0.248-0.701,0.373-1.169,0.623c-0.461,0.208-0.692,0.312-1.153,0.521
-				c-0.457,0.189-0.685,0.285-1.141,0.477c-0.425,0.128-0.639,0.192-1.064,0.322c-0.4,0.113-0.6,0.17-1,0.284
-				c-0.398,0.093-0.595,0.137-0.993,0.23c-0.348,0.054-0.523,0.083-0.871,0.138c-0.342,0.013-0.513,0.019-0.855,0.032
-				C64.109,167.857,63.961,167.857,63.666,167.855z"/>
-			
-				<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-3681.7158" y1="-3413.8115" x2="-3682.5376" y2="-3392.0488" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_6_)" stroke="#000000" stroke-width="0.254" d="M58.852,167.168L58.852,167.168
-				c0.657,0.132,0.986,0.199,1.643,0.333c0.641,0.092,0.961,0.138,1.602,0.232c0.634,0.005,0.951,0.007,1.585,0.015
-				c0.62-0.035,0.93-0.052,1.551-0.084c0.585-0.076,0.879-0.114,1.465-0.188c0.595-0.141,0.893-0.21,1.488-0.348
-				c0.561-0.183,0.84-0.273,1.401-0.453c0.551-0.245,0.827-0.367,1.378-0.609c0.555-0.262,0.833-0.394,1.388-0.652
-				c0.521-0.308,0.782-0.457,1.304-0.762c0.527-0.346,0.792-0.519,1.319-0.861c0.514-0.388,0.771-0.581,1.286-0.966
-				c0.498-0.407,0.747-0.61,1.245-1.015c0.486-0.449,0.729-0.673,1.216-1.119c0.49-0.469,0.734-0.704,1.227-1.172
-				c0.474-0.49,0.711-0.732,1.186-1.225l0,0c-0.425-0.036-0.636-0.056-1.061-0.094c-0.471-0.025-0.706-0.04-1.174-0.064
-				c-0.446-0.021-0.67-0.032-1.116-0.051c-0.445-0.038-0.667-0.054-1.112-0.089c-0.386-0.007-0.578-0.011-0.964-0.016
-				c-0.317-0.02-0.477-0.028-0.794-0.047c-0.235-0.006-0.351-0.008-0.586-0.013c-0.109,0.008-0.165,0.01-0.274,0.018l0,0
-				c-0.047,0.038-0.07,0.059-0.117,0.097c-0.124,0.092-0.186,0.138-0.309,0.229c-0.198,0.148-0.299,0.225-0.497,0.374
-				c-0.245,0.188-0.368,0.278-0.613,0.467c-0.273,0.227-0.41,0.342-0.684,0.569c-0.344,0.264-0.516,0.396-0.859,0.66
-				c-0.37,0.283-0.554,0.427-0.923,0.711c-0.413,0.302-0.619,0.452-1.031,0.756c-0.457,0.297-0.685,0.445-1.141,0.744
-				c-0.478,0.319-0.716,0.479-1.194,0.801c-0.476,0.302-0.714,0.453-1.189,0.757c-0.517,0.297-0.775,0.445-1.291,0.744
-				c-0.532,0.277-0.798,0.417-1.33,0.695c-0.53,0.257-0.794,0.388-1.323,0.646c-0.544,0.217-0.816,0.325-1.36,0.543
-				C59.656,166.907,59.388,166.993,58.852,167.168z"/>
-			
-				<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-3669.041" y1="-3419.2881" x2="-3669.7375" y2="-3400.8372" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_7_)" stroke="#000000" stroke-width="0.254" d="M52.362,167.105L52.362,167.105
-				c0.549,0.143,0.824,0.214,1.372,0.357c0.538,0.078,0.808,0.117,1.346,0.196c0.575-0.025,0.861-0.038,1.436-0.063
-				c0.582-0.067,0.873-0.101,1.455-0.167c0.594-0.15,0.892-0.225,1.486-0.374c0.58-0.195,0.87-0.294,1.45-0.488
-				c0.588-0.234,0.882-0.352,1.471-0.584c0.599-0.295,0.9-0.44,1.5-0.732c0.559-0.317,0.838-0.474,1.398-0.789
-				c0.566-0.338,0.85-0.507,1.416-0.843c0.548-0.358,0.821-0.535,1.369-0.891c0.533-0.378,0.801-0.566,1.334-0.942
-				c0.515-0.399,0.772-0.602,1.288-0.998c0.49-0.378,0.735-0.568,1.226-0.944c0.451-0.381,0.675-0.568,1.126-0.947
-				c0.429-0.381,0.645-0.57,1.074-0.949l0,0c-0.251-0.029-0.379-0.044-0.63-0.072c-0.319-0.014-0.479-0.02-0.798-0.032
-				c-0.338-0.018-0.506-0.027-0.845-0.044c-0.358-0.037-0.538-0.056-0.896-0.092c-0.342,0.006-0.512,0.01-0.854,0.017
-				c-0.339-0.011-0.509-0.016-0.849-0.025c-0.276-0.005-0.415-0.008-0.691-0.013c-0.238,0.021-0.356,0.031-0.594,0.052l0,0
-				c-0.007,0.042-0.012,0.063-0.019,0.105c-0.103,0.097-0.154,0.146-0.257,0.242c-0.24,0.172-0.362,0.258-0.602,0.43
-				c-0.334,0.206-0.5,0.308-0.834,0.515c-0.407,0.264-0.61,0.397-1.016,0.662c-0.476,0.304-0.714,0.452-1.189,0.757
-				c-0.522,0.323-0.783,0.488-1.305,0.812c-0.542,0.319-0.813,0.479-1.355,0.801c-0.565,0.342-0.848,0.511-1.413,0.854
-				c-0.564,0.345-0.847,0.519-1.411,0.865c-0.54,0.327-0.809,0.49-1.348,0.818c-0.513,0.285-0.769,0.429-1.281,0.715
-				c-0.465,0.269-0.697,0.401-1.161,0.67c-0.414,0.208-0.623,0.312-1.037,0.521c-0.32,0.149-0.479,0.224-0.799,0.373
-				C52.701,166.968,52.588,167.014,52.362,167.105z"/>
-			
-				<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-3656.9858" y1="-3419.1211" x2="-3657.7656" y2="-3398.4695" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_8_)" stroke="#000000" stroke-width="0.254" d="M45.253,166.584L45.253,166.584
-				c0.284,0.361,0.426,0.541,0.71,0.901c0.418,0.178,0.627,0.268,1.045,0.444c0.544,0.037,0.817,0.054,1.361,0.09
-				c0.629-0.107,0.943-0.161,1.572-0.269c0.709-0.212,1.064-0.318,1.774-0.53c0.744-0.313,1.116-0.469,1.861-0.781
-				c0.8-0.376,1.2-0.563,2.001-0.938c0.785-0.417,1.177-0.628,1.963-1.044c0.794-0.459,1.191-0.688,1.987-1.145
-				c0.753-0.459,1.13-0.688,1.884-1.144c0.707-0.438,1.062-0.655,1.77-1.09c0.625-0.424,0.937-0.635,1.562-1.056
-				c0.546-0.339,0.821-0.508,1.369-0.845c0.41-0.286,0.614-0.43,1.024-0.714c0.267-0.188,0.398-0.283,0.665-0.471
-				c0.12-0.076,0.179-0.116,0.299-0.192l0,0c-0.275-0.004-0.414-0.003-0.689-0.007c-0.298-0.007-0.447-0.009-0.746-0.015
-				c-0.319-0.007-0.478-0.013-0.796-0.019c-0.317-0.004-0.477-0.006-0.793-0.009c-0.344,0.012-0.518,0.016-0.862,0.028
-				c-0.34-0.006-0.509-0.007-0.849-0.012c-0.339-0.004-0.509-0.005-0.848-0.008c-0.361-0.007-0.541-0.01-0.902-0.016l0,0
-				c-0.417,0.203-0.625,0.302-1.042,0.505c-0.416,0.206-0.623,0.312-1.038,0.519c-0.421,0.226-0.632,0.337-1.054,0.562
-				c-0.396,0.21-0.593,0.317-0.989,0.528c-0.417,0.226-0.627,0.338-1.044,0.563c-0.404,0.253-0.604,0.38-1.008,0.633
-				c-0.418,0.229-0.625,0.343-1.043,0.571c-0.397,0.23-0.597,0.343-0.994,0.573c-0.423,0.25-0.634,0.377-1.057,0.627
-				c-0.396,0.231-0.594,0.347-0.99,0.578c-0.416,0.229-0.625,0.345-1.041,0.573c-0.396,0.23-0.592,0.347-0.988,0.577
-				c-0.414,0.209-0.621,0.312-1.034,0.521c-0.415,0.209-0.623,0.313-1.037,0.521c-0.392,0.207-0.585,0.311-0.977,0.518
-				C45.87,166.305,45.663,166.397,45.253,166.584z"/>
-			
-				<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-3646.0073" y1="-3425.1045" x2="-3646.2205" y2="-3415.0991" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_9_)" stroke="#000000" stroke-width="0.254" d="M39.999,166.306L39.999,166.306
-				c0.338,0.155,0.506,0.23,0.845,0.385c0.346,0.091,0.522,0.14,0.868,0.229c0.353,0.047,0.527,0.067,0.88,0.113
-				c0.366-0.036,0.549-0.052,0.915-0.088c0.372-0.082,0.559-0.125,0.93-0.207c0.399-0.12,0.6-0.179,1-0.3
-				c0.43-0.185,0.644-0.28,1.074-0.466c0.458-0.226,0.688-0.336,1.146-0.562c0.507-0.266,0.761-0.399,1.268-0.665
-				c0.536-0.309,0.803-0.462,1.339-0.771c0.583-0.346,0.875-0.521,1.459-0.866c0.651-0.364,0.977-0.547,1.629-0.911
-				c0.72-0.401,1.079-0.601,1.8-1.001c0.771-0.442,1.157-0.661,1.93-1.103c0.838-0.456,1.258-0.686,2.098-1.14
-				c0.929-0.469,1.394-0.702,2.324-1.167l0,0c-0.362-0.005-0.544-0.007-0.906-0.012c-0.403-0.007-0.603-0.012-1.006-0.019
-				c-0.357-0.026-0.536-0.039-0.893-0.064c-0.36-0.004-0.54-0.006-0.9-0.01c-0.319-0.001-0.479-0.001-0.798-0.001
-				c-0.256,0.004-0.383,0.004-0.639,0.008c-0.173,0.011-0.259,0.021-0.432,0.031c-0.066,0.016-0.099,0.022-0.165,0.038l0,0
-				c-0.053,0.062-0.079,0.092-0.132,0.153c-0.147,0.119-0.219,0.178-0.366,0.297c-0.217,0.157-0.327,0.236-0.544,0.394
-				c-0.289,0.216-0.433,0.322-0.722,0.538c-0.359,0.253-0.539,0.379-0.897,0.632c-0.409,0.298-0.611,0.447-1.02,0.745
-				c-0.43,0.291-0.646,0.437-1.076,0.728c-0.494,0.311-0.74,0.466-1.233,0.776c-0.494,0.31-0.742,0.467-1.235,0.776
-				c-0.514,0.308-0.77,0.459-1.284,0.767c-0.506,0.265-0.759,0.396-1.265,0.661c-0.53,0.265-0.797,0.397-1.327,0.661
-				c-0.499,0.221-0.748,0.332-1.247,0.552c-0.493,0.179-0.74,0.267-1.232,0.444c-0.462,0.115-0.692,0.175-1.154,0.289
-				C40.618,166.227,40.411,166.252,39.999,166.306z"/>
-			
-				<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-3642.0181" y1="-3445.001" x2="-3636.4285" y2="-3407.8162" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_10_)" stroke="#000000" stroke-width="0.254" d="M36.259,165.413L36.259,165.413
-				c0.454,0.23,0.68,0.345,1.133,0.574c0.512,0.129,0.768,0.192,1.28,0.319c0.553,0.003,0.829,0.006,1.381,0.007
-				c0.587-0.104,0.882-0.156,1.47-0.262c0.62-0.169,0.929-0.255,1.549-0.425c0.607-0.233,0.91-0.351,1.518-0.586
-				c0.639-0.297,0.958-0.446,1.599-0.745c0.603-0.345,0.905-0.516,1.509-0.86c0.583-0.346,0.876-0.52,1.461-0.866
-				c0.567-0.369,0.851-0.553,1.419-0.922c0.522-0.352,0.784-0.531,1.307-0.883c0.46-0.356,0.689-0.532,1.149-0.888
-				c0.409-0.294,0.614-0.44,1.024-0.734c0.315-0.258,0.473-0.385,0.789-0.643c0.241-0.175,0.362-0.264,0.604-0.438
-				c0.148-0.121,0.224-0.182,0.372-0.303l0,0c-0.34-0.001-0.51-0.002-0.851-0.003c-0.321,0.002-0.483,0.004-0.804,0.006
-				c-0.318,0.001-0.475,0.001-0.793,0.002c-0.322,0.021-0.484,0.03-0.806,0.051c-0.298,0.004-0.449,0.006-0.747,0.01
-				c-0.319,0-0.477-0.002-0.796-0.002c-0.343,0.02-0.515,0.032-0.858,0.052c-0.34,0-0.51-0.001-0.85-0.001l0,0
-				c-0.29,0.217-0.435,0.327-0.724,0.544c-0.312,0.214-0.469,0.32-0.781,0.534c-0.288,0.216-0.43,0.323-0.717,0.539
-				c-0.313,0.237-0.47,0.354-0.783,0.591c-0.316,0.257-0.476,0.387-0.792,0.643c-0.312,0.234-0.466,0.351-0.777,0.585
-				c-0.333,0.234-0.5,0.351-0.833,0.584c-0.334,0.232-0.502,0.351-0.835,0.583c-0.33,0.212-0.495,0.316-0.824,0.528
-				c-0.328,0.211-0.493,0.316-0.821,0.527c-0.349,0.187-0.523,0.28-0.872,0.467c-0.32,0.167-0.479,0.25-0.799,0.416
-				c-0.363,0.145-0.545,0.218-0.909,0.361c-0.336,0.121-0.504,0.181-0.84,0.301c-0.352,0.08-0.529,0.12-0.88,0.199
-				C36.78,165.331,36.607,165.358,36.259,165.413z"/>
-			
-				<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="-3627.3384" y1="-3429.749" x2="-3627.5667" y2="-3419.0417" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_11_)" stroke="#000000" stroke-width="0.254" d="M31.859,163.496L31.859,163.496
-				c0.376,0.337,0.564,0.508,0.94,0.844c0.391,0.23,0.585,0.346,0.976,0.575c0.409,0.126,0.614,0.185,1.022,0.309
-				c0.417,0.061,0.625,0.092,1.042,0.15c0.432-0.046,0.648-0.069,1.08-0.117c0.439-0.093,0.661-0.141,1.1-0.235
-				c0.447-0.154,0.67-0.231,1.117-0.387c0.458-0.219,0.686-0.329,1.143-0.55c0.44-0.245,0.661-0.366,1.102-0.612
-				c0.471-0.305,0.707-0.457,1.179-0.764c0.452-0.311,0.678-0.468,1.13-0.779c0.455-0.332,0.682-0.498,1.137-0.83
-				c0.454-0.331,0.681-0.495,1.136-0.826c0.438-0.355,0.657-0.534,1.095-0.891c0.435-0.334,0.653-0.501,1.089-0.836
-				c0.432-0.315,0.647-0.474,1.08-0.789l0,0c-0.235,0.008-0.352,0.012-0.586,0.02c-0.261,0.025-0.391,0.039-0.652,0.064
-				c-0.275,0.002-0.414,0.004-0.689,0.006c-0.297,0.003-0.446,0.001-0.743,0.004c-0.323,0.021-0.484,0.032-0.807,0.052
-				c-0.34-0.001-0.51-0.003-0.85-0.004c-0.365,0.016-0.547,0.022-0.912,0.038c-0.341-0.002-0.511-0.001-0.852-0.004l0,0
-				c-0.145,0.246-0.218,0.369-0.362,0.615c-0.186,0.243-0.278,0.365-0.464,0.608c-0.185,0.223-0.277,0.334-0.462,0.557
-				c-0.225,0.219-0.337,0.326-0.561,0.545c-0.241,0.196-0.361,0.297-0.602,0.492c-0.265,0.193-0.399,0.288-0.664,0.48
-				c-0.263,0.192-0.393,0.289-0.655,0.48c-0.297,0.148-0.446,0.224-0.744,0.371c-0.3,0.147-0.451,0.221-0.751,0.368
-				c-0.317,0.123-0.475,0.185-0.792,0.307c-0.336,0.121-0.504,0.182-0.841,0.302c-0.332,0.077-0.498,0.112-0.83,0.188
-				c-0.349,0.055-0.522,0.084-0.871,0.138c-0.348,0.052-0.521,0.08-0.869,0.131c-0.364,0.009-0.545,0.011-0.91,0.018
-				C32.399,163.521,32.219,163.512,31.859,163.496z"/>
-			
-				<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="-3621.6299" y1="-3444.3125" x2="-3616.3506" y2="-3409.1934" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_12_)" stroke="#000000" stroke-width="0.254" d="M27.818,162.245L27.818,162.245
-				c0.338,0.188,0.506,0.286,0.844,0.474c0.363,0.15,0.545,0.224,0.908,0.373c0.389,0.106,0.583,0.158,0.973,0.263
-				c0.442,0.049,0.663,0.071,1.104,0.118c0.424,0.022,0.636,0.034,1.06,0.056c0.471-0.018,0.707-0.028,1.178-0.048
-				c0.46-0.085,0.69-0.127,1.15-0.213c0.46-0.085,0.689-0.127,1.149-0.214c0.449-0.153,0.673-0.229,1.123-0.384
-				c0.431-0.178,0.646-0.268,1.078-0.446c0.392-0.204,0.588-0.307,0.98-0.512c0.378-0.246,0.567-0.369,0.946-0.616
-				c0.339-0.274,0.508-0.412,0.848-0.687c0.301-0.297,0.452-0.447,0.754-0.745c0.244-0.346,0.366-0.517,0.609-0.862
-				c0.181-0.352,0.272-0.526,0.454-0.878l0,0c-0.255,0.004-0.383,0.006-0.639,0.01c-0.257,0.002-0.385,0.002-0.642,0.004
-				c-0.278,0.021-0.418,0.034-0.696,0.056c-0.279,0-0.418-0.002-0.697-0.002c-0.275,0-0.413,0.003-0.688,0.003
-				c-0.298-0.003-0.449-0.005-0.747-0.008c-0.32-0.004-0.479-0.009-0.799-0.014c-0.361-0.009-0.541-0.011-0.902-0.021l0,0
-				c-0.18,0.198-0.27,0.296-0.45,0.494c-0.2,0.197-0.301,0.297-0.5,0.494c-0.197,0.176-0.295,0.263-0.492,0.438
-				c-0.193,0.154-0.289,0.233-0.482,0.387c-0.194,0.153-0.291,0.227-0.485,0.379c-0.209,0.107-0.314,0.161-0.523,0.269
-				c-0.21,0.132-0.316,0.199-0.526,0.33c-0.209,0.107-0.314,0.161-0.523,0.268c-0.224,0.086-0.335,0.128-0.56,0.213
-				c-0.248,0.081-0.373,0.122-0.62,0.202c-0.247,0.082-0.371,0.122-0.618,0.203c-0.264,0.059-0.395,0.088-0.658,0.146
-				c-0.267,0.056-0.401,0.083-0.667,0.139c-0.284,0.054-0.425,0.081-0.709,0.134c-0.305,0.03-0.458,0.045-0.763,0.074
-				C28.279,162.171,28.126,162.195,27.818,162.245z"/>
-			
-				<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="-3610.6924" y1="-3433.0635" x2="-3610.8992" y2="-3423.3584" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_13_)" stroke="#000000" stroke-width="0.254" d="M25.77,161.239L25.77,161.239
-				c0.108,0.142,0.163,0.211,0.271,0.353c0.179,0.108,0.268,0.164,0.447,0.272c0.225,0.071,0.338,0.107,0.562,0.178
-				c0.252,0.031,0.377,0.046,0.629,0.077c0.297,0.015,0.447,0.021,0.744,0.034c0.325-0.024,0.486-0.035,0.811-0.062
-				c0.351-0.068,0.526-0.104,0.877-0.173c0.352-0.067,0.529-0.104,0.88-0.173c0.359-0.111,0.539-0.165,0.898-0.278
-				c0.362-0.134,0.542-0.203,0.904-0.338c0.364-0.155,0.547-0.231,0.912-0.388c0.326-0.184,0.489-0.277,0.815-0.462
-				c0.33-0.203,0.494-0.306,0.824-0.51c0.29-0.23,0.435-0.344,0.725-0.575c0.229-0.236,0.343-0.354,0.571-0.591
-				c0.209-0.261,0.314-0.392,0.524-0.652l0,0c-0.192,0.007-0.288,0.012-0.479,0.018c-0.173,0.006-0.26,0.007-0.434,0.013
-				c-0.213,0.003-0.32,0.005-0.533,0.007c-0.194,0.004-0.29,0.007-0.483,0.01c-0.192,0.004-0.29,0.005-0.482,0.009
-				c-0.171,0.004-0.256,0.009-0.427,0.013c-0.149-0.014-0.224-0.022-0.373-0.036c-0.146-0.015-0.218-0.02-0.363-0.034l0,0
-				c-0.013,0.085-0.02,0.125-0.033,0.21c-0.214,0.149-0.321,0.225-0.535,0.374c-0.352,0.2-0.527,0.299-0.879,0.498
-				c-0.461,0.232-0.692,0.349-1.154,0.578c-0.545,0.22-0.816,0.326-1.361,0.543c-0.548,0.218-0.823,0.328-1.371,0.542
-				c-0.534,0.149-0.801,0.222-1.334,0.367C26.462,161.134,26.232,161.17,25.77,161.239z"/>
-			
-				<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="-3606.3574" y1="-3434.2515" x2="-3606.5574" y2="-3424.863" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_14_)" stroke="#000000" stroke-width="0.254" d="M24.46,159.564L24.46,159.564c0,0.3,0,0.446,0,0.746
-				c0.079,0.202,0.119,0.306,0.198,0.508c0.155,0.107,0.233,0.162,0.388,0.269c0.225,0.073,0.336,0.105,0.562,0.178
-				c0.279-0.005,0.418-0.004,0.698-0.01c0.332-0.065,0.497-0.1,0.829-0.166c0.333-0.086,0.5-0.129,0.833-0.217
-				c0.362-0.128,0.543-0.194,0.906-0.323c0.365-0.15,0.547-0.226,0.912-0.377c0.346-0.175,0.519-0.262,0.865-0.438
-				c0.347-0.175,0.52-0.263,0.866-0.439c0.282-0.165,0.423-0.247,0.705-0.413c0.255-0.146,0.384-0.221,0.64-0.367
-				c0.188-0.109,0.279-0.163,0.467-0.272c0.118-0.074,0.177-0.109,0.295-0.184c0.028-0.04,0.043-0.061,0.072-0.101
-				c-1.671,0.031-2.508,0.042-4.179,0.045l0,0c-0.137,0.069-0.205,0.104-0.342,0.173c-0.229,0.082-0.345,0.123-0.574,0.204
-				c-0.27,0.097-0.405,0.145-0.674,0.24c-0.293,0.093-0.439,0.14-0.732,0.231c-0.316,0.109-0.474,0.165-0.79,0.273
-				c-0.288,0.069-0.432,0.105-0.72,0.174c-0.269,0.072-0.403,0.108-0.672,0.18C24.792,159.513,24.681,159.531,24.46,159.564z"/>
-			
-				<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="-3601.8926" y1="-3431.2441" x2="-3602.0652" y2="-3423.1433" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_15_)" stroke="#000000" stroke-width="0.254" d="M29.516,158.003L29.516,158.003
-				c-0.361-0.019-0.541-0.029-0.902-0.05c-0.319-0.015-0.48-0.022-0.799-0.038c-0.297-0.017-0.446-0.021-0.743-0.039
-				c-0.278-0.015-0.417-0.024-0.695-0.04c-0.255-0.009-0.383-0.013-0.638-0.022c-0.276-0.017-0.414-0.024-0.689-0.042
-				c-0.28,0.006-0.421,0.007-0.701,0.011c-0.326,0.02-0.489,0.028-0.815,0.046l0,0c0.006,0.408,0.009,0.611,0.015,1.02
-				c0.16,0.216,0.241,0.324,0.401,0.539c0.296,0.042,0.445,0.062,0.741,0.102c0.393-0.053,0.589-0.079,0.982-0.134
-				c0.407-0.141,0.611-0.212,1.018-0.354c0.431-0.158,0.647-0.238,1.079-0.398c0.386-0.146,0.577-0.222,0.963-0.369
-				C29.045,158.141,29.203,158.096,29.516,158.003z"/>
-			
-				<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="-3601.6748" y1="-3442.1211" x2="-3601.9851" y2="-3427.5583" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_16_)" stroke="#000000" stroke-width="0.254" d="M29.436,157.466L29.436,157.466
-				c-0.37,0.021-0.554,0.028-0.923,0.047c-0.32,0.005-0.481,0.007-0.801,0.01c-0.283,0.03-0.424,0.045-0.707,0.074
-				c-0.281,0.008-0.42,0.012-0.702,0.019c-0.261,0.03-0.392,0.046-0.652,0.075c-0.262,0.03-0.394,0.046-0.656,0.075
-				c-0.303,0.023-0.455,0.034-0.758,0.056c-0.328,0.04-0.491,0.061-0.818,0.1l0,0c0.045-0.465,0.066-0.696,0.111-1.161
-				c0.233-0.267,0.349-0.4,0.582-0.668c0.311-0.063,0.466-0.096,0.777-0.16c0.402,0.035,0.604,0.051,1.007,0.084
-				c0.409,0.138,0.612,0.208,1.021,0.344c0.406,0.158,0.609,0.234,1.016,0.391c0.339,0.17,0.509,0.256,0.849,0.424
-				C29.042,157.291,29.173,157.35,29.436,157.466z"/>
-			
-				<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="-3737.9238" y1="-3411.3198" x2="-3747.7493" y2="-3443.6985" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_17_)" stroke="#000000" stroke-width="0.254" d="M87.761,141.026L87.761,141.026
-				c0.977-0.261,1.465-0.394,2.44-0.664c0.914-0.145,1.371-0.219,2.283-0.371c0.821,0.011,1.232,0.014,2.053,0.019
-				c0.764,0.106,1.147,0.16,1.912,0.263c0.723,0.23,1.083,0.347,1.807,0.575c0.649,0.308,0.974,0.46,1.624,0.767
-				c0.615,0.414,0.923,0.619,1.54,1.032c0.588,0.453,0.884,0.682,1.474,1.135c0.559,0.517,0.837,0.774,1.398,1.291
-				c0.537,0.558,0.806,0.836,1.345,1.395c0.533,0.58,0.801,0.871,1.337,1.452c0.516,0.601,0.774,0.9,1.292,1.501
-				c0.519,0.579,0.779,0.869,1.3,1.449c0.523,0.56,0.786,0.841,1.312,1.4c0.532,0.537,0.797,0.806,1.331,1.344
-				c0.559,0.498,0.839,0.746,1.4,1.244l0,0c-0.22,0.027-0.33,0.041-0.55,0.068c-0.238,0.005-0.356,0.007-0.594,0.012
-				c-0.238,0.006-0.357,0.007-0.595,0.013c-0.22,0.028-0.328,0.045-0.547,0.073c-0.239,0.007-0.36,0.01-0.599,0.017
-				c-0.239,0.005-0.358,0.007-0.597,0.012c-0.258,0.003-0.389,0.004-0.647,0.006c-0.238,0.006-0.357,0.009-0.595,0.015
-				c-0.24,0.002-0.359,0.003-0.599,0.005c-0.259,0.005-0.39,0.009-0.648,0.014c-0.263,0.024-0.393,0.035-0.656,0.06
-				c-0.239,0.004-0.357,0.004-0.596,0.008c-0.26,0.004-0.391,0.008-0.65,0.012c-0.261,0.023-0.391,0.034-0.652,0.057
-				c-0.281,0-0.422-0.001-0.704-0.002c-0.263,0.024-0.396,0.036-0.659,0.061l0,0c-0.169-0.314-0.254-0.471-0.423-0.785
-				c-0.222-0.388-0.332-0.58-0.554-0.968c-0.257-0.454-0.385-0.682-0.641-1.135c-0.319-0.459-0.479-0.688-0.796-1.147
-				c-0.332-0.502-0.498-0.754-0.828-1.256c-0.374-0.505-0.56-0.759-0.932-1.264c-0.413-0.509-0.619-0.763-1.031-1.271
-				c-0.415-0.488-0.623-0.73-1.037-1.219c-0.461-0.469-0.69-0.703-1.149-1.172c-0.461-0.427-0.69-0.642-1.15-1.068
-				c-0.469-0.386-0.704-0.579-1.172-0.966c-0.501-0.323-0.751-0.485-1.251-0.81c-0.487-0.261-0.73-0.391-1.217-0.653
-				c-0.502-0.177-0.754-0.266-1.256-0.444c-0.519-0.073-0.777-0.11-1.295-0.187C88.499,140.976,88.253,140.993,87.761,141.026z"/>
-			
-				<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="-3729.9087" y1="-3428.7334" x2="-3741.3894" y2="-3445.5344" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_18_)" stroke="#000000" stroke-width="0.254" d="M83.693,141.452L83.693,141.452
-				c0.556-0.122,0.834-0.182,1.39-0.307c0.521-0.064,0.782-0.098,1.303-0.166c0.492-0.029,0.738-0.045,1.23-0.077
-				c0.511,0.014,0.767,0.019,1.278,0.029c0.472,0.092,0.707,0.137,1.179,0.227c0.483,0.155,0.725,0.233,1.208,0.387
-				c0.456,0.194,0.684,0.291,1.14,0.483c0.463,0.28,0.693,0.419,1.157,0.698c0.474,0.344,0.713,0.515,1.188,0.857
-				c0.463,0.429,0.695,0.644,1.16,1.072c0.475,0.492,0.712,0.738,1.189,1.229c0.484,0.58,0.728,0.871,1.213,1.451
-				c0.514,0.667,0.77,1.001,1.286,1.669c0.504,0.756,0.757,1.135,1.265,1.891c0.537,0.844,0.807,1.263,1.348,2.107
-				c0.572,0.933,0.86,1.398,1.437,2.332l0,0c-0.389-0.008-0.583-0.01-0.972-0.018c-0.347,0.015-0.52,0.021-0.866,0.034
-				c-0.325-0.005-0.487-0.007-0.812-0.012c-0.304,0.019-0.456,0.029-0.76,0.048c-0.305,0.019-0.459,0.025-0.763,0.043
-				c-0.327,0.017-0.489,0.027-0.815,0.043c-0.374,0.032-0.56,0.045-0.934,0.076c-0.436,0.028-0.655,0.044-1.091,0.071l0,0
-				c-0.332-0.354-0.498-0.53-0.829-0.884c-0.307-0.373-0.459-0.559-0.766-0.932c-0.324-0.397-0.486-0.597-0.809-0.994
-				c-0.279-0.394-0.42-0.59-0.698-0.984c-0.301-0.394-0.45-0.59-0.75-0.984c-0.298-0.396-0.448-0.596-0.745-0.991
-				c-0.279-0.394-0.418-0.591-0.697-0.985c-0.299-0.396-0.447-0.591-0.745-0.987c-0.3-0.374-0.45-0.563-0.75-0.938
-				c-0.324-0.355-0.487-0.533-0.811-0.89c-0.304-0.355-0.453-0.532-0.756-0.889c-0.323-0.357-0.487-0.534-0.81-0.893
-				c-0.352-0.318-0.527-0.479-0.878-0.799c-0.378-0.279-0.567-0.42-0.945-0.701c-0.379-0.28-0.568-0.421-0.947-0.703
-				C84.306,141.823,84.101,141.698,83.693,141.452z"/>
-			
-				<linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="-3712.7671" y1="-3409.3242" x2="-3723.3142" y2="-3444.0815" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_19_)" stroke="#000000" stroke-width="0.254" d="M79.107,142.004L79.107,142.004
-				c0.456-0.279,0.685-0.418,1.14-0.694c0.469-0.104,0.703-0.157,1.171-0.265c0.488,0.026,0.731,0.038,1.219,0.062
-				c0.461,0.168,0.69,0.25,1.151,0.415c0.487,0.276,0.731,0.415,1.218,0.688c0.473,0.359,0.71,0.538,1.184,0.895
-				c0.479,0.44,0.717,0.661,1.196,1.1c0.47,0.505,0.706,0.754,1.177,1.257c0.464,0.543,0.697,0.816,1.163,1.358
-				c0.458,0.564,0.688,0.846,1.147,1.409c0.44,0.562,0.662,0.844,1.104,1.404c0.419,0.58,0.629,0.87,1.05,1.449
-				c0.385,0.531,0.577,0.794,0.963,1.325c0.391,0.489,0.587,0.736,0.98,1.226c0.343,0.422,0.513,0.632,0.857,1.054
-				c0.333,0.353,0.5,0.529,0.834,0.882c-2.366,0.069-3.547,0.098-5.906,0.131l0,0c-0.241-0.369-0.361-0.554-0.602-0.924
-				c-0.24-0.372-0.36-0.56-0.6-0.932c-0.217-0.366-0.325-0.55-0.542-0.916c-0.237-0.37-0.355-0.555-0.591-0.925
-				c-0.24-0.37-0.358-0.557-0.598-0.927c-0.232-0.392-0.349-0.587-0.581-0.979c-0.257-0.373-0.386-0.558-0.643-0.932
-				c-0.24-0.352-0.359-0.529-0.599-0.881c-0.282-0.354-0.423-0.531-0.705-0.887c-0.281-0.355-0.419-0.533-0.7-0.89
-				c-0.306-0.34-0.459-0.51-0.765-0.851c-0.329-0.32-0.494-0.479-0.822-0.801c-0.352-0.325-0.527-0.489-0.879-0.815
-				c-0.377-0.288-0.567-0.434-0.944-0.724c-0.403-0.271-0.602-0.405-1.007-0.678C79.752,142.385,79.537,142.257,79.107,142.004z"/>
-			
-				<linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="-3703.7202" y1="-3427.8882" x2="-3716.124" y2="-3446.0405" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_20_)" stroke="#000000" stroke-width="0.254" d="M69.828,144.683L69.828,144.683
-				c0.737-0.551,1.105-0.829,1.842-1.375c0.689-0.378,1.034-0.566,1.722-0.939c0.641-0.228,0.96-0.339,1.601-0.562
-				c0.621-0.101,0.931-0.148,1.552-0.245c0.592,0.053,0.888,0.077,1.48,0.134c0.555,0.161,0.833,0.245,1.387,0.41
-				c0.532,0.29,0.798,0.434,1.326,0.724c0.497,0.349,0.745,0.524,1.242,0.87c0.479,0.452,0.718,0.677,1.198,1.126
-				c0.445,0.509,0.668,0.761,1.114,1.268c0.458,0.572,0.688,0.859,1.148,1.43c0.408,0.608,0.612,0.913,1.021,1.52
-				c0.428,0.63,0.642,0.944,1.072,1.573c0.399,0.669,0.6,1.002,1,1.67c0.402,0.669,0.604,1.004,1.009,1.672
-				c0.404,0.667,0.605,1,1.012,1.666l0,0c-0.408-0.02-0.611-0.029-1.019-0.051c-0.342-0.018-0.512-0.027-0.854-0.045
-				c-0.278-0.009-0.418-0.013-0.696-0.022c-0.262,0.014-0.394,0.02-0.656,0.033c-0.259,0.013-0.388,0.019-0.647,0.03
-				c-0.283,0.01-0.423,0.015-0.706,0.023c-0.323,0.005-0.485,0.008-0.808,0.012c-0.393,0.016-0.589,0.022-0.982,0.037l0,0
-				c-0.344-0.623-0.515-0.935-0.857-1.559c-0.332-0.56-0.498-0.839-0.829-1.399c-0.36-0.52-0.54-0.779-0.899-1.301
-				c-0.35-0.457-0.526-0.687-0.875-1.145c-0.378-0.396-0.566-0.599-0.945-0.996c-0.368-0.354-0.553-0.53-0.921-0.883
-				c-0.355-0.308-0.533-0.46-0.888-0.766c-0.384-0.265-0.578-0.396-0.962-0.659c-0.369-0.221-0.552-0.33-0.921-0.549
-				c-0.357-0.173-0.536-0.26-0.894-0.431c-0.382-0.153-0.574-0.229-0.956-0.381c-0.364-0.127-0.547-0.188-0.912-0.313
-				c-0.35-0.083-0.523-0.125-0.873-0.206c-0.353-0.079-0.53-0.119-0.883-0.197c-0.359-0.037-0.539-0.055-0.897-0.091
-				C70.334,144.73,70.166,144.715,69.828,144.683z"/>
-			
-				<linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="-3686.3555" y1="-3410.6025" x2="-3696.1719" y2="-3442.9512" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_21_)" stroke="#000000" stroke-width="0.254" d="M63.397,145.57L63.397,145.57
-				c0.743-0.2,1.114-0.301,1.856-0.498c0.688-0.136,1.032-0.204,1.72-0.336c0.673-0.048,1.009-0.07,1.682-0.114
-				c0.621,0.014,0.931,0.021,1.551,0.038c0.612,0.06,0.919,0.091,1.531,0.154c0.576,0.146,0.864,0.22,1.439,0.369
-				c0.548,0.189,0.822,0.284,1.369,0.478c0.515,0.254,0.772,0.385,1.287,0.643c0.507,0.296,0.761,0.442,1.267,0.741
-				c0.453,0.359,0.68,0.542,1.132,0.904c0.466,0.406,0.698,0.61,1.164,1.02c0.414,0.444,0.621,0.669,1.034,1.114
-				c0.41,0.489,0.615,0.731,1.025,1.219c0.378,0.524,0.567,0.786,0.946,1.309c0.354,0.564,0.532,0.846,0.887,1.409
-				c0.344,0.604,0.517,0.906,0.862,1.509l0,0c-0.452,0.008-0.676,0.011-1.127,0.017c-0.517-0.005-0.777-0.011-1.293-0.019
-				c-0.517-0.006-0.775-0.008-1.292-0.017c-0.517-0.008-0.774-0.014-1.29-0.021c-0.471-0.004-0.706-0.006-1.177-0.007
-				c-0.364-0.005-0.547-0.005-0.912-0.008c-0.276-0.016-0.414-0.025-0.69-0.04c-0.104-0.015-0.158-0.021-0.262-0.035l0,0
-				c-0.033-0.048-0.049-0.072-0.083-0.119c-0.09-0.096-0.134-0.143-0.225-0.238c-0.122-0.165-0.184-0.248-0.306-0.413
-				c-0.155-0.212-0.233-0.317-0.388-0.529c-0.192-0.259-0.287-0.388-0.479-0.646c-0.23-0.265-0.346-0.396-0.577-0.66
-				c-0.268-0.309-0.402-0.463-0.67-0.771c-0.305-0.336-0.458-0.503-0.764-0.838c-0.353-0.317-0.528-0.477-0.881-0.793
-				c-0.369-0.339-0.554-0.508-0.923-0.846c-0.417-0.321-0.624-0.481-1.042-0.801c-0.458-0.321-0.688-0.482-1.146-0.802
-				c-0.466-0.28-0.698-0.418-1.166-0.696c-0.513-0.26-0.771-0.391-1.284-0.648c-0.538-0.239-0.806-0.356-1.344-0.594
-				C64.258,145.829,63.971,145.742,63.397,145.57z"/>
-			
-				<linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="-3673.9673" y1="-3426.3838" x2="-3682.3523" y2="-3438.6545" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_22_)" stroke="#000000" stroke-width="0.254" d="M55.4,145.971L55.4,145.971
-				c0.61-0.194,0.916-0.294,1.526-0.488c0.601-0.132,0.901-0.194,1.502-0.325c0.625-0.021,0.937-0.033,1.562-0.053
-				c0.594,0.042,0.893,0.062,1.486,0.105c0.604,0.11,0.905,0.168,1.509,0.28c0.592,0.172,0.887,0.257,1.479,0.432
-				c0.561,0.237,0.841,0.358,1.4,0.598c0.574,0.284,0.86,0.426,1.433,0.713c0.524,0.324,0.786,0.486,1.309,0.812
-				c0.518,0.349,0.777,0.524,1.294,0.875c0.487,0.412,0.729,0.617,1.215,1.031c0.484,0.413,0.727,0.622,1.21,1.038
-				c0.419,0.434,0.628,0.648,1.047,1.084c0.414,0.453,0.62,0.681,1.034,1.136c0.37,0.451,0.554,0.679,0.923,1.132
-				c0.328,0.448,0.491,0.673,0.818,1.123l0,0c-0.274-0.015-0.41-0.023-0.684-0.037c-0.344,0.002-0.517,0.004-0.861,0.007
-				c-0.384-0.004-0.577-0.003-0.96-0.005c-0.407-0.004-0.611-0.008-1.018-0.01c-0.407-0.002-0.609,0.001-1.016,0.001
-				c-0.364,0.004-0.548,0.004-0.912,0.01c-0.318-0.012-0.478-0.017-0.795-0.027c-0.232-0.021-0.348-0.033-0.58-0.055l0,0
-				c0.008-0.043,0.012-0.063,0.02-0.106c-0.087-0.116-0.131-0.173-0.218-0.288c-0.183-0.167-0.274-0.249-0.458-0.416
-				c-0.279-0.242-0.42-0.364-0.699-0.605c-0.338-0.266-0.506-0.397-0.845-0.662c-0.396-0.315-0.595-0.472-0.991-0.786
-				c-0.455-0.338-0.682-0.508-1.137-0.845c-0.477-0.337-0.715-0.505-1.192-0.841c-0.476-0.34-0.715-0.512-1.191-0.851
-				c-0.499-0.338-0.747-0.505-1.247-0.842c-0.505-0.314-0.759-0.471-1.265-0.783c-0.465-0.288-0.698-0.432-1.164-0.719
-				c-0.433-0.246-0.649-0.369-1.083-0.614c-0.393-0.197-0.588-0.297-0.981-0.493c-0.324-0.129-0.486-0.193-0.81-0.322
-				C55.796,146.092,55.664,146.053,55.4,145.971z"/>
-			
-				<linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="-3657.7544" y1="-3412.4429" x2="-3666.3496" y2="-3440.7676" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#571F80"/>
-				<stop  offset="0.1345" style="stop-color:#83156C"/>
-				<stop  offset="0.285" style="stop-color:#AE0C59"/>
-				<stop  offset="0.4209" style="stop-color:#CD064B"/>
-				<stop  offset="0.5357" style="stop-color:#E00143"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_23_)" stroke="#000000" stroke-width="0.254" d="M47.727,147.025L47.727,147.025
-				c0.37-0.445,0.556-0.668,0.926-1.113c0.489-0.247,0.734-0.37,1.224-0.617c0.569-0.068,0.853-0.104,1.422-0.174
-				c0.637,0.039,0.956,0.061,1.593,0.1c0.677,0.193,1.015,0.292,1.692,0.485c0.726,0.282,1.09,0.421,1.815,0.704
-				c0.754,0.371,1.131,0.559,1.884,0.932c0.724,0.413,1.084,0.618,1.807,1.033c0.738,0.459,1.106,0.689,1.842,1.151
-				c0.667,0.478,1.001,0.716,1.667,1.196c0.629,0.458,0.943,0.687,1.571,1.147c0.564,0.452,0.846,0.682,1.409,1.137
-				c0.466,0.385,0.699,0.576,1.165,0.962c0.358,0.29,0.537,0.434,0.894,0.725c0.24,0.214,0.359,0.32,0.599,0.534
-				c0.115,0.076,0.172,0.115,0.288,0.191l0,0c-0.306,0.034-0.459,0.053-0.765,0.088c-0.341,0.012-0.511,0.018-0.852,0.03
-				c-0.366,0.008-0.551,0.013-0.917,0.021c-0.381-0.013-0.57-0.02-0.952-0.031c-0.406,0.01-0.61,0.015-1.016,0.025
-				c-0.408,0.008-0.611,0.013-1.019,0.021c-0.389,0.033-0.582,0.05-0.971,0.084c-0.39,0.034-0.585,0.052-0.975,0.086l0,0
-				c-0.367-0.22-0.552-0.329-0.92-0.549c-0.346-0.22-0.519-0.33-0.866-0.549c-0.367-0.239-0.55-0.357-0.917-0.596
-				c-0.343-0.239-0.514-0.359-0.857-0.598c-0.349-0.218-0.523-0.327-0.872-0.544c-0.343-0.237-0.515-0.354-0.857-0.591
-				c-0.367-0.238-0.551-0.357-0.918-0.596c-0.347-0.236-0.52-0.354-0.866-0.59c-0.349-0.219-0.525-0.328-0.875-0.547
-				c-0.345-0.235-0.517-0.353-0.862-0.587c-0.372-0.216-0.556-0.32-0.928-0.536c-0.355-0.194-0.533-0.292-0.888-0.486
-				c-0.35-0.217-0.526-0.325-0.876-0.542c-0.376-0.193-0.562-0.288-0.939-0.481c-0.375-0.197-0.564-0.298-0.94-0.495
-				C48.296,147.285,48.106,147.198,47.727,147.025z"/>
-			
-				<linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="-3641.876" y1="-3432.0347" x2="-3642.3049" y2="-3411.8994" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_24_)" stroke="#000000" stroke-width="0.254" d="M37.845,148.869L37.845,148.869
-				c0.518-0.298,0.778-0.449,1.296-0.748c0.558-0.149,0.836-0.221,1.395-0.372c0.564-0.041,0.847-0.064,1.411-0.106
-				c0.593,0.044,0.89,0.067,1.483,0.109c0.601,0.147,0.901,0.219,1.501,0.364c0.605,0.235,0.909,0.353,1.514,0.587
-				c0.579,0.273,0.868,0.412,1.446,0.685c0.57,0.316,0.854,0.475,1.424,0.79c0.521,0.354,0.782,0.528,1.303,0.883
-				c0.52,0.354,0.78,0.535,1.299,0.889c0.452,0.373,0.678,0.557,1.129,0.93c0.396,0.323,0.592,0.487,0.987,0.812
-				c0.355,0.302,0.534,0.451,0.889,0.753c0.274,0.275,0.412,0.41,0.687,0.686c0.204,0.185,0.305,0.278,0.509,0.463
-				c0.108,0.115,0.164,0.174,0.272,0.289l0,0c-0.342,0.019-0.515,0.026-0.857,0.045c-0.324,0.022-0.485,0.034-0.809,0.057
-				c-0.278,0.024-0.417,0.039-0.695,0.063c-0.279,0.003-0.419,0.003-0.698,0.006c-0.3,0.001-0.449,0.003-0.749,0.004
-				c-0.279,0.024-0.418,0.035-0.698,0.06c-0.324,0.022-0.487,0.031-0.811,0.054c-0.341,0.02-0.512,0.029-0.854,0.049l0,0
-				c-0.266-0.208-0.4-0.312-0.667-0.521c-0.263-0.212-0.395-0.317-0.659-0.529c-0.28-0.252-0.421-0.375-0.702-0.627
-				c-0.283-0.232-0.424-0.352-0.708-0.584c-0.3-0.254-0.451-0.38-0.751-0.635c-0.303-0.255-0.453-0.384-0.756-0.639
-				c-0.301-0.258-0.451-0.387-0.752-0.645c-0.305-0.233-0.459-0.351-0.764-0.584c-0.307-0.235-0.459-0.354-0.766-0.589
-				c-0.332-0.194-0.497-0.293-0.829-0.487c-0.334-0.194-0.503-0.289-0.837-0.484c-0.319-0.153-0.479-0.23-0.799-0.385
-				c-0.344-0.131-0.516-0.195-0.86-0.327c-0.331-0.091-0.496-0.138-0.827-0.229c-0.338-0.025-0.507-0.04-0.845-0.066
-				C38.358,148.879,38.188,148.877,37.845,148.869z"/>
-			
-				<linearGradient id="SVGID_25_" gradientUnits="userSpaceOnUse" x1="-3651.8838" y1="-3439.6675" x2="-3647.6199" y2="-3411.3015" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_25_)" stroke="#000000" stroke-width="0.254" d="M41.575,147.616L41.575,147.616
-				c0.398-0.206,0.597-0.311,0.995-0.518c0.406-0.142,0.609-0.211,1.016-0.354c0.375-0.059,0.561-0.091,0.936-0.15
-				c0.389-0.015,0.583-0.021,0.972-0.036c0.379,0.046,0.569,0.067,0.948,0.112c0.39,0.111,0.583,0.168,0.973,0.278
-				c0.424,0.179,0.637,0.269,1.062,0.447c0.438,0.198,0.656,0.298,1.094,0.496c0.472,0.267,0.709,0.398,1.18,0.665
-				c0.49,0.288,0.734,0.432,1.224,0.72c0.54,0.356,0.811,0.533,1.35,0.89c0.58,0.38,0.87,0.57,1.449,0.95
-				c0.64,0.405,0.959,0.607,1.598,1.013c0.697,0.433,1.046,0.647,1.742,1.082c0.751,0.478,1.126,0.719,1.876,1.198
-				c0.836,0.489,1.253,0.734,2.088,1.227l0,0c-0.341-0.004-0.512-0.007-0.853-0.01c-0.384,0.013-0.577,0.021-0.961,0.035
-				c-0.387,0.016-0.581,0.024-0.968,0.041c-0.39,0.035-0.585,0.052-0.975,0.088c-0.344,0.02-0.516,0.03-0.86,0.051
-				c-0.258,0.027-0.388,0.038-0.646,0.065c-0.193,0.007-0.289,0.014-0.482,0.021c-0.082-0.025-0.122-0.039-0.204-0.064l0,0
-				c-0.035-0.047-0.052-0.071-0.087-0.118c-0.13-0.114-0.196-0.171-0.326-0.285c-0.161-0.184-0.242-0.275-0.403-0.459
-				c-0.222-0.206-0.333-0.308-0.556-0.514c-0.277-0.254-0.416-0.382-0.693-0.636c-0.339-0.278-0.51-0.418-0.85-0.696
-				c-0.357-0.303-0.537-0.452-0.895-0.755c-0.398-0.305-0.596-0.458-0.995-0.763c-0.441-0.306-0.663-0.456-1.104-0.762
-				c-0.444-0.306-0.666-0.459-1.111-0.765c-0.489-0.27-0.735-0.404-1.225-0.674c-0.496-0.246-0.744-0.368-1.24-0.615
-				c-0.504-0.203-0.758-0.305-1.263-0.509c-0.513-0.145-0.769-0.216-1.283-0.361c-0.5-0.096-0.749-0.145-1.249-0.241
-				C42.339,147.674,42.084,147.655,41.575,147.616z"/>
-			
-				<linearGradient id="SVGID_26_" gradientUnits="userSpaceOnUse" x1="-3632.8618" y1="-3440.8643" x2="-3628.3914" y2="-3411.125" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_26_)" stroke="#000000" stroke-width="0.254" d="M33.207,151.178L33.207,151.178
-				c0.444-0.384,0.666-0.575,1.111-0.961c0.448-0.278,0.673-0.419,1.122-0.699c0.436-0.175,0.653-0.264,1.089-0.439
-				c0.441-0.09,0.661-0.133,1.102-0.225c0.428,0.015,0.642,0.02,1.069,0.033c0.439,0.077,0.659,0.118,1.098,0.194
-				c0.45,0.143,0.677,0.211,1.127,0.353c0.422,0.183,0.632,0.275,1.054,0.457c0.429,0.266,0.644,0.398,1.072,0.664
-				c0.408,0.264,0.612,0.395,1.02,0.657c0.419,0.328,0.629,0.494,1.048,0.821c0.42,0.33,0.629,0.493,1.049,0.822
-				c0.418,0.326,0.628,0.489,1.046,0.815c0.393,0.347,0.588,0.523,0.98,0.87c0.393,0.349,0.589,0.521,0.981,0.869
-				c0.399,0.303,0.599,0.457,0.997,0.76l0,0c-0.259,0.025-0.388,0.036-0.647,0.062c-0.278,0.004-0.417,0.006-0.696,0.01
-				c-0.326,0.043-0.489,0.063-0.814,0.106c-0.345,0.019-0.517,0.029-0.861,0.048c-0.364,0.02-0.546,0.029-0.911,0.049
-				c-0.386,0.015-0.578,0.021-0.963,0.036c-0.365,0.02-0.547,0.027-0.912,0.047c-0.366,0.017-0.55,0.027-0.916,0.044l0,0
-				c-0.083-0.283-0.124-0.427-0.207-0.71c-0.113-0.244-0.168-0.365-0.281-0.609c-0.132-0.244-0.199-0.366-0.331-0.611
-				c-0.179-0.227-0.269-0.34-0.448-0.566c-0.182-0.205-0.271-0.309-0.453-0.514c-0.209-0.166-0.314-0.248-0.523-0.414
-				c-0.252-0.171-0.38-0.256-0.632-0.427c-0.255-0.147-0.382-0.222-0.638-0.369c-0.28-0.129-0.421-0.192-0.701-0.321
-				c-0.304-0.109-0.456-0.165-0.759-0.275c-0.308-0.089-0.462-0.133-0.771-0.223c-0.331-0.07-0.498-0.107-0.829-0.179
-				c-0.356-0.052-0.533-0.076-0.889-0.129c-0.36-0.031-0.541-0.047-0.901-0.079c-0.366,0.008-0.549,0.011-0.915,0.018
-				C33.787,151.169,33.593,151.172,33.207,151.178z"/>
-			
-				<linearGradient id="SVGID_27_" gradientUnits="userSpaceOnUse" x1="-3614.3291" y1="-3442.0552" x2="-3609.8264" y2="-3412.1023" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_27_)" stroke="#000000" stroke-width="0.254" d="M26.2,153.913L26.2,153.913
-				c0.131-0.154,0.198-0.233,0.329-0.388c0.19-0.126,0.284-0.188,0.475-0.313c0.251-0.096,0.377-0.143,0.629-0.239
-				c0.264-0.054,0.396-0.081,0.661-0.136c0.304-0.028,0.457-0.044,0.761-0.073c0.341,0.02,0.512,0.031,0.853,0.049
-				c0.337,0.038,0.506,0.055,0.844,0.092c0.377,0.061,0.566,0.094,0.944,0.153c0.349,0.1,0.523,0.147,0.872,0.246
-				c0.368,0.124,0.553,0.186,0.921,0.309c0.341,0.16,0.511,0.239,0.852,0.398c0.314,0.179,0.471,0.269,0.785,0.446
-				c0.292,0.198,0.438,0.299,0.729,0.496c0.263,0.237,0.395,0.354,0.658,0.591c0.197,0.253,0.297,0.38,0.495,0.633
-				c0.172,0.271,0.257,0.408,0.429,0.679l0,0c-0.195,0.026-0.294,0.04-0.489,0.066c-0.238,0.022-0.357,0.032-0.595,0.054
-				c-0.237,0.021-0.357,0.032-0.594,0.053c-0.239,0.021-0.359,0.031-0.598,0.052c-0.213,0.002-0.32,0.003-0.533,0.005
-				c-0.173,0.007-0.259,0.011-0.432,0.018c-0.125-0.013-0.188-0.019-0.313-0.031c-0.043-0.004-0.063-0.008-0.106-0.012l0,0
-				c-0.078-0.051-0.117-0.077-0.194-0.128c-0.192-0.146-0.287-0.22-0.479-0.367c-0.333-0.204-0.5-0.309-0.833-0.515
-				c-0.394-0.229-0.591-0.344-0.985-0.575c-0.459-0.222-0.689-0.332-1.149-0.556c-0.527-0.207-0.792-0.312-1.319-0.521
-				c-0.514-0.146-0.77-0.22-1.284-0.368C26.999,153.984,26.732,153.962,26.2,153.913z"/>
-			
-				<linearGradient id="SVGID_28_" gradientUnits="userSpaceOnUse" x1="-3607.2065" y1="-3444.5967" x2="-3607.656" y2="-3423.5049" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_28_)" stroke="#000000" stroke-width="0.254" d="M24.624,155.894L24.624,155.894
-				c0.028-0.336,0.043-0.503,0.071-0.839c0.121-0.241,0.181-0.362,0.303-0.604c0.172-0.148,0.259-0.22,0.431-0.368
-				c0.247-0.074,0.371-0.114,0.618-0.189c0.28-0.007,0.419-0.01,0.699-0.018c0.314,0.062,0.471,0.092,0.786,0.153
-				c0.33,0.082,0.496,0.126,0.826,0.207c0.368,0.13,0.551,0.19,0.918,0.318c0.339,0.166,0.508,0.251,0.847,0.416
-				c0.339,0.167,0.51,0.249,0.849,0.415c0.319,0.162,0.479,0.244,0.798,0.405c0.275,0.157,0.413,0.233,0.687,0.39
-				c0.236,0.152,0.355,0.229,0.591,0.382c0.197,0.105,0.295,0.157,0.492,0.263c0.093,0.094,0.141,0.141,0.234,0.234
-				c0.04,0.023,0.058,0.037,0.098,0.061c-1.731,0.133-2.595,0.193-4.325,0.297l0,0c-0.138-0.077-0.208-0.116-0.346-0.193
-				c-0.222-0.091-0.333-0.138-0.555-0.229c-0.239-0.114-0.36-0.172-0.6-0.286c-0.283-0.12-0.424-0.18-0.707-0.301
-				c-0.286-0.101-0.43-0.149-0.716-0.251c-0.289-0.077-0.433-0.116-0.722-0.194c-0.273-0.035-0.41-0.053-0.683-0.089
-				C24.981,155.882,24.862,155.885,24.624,155.894z"/>
-			
-				<linearGradient id="SVGID_29_" gradientUnits="userSpaceOnUse" x1="-3620.5249" y1="-3437.7607" x2="-3620.9275" y2="-3418.8691" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#F6E270"/>
-				<stop  offset="0.163" style="stop-color:#F2CF6D"/>
-				<stop  offset="0.3729" style="stop-color:#EEBC6B"/>
-				<stop  offset="0.5198" style="stop-color:#EDB56A"/>
-				<stop  offset="0.7605" style="stop-color:#F2CE6D"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_29_)" stroke="#000000" stroke-width="0.254" d="M28.62,152.823L28.62,152.823
-				c0.377-0.234,0.565-0.352,0.942-0.588c0.39-0.17,0.585-0.255,0.976-0.427c0.43-0.144,0.643-0.217,1.073-0.362
-				c0.463-0.082,0.696-0.124,1.16-0.208c0.457-0.04,0.686-0.059,1.144-0.101c0.452-0.019,0.678-0.029,1.13-0.05
-				c0.466,0.043,0.7,0.062,1.167,0.104c0.458,0.08,0.685,0.119,1.142,0.198c0.432,0.123,0.648,0.183,1.08,0.305
-				c0.421,0.185,0.631,0.28,1.053,0.464c0.377,0.2,0.566,0.3,0.942,0.499c0.348,0.24,0.522,0.36,0.87,0.601
-				c0.319,0.281,0.478,0.422,0.796,0.702c0.251,0.316,0.376,0.476,0.627,0.792c0.18,0.355,0.27,0.531,0.449,0.887
-				c0.131,0.395,0.197,0.594,0.328,0.987l0,0c-0.279,0.003-0.419,0.003-0.699,0.005c-0.258,0.024-0.386,0.036-0.644,0.061
-				c-0.277-0.001-0.417,0-0.695-0.001c-0.302,0.021-0.453,0.031-0.755,0.051c-0.301,0.021-0.45,0.03-0.751,0.051
-				c-0.32-0.005-0.48-0.007-0.8-0.012c-0.347,0.038-0.521,0.056-0.867,0.093c-0.363,0.011-0.545,0.017-0.908,0.026l0,0
-				c-0.1-0.198-0.15-0.299-0.25-0.498c-0.122-0.183-0.185-0.272-0.307-0.455c-0.146-0.162-0.218-0.241-0.364-0.403
-				c-0.167-0.165-0.25-0.248-0.417-0.413c-0.191-0.146-0.286-0.217-0.478-0.362c-0.213-0.147-0.321-0.225-0.535-0.372
-				c-0.218-0.127-0.327-0.188-0.544-0.316c-0.24-0.107-0.359-0.162-0.6-0.27c-0.24-0.109-0.36-0.164-0.601-0.274
-				c-0.266-0.09-0.398-0.135-0.664-0.226c-0.246-0.067-0.369-0.103-0.615-0.17c-0.272-0.05-0.41-0.073-0.683-0.123
-				c-0.271-0.049-0.407-0.072-0.678-0.122c-0.273-0.03-0.41-0.048-0.683-0.079c-0.279-0.01-0.417-0.016-0.696-0.026
-				C29.009,152.803,28.879,152.811,28.62,152.823z"/>
-			
-				<linearGradient id="SVGID_30_" gradientUnits="userSpaceOnUse" x1="-3964.2822" y1="-3380.271" x2="-3956.2803" y2="-3356.7097" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_30_)" stroke="#000000" stroke-width="0.254" d="M220.073,156.883L220.073,156.883
-				c0.031,0.054,0.049,0.082,0.08,0.136c0.078,0.14,0.118,0.208,0.196,0.348c0.1,0.219,0.148,0.33,0.248,0.549
-				c0.134,0.272,0.201,0.406,0.335,0.679c0.146,0.318,0.221,0.478,0.367,0.796c0.138,0.348,0.203,0.521,0.341,0.87
-				c0.108,0.384,0.162,0.576,0.271,0.962c0.086,0.38,0.132,0.567,0.218,0.95c0.042,0.385,0.061,0.58,0.103,0.97
-				c-0.036,0.352-0.053,0.53-0.089,0.887c-0.101,0.337-0.149,0.504-0.25,0.847c-0.175,0.289-0.261,0.437-0.436,0.73
-				c-0.293,0.229-0.442,0.343-0.736,0.575c-0.414,0.163-0.619,0.245-1.033,0.41c-0.543,0.062-0.816,0.096-1.36,0.16
-				c-0.68-0.04-1.021-0.061-1.7-0.1l0,0c0.154-0.2,0.232-0.301,0.387-0.498c0.117-0.223,0.176-0.333,0.293-0.553
-				c0.113-0.22,0.168-0.327,0.281-0.545c0.102-0.254,0.154-0.382,0.256-0.632c0.08-0.256,0.123-0.382,0.203-0.635
-				c0.062-0.273,0.093-0.408,0.155-0.679c0.039-0.262,0.061-0.393,0.1-0.651c0.043-0.273,0.062-0.409,0.104-0.68
-				c0.021-0.278,0.032-0.417,0.053-0.693c0.021-0.273,0.032-0.408,0.054-0.68c-0.002-0.266-0.003-0.399-0.005-0.664
-				c-0.026-0.257-0.04-0.385-0.066-0.641c-0.005-0.25-0.009-0.375-0.014-0.625c-0.033-0.229-0.048-0.342-0.081-0.57
-				c-0.054-0.234-0.078-0.352-0.132-0.586c-0.04-0.201-0.063-0.302-0.104-0.504l0,0c0.11,0.002,0.167,0.002,0.277,0.004
-				c0.086,0.008,0.129,0.014,0.215,0.021c0.109,0.001,0.161,0.001,0.271,0.002c0.087,0.01,0.13,0.015,0.217,0.024
-				c0.09-0.005,0.137-0.005,0.227-0.01c0.084,0.009,0.127,0.014,0.211,0.022c0.11,0,0.165,0.001,0.274,0.001
-				C219.912,156.883,219.964,156.882,220.073,156.883z"/>
-			
-				<linearGradient id="SVGID_31_" gradientUnits="userSpaceOnUse" x1="-3955.8506" y1="-3382.4106" x2="-3947.5234" y2="-3357.8914" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_31_)" stroke="#000000" stroke-width="0.254" d="M218.208,156.88L218.208,156.88
-				c0.106,0.836,0.16,1.251,0.267,2.085c0.041,0.742,0.061,1.113,0.103,1.863c-0.039,0.623-0.059,0.936-0.097,1.569
-				c-0.105,0.54-0.156,0.813-0.262,1.365c-0.151,0.462-0.227,0.694-0.378,1.167c-0.218,0.375-0.329,0.565-0.548,0.95
-				c-0.246,0.312-0.366,0.469-0.612,0.788c-0.254,0.25-0.383,0.372-0.637,0.627c-0.303,0.176-0.452,0.27-0.755,0.449
-				c-0.315,0.124-0.473,0.186-0.788,0.312c-0.301,0.064-0.452,0.097-0.753,0.162c-0.293,0.031-0.439,0.046-0.732,0.078
-				c-0.311-0.006-0.467-0.006-0.778-0.011c-0.258-0.042-0.387-0.062-0.645-0.104c-0.232-0.052-0.348-0.079-0.58-0.131
-				c-0.21-0.061-0.316-0.089-0.526-0.148l0,0c0.181-0.225,0.27-0.337,0.45-0.558c0.178-0.219,0.268-0.326,0.445-0.541
-				c0.165-0.254,0.25-0.379,0.415-0.628c0.146-0.254,0.216-0.378,0.361-0.628c0.149-0.28,0.226-0.42,0.375-0.694
-				c0.132-0.28,0.196-0.42,0.328-0.695c0.13-0.276,0.195-0.412,0.325-0.685c0.111-0.291,0.167-0.437,0.278-0.724
-				c0.093-0.295,0.14-0.438,0.232-0.729c0.074-0.31,0.113-0.467,0.188-0.773c0.048-0.299,0.071-0.446,0.119-0.742
-				c0.033-0.315,0.053-0.471,0.086-0.784c0.009-0.305,0.011-0.459,0.02-0.762c-0.012-0.324-0.017-0.484-0.028-0.808
-				c-0.034-0.3-0.054-0.448-0.087-0.748c-0.054-0.319-0.076-0.479-0.13-0.8l0,0c0.261,0.012,0.389,0.018,0.649,0.029
-				c0.265,0.014,0.397,0.019,0.661,0.032c0.241,0.007,0.361,0.01,0.603,0.018c0.235,0.021,0.355,0.031,0.591,0.053
-				c0.197,0.011,0.294,0.018,0.491,0.028c0.217,0.016,0.322,0.022,0.539,0.038c0.171,0.019,0.259,0.024,0.43,0.043
-				C217.98,156.858,218.056,156.867,218.208,156.88z"/>
-			
-				<linearGradient id="SVGID_32_" gradientUnits="userSpaceOnUse" x1="-3945.502" y1="-3384.7158" x2="-3936.9246" y2="-3359.4602" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_32_)" stroke="#000000" stroke-width="0.254" d="M213.808,156.591L213.808,156.591
-				c0.059,0.306,0.09,0.457,0.148,0.763c0.038,0.374,0.058,0.562,0.096,0.936c-0.011,0.405-0.016,0.606-0.026,1.014
-				c-0.065,0.434-0.1,0.65-0.165,1.088c-0.09,0.477-0.134,0.718-0.224,1.201c-0.116,0.476-0.173,0.714-0.289,1.199
-				c-0.177,0.468-0.268,0.703-0.444,1.183c-0.216,0.455-0.322,0.684-0.538,1.151c-0.252,0.423-0.381,0.641-0.633,1.076
-				c-0.285,0.395-0.428,0.593-0.713,1c-0.356,0.32-0.532,0.486-0.889,0.816c-0.38,0.236-0.569,0.355-0.949,0.6
-				c-0.45,0.137-0.677,0.206-1.127,0.348c-0.485,0.005-0.726,0.008-1.211,0.017c-0.529-0.126-0.796-0.188-1.326-0.311
-				c-0.581-0.297-0.872-0.442-1.454-0.73l0,0c0.292-0.245,0.438-0.366,0.73-0.604c0.295-0.252,0.442-0.378,0.737-0.623
-				c0.257-0.273,0.386-0.409,0.643-0.676c0.232-0.256,0.349-0.379,0.581-0.629c0.196-0.292,0.295-0.437,0.491-0.723
-				c0.194-0.271,0.29-0.406,0.484-0.672c0.155-0.292,0.235-0.437,0.391-0.723s0.23-0.426,0.386-0.707
-				c0.113-0.292,0.171-0.438,0.284-0.727c0.095-0.307,0.143-0.459,0.237-0.762c0.072-0.295,0.108-0.442,0.181-0.734
-				c0.035-0.316,0.053-0.473,0.088-0.786c0.033-0.313,0.049-0.469,0.082-0.78c-0.013-0.31-0.016-0.464-0.028-0.771
-				c-0.007-0.322-0.014-0.483-0.021-0.805c-0.054-0.316-0.079-0.477-0.133-0.793l0,0c0.223-0.001,0.332-0.001,0.555-0.001
-				c0.263,0.01,0.396,0.015,0.657,0.024c0.266,0.012,0.398,0.017,0.663,0.028c0.263,0.011,0.395,0.018,0.657,0.028
-				c0.264,0.012,0.394,0.017,0.657,0.029c0.221,0,0.331,0,0.551,0.001c0.197,0.008,0.295,0.015,0.492,0.022
-				C213.581,156.571,213.656,156.578,213.808,156.591z"/>
-			
-				<linearGradient id="SVGID_33_" gradientUnits="userSpaceOnUse" x1="-3934.8062" y1="-3386.7197" x2="-3925.6343" y2="-3359.7131" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_33_)" stroke="#000000" stroke-width="0.254" d="M196.969,168.809L196.969,168.809
-				c0.564,0.148,0.851,0.228,1.414,0.385c0.562,0.043,0.844,0.064,1.405,0.115c0.516-0.069,0.771-0.1,1.287-0.161
-				c0.488-0.143,0.733-0.215,1.222-0.35c0.483-0.229,0.728-0.34,1.211-0.559c0.436-0.301,0.651-0.448,1.087-0.737
-				c0.382-0.354,0.571-0.527,0.953-0.868c0.371-0.396,0.556-0.591,0.927-0.972c0.314-0.43,0.474-0.642,0.788-1.057
-				c0.28-0.457,0.421-0.678,0.702-1.12c0.221-0.472,0.33-0.707,0.551-1.167c0.158-0.478,0.24-0.711,0.398-1.178
-				c0.115-0.479,0.174-0.715,0.289-1.186c0.054-0.486,0.078-0.729,0.132-1.21c-0.013-0.484-0.019-0.724-0.031-1.205
-				c-0.079-0.47-0.119-0.706-0.198-1.175l0,0c-0.245-0.005-0.368-0.005-0.613-0.009s-0.367-0.007-0.612-0.01
-				c-0.261-0.022-0.391-0.034-0.651-0.056c-0.266-0.009-0.399-0.012-0.665-0.02c-0.265-0.007-0.397-0.012-0.663-0.018
-				c-0.286-0.012-0.429-0.014-0.716-0.024c-0.266-0.006-0.397-0.009-0.664-0.014c-0.287-0.011-0.431-0.017-0.718-0.026l0,0
-				c-0.072,0.286-0.108,0.429-0.181,0.716c-0.079,0.313-0.119,0.473-0.198,0.788c-0.111,0.354-0.168,0.529-0.279,0.886
-				c-0.114,0.368-0.172,0.552-0.285,0.925c-0.114,0.373-0.169,0.562-0.283,0.939c-0.117,0.394-0.178,0.591-0.295,0.992
-				c-0.163,0.404-0.245,0.611-0.408,1.025c-0.154,0.385-0.23,0.578-0.385,0.973c-0.177,0.392-0.265,0.59-0.441,0.992
-				c-0.168,0.369-0.253,0.556-0.421,0.936c-0.21,0.354-0.313,0.535-0.523,0.9c-0.218,0.312-0.327,0.471-0.544,0.792
-				c-0.229,0.265-0.343,0.396-0.571,0.668c-0.262,0.213-0.396,0.323-0.657,0.542c-0.268,0.144-0.4,0.214-0.668,0.361
-				C197.385,168.697,197.246,168.733,196.969,168.809z"/>
-			
-				<linearGradient id="SVGID_34_" gradientUnits="userSpaceOnUse" x1="-3998.5259" y1="-3314.3677" x2="-3993.2795" y2="-3284.6147" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1677.9685 2180.9497)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0891" style="stop-color:#732180"/>
-				<stop  offset="0.2293" style="stop-color:#8A207C"/>
-				<stop  offset="0.403" style="stop-color:#AF1F76"/>
-				<stop  offset="0.6019" style="stop-color:#E11E6F"/>
-				<stop  offset="0.6158" style="stop-color:#E51E6E"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_34_)" stroke="#000000" stroke-width="0.254" d="M203.742,156.209L203.742,156.209
-				c-0.225,0.006-0.337,0.009-0.562,0.016c-0.222-0.008-0.333-0.012-0.555-0.02c-0.199-0.002-0.298-0.002-0.498-0.003
-				c-0.221-0.021-0.33-0.03-0.551-0.05c-0.222-0.005-0.334-0.01-0.556-0.015c-0.202-0.002-0.302,0.001-0.504-0.001
-				c-0.223-0.004-0.335-0.008-0.558-0.012c-0.225,0.011-0.336,0.018-0.561,0.028l0,0c-0.111,0.268-0.168,0.4-0.279,0.669
-				c-0.098,0.3-0.147,0.449-0.245,0.751c-0.104,0.33-0.155,0.496-0.26,0.83c-0.105,0.348-0.16,0.521-0.266,0.872
-				c-0.087,0.356-0.13,0.536-0.217,0.897c-0.092,0.39-0.137,0.586-0.229,0.982c-0.114,0.394-0.173,0.594-0.287,0.996
-				c-0.109,0.387-0.161,0.583-0.27,0.979c-0.129,0.393-0.194,0.589-0.322,0.992c-0.151,0.398-0.228,0.602-0.379,1.011
-				c-0.186,0.369-0.279,0.556-0.465,0.937c-0.179,0.348-0.268,0.524-0.445,0.883c-0.237,0.328-0.357,0.496-0.595,0.834
-				c-0.252,0.3-0.376,0.453-0.628,0.763c-0.285,0.25-0.428,0.376-0.713,0.634c-0.337,0.19-0.507,0.287-0.844,0.485l0,0
-				c0.634-0.038,0.953-0.054,1.587-0.079c0.54-0.1,0.809-0.146,1.349-0.235c0.467-0.177,0.7-0.262,1.167-0.429
-				c0.412-0.216,0.618-0.324,1.03-0.531c0.358-0.273,0.538-0.408,0.897-0.672c0.305-0.327,0.458-0.485,0.764-0.802
-				c0.247-0.364,0.37-0.543,0.617-0.896c0.213-0.378,0.319-0.565,0.533-0.933c0.182-0.424,0.272-0.633,0.455-1.044
-				c0.159-0.433,0.24-0.644,0.399-1.064c0.124-0.445,0.182-0.664,0.307-1.098c0.13-0.463,0.198-0.695,0.328-1.147
-				c0.132-0.452,0.197-0.676,0.329-1.119c0.135-0.459,0.203-0.686,0.339-1.138c0.113-0.456,0.17-0.682,0.283-1.134
-				C203.502,156.89,203.582,156.664,203.742,156.209z"/>
-			
-				<linearGradient id="SVGID_35_" gradientUnits="userSpaceOnUse" x1="-3911.3452" y1="-3380.3516" x2="-3908.6257" y2="-3361.7681" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_35_)" stroke="#000000" stroke-width="0.254" d="M186.23,170.634L186.23,170.634
-				c0.834,0.082,1.251,0.122,2.089,0.202c0.733-0.056,1.103-0.085,1.84-0.142c0.624-0.171,0.935-0.256,1.561-0.426
-				c0.536-0.261,0.808-0.389,1.349-0.633c0.451-0.353,0.676-0.525,1.128-0.861c0.356-0.408,0.536-0.608,0.894-0.999
-				c0.323-0.451,0.485-0.671,0.81-1.104c0.25-0.499,0.376-0.745,0.628-1.225c0.191-0.509,0.288-0.758,0.48-1.249
-				c0.173-0.509,0.262-0.754,0.436-1.246c0.137-0.518,0.204-0.772,0.342-1.275c0.112-0.49,0.169-0.732,0.281-1.211
-				c0.115-0.495,0.172-0.739,0.288-1.225c0.11-0.454,0.165-0.683,0.275-1.131c0.145-0.413,0.219-0.617,0.364-1.025
-				c0.14-0.38,0.21-0.566,0.35-0.943l0,0c-0.244-0.007-0.368-0.011-0.612-0.018c-0.223-0.003-0.333-0.003-0.557-0.005
-				c-0.201,0.004-0.301,0.003-0.503,0.008c-0.226-0.002-0.34-0.001-0.566-0.002c-0.224,0-0.337-0.002-0.562-0.001
-				c-0.201,0.006-0.301,0.01-0.502,0.016c-0.223-0.013-0.333-0.02-0.556-0.031c-0.246-0.002-0.372,0-0.618-0.001l0,0
-				c0.012,0.046,0.019,0.068,0.03,0.114c0.019,0.106,0.025,0.159,0.044,0.266c0.007,0.163,0.011,0.245,0.017,0.409
-				c0.018,0.21,0.026,0.312,0.044,0.523c-0.02,0.262-0.028,0.395-0.048,0.658c-0.024,0.294-0.035,0.441-0.06,0.738
-				c-0.056,0.336-0.086,0.506-0.142,0.846c-0.109,0.377-0.165,0.565-0.273,0.949c-0.154,0.392-0.231,0.589-0.386,0.989
-				c-0.208,0.437-0.311,0.66-0.518,1.109c-0.297,0.454-0.446,0.682-0.742,1.153c-0.338,0.48-0.505,0.727-0.836,1.232
-				c-0.441,0.509-0.663,0.771-1.104,1.299c-0.528,0.552-0.79,0.83-1.316,1.405c-0.607,0.544-0.911,0.822-1.517,1.388
-				C187.328,169.754,186.962,170.044,186.23,170.634z"/>
-			
-				<linearGradient id="SVGID_36_" gradientUnits="userSpaceOnUse" x1="-3900.6021" y1="-3382.2671" x2="-3897.7485" y2="-3362.7664" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_36_)" stroke="#000000" stroke-width="0.254" d="M178.906,171.72L178.906,171.72
-				c0.537,0.185,0.807,0.279,1.344,0.465c0.561,0.045,0.838,0.065,1.399,0.11c0.561-0.103,0.841-0.153,1.403-0.255
-				c0.578-0.203,0.869-0.304,1.449-0.504c0.573-0.299,0.861-0.45,1.437-0.744c0.567-0.378,0.853-0.563,1.422-0.932
-				c0.545-0.469,0.817-0.697,1.364-1.151c0.514-0.515,0.771-0.77,1.286-1.267c0.459-0.543,0.688-0.809,1.148-1.331
-				c0.428-0.578,0.642-0.858,1.07-1.414c0.375-0.597,0.572-0.882,0.956-1.444c0.3-0.59,0.45-0.876,0.752-1.442
-				c0.237-0.579,0.355-0.866,0.594-1.427c0.156-0.589,0.235-0.878,0.393-1.451c0.043-0.563,0.065-0.842,0.108-1.396
-				c-0.043-0.57-0.067-0.854-0.11-1.421c-2.144,0.053-3.199,0.128-5.279,0.226l0,0c-0.033,0.237-0.048,0.354-0.081,0.593
-				c-0.04,0.283-0.06,0.426-0.1,0.711c-0.089,0.306-0.133,0.459-0.222,0.768c-0.121,0.352-0.18,0.526-0.301,0.883
-				c-0.144,0.369-0.218,0.555-0.36,0.931c-0.191,0.399-0.285,0.603-0.476,1.011c-0.193,0.424-0.288,0.638-0.48,1.072
-				c-0.259,0.44-0.39,0.662-0.647,1.115c-0.28,0.45-0.42,0.681-0.7,1.144c-0.315,0.441-0.473,0.664-0.787,1.119
-				c-0.337,0.45-0.506,0.68-0.842,1.144c-0.395,0.438-0.591,0.662-0.984,1.114c-0.411,0.431-0.617,0.65-1.026,1.094
-				c-0.465,0.396-0.696,0.596-1.16,1.002c-0.498,0.36-0.748,0.541-1.245,0.91C179.7,171.255,179.436,171.408,178.906,171.72z"/>
-			
-				<linearGradient id="SVGID_37_" gradientUnits="userSpaceOnUse" x1="-3890.6431" y1="-3385.6333" x2="-3886.3123" y2="-3344.166" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_37_)" stroke="#000000" stroke-width="0.254" d="M189.758,156.283L189.758,156.283
-				c-0.329,0.019-0.492,0.029-0.82,0.048c-0.411,0.005-0.617,0.005-1.028,0.009c-0.463,0.025-0.693,0.038-1.156,0.062
-				c-0.476,0.007-0.713,0.011-1.188,0.017c-0.462,0.025-0.694,0.036-1.155,0.062c-0.454,0.009-0.681,0.015-1.135,0.022
-				c-0.391,0.006-0.586,0.009-0.977,0.015c-0.301-0.009-0.45-0.015-0.751-0.023l0,0c-0.112,0.35-0.168,0.525-0.279,0.878
-				c-0.101,0.387-0.151,0.581-0.251,0.973c-0.118,0.391-0.178,0.589-0.296,0.985c-0.101,0.413-0.151,0.62-0.252,1.04
-				c-0.143,0.413-0.216,0.62-0.357,1.041c-0.125,0.442-0.187,0.669-0.311,1.12c-0.14,0.431-0.211,0.645-0.351,1.084
-				c-0.162,0.436-0.243,0.656-0.405,1.102c-0.178,0.424-0.265,0.64-0.442,1.073c-0.197,0.414-0.295,0.623-0.492,1.046
-				c-0.236,0.414-0.355,0.626-0.592,1.05c-0.251,0.385-0.376,0.579-0.626,0.973c-0.288,0.369-0.434,0.554-0.722,0.931
-				c-0.318,0.312-0.477,0.469-0.795,0.785c-0.336,0.294-0.504,0.44-0.84,0.739c-0.392,0.251-0.586,0.381-0.977,0.636l0,0
-				c0.398,0.122,0.595,0.18,0.993,0.303c0.43,0.044,0.646,0.068,1.076,0.112c0.442-0.037,0.662-0.055,1.104-0.092
-				c0.455-0.117,0.685-0.176,1.141-0.292c0.467-0.199,0.699-0.297,1.167-0.493c0.48-0.256,0.721-0.386,1.202-0.638
-				c0.472-0.331,0.71-0.493,1.183-0.816c0.486-0.424,0.728-0.634,1.216-1.046c0.455-0.454,0.684-0.68,1.14-1.121
-				c0.428-0.541,0.644-0.807,1.072-1.329c0.422-0.575,0.633-0.855,1.056-1.41c0.393-0.647,0.59-0.963,0.983-1.584
-				c0.346-0.681,0.518-1.016,0.865-1.67c0.314-0.705,0.473-1.052,0.788-1.731c0.269-0.769,0.401-1.143,0.671-1.887
-				C189.434,157.457,189.541,157.063,189.758,156.283z"/>
-			
-				<linearGradient id="SVGID_38_" gradientUnits="userSpaceOnUse" x1="-3876.9419" y1="-3387.0708" x2="-3873.8838" y2="-3366.1721" gradientTransform="matrix(-0.5272 0.0698 0.0698 0.5272 -1633.2927 2216.1455)">
-				<stop  offset="0" style="stop-color:#6B2181"/>
-				<stop  offset="0.0122" style="stop-color:#711F7E"/>
-				<stop  offset="0.0936" style="stop-color:#95166B"/>
-				<stop  offset="0.1794" style="stop-color:#B30E5B"/>
-				<stop  offset="0.2698" style="stop-color:#CA084F"/>
-				<stop  offset="0.3666" style="stop-color:#DA0347"/>
-				<stop  offset="0.4745" style="stop-color:#E40142"/>
-				<stop  offset="0.6158" style="stop-color:#E70040"/>
-				<stop  offset="1" style="stop-color:#F6E270"/>
-			</linearGradient>
-			<path fill="url(#SVGID_38_)" stroke="#000000" stroke-width="0.254" d="M166.753,171.986L166.753,171.986
-				c0.909,0.174,1.362,0.259,2.271,0.436c0.784,0.029,1.176,0.047,1.96,0.078c0.703-0.126,1.055-0.187,1.759-0.31
-				c0.581-0.27,0.87-0.404,1.451-0.669c0.509-0.356,0.766-0.531,1.275-0.88c0.444-0.441,0.667-0.662,1.111-1.093
-				c0.349-0.504,0.521-0.752,0.869-1.242c0.302-0.573,0.455-0.855,0.758-1.412c0.261-0.563,0.391-0.84,0.652-1.387
-				c0.209-0.61,0.312-0.911,0.521-1.504c0.165-0.58,0.249-0.865,0.415-1.431c0.167-0.565,0.25-0.846,0.417-1.396
-				c0.125-0.559,0.188-0.836,0.314-1.383c0.137-0.495,0.205-0.74,0.342-1.227c0.13-0.454,0.195-0.678,0.326-1.125
-				c0.145-0.396,0.215-0.594,0.359-0.985l0,0c-0.3-0.009-0.448-0.015-0.748-0.023c-0.26-0.002-0.39-0.003-0.649-0.005
-				c-0.24,0.019-0.358,0.025-0.599,0.044c-0.235,0.002-0.355,0.006-0.591,0.008c-0.26,0-0.39-0.001-0.648-0.001
-				c-0.239,0.001-0.355,0.001-0.595,0.002c-0.281,0.012-0.423,0.018-0.704,0.03c-0.323,0.002-0.485,0.005-0.809,0.007l0,0
-				c-0.144,0.428-0.216,0.643-0.358,1.075c-0.137,0.414-0.205,0.62-0.342,1.039c-0.141,0.422-0.211,0.635-0.352,1.062
-				c-0.157,0.404-0.234,0.608-0.392,1.019c-0.136,0.418-0.205,0.629-0.341,1.054c-0.152,0.402-0.228,0.604-0.38,1.014
-				c-0.168,0.389-0.254,0.586-0.421,0.981c-0.172,0.395-0.258,0.593-0.43,0.994c-0.208,0.378-0.309,0.567-0.517,0.952
-				c-0.227,0.383-0.343,0.577-0.569,0.967c-0.266,0.36

<TRUNCATED>

[29/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/sitemap.xml
----------------------------------------------------------------------
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 0000000..1e40867
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,290 @@
+<?xml version="1.0"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
+    <url>
+        <loc>http://localhost/documentation/the-sling-engine/url-to-script-resolution.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/wrap-or-decorate-resources.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/tutorials-how-tos/46-line-blog.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/tutorials-how-tos/how-to-manage-events-in-sling.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/tutorials-how-tos/installing-and-upgrading-bundles.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/tutorials-how-tos/jackrabbit-persistence.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/tutorials-how-tos/testing-sling-based-applications.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/tutorials-how-tos.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/errors/403.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/errors/404.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/guides.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/index.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/javadoc-io.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/links.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/media.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/news/sling-ide-tooling-11-released.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/news/sling-launchpad-8-released.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/news/sling-launchpad-9-released.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/news.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/old-stuff.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/plugins.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/project-information/apache-sling-community-roles-and-processes.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/project-information/project-license.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/project-information/project-team.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/project-information/security.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/project-information.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/site-conversion.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/sling-mock.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/sling-testing-tools.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/sling.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/slingstart.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/version-policy.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/getting-started/discover-sling-in-15-minutes.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/getting-started.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/legacy/logging.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/pax-exam-utils.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/adapters.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/architecture.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/authentication/authentication-actors.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/authentication/authentication-authenticationhandler/form-based-authenticationhandler.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/authentication/authentication-authenticationhandler/openid-authenticationhandler.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/authentication/authentication-authenticationhandler.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/authentication/authentication-framework.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/authentication/authentication-tasks.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/authentication.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/default-mapping-and-rendering.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/dispatching-requests.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/errorhandling.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/featureflags.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/filters.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/mappings-for-resource-resolution.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/request-listeners.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/request-parameters.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/resources.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/service-authentication.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/servlets.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/sling-api-crud-support.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/sling-properties.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/the-sling-launchpad.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/the-sling-engine/url-decomposition.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/servlet-helpers.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/sling-health-check-tool.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/sling-oak-restrictions.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/sling-pipes.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/sling-query.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/sling-settings-org-apache-sling-settings.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/subsystem-installer-factory.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/validation.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/web-console-extensions.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/xml-support.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/configuration.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/client-request-logging.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/dependency-management.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/embedding-sling.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/getting-and-building-sling.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/hamcrest.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/htl-maven-plugin.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/ide-tooling/ide-tooling-incremental-build.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/ide-tooling.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/issue-tracker.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/jcr-mock.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/jspc.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/jsr-305.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/logging.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/maven-archetypes.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/maven-launchpad-plugin.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/maven-usage.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/maventipsandtricks.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/monitoring-requests.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/osgi-mock.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/release-management.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/repository-based-development.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/development/resourceresolver-mock.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/content-loading-jcr-contentloader.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/context-aware-configuration/context-aware-configuration.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/datasource-providers.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/discovery-api-and-impl.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/dynamic-includes.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/file-installer-provider.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/internationalization-support-i18n.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/jcr-installer-provider.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/log-tracers.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/metrics.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/mime-type-support-commons-mime.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/models.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/nosql-resource-providers.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/org-apache-sling-junit-bundles.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/osgi-installer.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/rendering-content-default-get-servlets.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/repository-initialization.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/request-analysis.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/resource-access-security.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/resource-editor.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/resource-merger.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/scheduler-service-commons-scheduler.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/scripting/scripting-htl.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/scripting/scripting-jsp.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/scripting/scripting-thymeleaf.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/scripting.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/apidocs/TODO.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/components/TODO.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/contributing.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/apache-sling-commons-thread-pool.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/apache-sling-eventing-and-job-handling.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/bundle-resources-extensions-bundleresource.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/caching-services.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/commons-html-utilities.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/configuration-installer-factory.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/documentation/bundles/content-distribution.html</loc><lastmod>2017-06-14</lastmod>
+    </url><url>
+        <loc>http://localhost/downloads.html</loc><lastmod>2017-06-16</lastmod>
+    </url>
+</urlset>
\ No newline at end of file


[03/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-original-logo-from-SLING-174/sling-bw.svg
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-original-logo-from-SLING-174/sling-bw.svg b/sling-archives/logo/sling-original-logo-from-SLING-174/sling-bw.svg
deleted file mode 100644
index 583be3e..0000000
--- a/sling-archives/logo/sling-original-logo-from-SLING-174/sling-bw.svg
+++ /dev/null
@@ -1,1020 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="306px" height="175.232px" viewBox="0 0 306 175.232" enable-background="new 0 0 306 175.232" xml:space="preserve">
-<g>
-	<g id="Sling_3_">
-		<path d="M34.152,14.033c-5.775,0-8.878,1.964-12.19,5.232c-3.314,3.266-4.971,7.463-4.971,12.586c0,3.156,0.594,6.029,1.785,8.617
-			c1.188,2.594,2.844,4.762,4.968,6.508s6.471,4.197,13.041,7.35l10.194,4.816c8.496,4,14.455,8.773,17.883,14.318
-			C68.287,79.011,70,86.064,70,94.626c0,9.295-3.751,17.18-11.257,23.658C51.241,124.763,41.202,128,28.629,128
-			c-11.045,0-20.473-2.592-28.291-7.773l6.203-15.547c3.172,2.312,7.121,4.242,11.85,5.789c4.729,1.551,8.963,2.322,12.702,2.322
-			c6.625,0,11.948-1.801,15.97-5.404c4.021-3.605,6.032-8.199,6.032-13.773c0-4.166-1.118-8.039-3.355-11.617
-			c-2.239-3.576-7.857-7.479-16.863-11.701l-10.025-4.648c-8.495-3.941-14.429-8.615-17.797-14.023C1.685,46.214,0,39.708,0,32.105
-			c0-9.236,3.282-16.896,9.855-22.98C16.424,3.043,24.863,0,35.17,0"/>
-		<path d="M83,27.833L99.305,28v76.902c0,8.43,0.564,13.457,5.695,15.072c-2.521,4.686-4.826,7.025-10.912,7.025
-			C86.696,127,83,121.978,83,111.929V27.833z"/>
-		<path d="M122.684,126V70.636H116V57.531h22.674V126H122.684z M130.834,31c2.529,0,4.688,0.904,6.48,2.717
-			c1.791,1.812,2.686,3.996,2.686,6.553c0,2.559-0.895,4.74-2.686,6.553c-1.793,1.812-3.951,2.719-6.48,2.719
-			c-2.527,0-4.686-0.906-6.477-2.719c-1.793-1.812-2.688-3.994-2.688-6.553c0-2.557,0.895-4.74,2.688-6.553
-			C126.149,31.904,128.307,31,130.834,31z"/>
-		<path d="M202.026,125v-39.15c0-5.773-1.119-9.99-3.354-12.648c-2.238-2.652-5.893-3.984-10.961-3.984
-			c-2.342,0-4.846,0.654-7.508,1.963c-2.66,1.307-4.738,2.932-6.229,4.867V125H158V57.265h14.498l-0.059,6.324
-			c4.348-5.059,10.756-7.59,19.234-7.59c8.135,0,14.557,2.414,19.264,7.24C215.645,68.07,218,74.804,218,83.447V125H202.026z"/>
-		<path d="M267.352,158.787c6.094,0,11.854-1.084,17.459-3.518c1.404-0.607,2.781-1.432,3.867-2.531
-			c1.986-2.01,2.836-5.396,0.92-7.75c-1.828-2.25-4.846-2.91-7.59-2.875c-1.643,0.02-3.238,0.322-4.867,0.475
-			c-3.93,0.367-7.871,0.688-11.758,1.393c-5.168,0.939-10.365,1.643-15.625,1.213c-5.727-0.467-12.57-2.209-14.697-8.338
-			c-2.119-6.109,2.02-11.506,6.371-14.805c1.65-1.248,3.348-2.484,5.084-3.607c-1.686-1.117-3.078-2.555-4.594-3.885
-			c-2.412-2.115-4.613-4.488-6.367-7.191c-1.816-2.801-3.123-6.916-3.846-10.18c-0.789-3.557-0.896-8.248-0.438-11.857
-			c0.494-3.91,1.363-8.014,3.045-11.57c1.721-3.641,3.883-6.736,6.656-9.648c3.229-3.393,7.596-6.232,11.955-7.941
-			c4.723-1.848,9.795-1.928,14.82-1.99c5.018-0.064,9.818,1.361,14.588,3.027c1.4,0.488,3.049,1.662,4.18,2.439
-			c0.996-1.117,8.609-8.254,8.975-8.646c0.951,1.006,8.51,8,8.51,8l-8.666,8.729c0,0,3.047,4.855,4.125,7.777
-			c0.793,2.143,1.742,5.391,1.998,9.721c0.205,3.506-0.055,8.045-0.732,11.486c-0.646,3.295-1.689,7.527-3.268,10.494
-			c-1.504,2.828-3.502,5.361-5.879,7.498c-2.396,2.156-5.131,3.918-8.01,5.344c-7.461,3.693-15.137,4.389-23.307,3.697
-			c-1.416-0.121-1.844-0.156-3.264-0.227c-0.238,0.242-3.926,1.861-5.709,3.176c-1.49,1.1-5.807,3.855-4.129,6.309
-			c1.117,1.633,3.545,1.383,5.23,1.158c5.688-0.75,11.336-1.891,17.004-2.775c2.551-0.398,5.104-0.807,7.668-1.102
-			c1.652-0.191,3.312-0.316,4.975-0.342c3.641-0.051,7.332,0.393,10.768,1.68c1.471,0.551,2.93,1.279,4.266,2.111
-			c1.574,0.982,3.1,2.18,4.424,3.486c1.18,1.168,2.211,2.539,3.016,3.998c2.297,4.16,1.699,9.258-0.174,13.455
-			c-0.504,1.129-1.111,2.246-1.795,3.279c-0.92,1.396-2.029,2.746-3.221,3.918c-1.279,1.258-2.719,2.41-4.193,3.43
-			c-7.426,5.135-16.402,7.699-27.775,7.699 M266.87,67.298c-5.91,0-10.736,1.957-14.469,5.865c-3.734,3.91-5.6,8.656-5.6,14.242
-			c0,6.256,1.807,13.436,5.424,17.539c3.611,4.105,8.494,6.16,14.645,6.16c6.035,0,10.754-1.996,14.158-5.99
-			c3.406-3.996,5.107-11.23,5.107-17.709c0-5.586-1.836-10.332-5.51-14.242C276.952,69.255,272.366,67.298,266.87,67.298z
-			 M234.995,130.82"/>
-	</g>
-	<g id="BL-Corner_3_">
-		<path id="B_3_" d="M29,173H0v-9.982c0.369,0,13.488-0.064,14-0.018"/>
-		<path id="L_3_" d="M14,133.867c0,0-7.578-1.631-14-5.867v36h14V133.867z"/>
-	</g>
-	<rect id="T-Border_3_" x="34" width="270" height="14"/>
-	<rect id="R-Border_3_" x="290" width="14" height="59"/>
-	<path id="G-tail_Stop_3_" d="M234,172.988c12.82,0.029,16.654-0.002,29.475-0.006c0.186,0,4.525-0.002,4.525-0.002
-		c0-0.014,0-13.971,0-13.973c0-0.012-1.975,0.02-2.041,0.02c-2.207-0.01-4.414-0.033-6.621-0.025
-		c-1.189,0.004-3.561,0.008-3.561,0.008h-1.227"/>
-	<g id="Feather_3_">
-		<g>
-			<path stroke="#000000" stroke-width="2" d="M24.735,157.741c39.993,0.481,80.034,2.732,119.978,0.399
-				c9.626-0.562,19.272-1.09,28.915-1.114c9.552-0.023,19.169-0.8,28.641-0.702c5.476,0.057,10.942,0.374,16.269,0.479
-				c7.293,0.145,14.045-0.714,20.766-2.03c3.271-0.641,6.34-1.493,9.171-2.928c-7.98,0.844-15.632,1.628-23.481,1.874
-				c-7.817,0.245-15.811-0.068-24.163-0.344c-8.479-0.28-17.146-0.264-25.437-0.648c-12.857-0.596-25.872-1.426-38.391-0.527
-				c-3.608,0.259-7.474,1.867-11.165,2.169c-7.878,0.644-13.928-0.245-21.83,0.021c-2.246,0.076-6.27,0.622-8.512,0.664
-				c-2.535,0.048-5.362-0.244-7.88-0.255c-12.557-0.052-25.037,0.692-37.509,1.442c-3.557,0.214-7.167,0.396-10.749,0.582
-				c-4.467,0.232-8.953,0.458-13.389,0.816C25.562,157.673,25.142,157.74,24.735,157.741z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M88.98,171.696L88.98,171.696c0.768,0.356,1.154,0.534,1.925,0.889
-				c0.784,0.148,1.176,0.223,1.963,0.368c0.816-0.039,1.223-0.062,2.041-0.104c0.847-0.227,1.271-0.34,2.12-0.57
-				c0.844-0.336,1.265-0.506,2.109-0.847c0.863-0.462,1.295-0.694,2.157-1.161c0.833-0.553,1.249-0.83,2.081-1.387
-				c0.836-0.601,1.254-0.902,2.088-1.508c0.794-0.627,1.192-0.943,1.983-1.574c0.75-0.638,1.124-0.956,1.87-1.597
-				c0.72-0.619,1.079-0.928,1.796-1.55c0.67-0.585,1.004-0.88,1.671-1.467c0.607-0.484,0.912-0.727,1.517-1.213
-				c0.55-0.383,0.825-0.573,1.373-0.956c0.464-0.246,0.694-0.369,1.157-0.616c0.401-0.101,0.603-0.149,1.004-0.25l0,0
-				c-0.325-0.001-0.487-0.003-0.812-0.004c-0.343,0-0.515-0.001-0.858-0.002c-0.39,0.017-0.586,0.028-0.976,0.045
-				c-0.389,0.016-0.583,0.02-0.972,0.035c-0.393,0.019-0.591,0.028-0.983,0.047c-0.39,0.016-0.585,0.023-0.976,0.039
-				c-0.386-0.004-0.58-0.008-0.966-0.012c-0.349,0.018-0.522,0.029-0.872,0.047l0,0c-0.601,0.443-0.903,0.666-1.505,1.107
-				c-0.58,0.421-0.871,0.629-1.453,1.048c-0.517,0.425-0.776,0.639-1.294,1.062c-0.475,0.428-0.712,0.638-1.189,1.063
-				c-0.473,0.402-0.709,0.604-1.184,1.005c-0.452,0.404-0.679,0.605-1.131,1.008c-0.43,0.383-0.646,0.574-1.076,0.956
-				c-0.45,0.359-0.675,0.539-1.126,0.897c-0.448,0.358-0.671,0.537-1.12,0.894c-0.466,0.312-0.698,0.467-1.164,0.778
-				c-0.487,0.31-0.731,0.465-1.218,0.772c-0.547,0.28-0.821,0.421-1.369,0.699c-0.566,0.259-0.851,0.385-1.417,0.641
-				c-0.627,0.229-0.939,0.343-1.566,0.568c-0.688,0.197-1.032,0.295-1.718,0.489C90.126,171.482,89.744,171.554,88.98,171.696z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M82.435,170.636L82.435,170.636c0.907,0.266,1.362,0.396,2.273,0.656
-				c0.865,0.128,1.3,0.188,2.168,0.312c0.823,0.016,1.234,0.026,2.061,0.038c0.797-0.097,1.197-0.148,1.996-0.249
-				c0.755-0.207,1.132-0.312,1.889-0.522c0.701-0.281,1.052-0.425,1.754-0.709c0.712-0.345,1.067-0.518,1.78-0.865
-				c0.658-0.415,0.988-0.622,1.646-1.04c0.66-0.439,0.991-0.66,1.65-1.104c0.622-0.487,0.933-0.731,1.554-1.222
-				c0.629-0.532,0.943-0.8,1.571-1.335c0.603-0.516,0.905-0.775,1.506-1.293c0.621-0.517,0.931-0.774,1.55-1.294
-				c0.622-0.52,0.931-0.78,1.55-1.302c0.612-0.48,0.917-0.721,1.527-1.203c0.624-0.439,0.936-0.659,1.557-1.101l0,0
-				c-0.215,0.006-0.323,0.01-0.539,0.016c-0.236-0.016-0.355-0.025-0.591-0.041c-0.217,0.007-0.324,0.01-0.542,0.017
-				c-0.237,0.004-0.356,0.006-0.593,0.01c-0.239,0.004-0.359,0.007-0.599,0.011c-0.24,0.026-0.36,0.038-0.601,0.063
-				c-0.238,0.003-0.357,0.005-0.595,0.008c-0.237,0.006-0.355,0.006-0.593,0.011c-0.237,0.003-0.356,0.006-0.593,0.009
-				c-0.261,0.002-0.39,0.002-0.651,0.004c-0.241,0.025-0.362,0.038-0.604,0.062c-0.258,0-0.386,0-0.645,0
-				c-0.259,0.001-0.389,0.003-0.647,0.004c-0.26,0.001-0.39-0.001-0.65,0c-0.256-0.021-0.386-0.032-0.643-0.054
-				c-0.258,0.001-0.386,0.005-0.644,0.006l0,0c-0.238,0.273-0.357,0.408-0.595,0.681c-0.289,0.332-0.433,0.499-0.722,0.83
-				c-0.365,0.387-0.549,0.58-0.915,0.966c-0.388,0.405-0.582,0.606-0.971,1.01c-0.462,0.439-0.693,0.657-1.155,1.095
-				c-0.483,0.434-0.726,0.648-1.209,1.08c-0.508,0.451-0.763,0.677-1.271,1.125c-0.528,0.426-0.791,0.64-1.319,1.062
-				c-0.545,0.401-0.819,0.603-1.364,1.002c-0.541,0.379-0.809,0.565-1.35,0.941c-0.557,0.332-0.835,0.499-1.391,0.829
-				c-0.523,0.272-0.784,0.41-1.307,0.681c-0.513,0.208-0.77,0.31-1.282,0.516c-0.498,0.126-0.745,0.191-1.242,0.315
-				c-0.461,0.046-0.691,0.066-1.151,0.111C83.071,170.719,82.858,170.692,82.435,170.636z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M78.127,170.102L78.127,170.102c0.511,0.13,0.766,0.198,1.28,0.332
-				c0.496,0.109,0.745,0.164,1.243,0.271c0.486,0.047,0.729,0.07,1.216,0.115c0.499-0.018,0.749-0.025,1.249-0.045
-				c0.503-0.037,0.755-0.056,1.26-0.095c0.497-0.123,0.747-0.188,1.244-0.313c0.502-0.166,0.752-0.25,1.255-0.418
-				c0.542-0.247,0.813-0.37,1.356-0.619c0.547-0.29,0.823-0.436,1.371-0.728c0.559-0.352,0.838-0.528,1.398-0.882
-				c0.572-0.438,0.857-0.654,1.43-1.095c0.603-0.479,0.907-0.722,1.51-1.203c0.638-0.582,0.958-0.873,1.595-1.458
-				c0.671-0.645,1.005-0.968,1.675-1.616c0.7-0.708,1.049-1.062,1.747-1.773c0.735-0.814,1.102-1.223,1.834-2.042l0,0
-				c-0.362-0.029-0.544-0.046-0.906-0.076c-0.344-0.007-0.516-0.008-0.859-0.015c-0.348,0.012-0.521,0.019-0.868,0.03
-				c-0.347,0.013-0.519,0.018-0.865,0.03c-0.347,0.012-0.522,0.019-0.868,0.029c-0.346,0.01-0.519,0.013-0.864,0.021
-				c-0.382-0.034-0.572-0.052-0.954-0.087c-0.403-0.037-0.604-0.057-1.006-0.095l0,0c-0.396,0.295-0.594,0.442-0.99,0.736
-				c-0.376,0.316-0.562,0.476-0.939,0.791c-0.375,0.296-0.563,0.441-0.938,0.736c-0.38,0.333-0.571,0.5-0.952,0.831
-				c-0.377,0.312-0.566,0.47-0.943,0.78c-0.358,0.335-0.54,0.499-0.898,0.833c-0.378,0.309-0.567,0.463-0.945,0.771
-				c-0.361,0.332-0.541,0.499-0.901,0.83c-0.376,0.308-0.563,0.46-0.939,0.767s-0.564,0.458-0.939,0.763
-				c-0.397,0.302-0.597,0.453-0.994,0.754c-0.374,0.284-0.561,0.426-0.934,0.709c-0.408,0.255-0.614,0.382-1.021,0.636
-				c-0.41,0.255-0.614,0.382-1.023,0.636c-0.406,0.254-0.609,0.379-1.012,0.633C78.79,169.787,78.568,169.891,78.127,170.102z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M73.632,169.339L73.632,169.339c0.362,0.249,0.543,0.371,0.906,0.622
-				c0.423,0.131,0.635,0.198,1.059,0.331c0.448-0.008,0.672-0.013,1.12-0.018c0.488-0.123,0.732-0.18,1.221-0.3
-				c0.502-0.202,0.754-0.305,1.256-0.504c0.54-0.297,0.812-0.446,1.356-0.744c0.551-0.338,0.829-0.508,1.382-0.849
-				c0.568-0.42,0.853-0.629,1.422-1.052c0.549-0.448,0.825-0.671,1.375-1.122c0.579-0.466,0.868-0.701,1.447-1.17
-				c0.534-0.477,0.802-0.714,1.336-1.192c0.534-0.458,0.801-0.688,1.335-1.147c0.512-0.461,0.767-0.693,1.278-1.157
-				c0.48-0.405,0.719-0.607,1.199-1.015c0.447-0.35,0.672-0.525,1.119-0.877c0.396-0.295,0.593-0.443,0.988-0.739
-				c-2.303-0.011-3.452-0.023-5.744-0.071l0,0c-0.312,0.297-0.467,0.444-0.779,0.74c-0.33,0.292-0.494,0.438-0.824,0.729
-				c-0.309,0.299-0.463,0.448-0.772,0.746c-0.31,0.291-0.466,0.436-0.775,0.727c-0.311,0.295-0.466,0.441-0.777,0.735
-				c-0.331,0.289-0.497,0.434-0.828,0.722c-0.31,0.291-0.463,0.435-0.773,0.725c-0.33,0.288-0.497,0.432-0.826,0.719
-				c-0.348,0.264-0.521,0.399-0.868,0.662c-0.351,0.282-0.526,0.419-0.876,0.7c-0.346,0.265-0.515,0.399-0.859,0.665
-				c-0.385,0.255-0.578,0.382-0.962,0.639c-0.384,0.26-0.576,0.39-0.96,0.651c-0.407,0.26-0.61,0.391-1.016,0.652
-				c-0.422,0.238-0.633,0.356-1.055,0.597C74.294,168.98,74.074,169.101,73.632,169.339z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M64.624,167.304L64.624,167.304c0.577,0.459,0.866,0.69,1.443,1.151
-				c0.559,0.315,0.837,0.473,1.396,0.79c0.583,0.176,0.876,0.267,1.459,0.445c0.583,0.054,0.873,0.079,1.455,0.136
-				c0.578-0.047,0.868-0.07,1.447-0.114c0.57-0.126,0.855-0.187,1.426-0.309c0.567-0.229,0.851-0.343,1.418-0.567
-				c0.582-0.303,0.873-0.453,1.455-0.752c0.575-0.384,0.862-0.572,1.438-0.952c0.58-0.399,0.87-0.599,1.451-0.994
-				c0.55-0.484,0.826-0.726,1.381-1.21c0.58-0.478,0.871-0.715,1.452-1.195c0.565-0.526,0.848-0.794,1.415-1.323
-				c0.57-0.547,0.854-0.817,1.425-1.367c0.548-0.555,0.824-0.834,1.372-1.392c0.547-0.536,0.82-0.808,1.367-1.348l0,0
-				c-0.39,0.019-0.584,0.027-0.974,0.045c-0.299-0.015-0.448-0.021-0.747-0.036c-0.213-0.005-0.322-0.007-0.535-0.012
-				c-0.194-0.002-0.291-0.005-0.485-0.008c-0.191-0.001-0.287-0.003-0.479-0.005c-0.189-0.025-0.283-0.036-0.472-0.062
-				c-0.278-0.015-0.415-0.023-0.693-0.039c-0.359-0.025-0.54-0.036-0.899-0.063l0,0c-0.496,0.494-0.744,0.738-1.24,1.23
-				c-0.488,0.45-0.732,0.677-1.219,1.125c-0.482,0.43-0.723,0.646-1.205,1.078c-0.513,0.365-0.771,0.548-1.283,0.916
-				c-0.483,0.332-0.725,0.5-1.208,0.835c-0.479,0.313-0.718,0.473-1.197,0.789c-0.494,0.273-0.74,0.408-1.233,0.685
-				c-0.466,0.237-0.699,0.359-1.164,0.6c-0.458,0.2-0.688,0.301-1.146,0.503c-0.454,0.182-0.68,0.271-1.134,0.455
-				c-0.423,0.122-0.634,0.186-1.057,0.31c-0.397,0.108-0.595,0.161-0.993,0.271c-0.395,0.089-0.593,0.134-0.988,0.225
-				c-0.346,0.052-0.52,0.078-0.865,0.131c-0.34,0.013-0.51,0.02-0.85,0.032C65.065,167.306,64.917,167.305,64.624,167.304z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M59.839,166.642L59.839,166.642c0.653,0.127,0.979,0.189,1.632,0.318
-				c0.637,0.088,0.958,0.133,1.595,0.224c0.63,0.005,0.944,0.009,1.574,0.017c0.616-0.033,0.925-0.049,1.542-0.08
-				c0.582-0.073,0.874-0.111,1.456-0.183c0.592-0.135,0.887-0.199,1.479-0.331c0.557-0.176,0.836-0.263,1.394-0.436
-				c0.548-0.235,0.821-0.354,1.37-0.587c0.551-0.252,0.827-0.377,1.378-0.626c0.518-0.295,0.778-0.441,1.296-0.733
-				c0.524-0.333,0.788-0.499,1.312-0.828c0.511-0.373,0.765-0.558,1.276-0.928c0.495-0.391,0.741-0.588,1.236-0.976
-				c0.482-0.433,0.724-0.646,1.207-1.076c0.486-0.45,0.733-0.675,1.222-1.127c0.471-0.474,0.706-0.711,1.177-1.188l0,0
-				c-0.423-0.034-0.634-0.052-1.056-0.088c-0.468-0.022-0.703-0.033-1.168-0.058c-0.443-0.022-0.666-0.034-1.109-0.054
-				c-0.442-0.038-0.663-0.058-1.104-0.093c-0.383-0.008-0.576-0.01-0.959-0.016c-0.315-0.02-0.473-0.029-0.788-0.048
-				c-0.233-0.006-0.35-0.009-0.583-0.015c-0.109,0.007-0.163,0.009-0.272,0.017l0,0c-0.047,0.037-0.069,0.054-0.116,0.091
-				c-0.123,0.088-0.185,0.135-0.308,0.223c-0.197,0.144-0.295,0.214-0.492,0.357c-0.244,0.181-0.366,0.273-0.609,0.455
-				c-0.271,0.218-0.407,0.328-0.679,0.547c-0.342,0.254-0.512,0.377-0.854,0.632c-0.367,0.272-0.55,0.41-0.917,0.684
-				c-0.41,0.291-0.615,0.438-1.024,0.73c-0.454,0.285-0.681,0.428-1.134,0.715c-0.475,0.308-0.712,0.462-1.187,0.771
-				c-0.473,0.291-0.709,0.438-1.182,0.731c-0.514,0.286-0.77,0.431-1.283,0.719c-0.528,0.268-0.792,0.399-1.32,0.669
-				c-0.526,0.248-0.79,0.372-1.316,0.622c-0.541,0.208-0.811,0.314-1.351,0.524C60.639,166.388,60.373,166.473,59.839,166.642z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M53.39,166.586L53.39,166.586c0.545,0.137,0.817,0.205,1.362,0.343
-				c0.535,0.075,0.803,0.114,1.338,0.189c0.571-0.026,0.856-0.039,1.427-0.064c0.578-0.065,0.867-0.097,1.445-0.161
-				c0.591-0.146,0.886-0.218,1.478-0.362c0.576-0.188,0.865-0.285,1.441-0.473c0.585-0.226,0.877-0.34,1.462-0.563
-				c0.596-0.284,0.894-0.422,1.49-0.704c0.556-0.306,0.834-0.458,1.391-0.762c0.562-0.326,0.843-0.489,1.405-0.812
-				c0.544-0.345,0.817-0.517,1.362-0.859c0.529-0.364,0.792-0.544,1.323-0.906c0.512-0.385,0.769-0.576,1.282-0.958
-				c0.487-0.364,0.73-0.547,1.218-0.909c0.447-0.366,0.672-0.547,1.12-0.911c0.426-0.367,0.639-0.551,1.065-0.916l0,0
-				c-0.25-0.028-0.375-0.042-0.626-0.069c-0.317-0.014-0.475-0.023-0.792-0.036c-0.336-0.018-0.505-0.024-0.841-0.041
-				c-0.355-0.037-0.533-0.055-0.889-0.091c-0.34,0.005-0.51,0.009-0.85,0.015c-0.337-0.011-0.506-0.019-0.844-0.028
-				c-0.274-0.005-0.411-0.007-0.685-0.012c-0.237,0.02-0.357,0.029-0.594,0.05l0,0c-0.007,0.04-0.01,0.06-0.018,0.1
-				c-0.102,0.093-0.153,0.14-0.255,0.233c-0.238,0.165-0.357,0.247-0.596,0.413c-0.332,0.198-0.5,0.297-0.832,0.496
-				c-0.404,0.254-0.604,0.383-1.007,0.638c-0.473,0.293-0.71,0.439-1.183,0.734c-0.519,0.311-0.779,0.469-1.297,0.781
-				c-0.539,0.309-0.809,0.46-1.347,0.771c-0.562,0.329-0.842,0.495-1.403,0.826c-0.561,0.333-0.84,0.501-1.4,0.836
-				c-0.536,0.315-0.805,0.474-1.34,0.79c-0.51,0.275-0.765,0.413-1.274,0.689c-0.462,0.259-0.694,0.39-1.156,0.649
-				c-0.412,0.201-0.616,0.301-1.027,0.502c-0.317,0.146-0.478,0.218-0.795,0.363C53.726,166.455,53.615,166.498,53.39,166.586z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M46.323,166.102L46.323,166.102c0.282,0.347,0.424,0.518,0.706,0.864
-				c0.416,0.171,0.623,0.257,1.038,0.427c0.542,0.034,0.811,0.051,1.353,0.084c0.625-0.105,0.938-0.158,1.563-0.264
-				c0.705-0.206,1.058-0.308,1.763-0.514c0.74-0.304,1.11-0.454,1.851-0.757c0.794-0.364,1.194-0.548,1.989-0.91
-				c0.78-0.403,1.17-0.605,1.951-1.007c0.789-0.443,1.183-0.663,1.973-1.104c0.749-0.443,1.124-0.665,1.874-1.105
-				c0.703-0.422,1.053-0.632,1.757-1.051c0.621-0.409,0.93-0.613,1.551-1.02c0.543-0.327,0.816-0.491,1.36-0.816
-				c0.407-0.275,0.61-0.412,1.018-0.687c0.265-0.182,0.398-0.271,0.663-0.452c0.119-0.073,0.179-0.109,0.297-0.183l0,0
-				c-0.274-0.004-0.412-0.007-0.686-0.011c-0.297-0.007-0.445-0.007-0.742-0.013c-0.317-0.007-0.475-0.013-0.792-0.019
-				c-0.315-0.004-0.474-0.008-0.789-0.011c-0.342,0.012-0.513,0.019-0.855,0.03c-0.338-0.006-0.506-0.008-0.844-0.013
-				c-0.336-0.003-0.505-0.005-0.842-0.007c-0.358-0.007-0.538-0.011-0.897-0.017l0,0c-0.414,0.195-0.622,0.292-1.036,0.488
-				c-0.413,0.198-0.62,0.3-1.033,0.499c-0.418,0.217-0.627,0.327-1.046,0.545c-0.393,0.203-0.589,0.303-0.981,0.507
-				c-0.416,0.218-0.624,0.328-1.039,0.546c-0.401,0.244-0.601,0.367-1.001,0.611c-0.415,0.222-0.623,0.331-1.038,0.553
-				c-0.395,0.223-0.592,0.336-0.986,0.559c-0.42,0.241-0.629,0.361-1.049,0.603c-0.395,0.225-0.592,0.337-0.986,0.562
-				c-0.414,0.222-0.62,0.333-1.033,0.555c-0.393,0.224-0.589,0.334-0.982,0.558c-0.411,0.202-0.617,0.303-1.027,0.505
-				c-0.412,0.203-0.619,0.305-1.03,0.507c-0.389,0.201-0.583,0.302-0.972,0.502C46.935,165.829,46.73,165.92,46.323,166.102z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M41.102,165.851L41.102,165.851c0.336,0.148,0.504,0.221,0.84,0.368
-				c0.344,0.087,0.516,0.129,0.86,0.215c0.351,0.044,0.525,0.065,0.875,0.108c0.364-0.036,0.547-0.054,0.911-0.09
-				c0.37-0.08,0.554-0.118,0.924-0.199c0.397-0.118,0.596-0.177,0.993-0.295c0.428-0.18,0.642-0.271,1.069-0.451
-				c0.455-0.219,0.682-0.327,1.138-0.546c0.503-0.258,0.757-0.387,1.261-0.645c0.533-0.299,0.799-0.448,1.332-0.747
-				c0.58-0.334,0.869-0.503,1.449-0.837c0.646-0.353,0.97-0.528,1.617-0.881c0.716-0.389,1.073-0.583,1.79-0.971
-				c0.767-0.428,1.15-0.642,1.917-1.067c0.833-0.44,1.25-0.66,2.084-1.099c0.923-0.452,1.385-0.68,2.309-1.128l0,0
-				c-0.36-0.005-0.541-0.007-0.9-0.011c-0.4-0.007-0.598-0.01-0.998-0.017c-0.355-0.024-0.533-0.037-0.888-0.062
-				c-0.358-0.004-0.537-0.006-0.895-0.009c-0.317-0.001-0.476,0-0.792,0c-0.254,0.004-0.381,0.006-0.635,0.01
-				c-0.172,0.01-0.258,0.015-0.43,0.025c-0.066,0.016-0.099,0.023-0.165,0.039l0,0c-0.052,0.06-0.079,0.089-0.131,0.148
-				c-0.146,0.114-0.218,0.173-0.363,0.287c-0.216,0.152-0.325,0.228-0.541,0.38c-0.287,0.208-0.43,0.313-0.717,0.521
-				c-0.357,0.244-0.535,0.366-0.892,0.61c-0.406,0.288-0.609,0.433-1.015,0.721c-0.427,0.281-0.64,0.422-1.067,0.704
-				c-0.491,0.301-0.737,0.45-1.228,0.751c-0.491,0.301-0.737,0.451-1.228,0.751c-0.511,0.298-0.766,0.445-1.276,0.743
-				c-0.503,0.257-0.754,0.388-1.257,0.645c-0.527,0.256-0.791,0.384-1.317,0.639c-0.496,0.215-0.745,0.323-1.24,0.537
-				c-0.49,0.174-0.734,0.261-1.224,0.434c-0.459,0.112-0.689,0.17-1.148,0.281C41.716,165.77,41.512,165.798,41.102,165.851z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M37.385,165L37.385,165c0.451,0.221,0.675,0.334,1.125,0.554
-				c0.509,0.122,0.764,0.183,1.272,0.303c0.549,0.002,0.823-0.001,1.373-0.001c0.583-0.103,0.876-0.152,1.46-0.256
-				c0.616-0.165,0.923-0.251,1.54-0.418c0.603-0.228,0.905-0.339,1.509-0.567c0.636-0.289,0.954-0.434,1.59-0.724
-				c0.599-0.334,0.898-0.499,1.498-0.833c0.58-0.335,0.871-0.503,1.451-0.838c0.563-0.357,0.846-0.537,1.411-0.896
-				c0.519-0.34,0.779-0.509,1.298-0.849c0.457-0.345,0.685-0.519,1.143-0.863c0.407-0.284,0.61-0.427,1.017-0.711
-				c0.313-0.249,0.47-0.372,0.784-0.621c0.24-0.169,0.36-0.254,0.601-0.423c0.147-0.117,0.221-0.174,0.368-0.291l0,0
-				c-0.338-0.001-0.507-0.002-0.845-0.003c-0.319,0.002-0.479,0.003-0.799,0.005c-0.315,0.001-0.474,0.003-0.789,0.004
-				c-0.32,0.021-0.48,0.03-0.8,0.051c-0.296,0.004-0.444,0.009-0.74,0.013c-0.317,0.001-0.477-0.002-0.794-0.001
-				c-0.341,0.02-0.511,0.031-0.852,0.051c-0.338,0-0.507,0-0.845,0l0,0c-0.288,0.21-0.431,0.315-0.719,0.525
-				c-0.311,0.207-0.466,0.312-0.776,0.519c-0.286,0.209-0.427,0.313-0.712,0.522c-0.312,0.229-0.469,0.346-0.78,0.575
-				c-0.314,0.248-0.471,0.371-0.785,0.619c-0.309,0.228-0.463,0.34-0.772,0.567c-0.332,0.227-0.498,0.339-0.829,0.564
-				c-0.332,0.226-0.498,0.338-0.829,0.562c-0.328,0.206-0.492,0.311-0.819,0.516c-0.326,0.205-0.489,0.308-0.814,0.513
-				c-0.347,0.182-0.519,0.271-0.866,0.451c-0.318,0.162-0.478,0.244-0.796,0.405c-0.361,0.141-0.541,0.211-0.901,0.351
-				c-0.334,0.118-0.502,0.175-0.836,0.292c-0.35,0.079-0.526,0.119-0.876,0.197C37.902,164.919,37.73,164.946,37.385,165z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M33.011,163.17L33.011,163.17c0.374,0.323,0.561,0.486,0.935,0.809
-				c0.388,0.221,0.582,0.328,0.97,0.548c0.406,0.119,0.609,0.181,1.015,0.299c0.415,0.057,0.623,0.083,1.037,0.139
-				c0.43-0.047,0.645-0.071,1.074-0.119c0.436-0.091,0.654-0.136,1.09-0.229c0.444-0.15,0.667-0.225,1.111-0.377
-				c0.455-0.213,0.683-0.319,1.138-0.533c0.438-0.237,0.657-0.357,1.095-0.596c0.468-0.296,0.703-0.443,1.172-0.74
-				c0.449-0.302,0.674-0.453,1.123-0.756c0.452-0.321,0.676-0.481,1.129-0.804c0.451-0.32,0.678-0.481,1.129-0.803
-				c0.435-0.344,0.652-0.517,1.088-0.861c0.433-0.324,0.649-0.484,1.082-0.809c0.43-0.306,0.644-0.458,1.074-0.764l0,0
-				c-0.233,0.009-0.35,0.012-0.583,0.021c-0.259,0.024-0.389,0.038-0.648,0.062c-0.273,0.003-0.411,0.005-0.684,0.008
-				c-0.295,0.003-0.443,0.003-0.739,0.006c-0.321,0.021-0.481,0.031-0.802,0.051c-0.338,0-0.507,0-0.845,0
-				c-0.362,0.017-0.544,0.024-0.906,0.04c-0.339-0.001-0.508-0.002-0.847-0.003l0,0c-0.144,0.238-0.214,0.359-0.358,0.598
-				c-0.185,0.235-0.278,0.353-0.462,0.588c-0.184,0.216-0.275,0.324-0.459,0.54c-0.223,0.212-0.333,0.314-0.556,0.526
-				c-0.24,0.189-0.36,0.285-0.6,0.475c-0.263,0.188-0.396,0.281-0.658,0.468c-0.261,0.187-0.392,0.278-0.653,0.464
-				c-0.295,0.144-0.442,0.216-0.738,0.359c-0.298,0.144-0.447,0.216-0.746,0.358c-0.315,0.12-0.473,0.18-0.789,0.299
-				c-0.334,0.119-0.501,0.179-0.836,0.297c-0.329,0.075-0.494,0.111-0.823,0.187c-0.347,0.055-0.52,0.083-0.866,0.137
-				c-0.345,0.051-0.518,0.078-0.863,0.128c-0.362,0.01-0.543,0.012-0.905,0.021C33.547,163.191,33.369,163.184,33.011,163.17z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M28.997,161.982L28.997,161.982c0.335,0.181,0.503,0.269,0.839,0.448
-				c0.361,0.144,0.54,0.214,0.901,0.356c0.387,0.101,0.581,0.152,0.968,0.252c0.439,0.045,0.659,0.065,1.098,0.108
-				c0.421,0.021,0.632,0.031,1.053,0.05c0.468-0.019,0.703-0.028,1.171-0.049c0.457-0.083,0.684-0.127,1.141-0.212
-				c0.457-0.084,0.686-0.127,1.143-0.212c0.446-0.149,0.67-0.225,1.116-0.375c0.429-0.173,0.643-0.259,1.071-0.434
-				c0.389-0.198,0.583-0.299,0.973-0.498c0.376-0.238,0.564-0.356,0.94-0.596c0.337-0.266,0.505-0.4,0.842-0.667
-				c0.3-0.288,0.449-0.43,0.749-0.718c0.242-0.334,0.362-0.504,0.604-0.838c0.181-0.34,0.273-0.507,0.454-0.847l0,0
-				c-0.254,0.005-0.382,0.008-0.637,0.013c-0.255,0.003-0.382,0.004-0.637,0.006c-0.277,0.022-0.415,0.032-0.692,0.055
-				c-0.277,0.001-0.416,0.001-0.693,0.002c-0.274,0.001-0.411,0.001-0.685,0.002c-0.296-0.001-0.444-0.002-0.741-0.004
-				c-0.318-0.003-0.478-0.005-0.795-0.009c-0.359-0.007-0.538-0.012-0.897-0.02l0,0c-0.179,0.192-0.269,0.288-0.447,0.48
-				c-0.199,0.191-0.297,0.289-0.496,0.48c-0.196,0.17-0.293,0.253-0.489,0.423c-0.192,0.149-0.288,0.224-0.479,0.373
-				c-0.193,0.148-0.288,0.223-0.481,0.371c-0.208,0.104-0.314,0.156-0.522,0.26c-0.209,0.128-0.313,0.192-0.523,0.32
-				c-0.208,0.104-0.312,0.154-0.519,0.258c-0.223,0.083-0.334,0.126-0.557,0.209c-0.246,0.079-0.37,0.12-0.616,0.199
-				c-0.246,0.079-0.368,0.118-0.614,0.197c-0.262,0.058-0.394,0.085-0.656,0.142c-0.265,0.056-0.396,0.086-0.661,0.141
-				c-0.282,0.053-0.424,0.078-0.707,0.13c-0.303,0.031-0.453,0.045-0.756,0.075C29.456,161.906,29.303,161.933,28.997,161.982z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M26.958,161.018L26.958,161.018c0.108,0.136,0.163,0.206,0.271,0.342
-				c0.178,0.104,0.265,0.153,0.443,0.257c0.223,0.068,0.337,0.103,0.56,0.17c0.25,0.029,0.375,0.045,0.625,0.073
-				c0.295,0.013,0.444,0.02,0.739,0.031c0.323-0.025,0.484-0.038,0.807-0.064c0.349-0.067,0.523-0.104,0.873-0.174
-				c0.35-0.066,0.522-0.1,0.872-0.168c0.357-0.108,0.537-0.163,0.894-0.273c0.359-0.131,0.54-0.195,0.899-0.328
-				c0.362-0.15,0.543-0.227,0.905-0.378c0.324-0.179,0.487-0.268,0.811-0.447c0.328-0.198,0.491-0.299,0.819-0.497
-				c0.288-0.224,0.43-0.334,0.718-0.558c0.227-0.229,0.341-0.345,0.568-0.574c0.208-0.252,0.312-0.38,0.521-0.632l0,0
-				c-0.191,0.007-0.286,0.013-0.477,0.02c-0.172,0.007-0.258,0.007-0.43,0.014c-0.212,0.003-0.318,0.007-0.53,0.01
-				c-0.193,0.004-0.288,0.005-0.481,0.009c-0.191,0.005-0.289,0.009-0.48,0.014c-0.17,0.005-0.253,0.007-0.423,0.012
-				c-0.148-0.013-0.223-0.021-0.371-0.034c-0.145-0.013-0.216-0.018-0.361-0.031l0,0c-0.013,0.082-0.02,0.121-0.033,0.203
-				c-0.212,0.145-0.318,0.219-0.53,0.363c-0.35,0.194-0.524,0.293-0.874,0.486c-0.458,0.226-0.69,0.336-1.148,0.56
-				c-0.542,0.214-0.811,0.321-1.352,0.532c-0.544,0.213-0.817,0.318-1.362,0.528c-0.53,0.146-0.795,0.219-1.325,0.361
-				C27.648,160.915,27.418,160.95,26.958,161.018z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M25.659,159.407L25.659,159.407c0,0.29,0,0.436,0,0.726
-				c0.078,0.195,0.118,0.292,0.196,0.487c0.154,0.103,0.232,0.153,0.386,0.255c0.224,0.069,0.335,0.104,0.559,0.174
-				c0.277-0.007,0.416-0.011,0.693-0.019c0.33-0.064,0.494-0.097,0.824-0.162c0.332-0.085,0.497-0.126,0.828-0.212
-				c0.36-0.125,0.54-0.189,0.9-0.316c0.362-0.146,0.542-0.221,0.904-0.368c0.344-0.17,0.517-0.256,0.86-0.427
-				c0.345-0.171,0.519-0.256,0.864-0.428c0.28-0.16,0.42-0.24,0.701-0.4c0.254-0.143,0.38-0.214,0.634-0.356
-				c0.186-0.105,0.279-0.159,0.465-0.266c0.117-0.072,0.174-0.107,0.291-0.18c0.028-0.039,0.042-0.058,0.07-0.097
-				c-1.662,0.037-2.492,0.052-4.152,0.062l0,0c-0.136,0.067-0.205,0.102-0.341,0.168c-0.228,0.08-0.341,0.121-0.568,0.2
-				c-0.269,0.095-0.403,0.14-0.671,0.233c-0.292,0.091-0.437,0.138-0.728,0.228c-0.313,0.107-0.47,0.16-0.783,0.267
-				c-0.287,0.068-0.431,0.105-0.717,0.173c-0.267,0.071-0.399,0.105-0.666,0.176C25.988,159.358,25.878,159.374,25.659,159.407z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M30.682,157.88L30.682,157.88c-0.358-0.017-0.538-0.025-0.896-0.044
-				c-0.317-0.013-0.477-0.021-0.793-0.034c-0.295-0.015-0.444-0.021-0.74-0.037c-0.276-0.013-0.413-0.018-0.689-0.031
-				c-0.254-0.008-0.382-0.012-0.636-0.021c-0.274-0.015-0.411-0.022-0.685-0.038c-0.279,0.007-0.418,0.011-0.698,0.017
-				c-0.324,0.021-0.486,0.029-0.811,0.049l0,0c0.006,0.393,0.01,0.59,0.016,0.982c0.159,0.207,0.24,0.311,0.399,0.518
-				c0.294,0.039,0.442,0.058,0.736,0.096c0.391-0.053,0.585-0.08,0.977-0.135c0.404-0.139,0.606-0.207,1.01-0.348
-				c0.429-0.155,0.643-0.231,1.072-0.389c0.384-0.143,0.575-0.218,0.959-0.362C30.215,158.013,30.371,157.971,30.682,157.88z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M30.603,157.362L30.603,157.362c-0.367,0.021-0.551,0.032-0.917,0.053
-				c-0.318,0.006-0.478,0.008-0.796,0.013c-0.281,0.029-0.42,0.043-0.701,0.071c-0.279,0.009-0.419,0.014-0.699,0.021
-				c-0.259,0.03-0.389,0.043-0.648,0.073c-0.261,0.03-0.392,0.047-0.652,0.076c-0.302,0.023-0.453,0.035-0.754,0.058
-				c-0.326,0.041-0.489,0.064-0.815,0.104l0,0c0.044-0.448,0.067-0.677,0.112-1.125c0.231-0.258,0.347-0.386,0.578-0.645
-				c0.309-0.063,0.464-0.095,0.773-0.159c0.4,0.032,0.599,0.047,0.999,0.077c0.406,0.132,0.61,0.197,1.017,0.327
-				c0.403,0.15,0.606,0.223,1.009,0.371c0.338,0.162,0.506,0.244,0.844,0.404C30.212,157.193,30.343,157.251,30.603,157.362z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M88.544,141.423L88.544,141.423c0.971-0.254,1.457-0.382,2.426-0.646
-				c0.908-0.142,1.36-0.215,2.267-0.363c0.817,0.008,1.225,0.01,2.042,0.013c0.76,0.101,1.14,0.15,1.899,0.248
-				c0.719,0.221,1.079,0.332,1.799,0.551c0.646,0.295,0.968,0.441,1.615,0.735c0.612,0.397,0.918,0.594,1.532,0.99
-				c0.585,0.436,0.879,0.656,1.467,1.092c0.556,0.497,0.833,0.747,1.392,1.245c0.534,0.537,0.802,0.808,1.339,1.346
-				c0.531,0.559,0.797,0.837,1.33,1.396c0.513,0.578,0.771,0.867,1.286,1.445c0.517,0.558,0.774,0.836,1.293,1.395
-				c0.521,0.539,0.781,0.812,1.304,1.351c0.528,0.518,0.793,0.773,1.324,1.292c0.556,0.479,0.834,0.718,1.393,1.197l0,0
-				c-0.219,0.027-0.328,0.043-0.547,0.07c-0.236,0.005-0.354,0.007-0.59,0.012c-0.236,0.006-0.356,0.009-0.593,0.015
-				c-0.218,0.028-0.327,0.042-0.545,0.07c-0.238,0.007-0.355,0.01-0.593,0.017c-0.237,0.005-0.356,0.009-0.594,0.014
-				c-0.257,0.003-0.384,0.003-0.641,0.006c-0.236,0.006-0.355,0.011-0.591,0.017c-0.238,0.002-0.358,0.004-0.596,0.006
-				c-0.257,0.006-0.386,0.007-0.644,0.013c-0.261,0.024-0.391,0.037-0.652,0.062c-0.237,0.004-0.355,0.004-0.592,0.008
-				c-0.258,0.005-0.388,0.01-0.646,0.014c-0.259,0.022-0.39,0.032-0.649,0.055c-0.28,0-0.419,0.001-0.699,0.001
-				c-0.261,0.024-0.392,0.036-0.653,0.06l0,0c-0.169-0.303-0.253-0.454-0.422-0.757c-0.221-0.373-0.33-0.562-0.55-0.935
-				c-0.256-0.437-0.385-0.654-0.641-1.091c-0.317-0.442-0.475-0.663-0.791-1.105c-0.33-0.484-0.495-0.727-0.823-1.211
-				c-0.372-0.486-0.558-0.73-0.929-1.217c-0.412-0.489-0.617-0.734-1.026-1.224c-0.413-0.471-0.618-0.705-1.03-1.176
-				c-0.459-0.451-0.688-0.678-1.146-1.129c-0.459-0.41-0.689-0.617-1.146-1.028c-0.467-0.371-0.7-0.557-1.166-0.929
-				c-0.498-0.311-0.748-0.467-1.245-0.778c-0.485-0.25-0.727-0.374-1.211-0.626c-0.499-0.169-0.749-0.256-1.248-0.427
-				c-0.515-0.07-0.771-0.104-1.287-0.177C89.278,141.374,89.034,141.39,88.544,141.423z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M84.502,141.849L84.502,141.849c0.552-0.119,0.828-0.179,1.379-0.301
-				c0.518-0.064,0.778-0.099,1.296-0.166c0.49-0.029,0.734-0.046,1.224-0.078c0.508,0.011,0.762,0.016,1.269,0.024
-				c0.469,0.088,0.703,0.131,1.172,0.217c0.48,0.148,0.721,0.222,1.202,0.368c0.453,0.187,0.679,0.28,1.132,0.465
-				c0.461,0.27,0.692,0.404,1.153,0.672c0.471,0.33,0.707,0.497,1.179,0.826c0.461,0.413,0.693,0.617,1.155,1.03
-				c0.473,0.474,0.709,0.711,1.183,1.185c0.482,0.559,0.725,0.839,1.209,1.397c0.511,0.644,0.766,0.965,1.28,1.608
-				c0.503,0.728,0.757,1.09,1.263,1.818c0.534,0.813,0.801,1.22,1.339,2.034c0.57,0.898,0.856,1.349,1.431,2.248l0,0
-				c-0.386-0.007-0.579-0.009-0.965-0.017c-0.345,0.015-0.517,0.021-0.861,0.036c-0.322-0.004-0.483-0.005-0.806-0.009
-				c-0.302,0.019-0.455,0.026-0.757,0.045s-0.454,0.029-0.756,0.047c-0.325,0.017-0.486,0.023-0.811,0.039
-				c-0.372,0.032-0.558,0.051-0.93,0.082c-0.433,0.028-0.648,0.042-1.081,0.069l0,0c-0.331-0.341-0.497-0.513-0.826-0.854
-				c-0.306-0.359-0.457-0.536-0.762-0.896c-0.323-0.383-0.484-0.573-0.806-0.956c-0.278-0.38-0.417-0.572-0.694-0.952
-				c-0.3-0.379-0.451-0.568-0.75-0.947c-0.296-0.381-0.444-0.572-0.739-0.953c-0.278-0.38-0.417-0.569-0.695-0.949
-				c-0.298-0.381-0.448-0.571-0.745-0.953c-0.299-0.36-0.447-0.542-0.745-0.902c-0.323-0.343-0.484-0.513-0.807-0.855
-				c-0.302-0.342-0.454-0.514-0.755-0.856c-0.322-0.344-0.483-0.517-0.805-0.861c-0.35-0.306-0.523-0.46-0.873-0.768
-				c-0.376-0.269-0.565-0.405-0.942-0.676c-0.377-0.271-0.564-0.404-0.941-0.676C85.111,142.202,84.908,142.085,84.502,141.849z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M79.949,142.387L79.949,142.387c0.453-0.269,0.679-0.401,1.129-0.67
-				c0.465-0.102,0.698-0.151,1.164-0.256c0.485,0.023,0.727,0.034,1.211,0.055c0.458,0.16,0.687,0.238,1.145,0.396
-				c0.485,0.266,0.728,0.397,1.213,0.66c0.47,0.346,0.707,0.518,1.177,0.86c0.476,0.425,0.714,0.637,1.19,1.06
-				c0.468,0.485,0.703,0.729,1.172,1.212c0.462,0.523,0.694,0.784,1.157,1.306c0.457,0.543,0.685,0.813,1.143,1.355
-				c0.438,0.541,0.659,0.813,1.099,1.354c0.417,0.56,0.625,0.838,1.045,1.396c0.383,0.512,0.575,0.766,0.96,1.277
-				c0.389,0.471,0.585,0.709,0.976,1.18c0.341,0.407,0.512,0.609,0.855,1.017c0.332,0.339,0.498,0.507,0.831,0.846
-				c-2.351,0.073-3.525,0.104-5.869,0.143l0,0c-0.24-0.356-0.359-0.533-0.599-0.89c-0.239-0.358-0.36-0.538-0.599-0.896
-				c-0.216-0.354-0.326-0.53-0.542-0.884c-0.236-0.355-0.352-0.533-0.587-0.89c-0.239-0.356-0.359-0.534-0.598-0.892
-				c-0.231-0.378-0.347-0.566-0.577-0.944c-0.256-0.359-0.385-0.539-0.641-0.899c-0.239-0.338-0.359-0.508-0.597-0.846
-				c-0.281-0.342-0.422-0.514-0.702-0.856c-0.28-0.342-0.417-0.514-0.697-0.856c-0.304-0.327-0.457-0.492-0.761-0.82
-				c-0.327-0.309-0.492-0.461-0.819-0.771c-0.35-0.312-0.523-0.471-0.873-0.784c-0.376-0.276-0.563-0.415-0.939-0.693
-				c-0.4-0.26-0.601-0.391-1.002-0.652C80.588,142.757,80.376,142.633,79.949,142.387z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M70.734,144.947L70.734,144.947c0.732-0.53,1.098-0.795,1.83-1.32
-				c0.684-0.364,1.026-0.542,1.709-0.901c0.636-0.219,0.953-0.328,1.589-0.542c0.616-0.096,0.927-0.143,1.542-0.233
-				c0.588,0.053,0.882,0.079,1.47,0.137c0.551,0.156,0.828,0.235,1.378,0.396c0.528,0.282,0.79,0.423,1.314,0.702
-				c0.494,0.335,0.739,0.502,1.233,0.834c0.477,0.435,0.716,0.65,1.193,1.082c0.444,0.489,0.665,0.734,1.108,1.222
-				c0.456,0.552,0.685,0.826,1.142,1.376c0.407,0.586,0.611,0.878,1.019,1.463c0.427,0.607,0.64,0.911,1.068,1.518
-				c0.398,0.645,0.597,0.966,0.997,1.609c0.4,0.645,0.602,0.968,1.004,1.611c0.403,0.643,0.605,0.962,1.01,1.604l0,0
-				c-0.406-0.019-0.608-0.024-1.014-0.044c-0.339-0.016-0.509-0.026-0.849-0.043c-0.276-0.008-0.415-0.013-0.691-0.021
-				c-0.26,0.015-0.39,0.024-0.65,0.038c-0.258,0.012-0.388,0.014-0.646,0.025c-0.281,0.01-0.422,0.017-0.703,0.025
-				c-0.32,0.006-0.479,0.009-0.799,0.014c-0.391,0.017-0.588,0.022-0.979,0.037l0,0c-0.342-0.601-0.513-0.898-0.854-1.5
-				c-0.331-0.539-0.495-0.81-0.825-1.35c-0.359-0.5-0.538-0.751-0.896-1.253c-0.349-0.439-0.523-0.662-0.872-1.104
-				c-0.376-0.382-0.564-0.572-0.94-0.956c-0.366-0.342-0.548-0.514-0.915-0.854c-0.353-0.299-0.531-0.445-0.884-0.742
-				c-0.382-0.257-0.574-0.387-0.957-0.641c-0.367-0.214-0.55-0.319-0.917-0.531c-0.355-0.168-0.534-0.251-0.889-0.417
-				c-0.38-0.149-0.567-0.225-0.947-0.372c-0.362-0.124-0.544-0.185-0.907-0.307c-0.347-0.08-0.522-0.119-0.87-0.198
-				c-0.351-0.077-0.524-0.115-0.875-0.191c-0.356-0.037-0.534-0.057-0.891-0.092C71.238,144.994,71.069,144.979,70.734,144.947z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M64.347,145.8L64.347,145.8c0.738-0.193,1.108-0.29,1.846-0.479
-				c0.683-0.131,1.024-0.196,1.707-0.323c0.668-0.046,1.002-0.067,1.669-0.109c0.617,0.015,0.925,0.024,1.541,0.042
-				c0.608,0.059,0.914,0.089,1.521,0.151c0.573,0.142,0.859,0.213,1.431,0.357c0.544,0.185,0.816,0.276,1.359,0.465
-				c0.512,0.246,0.767,0.371,1.278,0.621c0.504,0.286,0.757,0.432,1.261,0.722c0.45,0.349,0.675,0.521,1.125,0.873
-				c0.463,0.394,0.694,0.594,1.156,0.99c0.411,0.431,0.617,0.645,1.028,1.073c0.408,0.471,0.613,0.707,1.022,1.176
-				c0.377,0.504,0.565,0.757,0.942,1.26c0.353,0.544,0.531,0.814,0.886,1.357c0.343,0.581,0.514,0.872,0.859,1.452l0,0
-				c-0.449,0.009-0.673,0.01-1.121,0.017c-0.514-0.004-0.771-0.005-1.285-0.011c-0.514-0.004-0.771-0.008-1.285-0.015
-				s-0.77-0.01-1.283-0.02c-0.469-0.005-0.702-0.01-1.17-0.012c-0.362-0.006-0.544-0.006-0.906-0.01
-				c-0.274-0.017-0.411-0.025-0.686-0.041c-0.104-0.014-0.156-0.023-0.26-0.037l0,0c-0.033-0.046-0.051-0.065-0.084-0.111
-				c-0.089-0.092-0.133-0.14-0.223-0.231c-0.121-0.16-0.182-0.239-0.303-0.398c-0.154-0.205-0.231-0.308-0.385-0.513
-				c-0.191-0.251-0.286-0.376-0.477-0.626c-0.229-0.256-0.345-0.383-0.575-0.638c-0.267-0.299-0.4-0.45-0.667-0.748
-				c-0.304-0.324-0.455-0.486-0.759-0.81c-0.351-0.308-0.526-0.46-0.876-0.766c-0.367-0.327-0.55-0.49-0.917-0.816
-				c-0.414-0.312-0.622-0.466-1.037-0.775c-0.455-0.311-0.683-0.464-1.138-0.772c-0.463-0.271-0.695-0.407-1.159-0.677
-				c-0.51-0.251-0.765-0.373-1.275-0.622c-0.535-0.231-0.802-0.348-1.337-0.577C65.201,146.05,64.916,145.967,64.347,145.8z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M56.404,146.19L56.404,146.19c0.606-0.188,0.909-0.28,1.515-0.468
-				c0.597-0.128,0.895-0.193,1.491-0.32c0.621-0.021,0.931-0.03,1.552-0.05c0.591,0.04,0.885,0.062,1.476,0.103
-				c0.6,0.106,0.901,0.159,1.5,0.268c0.588,0.167,0.88,0.251,1.468,0.42c0.557,0.229,0.835,0.343,1.392,0.574
-				c0.57,0.274,0.855,0.414,1.425,0.691c0.521,0.312,0.78,0.47,1.3,0.785c0.515,0.337,0.773,0.504,1.288,0.844
-				c0.483,0.398,0.726,0.598,1.208,0.998c0.482,0.4,0.722,0.603,1.203,1.005c0.417,0.419,0.625,0.627,1.041,1.048
-				c0.412,0.438,0.617,0.66,1.028,1.1c0.368,0.437,0.552,0.653,0.919,1.092c0.326,0.434,0.489,0.651,0.814,1.086l0,0
-				c-0.272-0.015-0.409-0.021-0.681-0.035c-0.342,0.001-0.514,0.001-0.856,0.003c-0.382-0.004-0.572-0.008-0.954-0.011
-				c-0.404-0.005-0.607-0.006-1.012-0.009s-0.606-0.002-1.011-0.003c-0.362,0.003-0.543,0.004-0.905,0.009
-				c-0.316-0.012-0.473-0.014-0.789-0.024c-0.231-0.021-0.347-0.035-0.579-0.056l0,0c0.008-0.042,0.013-0.061,0.021-0.103
-				c-0.086-0.111-0.131-0.167-0.217-0.278c-0.182-0.161-0.273-0.242-0.456-0.403c-0.278-0.233-0.417-0.351-0.694-0.584
-				c-0.336-0.257-0.505-0.385-0.841-0.641c-0.393-0.305-0.59-0.455-0.983-0.759c-0.453-0.326-0.679-0.49-1.132-0.815
-				c-0.474-0.325-0.709-0.486-1.184-0.811c-0.473-0.328-0.711-0.491-1.185-0.817c-0.496-0.326-0.743-0.491-1.239-0.815
-				c-0.501-0.303-0.753-0.454-1.255-0.756c-0.463-0.277-0.695-0.413-1.158-0.689c-0.43-0.237-0.645-0.358-1.075-0.596
-				c-0.39-0.189-0.585-0.286-0.976-0.476c-0.322-0.124-0.483-0.185-0.805-0.309C56.796,146.308,56.666,146.268,56.404,146.19z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M48.778,147.223L48.778,147.223c0.368-0.431,0.553-0.646,0.921-1.077
-				c0.486-0.239,0.73-0.356,1.216-0.596c0.565-0.067,0.849-0.102,1.415-0.169c0.633,0.037,0.949,0.053,1.582,0.09
-				c0.673,0.186,1.008,0.277,1.681,0.463c0.722,0.271,1.083,0.41,1.804,0.683c0.75,0.357,1.124,0.533,1.872,0.893
-				c0.719,0.397,1.077,0.6,1.794,0.999c0.733,0.442,1.099,0.664,1.831,1.109c0.664,0.461,0.995,0.691,1.657,1.155
-				c0.625,0.441,0.939,0.663,1.563,1.107c0.561,0.437,0.841,0.655,1.4,1.095c0.463,0.371,0.693,0.558,1.156,0.931
-				c0.356,0.28,0.535,0.423,0.891,0.704c0.238,0.207,0.356,0.308,0.594,0.515c0.115,0.073,0.173,0.109,0.288,0.183l0,0
-				c-0.304,0.033-0.457,0.05-0.76,0.084c-0.339,0.011-0.509,0.017-0.848,0.028c-0.364,0.008-0.544,0.012-0.908,0.021
-				c-0.379-0.013-0.57-0.021-0.949-0.032c-0.403,0.01-0.604,0.017-1.007,0.027c-0.406,0.007-0.61,0.01-1.016,0.018
-				c-0.386,0.032-0.578,0.051-0.963,0.084c-0.388,0.032-0.582,0.045-0.969,0.078l0,0c-0.365-0.212-0.548-0.315-0.914-0.527
-				c-0.344-0.211-0.516-0.318-0.86-0.529c-0.365-0.23-0.547-0.345-0.912-0.574c-0.341-0.23-0.512-0.344-0.854-0.574
-				c-0.347-0.209-0.519-0.316-0.866-0.525c-0.34-0.229-0.511-0.341-0.852-0.568c-0.365-0.23-0.548-0.346-0.913-0.575
-				c-0.344-0.228-0.517-0.343-0.861-0.569c-0.347-0.21-0.52-0.313-0.867-0.523c-0.343-0.227-0.514-0.341-0.856-0.566
-				c-0.369-0.207-0.555-0.311-0.925-0.518c-0.353-0.187-0.528-0.28-0.881-0.467c-0.348-0.208-0.521-0.313-0.869-0.521
-				c-0.374-0.186-0.562-0.276-0.936-0.462c-0.373-0.189-0.559-0.283-0.932-0.473C49.346,147.475,49.156,147.389,48.778,147.223z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M38.958,149.031L38.958,149.031c0.515-0.289,0.774-0.432,1.29-0.723
-				c0.554-0.146,0.832-0.221,1.387-0.368c0.561-0.041,0.839-0.061,1.399-0.104c0.59,0.04,0.886,0.062,1.477,0.101
-				c0.597,0.141,0.895,0.209,1.491,0.348c0.602,0.225,0.903,0.336,1.505,0.561c0.575,0.263,0.861,0.395,1.435,0.656
-				c0.567,0.304,0.85,0.456,1.416,0.76c0.518,0.341,0.777,0.511,1.294,0.852s0.775,0.51,1.292,0.851
-				c0.449,0.359,0.674,0.54,1.122,0.899c0.394,0.312,0.59,0.467,0.983,0.778c0.354,0.291,0.529,0.436,0.882,0.727
-				c0.272,0.265,0.409,0.396,0.682,0.66c0.203,0.178,0.305,0.268,0.508,0.445c0.107,0.111,0.161,0.167,0.269,0.278l0,0
-				c-0.34,0.018-0.511,0.026-0.852,0.045c-0.322,0.022-0.482,0.032-0.804,0.055c-0.277,0.024-0.414,0.038-0.69,0.062
-				c-0.277,0.003-0.417,0.005-0.693,0.008c-0.298,0.002-0.447,0.003-0.745,0.005c-0.277,0.023-0.416,0.033-0.693,0.057
-				c-0.322,0.021-0.483,0.034-0.805,0.056c-0.339,0.02-0.509,0.029-0.849,0.049l0,0c-0.265-0.2-0.397-0.3-0.662-0.5
-				c-0.262-0.204-0.393-0.308-0.655-0.512c-0.278-0.242-0.418-0.36-0.696-0.603c-0.281-0.224-0.421-0.336-0.703-0.56
-				c-0.298-0.245-0.448-0.367-0.747-0.612c-0.301-0.245-0.45-0.367-0.751-0.612c-0.299-0.247-0.45-0.373-0.749-0.621
-				c-0.303-0.225-0.455-0.334-0.758-0.559c-0.305-0.227-0.457-0.342-0.762-0.568c-0.33-0.187-0.494-0.28-0.824-0.467
-				c-0.332-0.187-0.499-0.28-0.831-0.468c-0.317-0.146-0.476-0.219-0.793-0.366c-0.342-0.125-0.513-0.188-0.854-0.313
-				c-0.329-0.087-0.494-0.132-0.822-0.22c-0.336-0.023-0.504-0.034-0.84-0.058C39.47,149.043,39.298,149.038,38.958,149.031z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M42.668,147.812L42.668,147.812c0.395-0.2,0.592-0.302,0.988-0.503
-				c0.403-0.138,0.605-0.206,1.009-0.345c0.372-0.059,0.559-0.088,0.931-0.146c0.386-0.016,0.578-0.024,0.964-0.041
-				c0.377,0.043,0.566,0.066,0.943,0.109c0.387,0.106,0.58,0.157,0.966,0.264c0.422,0.172,0.632,0.261,1.054,0.432
-				c0.435,0.19,0.654,0.283,1.088,0.473c0.469,0.257,0.703,0.384,1.171,0.641c0.487,0.276,0.73,0.415,1.217,0.691
-				c0.536,0.343,0.805,0.516,1.341,0.858c0.577,0.365,0.864,0.548,1.439,0.914c0.636,0.39,0.954,0.585,1.589,0.976
-				c0.693,0.416,1.04,0.625,1.731,1.043c0.747,0.46,1.12,0.689,1.865,1.152c0.831,0.472,1.244,0.709,2.073,1.184l0,0
-				c-0.339-0.004-0.506-0.005-0.845-0.008c-0.382,0.013-0.576,0.02-0.958,0.033c-0.384,0.016-0.576,0.022-0.96,0.039
-				c-0.388,0.034-0.58,0.052-0.968,0.087c-0.342,0.02-0.512,0.03-0.854,0.05c-0.256,0.025-0.386,0.038-0.643,0.064
-				c-0.191,0.007-0.286,0.009-0.477,0.016c-0.082-0.024-0.123-0.036-0.205-0.061l0,0c-0.035-0.045-0.052-0.066-0.086-0.111
-				c-0.129-0.11-0.194-0.167-0.324-0.277c-0.161-0.177-0.24-0.263-0.4-0.439c-0.221-0.198-0.333-0.297-0.553-0.495
-				c-0.276-0.245-0.413-0.367-0.689-0.612c-0.337-0.268-0.506-0.404-0.844-0.672c-0.355-0.291-0.533-0.434-0.889-0.725
-				c-0.396-0.293-0.593-0.44-0.989-0.733c-0.438-0.294-0.659-0.441-1.099-0.735c-0.441-0.294-0.661-0.439-1.103-0.734
-				c-0.487-0.259-0.729-0.389-1.216-0.647c-0.493-0.235-0.742-0.355-1.235-0.592c-0.501-0.194-0.751-0.291-1.252-0.486
-				c-0.51-0.138-0.765-0.206-1.275-0.345c-0.496-0.091-0.745-0.139-1.241-0.23C43.426,147.863,43.174,147.848,42.668,147.812z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M34.352,151.279L34.352,151.279c0.441-0.373,0.662-0.56,1.104-0.934
-				c0.445-0.271,0.669-0.406,1.115-0.679c0.433-0.17,0.649-0.256,1.083-0.427c0.438-0.088,0.656-0.131,1.095-0.221
-				c0.425,0.013,0.637,0.019,1.062,0.03c0.437,0.072,0.654,0.109,1.091,0.181c0.448,0.136,0.672,0.203,1.12,0.338
-				c0.419,0.176,0.629,0.264,1.047,0.438c0.427,0.255,0.639,0.38,1.065,0.635c0.405,0.253,0.609,0.38,1.015,0.632
-				c0.416,0.315,0.625,0.474,1.04,0.788c0.417,0.317,0.626,0.477,1.043,0.794c0.416,0.313,0.623,0.469,1.038,0.782
-				c0.391,0.334,0.585,0.503,0.976,0.836c0.39,0.336,0.585,0.502,0.975,0.837c0.397,0.291,0.596,0.438,0.992,0.729l0,0
-				c-0.257,0.025-0.386,0.038-0.643,0.063c-0.276,0.004-0.415,0.008-0.691,0.012c-0.324,0.043-0.485,0.061-0.81,0.104
-				c-0.342,0.019-0.513,0.031-0.855,0.05c-0.362,0.021-0.544,0.031-0.906,0.051c-0.383,0.015-0.574,0.021-0.957,0.036
-				c-0.363,0.02-0.544,0.028-0.907,0.048c-0.364,0.018-0.547,0.024-0.911,0.042l0,0c-0.082-0.273-0.123-0.411-0.205-0.685
-				c-0.112-0.234-0.167-0.351-0.28-0.585c-0.131-0.235-0.198-0.354-0.329-0.589c-0.178-0.219-0.268-0.326-0.445-0.545
-				c-0.181-0.196-0.271-0.296-0.451-0.493c-0.208-0.159-0.312-0.24-0.519-0.399c-0.25-0.164-0.376-0.243-0.627-0.407
-				c-0.254-0.142-0.381-0.214-0.636-0.355c-0.278-0.123-0.418-0.186-0.696-0.309c-0.301-0.104-0.451-0.157-0.753-0.263
-				c-0.306-0.085-0.461-0.125-0.767-0.211c-0.33-0.067-0.493-0.103-0.823-0.17c-0.354-0.049-0.53-0.074-0.884-0.124
-				c-0.358-0.028-0.537-0.04-0.895-0.069c-0.364,0.009-0.546,0.011-0.911,0.019C34.926,151.267,34.735,151.272,34.352,151.279z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M27.387,153.949L27.387,153.949c0.13-0.149,0.194-0.226,0.325-0.375
-				c0.189-0.122,0.285-0.181,0.474-0.303c0.25-0.094,0.375-0.144,0.625-0.238c0.263-0.053,0.394-0.078,0.656-0.132
-				c0.302-0.028,0.453-0.041,0.755-0.07c0.339,0.017,0.509,0.023,0.848,0.039c0.336,0.035,0.504,0.053,0.84,0.087
-				c0.375,0.057,0.562,0.084,0.937,0.14c0.347,0.096,0.521,0.146,0.868,0.239c0.366,0.117,0.548,0.174,0.914,0.29
-				c0.339,0.152,0.508,0.23,0.847,0.382c0.312,0.172,0.469,0.258,0.781,0.429c0.291,0.189,0.436,0.284,0.726,0.474
-				c0.261,0.229,0.392,0.344,0.653,0.571c0.196,0.243,0.294,0.364,0.49,0.607c0.171,0.261,0.256,0.392,0.427,0.652l0,0
-				c-0.194,0.026-0.292,0.037-0.485,0.063c-0.237,0.022-0.355,0.035-0.593,0.058c-0.236,0.021-0.353,0.03-0.588,0.052
-				c-0.238,0.021-0.358,0.03-0.596,0.051c-0.211,0.003-0.316,0.005-0.528,0.008c-0.172,0.007-0.258,0.011-0.43,0.018
-				c-0.125-0.012-0.188-0.017-0.313-0.028c-0.043-0.004-0.062-0.004-0.105-0.008l0,0c-0.077-0.049-0.116-0.076-0.193-0.125
-				c-0.19-0.141-0.286-0.21-0.477-0.352c-0.331-0.196-0.497-0.296-0.828-0.493c-0.392-0.22-0.588-0.328-0.979-0.55
-				c-0.457-0.212-0.685-0.319-1.142-0.533c-0.524-0.197-0.787-0.299-1.312-0.499c-0.51-0.138-0.764-0.204-1.274-0.345
-				C28.182,154.016,27.917,153.993,27.387,153.949z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M25.82,155.867L25.82,155.867c0.028-0.324,0.042-0.486,0.07-0.811
-				c0.121-0.232,0.182-0.347,0.303-0.579c0.171-0.144,0.256-0.218,0.427-0.362c0.245-0.073,0.368-0.109,0.613-0.184
-				c0.278-0.008,0.417-0.013,0.695-0.021c0.313,0.059,0.47,0.09,0.783,0.147c0.328,0.077,0.492,0.114,0.82,0.19
-				c0.365,0.124,0.547,0.187,0.912,0.309c0.337,0.158,0.506,0.237,0.843,0.395c0.337,0.16,0.506,0.239,0.844,0.398
-				c0.317,0.155,0.476,0.229,0.793,0.384c0.273,0.15,0.409,0.228,0.682,0.377c0.235,0.146,0.352,0.22,0.587,0.365
-				c0.196,0.102,0.293,0.151,0.489,0.252c0.093,0.09,0.141,0.137,0.233,0.227c0.04,0.022,0.059,0.034,0.099,0.057
-				c-1.721,0.136-2.581,0.195-4.3,0.303l0,0c-0.138-0.073-0.206-0.11-0.343-0.185c-0.221-0.087-0.332-0.131-0.553-0.219
-				c-0.238-0.108-0.356-0.162-0.594-0.271c-0.281-0.114-0.422-0.171-0.703-0.286c-0.285-0.096-0.427-0.145-0.711-0.241
-				c-0.287-0.072-0.432-0.108-0.719-0.182c-0.271-0.033-0.406-0.052-0.678-0.086C26.175,155.853,26.057,155.858,25.82,155.867z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M29.792,152.885L29.792,152.885c0.375-0.229,0.563-0.341,0.938-0.57
-				c0.388-0.166,0.58-0.251,0.968-0.418c0.427-0.141,0.641-0.211,1.067-0.354c0.461-0.081,0.691-0.122,1.152-0.205
-				c0.455-0.041,0.682-0.061,1.136-0.103c0.449-0.02,0.673-0.029,1.123-0.051c0.463,0.04,0.696,0.06,1.159,0.098
-				c0.455,0.075,0.682,0.111,1.137,0.186c0.429,0.117,0.643,0.177,1.071,0.293c0.419,0.177,0.628,0.265,1.047,0.44
-				c0.375,0.191,0.563,0.288,0.938,0.479c0.346,0.23,0.518,0.345,0.863,0.575c0.317,0.271,0.474,0.405,0.791,0.675
-				c0.25,0.305,0.375,0.457,0.624,0.762c0.179,0.343,0.268,0.515,0.447,0.857c0.13,0.38,0.195,0.569,0.325,0.949l0,0
-				c-0.277,0.003-0.416,0.005-0.693,0.008c-0.256,0.024-0.384,0.036-0.64,0.061c-0.276,0.001-0.414,0-0.69,0
-				c-0.3,0.021-0.452,0.029-0.752,0.05c-0.299,0.021-0.448,0.033-0.747,0.055c-0.318-0.003-0.476-0.007-0.793-0.011
-				c-0.344,0.037-0.518,0.058-0.862,0.094c-0.361,0.012-0.542,0.017-0.903,0.027l0,0c-0.1-0.191-0.148-0.285-0.248-0.477
-				c-0.121-0.176-0.182-0.264-0.303-0.439c-0.146-0.155-0.219-0.233-0.364-0.389c-0.165-0.158-0.247-0.239-0.412-0.397
-				c-0.19-0.14-0.286-0.208-0.477-0.348c-0.212-0.142-0.317-0.212-0.529-0.354c-0.216-0.122-0.326-0.182-0.543-0.304
-				c-0.239-0.103-0.358-0.158-0.597-0.261c-0.239-0.105-0.357-0.154-0.596-0.26c-0.264-0.085-0.396-0.127-0.659-0.213
-				c-0.245-0.063-0.368-0.098-0.613-0.162c-0.271-0.047-0.406-0.069-0.677-0.117c-0.27-0.046-0.405-0.07-0.674-0.116
-				c-0.271-0.028-0.407-0.042-0.678-0.071c-0.277-0.009-0.415-0.014-0.692-0.022C30.178,152.866,30.049,152.873,29.792,152.885z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M220.043,156.897L220.043,156.897c0.03,0.053,0.046,0.077,0.076,0.13
-				c0.078,0.135,0.116,0.202,0.194,0.337c0.1,0.212,0.149,0.317,0.249,0.528c0.134,0.263,0.2,0.396,0.334,0.659
-				c0.146,0.308,0.22,0.462,0.365,0.771c0.137,0.336,0.203,0.505,0.34,0.842c0.107,0.37,0.162,0.555,0.27,0.927
-				c0.086,0.366,0.128,0.552,0.214,0.921c0.042,0.372,0.063,0.558,0.105,0.934c-0.036,0.338-0.053,0.507-0.089,0.849
-				c-0.1,0.324-0.148,0.485-0.248,0.814c-0.173,0.277-0.26,0.419-0.434,0.7c-0.291,0.218-0.435,0.327-0.727,0.548
-				c-0.411,0.153-0.618,0.231-1.029,0.388c-0.54,0.057-0.812,0.081-1.352,0.14c-0.675-0.043-1.013-0.062-1.688-0.104l0,0
-				c0.153-0.19,0.229-0.284,0.383-0.472c0.116-0.213,0.175-0.321,0.291-0.531c0.112-0.211,0.168-0.312,0.28-0.521
-				c0.102-0.243,0.152-0.365,0.254-0.605c0.08-0.245,0.118-0.365,0.198-0.607c0.062-0.263,0.094-0.394,0.155-0.653
-				c0.039-0.251,0.057-0.376,0.096-0.625c0.042-0.263,0.066-0.395,0.108-0.655c0.021-0.268,0.028-0.4,0.049-0.666
-				c0.021-0.264,0.034-0.395,0.056-0.656c-0.002-0.256-0.007-0.384-0.009-0.639c-0.026-0.248-0.039-0.372-0.065-0.619
-				c-0.006-0.241-0.009-0.361-0.015-0.603c-0.033-0.221-0.048-0.331-0.081-0.552c-0.054-0.226-0.08-0.338-0.134-0.564
-				c-0.04-0.194-0.06-0.295-0.1-0.489l0,0c0.109,0.003,0.166,0.004,0.275,0.007c0.085,0.008,0.124,0.014,0.209,0.021
-				c0.108,0.002,0.165,0.002,0.273,0.004c0.086,0.011,0.13,0.015,0.216,0.025c0.089-0.004,0.136-0.007,0.225-0.011
-				c0.084,0.009,0.124,0.014,0.208,0.022c0.109,0.001,0.165,0.001,0.274,0.002C219.881,156.894,219.935,156.895,220.043,156.897z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M218.186,156.882L218.186,156.882
-				c0.106,0.807,0.159,1.209,0.266,2.014c0.041,0.717,0.063,1.076,0.105,1.799c-0.038,0.601-0.056,0.9-0.093,1.511
-				c-0.104,0.52-0.157,0.783-0.261,1.313c-0.15,0.443-0.225,0.666-0.375,1.119c-0.216,0.359-0.323,0.539-0.54,0.906
-				c-0.244,0.298-0.368,0.448-0.612,0.752c-0.252,0.237-0.378,0.357-0.63,0.6c-0.301,0.166-0.45,0.25-0.751,0.42
-				c-0.313,0.116-0.47,0.173-0.783,0.291c-0.299,0.06-0.447,0.092-0.746,0.152c-0.291,0.028-0.438,0.041-0.729,0.07
-				c-0.309-0.007-0.464-0.009-0.772-0.015c-0.257-0.041-0.386-0.062-0.643-0.103c-0.23-0.051-0.344-0.075-0.574-0.126
-				c-0.209-0.059-0.314-0.09-0.523-0.148l0,0c0.18-0.214,0.27-0.319,0.449-0.529c0.177-0.208,0.263-0.311,0.439-0.515
-				c0.163-0.241,0.247-0.36,0.41-0.598c0.145-0.242,0.217-0.363,0.361-0.602c0.148-0.268,0.224-0.399,0.372-0.662
-				c0.131-0.269,0.195-0.399,0.326-0.663c0.128-0.265,0.19-0.396,0.318-0.656c0.111-0.279,0.168-0.419,0.279-0.694
-				c0.092-0.283,0.139-0.424,0.23-0.703c0.073-0.298,0.11-0.445,0.184-0.74c0.048-0.288,0.072-0.432,0.12-0.717
-				c0.033-0.304,0.049-0.454,0.082-0.756c0.009-0.293,0.013-0.44,0.021-0.732c-0.012-0.312-0.019-0.469-0.03-0.78
-				c-0.034-0.29-0.051-0.434-0.085-0.724c-0.054-0.309-0.082-0.463-0.136-0.771l0,0c0.259,0.013,0.39,0.019,0.648,0.031
-				c0.263,0.014,0.395,0.021,0.657,0.035c0.239,0.009,0.359,0.013,0.599,0.021c0.234,0.021,0.351,0.032,0.585,0.054
-				c0.196,0.012,0.295,0.015,0.49,0.026c0.215,0.016,0.32,0.025,0.535,0.041c0.17,0.019,0.257,0.027,0.427,0.046
-				C217.96,156.863,218.035,156.87,218.186,156.882z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M213.816,156.583L213.816,156.583
-				c0.059,0.296,0.087,0.443,0.146,0.738c0.038,0.36,0.056,0.539,0.094,0.899c-0.01,0.392-0.013,0.588-0.022,0.98
-				c-0.064,0.418-0.098,0.63-0.162,1.051c-0.089,0.459-0.134,0.687-0.223,1.151c-0.115,0.457-0.174,0.688-0.289,1.154
-				c-0.175,0.449-0.26,0.675-0.435,1.134c-0.214,0.436-0.321,0.657-0.535,1.104c-0.25,0.404-0.377,0.607-0.627,1.023
-				c-0.283,0.376-0.425,0.566-0.708,0.954c-0.354,0.304-0.53,0.459-0.884,0.771c-0.377,0.224-0.563,0.336-0.94,0.566
-				c-0.447,0.127-0.673,0.193-1.12,0.326c-0.482,0.002-0.723,0.004-1.205,0.01c-0.526-0.123-0.789-0.184-1.315-0.303
-				c-0.578-0.285-0.87-0.427-1.448-0.704l0,0c0.29-0.232,0.435-0.347,0.725-0.573c0.293-0.239,0.439-0.357,0.733-0.59
-				c0.255-0.26,0.384-0.387,0.639-0.641c0.23-0.243,0.347-0.364,0.577-0.603c0.195-0.278,0.291-0.416,0.486-0.688
-				c0.192-0.259,0.29-0.387,0.482-0.641c0.154-0.279,0.231-0.417,0.386-0.691s0.231-0.41,0.386-0.68
-				c0.112-0.28,0.166-0.419,0.278-0.695c0.094-0.295,0.142-0.44,0.235-0.731c0.071-0.284,0.106-0.424,0.178-0.705
-				c0.035-0.305,0.053-0.458,0.088-0.76c0.032-0.302,0.049-0.452,0.081-0.752c-0.013-0.298-0.019-0.446-0.031-0.743
-				c-0.008-0.311-0.011-0.468-0.019-0.778c-0.054-0.306-0.081-0.457-0.135-0.763l0,0c0.222,0.001,0.332-0.001,0.553,0
-				c0.261,0.011,0.392,0.017,0.652,0.027c0.264,0.012,0.393,0.017,0.656,0.029c0.262,0.011,0.395,0.019,0.656,0.03
-				c0.262,0.013,0.392,0.02,0.652,0.032c0.219,0.001,0.329,0,0.548,0.001c0.196,0.009,0.296,0.016,0.492,0.024
-				C213.591,156.563,213.666,156.57,213.816,156.583z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M197.093,168.242L197.093,168.242
-				c0.561,0.144,0.841,0.217,1.401,0.368c0.56,0.043,0.839,0.065,1.397,0.116c0.513-0.063,0.77-0.096,1.282-0.152
-				c0.485-0.134,0.728-0.196,1.213-0.322c0.48-0.216,0.721-0.322,1.201-0.529c0.433-0.284,0.647-0.423,1.08-0.695
-				c0.379-0.336,0.571-0.5,0.95-0.824c0.368-0.376,0.553-0.561,0.921-0.924c0.312-0.409,0.469-0.612,0.781-1.009
-				c0.278-0.437,0.417-0.648,0.695-1.072c0.219-0.452,0.328-0.676,0.547-1.116c0.157-0.458,0.234-0.685,0.392-1.134
-				c0.114-0.46,0.172-0.688,0.286-1.142c0.053-0.469,0.078-0.7,0.131-1.164c-0.013-0.467-0.019-0.701-0.031-1.166
-				c-0.08-0.453-0.122-0.679-0.201-1.132l0,0c-0.243-0.005-0.363-0.007-0.606-0.012s-0.367-0.008-0.61-0.012
-				c-0.259-0.022-0.389-0.031-0.648-0.053c-0.264-0.009-0.396-0.016-0.659-0.024c-0.264-0.008-0.394-0.009-0.657-0.016
-				c-0.284-0.012-0.429-0.019-0.713-0.03c-0.265-0.007-0.396-0.012-0.66-0.018c-0.285-0.012-0.428-0.016-0.713-0.026l0,0
-				c-0.072,0.276-0.108,0.416-0.181,0.692c-0.078,0.303-0.116,0.454-0.194,0.758c-0.11,0.341-0.166,0.512-0.276,0.854
-				c-0.112,0.355-0.169,0.528-0.281,0.888c-0.113,0.358-0.168,0.541-0.281,0.904c-0.116,0.379-0.177,0.571-0.293,0.957
-				c-0.162,0.389-0.243,0.583-0.404,0.98c-0.153,0.369-0.228,0.555-0.38,0.933c-0.176,0.375-0.265,0.566-0.439,0.951
-				c-0.167,0.354-0.251,0.531-0.418,0.894c-0.209,0.338-0.311,0.511-0.519,0.858c-0.216,0.298-0.326,0.448-0.542,0.754
-				c-0.228,0.252-0.34,0.381-0.566,0.639c-0.261,0.201-0.39,0.301-0.65,0.508c-0.266,0.136-0.397,0.204-0.663,0.344
-				C197.507,168.136,197.369,168.171,197.093,168.242z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M203.808,156.172L203.808,156.172
-				c-0.223,0.005-0.332,0.009-0.555,0.015c-0.22-0.008-0.332-0.012-0.552-0.02c-0.198-0.003-0.297-0.006-0.495-0.008
-				c-0.219-0.021-0.329-0.03-0.548-0.05c-0.221-0.005-0.331-0.006-0.552-0.011c-0.201-0.003-0.3-0.006-0.501-0.008
-				c-0.222-0.005-0.333-0.006-0.555-0.01c-0.223,0.009-0.334,0.016-0.558,0.025l0,0c-0.109,0.258-0.167,0.387-0.276,0.646
-				c-0.097,0.288-0.146,0.432-0.242,0.722c-0.104,0.318-0.154,0.479-0.258,0.801c-0.104,0.334-0.157,0.504-0.262,0.842
-				c-0.086,0.343-0.128,0.515-0.214,0.862c-0.091,0.375-0.137,0.565-0.228,0.947c-0.113,0.379-0.17,0.567-0.283,0.954
-				c-0.108,0.37-0.161,0.557-0.27,0.936c-0.128,0.376-0.19,0.566-0.317,0.952c-0.15,0.381-0.226,0.574-0.375,0.966
-				c-0.185,0.354-0.275,0.529-0.46,0.893c-0.177,0.332-0.265,0.502-0.441,0.843c-0.236,0.312-0.357,0.472-0.593,0.793
-				c-0.25,0.285-0.375,0.428-0.625,0.721c-0.284,0.237-0.427,0.359-0.71,0.604c-0.335,0.181-0.503,0.271-0.838,0.459l0,0
-				c0.631-0.036,0.946-0.049,1.577-0.072c0.537-0.093,0.807-0.136,1.343-0.219c0.464-0.166,0.697-0.249,1.161-0.406
-				c0.409-0.204,0.612-0.304,1.021-0.499c0.356-0.259,0.534-0.384,0.892-0.634c0.303-0.311,0.453-0.464,0.757-0.765
-				c0.245-0.347,0.368-0.52,0.614-0.855c0.211-0.36,0.317-0.536,0.529-0.887c0.181-0.405,0.271-0.604,0.452-0.997
-				c0.157-0.414,0.238-0.618,0.396-1.021c0.123-0.427,0.184-0.64,0.307-1.057c0.128-0.444,0.19-0.663,0.319-1.099
-				c0.131-0.435,0.197-0.647,0.328-1.074c0.134-0.441,0.2-0.66,0.334-1.096c0.112-0.439,0.168-0.657,0.28-1.093
-				C203.572,156.833,203.65,156.611,203.808,156.172z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M186.418,169.954L186.418,169.954
-				c0.829,0.079,1.245,0.116,2.077,0.193c0.729-0.052,1.095-0.076,1.827-0.129c0.619-0.161,0.929-0.243,1.551-0.404
-				c0.532-0.247,0.799-0.368,1.337-0.599c0.449-0.334,0.677-0.497,1.126-0.815c0.354-0.387,0.528-0.575,0.884-0.946
-				c0.321-0.43,0.486-0.641,0.809-1.054c0.249-0.475,0.372-0.706,0.622-1.163c0.19-0.486,0.283-0.726,0.475-1.195
-				c0.172-0.486,0.26-0.726,0.432-1.197c0.136-0.496,0.202-0.738,0.339-1.221c0.111-0.471,0.169-0.706,0.28-1.166
-				c0.114-0.477,0.17-0.711,0.284-1.179c0.109-0.438,0.164-0.653,0.273-1.085c0.144-0.397,0.215-0.595,0.358-0.988
-				c0.138-0.365,0.207-0.548,0.346-0.911l0,0c-0.242-0.008-0.364-0.012-0.607-0.019c-0.222-0.003-0.333-0.007-0.555-0.01
-				c-0.2,0.003-0.299,0.006-0.5,0.01c-0.225-0.002-0.338-0.004-0.562-0.005c-0.223-0.001-0.333,0.001-0.556,0.001
-				c-0.2,0.005-0.302,0.008-0.502,0.013c-0.222-0.012-0.33-0.018-0.552-0.029c-0.244-0.002-0.37-0.005-0.615-0.006l0,0
-				c0.012,0.045,0.021,0.068,0.032,0.113c0.019,0.103,0.026,0.153,0.044,0.256c0.006,0.157,0.011,0.235,0.017,0.394
-				c0.018,0.202,0.027,0.304,0.045,0.507c-0.02,0.253-0.03,0.378-0.05,0.632c-0.023,0.284-0.034,0.428-0.058,0.714
-				c-0.055,0.323-0.082,0.485-0.137,0.812c-0.108,0.362-0.165,0.546-0.272,0.914c-0.153,0.376-0.229,0.567-0.383,0.951
-				c-0.206,0.419-0.308,0.631-0.514,1.062c-0.295,0.436-0.441,0.655-0.735,1.106c-0.336,0.46-0.503,0.696-0.831,1.179
-				c-0.438,0.485-0.658,0.732-1.095,1.235c-0.524,0.525-0.785,0.793-1.308,1.339c-0.604,0.518-0.904,0.782-1.506,1.319
-				C187.509,169.121,187.145,169.395,186.418,169.954z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M179.142,170.972L179.142,170.972c0.534,0.177,0.8,0.267,1.334,0.444
-				c0.557,0.044,0.836,0.063,1.394,0.106c0.558-0.097,0.836-0.144,1.395-0.239c0.575-0.191,0.862-0.286,1.438-0.476
-				c0.569-0.283,0.856-0.426,1.428-0.703c0.564-0.358,0.847-0.533,1.412-0.883c0.541-0.444,0.812-0.663,1.354-1.094
-				c0.51-0.489,0.766-0.729,1.277-1.202c0.455-0.517,0.682-0.768,1.139-1.266c0.425-0.551,0.635-0.821,1.061-1.352
-				c0.373-0.57,0.571-0.843,0.953-1.382c0.298-0.565,0.443-0.844,0.742-1.388c0.235-0.556,0.354-0.828,0.591-1.366
-				c0.155-0.566,0.235-0.843,0.392-1.396c0.042-0.543,0.061-0.812,0.103-1.347c-0.044-0.551-0.066-0.825-0.11-1.372
-				c-2.13,0.047-3.176,0.116-5.241,0.203l0,0c-0.032,0.229-0.047,0.346-0.079,0.575c-0.039,0.273-0.061,0.411-0.1,0.686
-				c-0.088,0.295-0.131,0.438-0.219,0.736c-0.12,0.338-0.183,0.512-0.303,0.854c-0.142,0.355-0.212,0.532-0.354,0.894
-				c-0.189,0.384-0.28,0.579-0.469,0.972c-0.191,0.407-0.29,0.611-0.481,1.027c-0.257,0.423-0.386,0.639-0.642,1.072
-				c-0.278,0.431-0.418,0.646-0.695,1.088c-0.313,0.422-0.47,0.638-0.782,1.072c-0.335,0.43-0.5,0.648-0.834,1.091
-				c-0.392,0.418-0.587,0.627-0.978,1.057c-0.408,0.41-0.611,0.619-1.019,1.041c-0.462,0.376-0.692,0.566-1.153,0.952
-				c-0.495,0.342-0.745,0.513-1.239,0.862C179.929,170.531,179.667,170.677,179.142,170.972z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M189.918,156.208L189.918,156.208
-				c-0.327,0.017-0.492,0.025-0.818,0.042c-0.409,0.004-0.613,0.009-1.021,0.012c-0.46,0.022-0.689,0.032-1.149,0.055
-				c-0.472,0.005-0.707,0.008-1.179,0.012c-0.459,0.023-0.689,0.035-1.147,0.058c-0.451,0.007-0.676,0.009-1.127,0.016
-				c-0.389,0.005-0.582,0.004-0.971,0.009c-0.299-0.01-0.449-0.012-0.748-0.021l0,0c-0.111,0.337-0.169,0.504-0.279,0.844
-				c-0.1,0.372-0.149,0.562-0.248,0.938c-0.117,0.376-0.175,0.565-0.292,0.946c-0.101,0.398-0.149,0.599-0.249,1.003
-				c-0.141,0.396-0.212,0.596-0.353,0.999c-0.124,0.425-0.186,0.641-0.31,1.073c-0.139,0.413-0.209,0.62-0.348,1.041
-				c-0.161,0.417-0.24,0.629-0.401,1.055c-0.176,0.406-0.262,0.609-0.438,1.024c-0.196,0.396-0.294,0.598-0.489,1.002
-				c-0.235,0.396-0.355,0.594-0.591,0.998c-0.249,0.367-0.373,0.553-0.622,0.928c-0.286,0.352-0.429,0.529-0.715,0.889
-				c-0.316,0.296-0.474,0.445-0.79,0.746c-0.334,0.279-0.503,0.419-0.836,0.703c-0.389,0.238-0.581,0.361-0.97,0.604l0,0
-				c0.396,0.117,0.593,0.176,0.988,0.293c0.428,0.042,0.642,0.061,1.069,0.104c0.439-0.035,0.661-0.048,1.102-0.082
-				c0.452-0.11,0.678-0.167,1.131-0.276c0.464-0.188,0.697-0.283,1.162-0.469c0.477-0.243,0.717-0.362,1.194-0.601
-				c0.469-0.313,0.701-0.47,1.171-0.776c0.483-0.402,0.726-0.602,1.21-0.993c0.452-0.433,0.678-0.646,1.131-1.065
-				c0.425-0.515,0.64-0.768,1.066-1.266c0.418-0.549,0.627-0.816,1.047-1.346c0.39-0.618,0.584-0.923,0.976-1.518
-				c0.344-0.651,0.518-0.968,0.862-1.595c0.312-0.677,0.467-1.012,0.779-1.665c0.266-0.739,0.396-1.102,0.663-1.818
-				C189.593,157.339,189.704,156.96,189.918,156.208z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M167.059,171.203L167.059,171.203c0.904,0.168,1.356,0.254,2.26,0.425
-				c0.779,0.029,1.168,0.044,1.947,0.075c0.7-0.119,1.05-0.179,1.75-0.295c0.576-0.256,0.865-0.382,1.442-0.633
-				c0.506-0.338,0.759-0.505,1.266-0.836c0.44-0.421,0.661-0.629,1.103-1.039c0.346-0.479,0.521-0.716,0.867-1.183
-				c0.3-0.547,0.447-0.817,0.748-1.349c0.259-0.538,0.39-0.803,0.649-1.325c0.207-0.584,0.312-0.871,0.521-1.438
-				c0.164-0.557,0.244-0.831,0.408-1.373c0.166-0.542,0.248-0.811,0.414-1.34c0.124-0.537,0.188-0.803,0.312-1.329
-				c0.135-0.476,0.202-0.711,0.338-1.179c0.13-0.437,0.194-0.654,0.324-1.085c0.143-0.382,0.214-0.571,0.357-0.949l0,0
-				c-0.298-0.01-0.447-0.015-0.745-0.024c-0.258-0.003-0.389-0.006-0.646-0.009c-0.238,0.017-0.356,0.026-0.595,0.044
-				c-0.234,0.001-0.352,0.004-0.586,0.005c-0.258-0.001-0.386-0.003-0.644-0.004c-0.237,0-0.355,0-0.593,0
-				c-0.28,0.011-0.421,0.017-0.701,0.027c-0.32,0.001-0.48,0.004-0.801,0.005l0,0c-0.143,0.412-0.214,0.616-0.356,1.033
-				c-0.135,0.398-0.205,0.598-0.34,1.001c-0.14,0.405-0.206,0.609-0.345,1.021c-0.156,0.388-0.234,0.585-0.391,0.979
-				c-0.136,0.402-0.202,0.604-0.338,1.013c-0.151,0.386-0.229,0.581-0.381,0.974c-0.166,0.373-0.249,0.561-0.415,0.939
-				c-0.171,0.378-0.254,0.569-0.425,0.953c-0.207,0.361-0.312,0.542-0.519,0.91c-0.226,0.365-0.338,0.554-0.563,0.926
-				c-0.264,0.347-0.394,0.521-0.657,0.875c-0.283,0.353-0.428,0.531-0.711,0.89c-0.343,0.348-0.514,0.521-0.856,0.876
-				c-0.361,0.335-0.543,0.503-0.904,0.844c-0.418,0.312-0.626,0.472-1.044,0.789C167.75,170.728,167.52,170.884,167.059,171.203z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M160.78,171.476L160.78,171.476c0.807,0.144,1.21,0.216,2.015,0.363
-				c0.722-0.008,1.082-0.009,1.803-0.014c0.658-0.134,0.987-0.201,1.646-0.331c0.597-0.262,0.895-0.393,1.491-0.648
-				c0.523-0.347,0.788-0.517,1.312-0.856c0.476-0.425,0.714-0.635,1.19-1.05c0.407-0.501,0.609-0.747,1.018-1.235
-				c0.374-0.532,0.562-0.796,0.936-1.314c0.335-0.544,0.503-0.812,0.839-1.342c0.281-0.572,0.423-0.854,0.705-1.41
-				c0.238-0.548,0.355-0.819,0.594-1.354c0.203-0.556,0.303-0.831,0.506-1.374c0.194-0.513,0.295-0.764,0.49-1.266
-				c0.149-0.478,0.225-0.714,0.374-1.184c0.145-0.438,0.218-0.654,0.362-1.086c0.112-0.371,0.166-0.559,0.279-0.927l0,0
-				c-0.299-0.009-0.45-0.013-0.749-0.021c-0.255-0.002-0.38-0.002-0.635-0.004c-0.235,0.004-0.353,0.005-0.588,0.009
-				c-0.233-0.013-0.349-0.017-0.582-0.029c-0.214,0.008-0.321,0.008-0.535,0.016c-0.234-0.014-0.351-0.019-0.585-0.032
-				c-0.277,0.011-0.417,0.017-0.694,0.028c-0.318-0.012-0.478-0.018-0.796-0.029l0,0c-0.214,0.619-0.32,0.93-0.533,1.56
-				c-0.226,0.592-0.338,0.89-0.562,1.493c-0.239,0.549-0.358,0.827-0.597,1.387c-0.231,0.525-0.348,0.789-0.578,1.325
-				c-0.246,0.479-0.367,0.724-0.612,1.213c-0.26,0.469-0.391,0.704-0.65,1.183c-0.27,0.404-0.402,0.608-0.672,1.02
-				c-0.269,0.393-0.404,0.59-0.673,0.989c-0.261,0.362-0.39,0.545-0.65,0.913c-0.277,0.327-0.418,0.489-0.695,0.821
-				c-0.288,0.273-0.43,0.413-0.718,0.69c-0.264,0.259-0.396,0.388-0.66,0.65c-0.282,0.24-0.422,0.363-0.704,0.605
-				c-0.275,0.184-0.414,0.272-0.689,0.458c-0.292,0.165-0.438,0.249-0.729,0.415C161.182,171.254,161.047,171.327,160.78,171.476z"
-				/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M154.86,171.542L154.86,171.542c0.774,0.126,1.16,0.192,1.932,0.322
-				c0.708-0.021,1.063-0.031,1.77-0.048c0.643-0.149,0.961-0.224,1.603-0.369c0.613-0.249,0.92-0.37,1.532-0.614
-				c0.525-0.355,0.791-0.535,1.315-0.884c0.493-0.413,0.739-0.617,1.231-1.022c0.443-0.491,0.662-0.733,1.105-1.214
-				c0.408-0.522,0.614-0.78,1.022-1.29c0.37-0.536,0.553-0.803,0.923-1.326c0.314-0.569,0.472-0.85,0.786-1.405
-				c0.276-0.562,0.414-0.838,0.69-1.387c0.255-0.55,0.383-0.824,0.638-1.362c0.231-0.511,0.347-0.763,0.578-1.264
-				c0.186-0.489,0.279-0.73,0.466-1.212c0.157-0.436,0.235-0.653,0.393-1.083c0.151-0.382,0.225-0.572,0.376-0.949l0,0
-				c-0.253-0.016-0.378-0.021-0.631-0.037c-0.256,0.001-0.386,0.002-0.642,0.004c-0.256,0.001-0.383,0-0.639,0.001
-				c-0.257,0.003-0.385,0.005-0.642,0.008c-0.257,0.002-0.387,0.005-0.644,0.007c-0.254,0.001-0.381,0.001-0.635,0.003
-				c-0.256,0.003-0.387,0.006-0.643,0.01c-0.275,0.001-0.411,0.002-0.687,0.003l0,0c-0.071,0.318-0.106,0.477-0.178,0.797
-				c-0.119,0.351-0.178,0.525-0.296,0.879c-0.141,0.366-0.211,0.55-0.352,0.92c-0.206,0.393-0.312,0.592-0.518,0.99
-				c-0.214,0.436-0.318,0.654-0.531,1.097c-0.27,0.413-0.405,0.621-0.675,1.042c-0.277,0.457-0.418,0.687-0.694,1.151
-				c-0.294,0.445-0.439,0.669-0.732,1.122c-0.336,0.447-0.504,0.674-0.84,1.13c-0.352,0.433-0.529,0.65-0.881,1.091
-				c-0.346,0.401-0.517,0.604-0.862,1.012c-0.366,0.386-0.551,0.582-0.917,0.975c-0.362,0.375-0.542,0.562-0.905,0.942
-				c-0.376,0.318-0.564,0.477-0.941,0.799c-0.387,0.259-0.582,0.391-0.97,0.652C155.405,171.236,155.224,171.336,154.86,171.542z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M148.258,172.085L148.258,172.085c0.795,0.172,1.193,0.26,1.984,0.438
-				c0.76-0.034,1.138-0.051,1.895-0.08c0.715-0.196,1.073-0.294,1.785-0.485c0.673-0.341,1.01-0.509,1.68-0.843
-				c0.642-0.438,0.961-0.654,1.601-1.084c0.572-0.54,0.859-0.808,1.431-1.336c0.539-0.61,0.808-0.913,1.346-1.509
-				c0.503-0.621,0.755-0.927,1.258-1.532c0.424-0.654,0.637-0.977,1.061-1.615c0.382-0.628,0.572-0.938,0.955-1.551
-				c0.335-0.58,0.502-0.868,0.838-1.436c0.292-0.557,0.438-0.832,0.731-1.377c0.197-0.474,0.298-0.705,0.495-1.172
-				c0.164-0.381,0.242-0.571,0.406-0.947c0.106-0.281,0.162-0.42,0.269-0.699c0.027-0.171,0.041-0.254,0.068-0.424l0,0
-				c-0.316-0.009-0.477-0.015-0.793-0.023c-0.297-0.003-0.444-0.004-0.741-0.006c-0.3,0.015-0.447,0.021-0.747,0.037
-				c-0.298-0.002-0.447-0.001-0.745-0.002c-0.3,0.017-0.45,0.025-0.75,0.043c-0.276,0.003-0.415,0.004-0.691,0.008
-				c-0.276,0.006-0.417,0.011-0.693,0.018c-0.274-0.012-0.409-0.019-0.684-0.029l0,0c-0.146,0.285-0.22,0.428-0.365,0.715
-				c-0.153,0.342-0.229,0.513-0.382,0.857c-0.181,0.395-0.271,0.592-0.452,0.99c-0.212,0.452-0.318,0.681-0.529,1.139
-				c-0.233,0.473-0.347,0.712-0.58,1.191c-0.254,0.494-0.382,0.742-0.637,1.243c-0.276,0.498-0.417,0.748-0.693,1.253
-				c-0.303,0.525-0.453,0.792-0.756,1.326c-0.319,0.509-0.479,0.765-0.799,1.281c-0.334,0.477-0.5,0.718-0.835,1.201
-				c-0.353,0.462-0.53,0.695-0.885,1.164c-0.367,0.405-0.551,0.607-0.919,1.018c-0.402,0.344-0.602,0.517-1.005,0.864
-				c-0.392,0.27-0.587,0.407-0.979,0.68c-0.424,0.187-0.635,0.281-1.061,0.471C148.907,171.957,148.69,171.999,148.258,172.085z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M143.531,171.474L143.531,171.474c0.735,0.213,1.099,0.323,1.83,0.542
-				c0.67,0.048,1.006,0.072,1.673,0.125c0.625-0.095,0.938-0.143,1.56-0.233c0.6-0.237,0.899-0.355,1.497-0.588
-				c0.529-0.344,0.793-0.515,1.32-0.854c0.496-0.421,0.744-0.629,1.238-1.044c0.465-0.519,0.697-0.774,1.16-1.285
-				c0.43-0.557,0.645-0.835,1.073-1.383c0.373-0.593,0.558-0.888,0.93-1.47c0.351-0.603,0.525-0.902,0.875-1.494
-				c0.289-0.603,0.434-0.898,0.723-1.49c0.288-0.572,0.435-0.856,0.723-1.42c0.239-0.532,0.356-0.797,0.596-1.321
-				c0.193-0.476,0.292-0.712,0.485-1.182c0.184-0.415,0.274-0.623,0.458-1.034c0.149-0.323,0.225-0.485,0.374-0.807l0,0
-				c-0.231-0.005-0.347-0.006-0.578-0.01c-0.232-0.021-0.349-0.032-0.581-0.054c-0.21,0-0.316-0.001-0.526-0.001
-				c-0.192,0.005-0.287,0.008-0.479,0.013c-0.212,0.002-0.317,0.002-0.529,0.004c-0.193,0.005-0.29,0.008-0.483,0.014
-				c-0.169,0.008-0.257,0.013-0.426,0.021c-0.189-0.01-0.281-0.017-0.471-0.026l0,0c-0.12,0.413-0.182,0.621-0.302,1.037
-				c-0.16,0.428-0.238,0.644-0.398,1.075c-0.185,0.428-0.276,0.643-0.461,1.075c-0.179,0.416-0.27,0.625-0.449,1.045
-				c-0.225,0.433-0.337,0.652-0.562,1.09c-0.243,0.415-0.364,0.624-0.608,1.044c-0.261,0.399-0.393,0.599-0.655,1.003
-				c-0.303,0.398-0.454,0.601-0.757,1.004c-0.305,0.404-0.456,0.607-0.761,1.017c-0.344,0.384-0.517,0.578-0.862,0.967
-				c-0.383,0.364-0.576,0.545-0.961,0.914c-0.377,0.33-0.567,0.497-0.946,0.831c-0.444,0.328-0.665,0.493-1.111,0.825
-				c-0.438,0.292-0.66,0.439-1.1,0.734c-0.481,0.271-0.722,0.408-1.205,0.684C144.313,171.093,144.054,171.219,143.531,171.474z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M137.332,172.101L137.332,172.101
-				c0.645,0.021,0.966,0.035,1.607,0.062c0.631-0.037,0.945-0.055,1.573-0.087c0.613-0.113,0.92-0.167,1.53-0.276
-				c0.603-0.174,0.905-0.261,1.505-0.431c0.564-0.251,0.844-0.378,1.406-0.625c0.571-0.309,0.856-0.462,1.425-0.766
-				c0.514-0.369,0.771-0.551,1.283-0.915c0.517-0.406,0.773-0.609,1.287-1.01c0.461-0.468,0.691-0.703,1.151-1.164
-				c0.444-0.499,0.664-0.743,1.106-1.234c0.408-0.558,0.612-0.836,1.019-1.385c0.388-0.568,0.582-0.849,0.968-1.407
-				c0.33-0.605,0.494-0.91,0.823-1.506c0.293-0.64,0.438-0.955,0.731-1.585c0.275-0.65,0.414-0.975,0.688-1.615
-				c0.215-0.668,0.323-1,0.538-1.66l0,0c-0.278,0.011-0.419,0.019-0.697,0.03c-0.275-0.007-0.413-0.009-0.688-0.015
-				c-0.299,0.01-0.448,0.014-0.748,0.024c-0.274-0.006-0.412-0.008-0.687-0.013c-0.276-0.002-0.414-0.002-0.69-0.003
-				c-0.256,0.018-0.385,0.027-0.642,0.046c-0.277-0.001-0.415-0.004-0.691-0.004c-0.259,0.022-0.388,0.033-0.648,0.057l0,0
-				c-0.174,0.384-0.264,0.575-0.438,0.962c-0.155,0.41-0.231,0.614-0.387,1.027c-0.175,0.39-0.262,0.587-0.437,0.979
-				c-0.155,0.395-0.232,0.594-0.388,0.991c-0.175,0.396-0.264,0.594-0.439,0.992s-0.263,0.598-0.439,0.999
-				c-0.215,0.378-0.322,0.568-0.538,0.949c-0.24,0.398-0.361,0.6-0.602,1.001c-0.279,0.379-0.418,0.569-0.698,0.952
-				c-0.305,0.399-0.458,0.6-0.764,1.002c-0.367,0.378-0.549,0.569-0.918,0.951c-0.428,0.379-0.643,0.569-1.074,0.952
-				c-0.473,0.36-0.709,0.539-1.185,0.903c-0.562,0.378-0.844,0.57-1.409,0.953c-0.65,0.379-0.977,0.569-1.632,0.954
-				C138.416,171.552,138.056,171.733,137.332,172.101z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M128.633,172.672L128.633,172.672c0.825,0.107,1.236,0.16,2.057,0.266
-				c0.811-0.002,1.218-0.003,2.025-0.007c0.757-0.09,1.134-0.135,1.888-0.226c0.725-0.174,1.085-0.262,1.806-0.436
-				c0.686-0.238,1.039-0.362,1.741-0.604c0.672-0.326,1.006-0.487,1.673-0.808c0.632-0.386,0.947-0.577,1.575-0.957
-				c0.574-0.462,0.858-0.689,1.428-1.146c0.531-0.479,0.795-0.721,1.323-1.194c0.494-0.539,0.744-0.805,1.235-1.336
-				c0.456-0.574,0.682-0.862,1.136-1.429c0.391-0.609,0.586-0.911,0.976-1.513c0.354-0.648,0.531-0.974,0.884-1.613
-				c0.315-0.663,0.473-0.992,0.787-1.646c0.252-0.68,0.378-1.016,0.63-1.688c0.211-0.679,0.317-1.018,0.528-1.689l0,0
-				c-0.235,0.006-0.354,0.009-0.589,0.016c-0.259,0.024-0.39,0.038-0.649,0.063c-0.254,0.005-0.379,0.006-0.634,0.012
-				c-0.258,0.006-0.387,0.01-0.645,0.016c-0.256,0.008-0.384,0.012-0.64,0.021c-0.281,0.025-0.422,0.038-0.704,0.064
-				c-0.277,0.006-0.417,0.011-0.694,0.019c-0.283,0.028-0.424,0.04-0.707,0.069l0,0c-0.14,0.483-0.209,0.728-0.35,1.214
-				c-0.184,0.482-0.275,0.725-0.459,1.21c-0.229,0.483-0.343,0.728-0.572,1.215c-0.267,0.461-0.4,0.693-0.667,1.159
-				c-0.309,0.463-0.464,0.692-0.775,1.159c-0.335,0.464-0.504,0.698-0.841,1.167c-0.376,0.447-0.563,0.674-0.941,1.126
-				c-0.415,0.431-0.625,0.646-1.042,1.081c-0.442,0.432-0.665,0.646-1.109,1.083c-0.48,0.391-0.72,0.59-1.203,0.985
-				c-0.505,0.375-0.741,0.549-1.237,0.916c-0.53,0.346-0.795,0.521-1.327,0.868c-0.551,0.305-0.828,0.457-1.382,0.763
-				c-0.591,0.283-0.887,0.425-1.48,0.708c-0.589,0.241-0.882,0.36-1.473,0.602C129.577,172.377,129.262,172.477,128.633,172.672z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M123.789,172.929L123.789,172.929c0.717,0,1.076-0.004,1.792-0.006
-				c0.7-0.064,1.048-0.097,1.747-0.162c0.708-0.13,1.063-0.195,1.77-0.326c0.695-0.214,1.042-0.32,1.734-0.535
-				c0.656-0.259,0.985-0.389,1.639-0.647c0.662-0.32,0.992-0.479,1.651-0.798c0.621-0.363,0.932-0.544,1.55-0.906
-				c0.587-0.428,0.867-0.631,1.466-1.066c0.559-0.477,0.836-0.714,1.391-1.186c0.539-0.512,0.807-0.767,1.342-1.271
-				c0.478-0.555,0.716-0.832,1.19-1.38c0.432-0.567,0.646-0.85,1.076-1.411c0.373-0.605,0.558-0.907,0.929-1.506
-				c0.329-0.623,0.493-0.932,0.82-1.549c0.27-0.645,0.405-0.967,0.673-1.605c0.203-0.661,0.303-0.991,0.505-1.647l0,0
-				c-0.234,0.014-0.351,0.022-0.584,0.037c-0.215-0.004-0.322-0.005-0.538-0.008c-0.193,0.001-0.289,0-0.482,0.001
-				c-0.191,0-0.286-0.002-0.478-0.002c-0.192,0-0.29,0.005-0.482,0.006c-0.217,0.021-0.326,0.031-0.543,0.053
-				c-0.257,0.016-0.384,0.022-0.642,0.039c-0.304,0.014-0.457,0.022-0.761,0.037l0,0c-0.364,0.563-0.546,0.849-0.912,1.419
-				c-0.317,0.528-0.477,0.792-0.796,1.325c-0.316,0.517-0.475,0.775-0.792,1.297c-0.293,0.479-0.441,0.724-0.736,1.206
-				c-0.313,0.462-0.466,0.688-0.774,1.146c-0.285,0.418-0.43,0.624-0.716,1.043c-0.303,0.396-0.455,0.598-0.759,0.994
-				c-0.322,0.376-0.481,0.564-0.804,0.941c-0.346,0.375-0.52,0.561-0.866,0.937c-0.384,0.332-0.577,0.501-0.963,0.833
-				c-0.428,0.353-0.642,0.529-1.072,0.883c-0.468,0.308-0.703,0.464-1.172,0.771c-0.537,0.327-0.807,0.488-1.345,0.815
-				c-0.6,0.303-0.899,0.454-1.5,0.756c-0.665,0.298-0.997,0.443-1.664,0.74C124.926,172.489,124.547,172.638,123.789,172.929z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M115.065,172.908L115.065,172.908
-				c1.058,0.114,1.586,0.169,2.642,0.279c1.002,0.024,1.504,0.036,2.504,0.057c0.908-0.091,1.361-0.136,2.266-0.229
-				c0.852-0.181,1.275-0.273,2.124-0.456c0.795-0.27,1.193-0.404,1.985-0.675c0.715-0.338,1.071-0.507,1.784-0.846
-				c0.68-0.401,1.019-0.604,1.696-1.006c0.62-0.47,0.927-0.704,1.543-1.173c0.58-0.51,0.869-0.765,1.445-1.272
-				c0.541-0.555,0.81-0.829,1.347-1.382c0.475-0.574,0.712-0.861,1.185-1.434c0.458-0.618,0.687-0.927,1.141-1.542
-				c0.433-0.612,0.656-0.925,1.094-1.541c0.397-0.621,0.593-0.929,0.988-1.543c0.375-0.636,0.563-0.953,0.936-1.582
-				c0.348-0.61,0.522-0.914,0.868-1.519l0,0c-0.192,0.003-0.29,0.004-0.482,0.008c-0.261,0.021-0.393,0.031-0.654,0.053
-				c-0.323,0.016-0.484,0.023-0.807,0.041c-0.326,0.019-0.489,0.028-0.815,0.049c-0.348,0.039-0.523,0.058-0.872,0.099
-				c-0.304,0.022-0.45,0.03-0.749,0.049c-0.256,0.022-0.384,0.034-0.64,0.058c-0.193,0.005-0.289,0.007-0.482,0.012l0,0
-				c-0.318,0.562-0.477,0.842-0.796,1.405c-0.339,0.56-0.51,0.839-0.851,1.399c-0.381,0.516-0.572,0.776-0.956,1.294
-				c-0.376,0.497-0.566,0.746-0.945,1.244c-0.417,0.454-0.625,0.684-1.043,1.139c-0.441,0.452-0.662,0.677-1.104,1.13
-				c-0.459,0.412-0.69,0.621-1.151,1.034c-0.502,0.413-0.754,0.616-1.259,1.03c-0.499,0.368-0.749,0.555-1.25,0.923
-				c-0.544,0.346-0.818,0.52-1.365,0.865c-0.564,0.344-0.845,0.514-1.411,0.857c-0.585,0.303-0.877,0.455-1.464,0.757
-				c-0.603,0.276-0.905,0.415-1.51,0.69c-0.645,0.254-0.969,0.38-1.615,0.633c-0.644,0.231-0.967,0.345-1.612,0.574
-				C116.095,172.596,115.753,172.702,115.065,172.908z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M109.795,173.261L109.795,173.261c0.59,0.024,0.886,0.034,1.476,0.058
-				c0.621-0.038,0.932-0.056,1.553-0.096c0.674-0.1,1.011-0.148,1.685-0.249c0.704-0.182,1.055-0.275,1.758-0.459
-				c0.712-0.225,1.069-0.339,1.78-0.565c0.719-0.291,1.077-0.436,1.794-0.728c0.726-0.353,1.087-0.529,1.811-0.883
-				c0.727-0.396,1.09-0.595,1.813-0.992c0.713-0.462,1.069-0.692,1.779-1.154c0.69-0.484,1.034-0.728,1.722-1.211
-				c0.652-0.549,0.977-0.824,1.625-1.372c0.634-0.592,0.951-0.888,1.582-1.478c0.566-0.615,0.85-0.921,1.413-1.534
-				c0.526-0.656,0.788-0.984,1.311-1.638c0.465-0.699,0.699-1.048,1.161-1.745c0.402-0.723,0.603-1.084,1.002-1.805l0,0
-				c-0.321,0.02-0.481,0.029-0.803,0.049c-0.322,0.019-0.483,0.026-0.806,0.045c-0.34-0.004-0.51-0.007-0.85-0.011
-				c-0.342,0.019-0.512,0.031-0.854,0.05c-0.299-0.001-0.449-0.003-0.749-0.003c-0.26,0.024-0.39,0.036-0.65,0.062
-				c-0.216,0.027-0.324,0.041-0.54,0.068c-0.113,0.056-0.172,0.083-0.285,0.139l0,0c-0.416,0.266-0.623,0.396-1.04,0.663
-				c-0.418,0.287-0.628,0.433-1.048,0.72c-0.449,0.35-0.673,0.526-1.123,0.876c-0.45,0.349-0.676,0.521-1.127,0.869
-				c-0.457,0.393-0.685,0.589-1.143,0.981c-0.481,0.41-0.724,0.616-1.207,1.026c-0.486,0.433-0.73,0.647-1.219,1.08
-				c-0.49,0.435-0.735,0.654-1.228,1.088c-0.494,0.452-0.74,0.677-1.235,1.129c-0.512,0.43-0.77,0.645-1.284,1.074
-				c-0.517,0.429-0.774,0.645-1.293,1.072c-0.54,0.426-0.811,0.638-1.353,1.062c-0.54,0.427-0.812,0.639-1.354,1.064
-				c-0.537,0.381-0.806,0.573-1.344,0.953c-0.537,0.384-0.805,0.575-1.343,0.957C110.63,172.76,110.352,172.927,109.795,173.261z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M101.863,172.619L101.863,172.619c0.51,0.4,0.766,0.601,1.277,1
-				c0.563,0.193,0.845,0.289,1.409,0.481c0.587,0.05,0.881,0.077,1.469,0.126c0.633-0.096,0.948-0.145,1.581-0.241
-				c0.652-0.242,0.978-0.364,1.629-0.608c0.669-0.348,1.004-0.525,1.672-0.875c0.704-0.45,1.056-0.672,1.758-1.125
-				c0.709-0.516,1.063-0.779,1.771-1.297c0.721-0.604,1.081-0.902,1.798-1.508c0.742-0.624,1.111-0.936,1.849-1.562
-				c0.765-0.666,1.148-1,1.908-1.667c0.761-0.667,1.139-1,1.896-1.667c0.752-0.646,1.128-0.972,1.876-1.618
-				c0.771-0.646,1.157-0.969,1.924-1.615c0.759-0.582,1.136-0.872,1.891-1.453c0.747-0.518,1.12-0.775,1.863-1.29l0,0
-				c-0.235-0.017-0.354-0.023-0.59-0.04c-0.279,0.023-0.417,0.034-0.696,0.058c-0.322-0.001-0.482,0-0.804-0.001
-				c-0.326,0.042-0.489,0.063-0.815,0.105c-0.347,0.02-0.521,0.028-0.869,0.048c-0.347,0.04-0.52,0.059-0.867,0.099
-				c-0.326,0.042-0.489,0.061-0.815,0.103c-0.283,0.023-0.427,0.037-0.71,0.061l0,0c-0.59,0.446-0.885,0.672-1.478,1.118
-				c-0.592,0.446-0.889,0.669-1.484,1.115c-0.579,0.469-0.869,0.705-1.45,1.174c-0.581,0.469-0.872,0.699-1.455,1.168
-				c-0.56,0.466-0.841,0.703-1.403,1.168c-0.563,0.471-0.845,0.703-1.41,1.173c-0.564,0.467-0.845,0.7-1.411,1.166
-				c-0.542,0.425-0.813,0.637-1.356,1.06c-0.542,0.423-0.813,0.637-1.356,1.058c-0.536,0.382-0.804,0.57-1.341,0.95
-				c-0.51,0.339-0.767,0.508-1.278,0.845c-0.504,0.298-0.754,0.447-1.259,0.743c-0.5,0.254-0.75,0.38-1.251,0.633
-				c-0.473,0.212-0.709,0.318-1.182,0.529c-0.462,0.148-0.695,0.224-1.157,0.371C102.542,172.489,102.316,172.533,101.863,172.619z"
-				/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M95.643,172.714L95.643,172.714c0.886,0.088,1.328,0.131,2.216,0.215
-				c0.856-0.001,1.286-0.001,2.144-0.006c0.792-0.138,1.187-0.207,1.979-0.348c0.78-0.202,1.17-0.307,1.95-0.512
-				c0.724-0.275,1.086-0.411,1.81-0.689c0.69-0.363,1.035-0.545,1.724-0.91c0.676-0.406,1.014-0.61,1.689-1.02
-				c0.638-0.457,0.957-0.686,1.593-1.146c0.641-0.5,0.96-0.751,1.599-1.253c0.62-0.523,0.93-0.787,1.547-1.312
-				c0.596-0.529,0.895-0.794,1.488-1.324c0.619-0.547,0.927-0.818,1.542-1.366c0.617-0.549,0.925-0.825,1.539-1.375
-				c0.63-0.529,0.943-0.795,1.57-1.324c0.645-0.484,0.966-0.728,1.608-1.212c0.66-0.463,0.991-0.692,1.648-1.155l0,0
-				c-0.215,0.008-0.325,0.011-0.541,0.019c-0.257,0.004-0.385,0.007-0.643,0.011c-0.326,0.021-0.49,0.029-0.816,0.05
-				c-0.322,0.002-0.482,0.005-0.804,0.007c-0.327,0.02-0.492,0.029-0.818,0.049c-0.259,0.005-0.388,0.009-0.646,0.014
-				c-0.217,0.009-0.324,0.011-0.541,0.02c-0.127-0.009-0.19-0.013-0.317-0.021l0,0c-0.375,0.06-0.56,0.088-0.935,0.147
-				c-0.384,0.144-0.578,0.218-0.963,0.361c-0.393,0.207-0.589,0.308-0.982,0.514c-0.43,0.288-0.645,0.433-1.075,0.72
-				c-0.436,0.35-0.654,0.524-1.091,0.873c-0.467,0.41-0.702,0.617-1.17,1.026c-0.494,0.43-0.742,0.644-1.237,1.072
-				c-0.502,0.468-0.753,0.704-1.257,1.17c-0.57,0.485-0.854,0.726-1.427,1.209c-0.573,0.48-0.859,0.719-1.434,1.197
-				c-0.642,0.497-0.964,0.745-1.608,1.24c-0.662,0.471-0.994,0.704-1.658,1.172c-0.706,0.463-1.058,0.696-1.765,1.156
-				c-0.745,0.416-1.119,0.623-1.864,1.036c-0.782,0.366-1.173,0.549-1.955,0.911C96.9,172.247,96.482,172.401,95.643,172.714z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M218.774,153.779L218.774,153.779c0.013-0.055,0.021-0.08,0.033-0.135
-				c0.057-0.146,0.086-0.219,0.143-0.365c0.074-0.23,0.111-0.346,0.186-0.579c0.089-0.289,0.133-0.435,0.222-0.729
-				c0.103-0.351,0.155-0.526,0.258-0.885c0.066-0.398,0.099-0.601,0.165-1.009c0.069-0.424,0.104-0.638,0.172-1.073
-				c0.033-0.462,0.05-0.697,0.082-1.173c-0.036-0.462-0.054-0.694-0.09-1.17c-0.082-0.472-0.125-0.71-0.207-1.195
-				c-0.128-0.445-0.191-0.672-0.32-1.13c-0.243-0.417-0.368-0.628-0.611-1.054c-0.304-0.35-0.453-0.526-0.758-0.882
-				c-0.422-0.273-0.631-0.411-1.054-0.687c-0.547-0.177-0.82-0.266-1.368-0.441c-0.657-0.03-0.987-0.046-1.647-0.076l0,0
-				c0.175,0.242,0.262,0.364,0.437,0.604c0.144,0.269,0.215,0.402,0.358,0.667c0.137,0.319,0.204,0.477,0.341,0.79
-				c0.112,0.325,0.169,0.485,0.281,0.805c0.104,0.353,0.154,0.527,0.258,0.873c0.086,0.341,0.132,0.513,0.218,0.847
-				c0.077,0.366,0.113,0.545,0.19,0.903c0.077,0.375,0.116,0.562,0.193,0.929c0.056,0.346,0.087,0.514,0.143,0.853
-				c0.034,0.349,0.047,0.523,0.08,0.864c0.035,0.341,0.053,0.508,0.088,0.842c0.037,0.32,0.057,0.479,0.094,0.793
-				c0.018,0.312,0.024,0.466,0.042,0.772c0.021,0.29,0.032,0.434,0.053,0.72c0.005,0.253,0.006,0.378,0.011,0.628
-				c0.009,0.237,0.015,0.356,0.023,0.592l0,0c0.104,0.015,0.153,0.022,0.257,0.037c0.086,0.009,0.131,0.013,0.217,0.021
-				c0.109,0,0.164,0.001,0.273,0.001c0.086,0.009,0.13,0.013,0.216,0.021c0.087-0.007,0.13-0.009,0.217-0.016
-				c0.089-0.005,0.134-0.007,0.223-0.012c0.106,0.015,0.159,0.023,0.266,0.038C218.583,153.774,218.647,153.774,218.774,153.779z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M216.758,153.779L216.758,153.779
-				c-0.052-0.957-0.076-1.442-0.129-2.44c-0.108-0.861-0.161-1.3-0.27-2.202c-0.133-0.782-0.199-1.181-0.333-2
-				c-0.158-0.693-0.238-1.045-0.397-1.768c-0.188-0.592-0.281-0.893-0.47-1.506c-0.205-0.509-0.309-0.767-0.515-1.291
-				c-0.226-0.399-0.339-0.603-0.565-1.011c-0.227-0.311-0.34-0.469-0.566-0.784c-0.258-0.249-0.385-0.372-0.643-0.623
-				c-0.233-0.146-0.352-0.22-0.585-0.365c-0.266-0.096-0.4-0.144-0.666-0.239c-0.233-0.023-0.349-0.037-0.582-0.061
-				c-0.238,0.013-0.357,0.02-0.596,0.032c-0.221,0.038-0.335,0.055-0.557,0.093c-0.208,0.062-0.31,0.093-0.518,0.153
-				c-0.186,0.066-0.276,0.101-0.462,0.166l0,0c0.249,0.32,0.37,0.478,0.619,0.793c0.239,0.353,0.362,0.531,0.602,0.877
-				c0.204,0.317,0.303,0.472,0.507,0.784c0.214,0.352,0.321,0.526,0.535,0.872c0.176,0.336,0.266,0.502,0.441,0.832
-				c0.172,0.345,0.258,0.517,0.429,0.855c0.15,0.334,0.224,0.5,0.374,0.828c0.125,0.339,0.189,0.509,0.314,0.842
-				c0.122,0.346,0.182,0.516,0.304,0.855c0.099,0.352,0.15,0.524,0.249,0.869c0.1,0.345,0.146,0.516,0.246,0.854
-				c0.073,0.348,0.111,0.52,0.185,0.861c0.051,0.351,0.075,0.525,0.126,0.87s0.076,0.518,0.127,0.856
-				c0.045,0.354,0.068,0.526,0.113,0.875c0.025,0.357,0.037,0.533,0.062,0.886l0,0c0.252,0.038,0.379,0.058,0.631,0.096
-				c0.188,0.037,0.282,0.052,0.47,0.089c0.132,0.006,0.197,0.012,0.329,0.018c0.088-0.005,0.133-0.006,0.221-0.011
-				c0.084,0.008,0.127,0.01,0.211,0.018c0.091-0.005,0.134-0.007,0.225-0.012c0.086,0.009,0.131,0.015,0.217,0.023
-				C216.569,153.771,216.631,153.773,216.758,153.779z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M214.038,153.735L214.038,153.735c0.018-0.34,0.024-0.513,0.042-0.856
-				c-0.015-0.397-0.019-0.596-0.033-1c-0.063-0.461-0.097-0.693-0.161-1.164c-0.099-0.511-0.15-0.771-0.249-1.295
-				c-0.16-0.555-0.237-0.834-0.397-1.405c-0.201-0.567-0.302-0.856-0.503-1.442c-0.228-0.575-0.342-0.865-0.569-1.459
-				c-0.275-0.573-0.413-0.865-0.689-1.457c-0.308-0.547-0.459-0.821-0.768-1.385c-0.341-0.498-0.513-0.753-0.854-1.265
-				c-0.38-0.426-0.568-0.639-0.949-1.073c-0.42-0.332-0.631-0.499-1.053-0.835c-0.467-0.207-0.7-0.309-1.169-0.517
-				c-0.494-0.056-0.744-0.085-1.24-0.141c-0.505,0.122-0.758,0.184-1.266,0.303c-0.56,0.301-0.837,0.448-1.399,0.739l0,0
-				c0.339,0.339,0.506,0.507,0.844,0.84c0.309,0.364,0.462,0.543,0.77,0.9c0.288,0.352,0.433,0.524,0.72,0.869
-				c0.266,0.34,0.397,0.511,0.662,0.845c0.262,0.35,0.394,0.522,0.654,0.866c0.211,0.367,0.314,0.549,0.525,0.908
-				c0.189,0.354,0.288,0.529,0.478,0.877c0.169,0.341,0.251,0.513,0.419,0.847c0.162,0.368,0.243,0.549,0.405,0.91
-				c0.12,0.349,0.182,0.52,0.302,0.862c0.116,0.357,0.173,0.537,0.289,0.889c0.072,0.354,0.109,0.528,0.181,0.877
-				c0.066,0.362,0.101,0.543,0.167,0.899c0.024,0.361,0.036,0.539,0.061,0.895c0.019,0.37,0.027,0.555,0.046,0.92
-				c-0.004,0.372-0.007,0.554-0.011,0.922l0,0c0.236,0.017,0.354,0.027,0.59,0.044c0.263,0.011,0.393,0.014,0.654,0.024
-				c0.282,0.015,0.424,0.025,0.706,0.041c0.286,0.003,0.429,0.004,0.714,0.007c0.265-0.002,0.396-0.003,0.661-0.005
-				c0.241,0.005,0.361,0.007,0.602,0.012c0.197-0.005,0.296-0.006,0.492-0.011C213.839,153.727,213.907,153.729,214.038,153.735z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M195.697,138.405L195.697,138.405c0.577-0.16,0.869-0.238,1.443-0.401
-				c0.552-0.032,0.826-0.054,1.375-0.087c0.55,0.086,0.821,0.13,1.367,0.216c0.507,0.193,0.762,0.292,1.266,0.484
-				c0.508,0.29,0.761,0.432,1.266,0.719c0.467,0.374,0.701,0.56,1.165,0.928c0.428,0.452,0.64,0.676,1.065,1.117
-				c0.394,0.488,0.592,0.73,0.983,1.207c0.337,0.516,0.505,0.77,0.84,1.271c0.326,0.569,0.485,0.847,0.811,1.398
-				c0.252,0.582,0.381,0.868,0.632,1.433c0.203,0.569,0.302,0.85,0.504,1.402c0.156,0.571,0.234,0.854,0.39,1.41
-				c0.088,0.567,0.133,0.847,0.221,1.399c0.044,0.543,0.065,0.812,0.109,1.343c-0.042,0.523-0.064,0.782-0.107,1.297l0,0
-				c-0.259-0.021-0.387-0.03-0.646-0.052c-0.26-0.022-0.392-0.033-0.651-0.055c-0.263-0.009-0.395-0.015-0.657-0.022
-				c-0.265-0.008-0.395-0.013-0.659-0.02c-0.288,0.001-0.432,0.003-0.72,0.005c-0.281-0.025-0.424-0.04-0.706-0.064
-				c-0.264-0.006-0.396-0.005-0.66-0.01c-0.279-0.038-0.417-0.06-0.696-0.097l0,0c-0.11-0.35-0.168-0.524-0.278-0.877
-				c-0.083-0.376-0.123-0.566-0.207-0.947c-0.125-0.39-0.188-0.584-0.314-0.979c-0.106-0.391-0.16-0.587-0.268-0.984
-				c-0.12-0.415-0.178-0.626-0.298-1.05c-0.144-0.431-0.216-0.647-0.36-1.088c-0.149-0.424-0.226-0.637-0.375-1.07
-				c-0.152-0.42-0.228-0.633-0.381-1.063c-0.175-0.42-0.264-0.632-0.439-1.062c-0.209-0.404-0.312-0.608-0.522-1.022
-				c-0.229-0.401-0.347-0.604-0.577-1.015c-0.246-0.361-0.367-0.543-0.614-0.911c-0.293-0.346-0.442-0.522-0.737-0.875
-				c-0.307-0.298-0.46-0.447-0.769-0.75c-0.338-0.256-0.509-0.385-0.849-0.645C196.265,138.696,196.075,138.599,195.697,138.405z"/>
-			<path fill="#FFFFFF" stroke="#000000" stroke-width="2" d="M189.61,138.21L189.61,

<TRUNCATED>

[53/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
asf-site branch created for published content


Project: http://git-wip-us.apache.org/repos/asf/sling-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/sling-site/commit/a6129baf
Tree: http://git-wip-us.apache.org/repos/asf/sling-site/tree/a6129baf
Diff: http://git-wip-us.apache.org/repos/asf/sling-site/diff/a6129baf

Branch: refs/heads/asf-site
Commit: a6129baf49f10a77231148cf06b377e645114cb8
Parents: 7b70365
Author: Bertrand Delacretaz <bd...@apache.org>
Authored: Mon Jun 19 14:40:39 2017 +0200
Committer: Bertrand Delacretaz <bd...@apache.org>
Committed: Mon Jun 19 14:40:39 2017 +0200

----------------------------------------------------------------------
 apidocs/TODO.html                               |  33 +
 archive.html                                    |  33 +
 components/TODO.html                            |  33 +
 contributing.html                               |  40 +
 documentation.html                              | 125 +++
 documentation/bundles.html                      | 103 +++
 ...esystem-resources-extensions-fsresource.html | 145 ++++
 .../apache-sling-commons-thread-pool.html       |  36 +
 .../apache-sling-eventing-and-job-handling.html | 155 ++++
 ...dle-resources-extensions-bundleresource.html |  54 ++
 documentation/bundles/caching-services.html     |  35 +
 .../bundles/commons-html-utilities.html         |  33 +
 .../configuration-installer-factory.html        |  69 ++
 documentation/bundles/content-distribution.html | 129 +++
 .../content-loading-jcr-contentloader.html      | 256 ++++++
 ...re-configuration-default-implementation.html |  89 ++
 .../context-aware-configuration-override.html   |  62 ++
 .../context-aware-configuration-spi.html        |  59 ++
 .../context-aware-configuration.html            | 146 ++++
 documentation/bundles/datasource-providers.html |  84 ++
 .../bundles/discovery-api-and-impl.html         | 203 +++++
 documentation/bundles/dynamic-includes.html     |  35 +
 .../bundles/file-installer-provider.html        |  75 ++
 .../internationalization-support-i18n.html      | 135 +++
 .../bundles/jcr-installer-provider.html         |  92 ++
 documentation/bundles/log-tracers.html          | 127 +++
 ...ng-permissions-jackrabbit-accessmanager.html | 126 +++
 ...users-and-groups-jackrabbit-usermanager.html | 453 ++++++++++
 ...tent-the-slingpostservlet-servlets-post.html | 832 +++++++++++++++++++
 documentation/bundles/metrics.html              |  86 ++
 .../bundles/mime-type-support-commons-mime.html |  95 +++
 documentation/bundles/models.html               | 411 +++++++++
 .../bundles/nosql-resource-providers.html       |  67 ++
 .../bundles/org-apache-sling-junit-bundles.html | 127 +++
 documentation/bundles/osgi-installer.html       |  81 ++
 ...ing-pipelines-org-apache-sling-rewriter.html |  86 ++
 .../rendering-content-default-get-servlets.html |  67 ++
 .../bundles/repository-initialization.html      |  96 +++
 documentation/bundles/request-analysis.html     |  68 ++
 .../bundles/resource-access-security.html       |  87 ++
 documentation/bundles/resource-editor.html      |  52 ++
 documentation/bundles/resource-merger.html      | 142 ++++
 .../scheduler-service-commons-scheduler.html    |  91 ++
 documentation/bundles/scripting.html            |  52 ++
 .../bundles/scripting/scripting-htl.html        | 265 ++++++
 .../bundles/scripting/scripting-jsp.html        | 307 +++++++
 .../bundles/scripting/scripting-thymeleaf.html  |  84 ++
 documentation/bundles/servlet-helpers.html      |  58 ++
 .../bundles/sling-health-check-tool.html        | 200 +++++
 .../bundles/sling-oak-restrictions.html         | 118 +++
 documentation/bundles/sling-pipes.html          | 211 +++++
 documentation/bundles/sling-query.html          |  67 ++
 ...ling-settings-org-apache-sling-settings.html | 111 +++
 .../bundles/subsystem-installer-factory.html    |  39 +
 documentation/bundles/validation.html           | 138 +++
 .../bundles/web-console-extensions.html         |  69 ++
 documentation/bundles/xml-support.html          |  39 +
 documentation/configuration.html                | 222 +++++
 documentation/development.html                  |  78 ++
 .../development/client-request-logging.html     | 325 ++++++++
 .../development/dependency-management.html      | 132 +++
 documentation/development/embedding-sling.html  | 266 ++++++
 .../development/getting-and-building-sling.html | 201 +++++
 documentation/development/hamcrest.html         |  50 ++
 documentation/development/htl-maven-plugin.html |  33 +
 documentation/development/ide-tooling.html      | 193 +++++
 .../ide-tooling-incremental-build.html          |  47 ++
 documentation/development/issue-tracker.html    | 155 ++++
 documentation/development/jcr-mock.html         |  72 ++
 documentation/development/jspc.html             |  33 +
 documentation/development/jsr-305.html          |  75 ++
 documentation/development/logging.html          | 392 +++++++++
 documentation/development/maven-archetypes.html |  46 +
 .../development/maven-launchpad-plugin.html     | 133 +++
 documentation/development/maven-usage.html      |  48 ++
 .../development/maventipsandtricks.html         |  62 ++
 .../development/monitoring-requests.html        |  37 +
 documentation/development/osgi-mock.html        | 126 +++
 .../development/release-management.html         | 320 +++++++
 .../repository-based-development.html           | 100 +++
 .../development/resourceresolver-mock.html      |  59 ++
 documentation/development/sling-mock.html       | 250 ++++++
 .../development/sling-testing-tools.html        | 118 +++
 documentation/development/sling.html            |  33 +
 documentation/development/slingstart.html       | 205 +++++
 documentation/development/version-policy.html   | 232 ++++++
 documentation/getting-started.html              |  47 ++
 .../discover-sling-in-15-minutes.html           | 129 +++
 documentation/legacy/logging.html               | 211 +++++
 documentation/pax-exam-utils.html               |  35 +
 documentation/the-sling-engine.html             |  61 ++
 documentation/the-sling-engine/adapters.html    |  68 ++
 .../the-sling-engine/architecture.html          |  86 ++
 .../the-sling-engine/authentication.html        |  52 ++
 .../authentication/authentication-actors.html   |  73 ++
 .../authentication-authenticationhandler.html   | 107 +++
 .../form-based-authenticationhandler.html       | 180 ++++
 .../openid-authenticationhandler.html           | 141 ++++
 .../authentication-framework.html               | 184 ++++
 .../authentication/authentication-tasks.html    |  49 ++
 .../default-mapping-and-rendering.html          |  34 +
 .../the-sling-engine/dispatching-requests.html  | 130 +++
 .../the-sling-engine/errorhandling.html         |  74 ++
 .../the-sling-engine/featureflags.html          |  65 ++
 documentation/the-sling-engine/filters.html     | 153 ++++
 .../mappings-for-resource-resolution.html       | 187 +++++
 .../the-sling-engine/request-listeners.html     |  58 ++
 .../the-sling-engine/request-parameters.html    | 157 ++++
 documentation/the-sling-engine/resources.html   | 183 ++++
 .../service-authentication.html                 | 167 ++++
 documentation/the-sling-engine/servlets.html    | 156 ++++
 .../sling-api-crud-support.html                 | 125 +++
 .../the-sling-engine/sling-properties.html      | 155 ++++
 .../the-sling-engine/the-sling-launchpad.html   | 179 ++++
 .../the-sling-engine/url-decomposition.html     | 178 ++++
 .../url-to-script-resolution.html               |  89 ++
 .../wrap-or-decorate-resources.html             |  42 +
 documentation/tutorials-how-tos.html            |  33 +
 .../tutorials-how-tos/46-line-blog.html         | 120 +++
 ...tting-resources-and-properties-in-sling.html |  67 ++
 .../how-to-manage-events-in-sling.html          | 115 +++
 .../installing-and-upgrading-bundles.html       |  67 ++
 .../jackrabbit-persistence.html                 |  78 ++
 .../testing-sling-based-applications.html       |  75 ++
 downloads.html                                  |  69 ++
 errors/403.html                                 |  39 +
 errors/404.html                                 |  40 +
 feed.xml                                        |  10 +
 guides.html                                     |  51 ++
 index.html                                      |  86 ++
 javadoc-io.html                                 |  34 +
 links.html                                      |  78 ++
 media.html                                      |  36 +
 news.html                                       | 515 ++++++++++++
 news/sling-ide-tooling-11-released.html         |  55 ++
 news/sling-launchpad-8-released.html            |  61 ++
 news/sling-launchpad-9-released.html            |  63 ++
 old-stuff.html                                  |  35 +
 plugins.html                                    |  35 +
 project-information.html                        | 140 ++++
 ...che-sling-community-roles-and-processes.html |  57 ++
 project-information/project-license.html        |  33 +
 project-information/project-team.html           | 330 ++++++++
 project-information/security.html               |  50 ++
 res/css/codehilite.css                          | 429 ++++++++++
 res/css/site.css                                | 263 ++++++
 res/logos/apache.png                            | Bin 0 -> 12022 bytes
 res/logos/sling.png                             | Bin 0 -> 2957 bytes
 res/logos/sling.svg                             |  19 +
 site-conversion.html                            |  36 +
 sitemap.xml                                     | 290 +++++++
 151 files changed, 18118 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/apidocs/TODO.html
----------------------------------------------------------------------
diff --git a/apidocs/TODO.html b/apidocs/TODO.html
new file mode 100644
index 0000000..ad43b3d
--- /dev/null
+++ b/apidocs/TODO.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1></h1></header><p>TODO: re-add apidocs</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/archive.html
----------------------------------------------------------------------
diff --git a/archive.html b/archive.html
new file mode 100644
index 0000000..68b6515
--- /dev/null
+++ b/archive.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><h1>Blog Archive</h1>&lt;/ul&gt;</section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/components/TODO.html
----------------------------------------------------------------------
diff --git a/components/TODO.html b/components/TODO.html
new file mode 100644
index 0000000..d6f652d
--- /dev/null
+++ b/components/TODO.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1></h1></header><p>TODO re-add content/components</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/contributing.html
----------------------------------------------------------------------
diff --git a/contributing.html b/contributing.html
new file mode 100644
index 0000000..d896526
--- /dev/null
+++ b/contributing.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Contributing</h1></header><p>See <a href="/project-information.html">Project Information</a> for details about the tools mentioned below.</p>
+<p>Apache Sling is a volunteer effort, so there is always plenty of work that needs to be accomplished. If you want to help support Sling, this page is intended as a starting point for specific contribution ideas. To further understand how the Sling community operates, refer to the Community Roles and Processes document and/or join the mailing lists.</p>
+<p>The Sling project organizes its "to do" list using the JIRA issue tracking system. Specific items from Sling's JIRA issue tracking system are highlighted on this page, but are not limited to it. The purpose of the list here is to highlight issues that are either more important or serve as good entry points for new contributors.</p>
+<p>It is important to point out that you do not need to be a programmer to contribute to Sling. As such, we will break out the list of issues below for non-programmers and programmers.</p>
+<h2>Non-Programmers</h2>
+<p>Improve web site or documentation (e.g., create/propose FAQ entries). There is no specific JIRA issue for this task, but any contributions could be posted as new JIRA issues for the Documentation component.</p>
+<h2>Programmers</h2>
+<p>Implement support for various rendering technologies in Sling. Examples coming to mind are JSF and Wicket.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation.html
----------------------------------------------------------------------
diff --git a/documentation.html b/documentation.html
new file mode 100644
index 0000000..58d7b1e
--- /dev/null
+++ b/documentation.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Documentation</h1></header><p>[TOC]</p>
+<h1>Overview</h1>
+<p>The documentation is split into different parts:</p>
+<ul>
+  <li><a href="/documentation/getting-started.html">Getting Started</a>, the right place to start!</li>
+  <li><a href="/documentation/the-sling-engine.html">The Sling Engine</a>, all about the heart of Sling</li>
+  <li><a href="/documentation/development.html">Development</a>, how do I get and develop with Sling</li>
+  <li><a href="/documentation/bundles.html">Bundles</a>, which bundle delivers which features to Sling</li>
+  <li><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a></li>
+  <li><a href="http://cwiki.apache.org/SLING/">Wiki</a></li>
+  <li><a href="/documentation/configuration.html">Configuration</a></li>
+  <li><a href="http://sling.apache.org/apidocs/sling8/index.html">API Doc</a></li>
+</ul>
+<h1>How you can contribute</h1>
+<p>We're on the way to improve the documentation, but it's a long way. If you would like to contribute to the documentation you are very welcome. Please directly post your proposals to the <a href="http://cwiki.apache.org/SLING/">public wiki</a> or post your suggestions to the <a href="/project-information.html">mailing list</a>.</p>
+<h1>How the documentation is generated</h1>
+<p><em>The Sling web site and documentation are managed with the <a href="https://www.apache.org/dev/cms.html">Apache CMS</a>. For Apache Sling specific extensions see the <a href="#the-sling-site">The Sling Site</a> section below.</em></p>
+<div class="info">
+<p>
+The Sling site was converted from a Confluence exported site to an
+Apache CMS managed site. All non-fully converted pages will show a tip box pointing to
+the original Confluence exported page for reference.
+</p>
+
+<p>
+Once migration of a page has completed the <code>translation_pending</code>
+header should be removed from the page source. After that the tip box will not be
+shown any more.
+</p>
+
+</div>
+<p>The basic documentation of Sling is made up of four parts:</p>
+<ol>
+  <li>The Sling Site at http://sling.apache.org/ (you are here)</li>
+  <li>The Public Wiki at http://cwiki.apache.org/SLING</li>
+  <li>The JavaDoc</li>
+  <li>The Maven plugin documentation</li>
+</ol>
+<p>This page is about how this documentation is maintained and who is allowed to do what.</p>
+<h2>The Sling Site</h2>
+<p>The site is managed with the <a href="https://www.apache.org/dev/cms.html">Apache CMS</a> where the source is kept in SVN at <a href="https://svn.apache.org/repos/asf/sling/site/trunk/content">https://svn.apache.org/repos/asf/sling/site/trunk/content</a>.</p>
+<p>This section lists some Apache Sling features to help with the maintenance of the site, such as automatic link generation.</p>
+<p>Start the file with a <code>Title:</code> line to define the page title and the first H1 tag:</p>
+<p>Here comes the content separated with a blank like from the header ...</p>
+<p>The last modification information from SVN (revision, committer, and date/time) is automatically added when the page is rendered</p>
+<p>Excerpts can be added to a page using the <code>Excerpt:</code> header:</p>
+<p>Excerpt: Summary of the page for inclusion in other pages; continuation of the excerpt must be indented</p>
+<p>Here comes the content separated with a blank like from the header ...</p>
+<p>Metadata from child pages can be referred to in the content with the Django variable reference notation using the child page name (without extension) as its container; e.g. for the child page named <code>childpage</code>:</p>
+<p>:::django {{ y|default:"{{" }} children.childpage.headers.excerpt }} {{ y|default:"{{" }} children.childpage.headers.title }}</p>
+<p>Content Pages can contain Django templates of the form <code>{{ y|default:&quot;{{&quot; }}...}}</code> and <code>{{ y|default:&quot;{%&quot; }}...%}</code>. If so, the page content is evaluated as a Django template before running it through the page template.</p>
+<p>Any page in the site can be referenced with refs.pagename returning properties:</p>
+<p><code>.path</code> : the absolute path of the page on the site</p>
+<p><code>.headers</code> : page headers (e.g. <code>.title</code>, <code>.excerpt</code>)</p>
+<p><code>.content</code> : the raw page content</p>
+<p>All pages in the children namespace are also available in the refs namespace</p>
+<p>Some usefull hints:</p>
+<p>Printing title of another page "handler":</p>
+<p>:::django {{ y|default:"{{" }} refs.handler.headers.title }}</p>
+<p>Printing excerpt of another page "handler":</p>
+<p>:::django {{ y|default:"{{" }} refs.handler.headers.excerpt }}</p>
+<p>Linking to another page "handler":</p>
+<p>:::django ({{ y|default:"{{" }} refs.handler.path }})</p>
+<p>Printing title as a link to another page "handler":</p>
+<p>:::django [{{ y|default:"{{" }} refs.handler.headers.title }}]({{ y|default:"{{" }} refs.handler.path }})</p>
+<p>Printing excerpt as a link to another page "handler":</p>
+<p>:::django [{{ y|default:"{{" }} refs.handler.headers.excerpt }}]({{ y|default:"{{" }} refs.handler.path }})</p>
+<p>Print a bullet pointed child page list:</p>
+<p>:::django {{ y|default:"{%" }} for label, page in children %}* [{{ y|default:"{{" }} page.headers.title }}]({{ y|default:"{{" }} page.path }}) {{ y|default:"{%" }} endfor %}</p>
+<div class="note">
+It is important to have the first part as a single line, otherwise
+the Django/Markdown combo will create a list for each entry.
+</div>
+<h3>Code Highlighting</h3>
+<p>Code Highlighting works by indenting code by four blanks. To indicate the type of highlighting preced the code style text with either <code>:::&lt;lexer&gt;</code> to get high lighted code using the given <code>&lt;lexer&gt;</code> or <code>#!&lt;lexer&gt;</code> to get high lighted code with line numbers using the given <code>&lt;lexer&gt;</code>. See <a href="http://www.apache.org/dev/cmsref.html#code-hilighter">http://www.apache.org/dev/cmsref.html#code-hilighter</a> for main info and <a href="http://pygments.org/docs/lexers/">http://pygments.org/docs/lexers/</a> for supported lexers</p>
+<h3>Manual Generation</h3>
+<p>When commiting changes to pages into SVN the pages are automatically generated in <a href="http://sling.staging.apache.org">the staging site</a>.</p>
+<p>To manually generate the site or single pages the <a href="http://svn.apache.org/repos/asf/felix/site">site</a> can be checked out from SVN. In addition Perl and Python must be installed for the build tools to work.</p>
+<p>To prepare for site build, the Markdown daemon has to be started:</p>
+<p>:::sh $ export MARKDOWN_SOCKET="$PWD/tools/build/../markdown.socket" $ export PYTHONPATH="$PWD/tools/build" $ python "$PWD/tools/build/markdownd.py"</p>
+<p>The <code>MARKDOWN_SOCKET</code> environment variables is also required by the <code>build_site.pl</code> and <code>build_file.pl</code> scripts to connect to the Markdown daemon.</p>
+<p>To build the complete site use the <code>build_site.pl</code> script:</p>
+<p>:::sh $ tools/build/build_site.pl --source-base $PWD/trunk --target-base $PWD/trunk/target</p>
+<p>To build a single page use the <code>build_file.pl</code> script:</p>
+<p>:::sh $ tools/build/build_site.pl --source-base $PWD/trunk --target-base $PWD/trunk/target --source content/documentation.mdtext</p>
+<p>The argument to the <code>--source</code> parameter is relative to the <code>--source-base</code> folder.</p>
+<h2>The Public Wiki</h2>
+<p>The public wiki of Sling is available at <a href="http://cwiki.apache.org/SLING">http://cwiki.apache.org/SLING</a> and is maintained in the Confluence space <em>SLING</em>. Everyone can create an account there. To gain edit rights please ask via the <a href="/project-information.html">mailing list</a>. Any of the administrators listed in the <a href="https://cwiki.apache.org/confluence/spaces/viewspacesummary.action?key=SLING&showAllAdmins=true">Space Overview</a> can give you access.</p>
+<h2>The JavaDoc</h2>
+<p>With every major release of Sling the JavaDoc of all containing bundles are published below <a href="http://sling.apache.org/apidocs/">http://sling.apache.org/apidocs/</a>. The script for generating this aggregation JavaDoc is at <a href="http://svn.apache.org/repos/asf/sling/trunk/tooling/release/">http://svn.apache.org/repos/asf/sling/trunk/tooling/release/</a> in <code>generate_javadoc_for_release.sh</code></p>
+<p>In addition every released bundle is released together with its JavaDoc (which is also pushed to Maven Central).</p>
+<h2>The Maven Plugin Documentation</h2>
+<p>For the most important Maven Plugins the according Maven Sites (generated with the <code>maven-site-plugin</code>) are published at <a href="http://sling.apache.org/components/">http://sling.apache.org/components/</a>. The description on how to publish can be found at <a href="/documentation/development/release-management.html">Release Management</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles.html
----------------------------------------------------------------------
diff --git a/documentation/bundles.html b/documentation/bundles.html
new file mode 100644
index 0000000..0f99fbe
--- /dev/null
+++ b/documentation/bundles.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Bundles</h1></header><h2>Content</h2>
+<ul>
+  <li><a href="/documentation/bundles/content-loading-jcr-contentloader.html">Content Loading (jcr.contentloader)</a></li>
+  <li><a href="/documentation/bundles/internationalization-support-i18n.html">Internationalization Support (i18n)</a></li>
+  <li><a href="/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">Manipulating Content - The SlingPostServlet (servlets.post)</a></li>
+  <li><a href="/documentation/bundles/rendering-content-default-get-servlets.html">Rendering Content - Default GET servlets (servlets.get)</a></li>
+  <li><a href="/documentation/bundles/validation.html">Validation</a></li>
+  <li><a href="/documentation/bundles/repository-initialization.html">Repository Initialization</a></li>
+</ul>
+<h2>Resource Providers</h2>
+<ul>
+  <li><a href="/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html">Accessing File System Resources (org.apache.sling.fsresource)</a></li>
+  <li><a href="/documentation/bundles/bundle-resources-extensions-bundleresource.html">Bundle Resources (extensions.bundleresource)</a></li>
+  <li><a href="/documentation/bundles/nosql-resource-providers.html">NoSQL Resource Providers (org.apache.sling.nosql)</a></li>
+  <li><a href="/documentation/bundles/resource-merger.html">Resource Merger (org.apache.sling.resourcemerger)</a></li>
+</ul>
+<h2>Users, Groups, Access, Permissions, ACLs on Resources</h2>
+<ul>
+  <li><a href="/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html">Managing users and groups (jackrabbit.usermanager)</a></li>
+  <li><a href="/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html">Managing permissions (jackrabbit.accessmanager)</a></li>
+  <li><a href="/documentation/bundles/resource-access-security.html">Resource Access Security (resourceaccesssecurity)</a></li>
+  <li><a href="/documentation/bundles/sling-oak-restrictions.html">Sling Oak Restrictions (sling-oak-restrictions)</a></li>
+</ul>
+<h2>OSGi Installer</h2>
+<p>The OSGi installer is a very flexible and powerful service to manage provisioning and updates of an OSGi system. It is independent of Sling and can be extended by several plugins.</p>
+<ul>
+  <li><a href="/documentation/bundles/osgi-installer.html">OSGi Installer</a></li>
+  <li><a href="/documentation/bundles/configuration-installer-factory.html">Configuration Installer Factory</a></li>
+  <li><a href="/documentation/bundles/subsystem-installer-factory.html">Subsystem Installer Factory</a></li>
+  <li><a href="/documentation/bundles/jcr-installer-provider.html">JCR Installer Provider</a></li>
+  <li><a href="/documentation/bundles/file-installer-provider.html">File Installer Provider</a></li>
+</ul>
+<h2>Development and Utilities</h2>
+<ul>
+  <li><a href="/documentation/bundles/apache-sling-commons-thread-pool.html">Commons Thread Pools</a></li>
+  <li><a href="/documentation/bundles/commons-html-utilities.html">Commons HTML Utilities</a></li>
+  <li><a href="/documentation/bundles/mime-type-support-commons-mime.html">MIME Type Support (commons.mime and commons.contentdetection)</a></li>
+  <li><a href="/documentation/bundles/scripting.html">Scripting</a></li>
+  <li><a href="/documentation/bundles/sling-settings-org-apache-sling-settings.html">Sling Settings (org.apache.sling.settings)</a></li>
+  <li><a href="/documentation/bundles/caching-services.html">Caching Services</a></li>
+  <li><a href="/documentation/bundles/models.html">Sling Models</a></li>
+  <li><a href="/documentation/pax-exam-utils.html">Sling Pax Exam Utilities</a></li>
+  <li><a href="/documentation/bundles/sling-query.html">Sling Query Library</a></li>
+  <li><a href="/documentation/bundles/org-apache-sling-junit-bundles.html">Junit Server-Side Tests Support</a></li>
+  <li><a href="/documentation/bundles/sling-pipes.html">Sling Pipes</a></li>
+  <li><a href="/documentation/bundles/metrics.html">Sling Metrics</a></li>
+  <li><a href="/documentation/bundles/servlet-helpers.html">Servlet Helpers</a></li>
+  <li><a href="/documentation/bundles/context-aware-configuration/context-aware-configuration.html">Context-Aware Configuration</a></li>
+</ul>
+<h2>Content Presentation and Rendering</h2>
+<ul>
+  <li><a href="/documentation/bundles/scripting.html">Scripting</a> (aka Templating)</li>
+  <li><a href="/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.html">Output Rewriting Pipelines (org.apache.sling.rewriter)</a></li>
+  <li><a href="/documentation/bundles/xml-support.html">XML Support</a></li>
+  <li><a href="/documentation/bundles/resource-editor.html">Sling Resource Editor</a></li>
+  <li><a href="/documentation/bundles/dynamic-includes.html">Sling Dynamic Include (org.apache.sling.dynamic-include)</a></li>
+</ul>
+<h2>Troubleshooting</h2>
+<ul>
+  <li><a href="/documentation/bundles/request-analysis.html">Request Processing Analyzer (org.apache.sling.reqanalyzer)</a></li>
+  <li><a href="/documentation/bundles/sling-health-check-tool.html">Sling Health Check Tool</a></li>
+</ul>
+<h2>Misc</h2>
+<ul>
+  <li><a href="/documentation/bundles/apache-sling-eventing-and-job-handling.html">Eventing and Job Handling</a></li>
+  <li><a href="/documentation/bundles/scheduler-service-commons-scheduler.html">Scheduler Service (commons scheduler)</a></li>
+  <li><a href="/documentation/bundles/web-console-extensions.html">Web Console Extensions (org.apache.sling.extensions.webconsolebranding, org.apache.sling.extensions.webconsolesecurityprovider)</a></li>
+  <li><a href="/documentation/bundles/discovery-api-and-impl.html">Discovery API and its Implementations (discovery.api, discovery.impl)</a></li>
+  <li><a href="/documentation/bundles/datasource-providers.html">Datasource Provider</a></li>
+  <li><a href="/documentation/bundles/log-tracers.html">Log Tracer</a></li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html b/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html
new file mode 100644
index 0000000..13f1a74
--- /dev/null
+++ b/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Accessing File System Resources (org.apache.sling.fsresource)</h1></header><p>[TOC]</p>
+<h2>Introduction</h2>
+<p>The Apache Sling File System Resource Provider provides access to the operating system's file system through the Sling <code>ResourceResolver</code>. Multiple locations may be mapped into the resource tree by configuring the file system location and the resource tree root path for each location to be mapped. The provider supports mapping folders and files as binaries, and content structures stored in JSON files or FileVault XML format.</p>
+<p>To activate this feature, install the <code>org.apache.sling.fsresource</code> bundle. You can get it from the Sling downloads page or from <a href="https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.sling%22%20AND%20a%3A%22org.apache.sling.fsresource%22">Maven Central</a>.</p>
+<p>Currently two major versions are maintained - choose the correct version depending on your Sling environment:</p>
+<ul>
+  <li>fsresource 2.x (<a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/fsresource/">trunk</a>): compatible with Apache Sling API 2.11 and Apache Sling Resource Resolver 1.5.18 or above.</li>
+  <li>fsresource 1.x (<a href="https://svn.apache.org/repos/asf/sling/branches/fsresource-1.x/">branch</a>): compatible with Apache Sling API 2.4 and Apache Sling Resource Resolver 1.1.0 or above.</li>
+</ul>
+<h2>Resource Types</h2>
+<p>Files and directories are mapped into the resource tree as regular <code>Resource</code> instances whose resource type depends on the actual nature of the mapped file system resource:</p>
+<ul>
+  <li>Regular files are assigned the <code>nt:file</code> resource type</li>
+  <li>Directories are assigned the <code>nt:folder</code> resource type</li>
+</ul>
+<p>Content stored in JSON or FileVault XML files are mapped with the resource type stored in the files. If a resource type is missing <code>nt:unstructured</code> is used as fallback.</p>
+<h2>Adapters</h2>
+<p>File system resources extend from Sling's <code>AbstractResource</code> class and thus are adaptable to any type for which an <code>AdapterFactory</code> is registered supporting file system resources. In addition File system Resources support the following adapters natively:</p>
+<ul>
+  <li><code>java.io.File</code> -- The Java file object providing access to the file system file</li>
+  <li><code>java.net.URL</code> -- A valid <code>file://</code> URL to the file. This URL is derived from the <code>java.io.File</code> object by calling the <code>File.toURI().toURL()</code> sequence.</li>
+  <li><code>java.io.InputStream</code> -- If the <code>java.io.File</code> can be read from (as per <code>File.canRead()</code> an <code>InputStream</code> to read from the file is returned.</li>
+</ul>
+<h2>Configuration</h2>
+<p>The File System Resource Provider is configured with OSGi Configuration Admin factory configurtions whose factory PID is <code>org.apache.sling.fsprovider.internal.FsResourceProvider</code>. Configuration can be managed using the OSGi Configuration Admin API, through the Web Console or by any other means supporting Configuration Admin configurations. Each configuration "mounts" a specific file system path into the resource hierarchy.</p>
+<p>Which files are mounted depends on the 'File system layout' configuration parameter:</p>
+<ul>
+  <li>FILES_FOLDERS (default): Support only files and folders (classic mode).</li>
+  <li>INITIAL_CONTENT: Sling-Initial-Content filesystem layout, supports file and folders ant content files in JSON and jcr.xml format.</li>
+  <li>FILEVAULT_XML: FileVault XML format (expanded content package).</li>
+</ul>
+<p>Configuration parameters for each mapping:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Parameter </th>
+      <th>Name </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>File System Root </td>
+      <td><code>provider.file</code> </td>
+      <td>File system directory mapped to the virtual resource tree. This property must not be an empty string. If the path is relative it is resolved against sling.home or the current working directory. The path may be a file or folder. If the path does not address an existing file or folder, an empty folder is created. </td>
+    </tr>
+    <tr>
+      <td>Provider Root </td>
+      <td><code>provider.root</code> (2.x), <code>provider.roots</code> (1.x) </td>
+      <td>Location in the virtual resource tree where the file system resources are mapped in. This property must not be an empty string. Only one path is supported. </td>
+    </tr>
+    <tr>
+      <td>File system layout </td>
+      <td><code>provider.fs.mode</code> </td>
+      <td>File system layout mode for files, folders and content. </td>
+    </tr>
+    <tr>
+      <td>Init. Content Options </td>
+      <td><code>provider.initial.content.import.options</code> </td>
+      <td>Import options for Sling-Initial-Content file system layout. Supported options: overwrite, ignoreImportProviders. </td>
+    </tr>
+    <tr>
+      <td>FileVault Filter </td>
+      <td><code>provider.filevault.filterxml.path</code> </td>
+      <td>Path to META-INF/vault/filter.xml when using FileVault XML file system layout. </td>
+    </tr>
+    <tr>
+      <td>Check Interval </td>
+      <td><code>provider.checkinterval</code> </td>
+      <td>If the interval has a value higher than 100, the provider will check the file system for changes periodically. This interval defines the period in milliseconds (the default is 1000). If a change is detected, resource events are sent through the event admin. </td>
+    </tr>
+    <tr>
+      <td>Cache Size </td>
+      <td><code>provider.cache.size</code> </td>
+      <td>Max. number of content files cached in memory. </td>
+    </tr>
+  </tbody>
+</table>
+<h3>FILES_FOLDERS file system layout</h3>
+<p>The mode maps only files and folders. This was the only mode supported in fsresource versions before 1.3.</p>
+<p>Notes:</p>
+<ul>
+  <li>No caching is used for this mode.</li>
+  <li>Resource events are sent when file oder folder changes are detected.</li>
+</ul>
+<h3>INITIAL_CONTENT file system layout</h3>
+<p>The mode maps files and folders, and content files stored in JSON or jcr.xml files. The layout has to match the conventions of the <a href="content-loading-jcr-contentloader.html">Apache Sling JCR Content Loader</a>. The bundle header <code>Sling-Initial-Content</code> defines where and how the content should be loaded to.</p>
+<p>This mode is best use together with the <a href="http://sling.apache.org/components/maven-sling-plugin/">Maven Sling Plugin</a>, which automatically creates the appropriate File System Resource Provider configurations for a Maven bundle project containing content structures. For each path an individual configuration is created.</p>
+<p>Usage - deploy OSGi bundle from current maven project and register the appropriate OSGi configuration mappings:</p>
+<p>$ mvn -Dsling.mountByFS=true sling:install</p>
+<p>Only register the appropriate mappings:</p>
+<p>$ mvn sling:fsmount</p>
+<p>Remove the mappings:</p>
+<p>$ mvn sling:fsunmount</p>
+<p>Notes:</p>
+<ul>
+  <li>The content of JSON or jcr.xml files is cached in-memory until it changes.</li>
+  <li>Resource events are sent when file oder folder changes are detected. When a JSON or jcr.xml file is changed resource events are sent for each resource contained in this file.</li>
+  <li>When 'overwrite:=true' is not set for a path in the <code>Sling-Initial-Content</code> header the resource provider falls back to the parent resource provider (e.g. JCR repository) if a requested resource is not find in the file system (version 2.x, with version 1.x this always happens).</li>
+</ul>
+<h3>FILEVAULT_XML file system layout</h3>
+<p>The mode maps an maven project containing an expanded content package which uses the <a href="http://jackrabbit.apache.org/filevault/vaultfs.html">Jackrabbit FileVault XML layout</a> in the running Sling instance. The existing of a filter file <code>META-INF/vault/filter.xml</code> is mandatory.</p>
+<p>This mode is best use together with the <a href="http://sling.apache.org/components/maven-sling-plugin/">Maven Sling Plugin</a>, which automatically creates the appropriate File System Resource Provider configurations. For each path defined in the filter.xml one mapping configuration is created. The include/exclude definitions are respected as well.</p>
+<p>Usage - register the appropriate mappings:</p>
+<p>$ mvn sling:fsmount</p>
+<p>Remove the mappings:</p>
+<p>$ mvn sling:fsunmount</p>
+<p>Notes:</p>
+<ul>
+  <li>The content of .content.xml files is cached in-memory until it changes.</li>
+  <li>Resource events are sent when file oder folder changes are detected. When a JSON or jcr.xml file is changed resource events are sent for each resource contained in this file.</li>
+  <li>Content excluded by the filter definition is not mounted by the resource provider, if a resource of the relevant path is requested the resource provider falls back to the parent resource provider (e.g. JCR repository).</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/apache-sling-commons-thread-pool.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/apache-sling-commons-thread-pool.html b/documentation/bundles/apache-sling-commons-thread-pool.html
new file mode 100644
index 0000000..70821b6
--- /dev/null
+++ b/documentation/bundles/apache-sling-commons-thread-pool.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling Commons Thread Pool</h1></header><p>The Apache Sling Commons Thread Pool bundle provides a thread pool services. All thread pools are managed by the <code>org.apache.sling.commons.threads.ThreadPoolManager</code>. This service can be used to get a thread pool.</p>
+<p>Thread pools are managed by name - there is a default thread pool and custom thread pools can be generated on demand using a unique name.</p>
+<p>The thread pools are actually wrappers around the thread pool support (executer) from the Java library. The advantage of using this thread pool service is, that the pools can be configured and managed through OSGi configurations. In addition the bundle contains a plugin for the Apache Felix Web Console.</p>
+<p>When using the <code>ThreadPoolMananger</code> it is important to release a thread pool using the manager after it has been used.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/apache-sling-eventing-and-job-handling.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/apache-sling-eventing-and-job-handling.html b/documentation/bundles/apache-sling-eventing-and-job-handling.html
new file mode 100644
index 0000000..64f7f21
--- /dev/null
+++ b/documentation/bundles/apache-sling-eventing-and-job-handling.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling Eventing and Job Handling</h1></header><h2>Overview</h2>
+<p>The Apache Sling Event Support bundle adds additional features to the OSGi Event Admin and for distributed event processing.</p>
+<p>The bundle provides the following features</p>
+<ul>
+  <li><a href="#jobs-guarantee-of-processing">Jobs</a></li>
+  <li><a href="#distributed-events">Distributed Events</a></li>
+  <li><a href="#sending-scheduled-events">Scheduled Events</a></li>
+</ul>
+<p>To get some hands on code, you can refer to the following tutorials:</p>
+<ul>
+  <li><a href="/documentation/tutorials-how-tos/how-to-manage-events-in-sling.html">How to Manage Events in Sling</a></li>
+  <li><a href="/documentation/bundles/scheduler-service-commons-scheduler.html">Scheduler Service (commons scheduler)</a></li>
+</ul>
+<h2>Jobs (Guarantee of Processing)</h2>
+<p>In general, the eventing mechanism (OSGi EventAdmin) has no knowledge about the contents of an event. Therefore, it can't decide if an event is important and should be processed by someone. As the event mechanism is a "fire event and forget about it" algorithm, there is no way for an event admin to tell if someone has really processed the event. Processing of an event could fail, the server or bundle could be stopped etc.</p>
+<p>On the other hand, there are use cases where the guarantee of processing is a must and usually this comes with the requirement of processing exactly once. Typical examples are sending notification emails (or sms), post processing of content (like thumbnail generation of images or documents), workflow steps etc.</p>
+<p>The Sling Event Support adds the notion of a job. A job is a special event that has to be processed exactly once. To be precise, the processing guarantee is at least once. However, the time window for a single job where exactly once can't be guaranteed is very small. It happens if the instance which processes a job crashes after the job processing is finished but before this state is persisted. Therefore a job consumer should be prepared to process a job more than once. Of course, if there is no job consumer for a job, the job is never processed. However this is considered a deployment error.</p>
+<p>The Sling Jobs Processing adds some overhead, so in some cases it might be better to use just the <a href="/documentation/bundles/scheduler-service-commons-scheduler.html">Commons Scheduler Service</a> or the <a href="/documentation/bundles/apache-sling-commons-thread-pool.html">Commons Thread Pool</a> for asynchronous execution of code.</p>
+<p>While older versions of the job handling were based on sending and receiving events through the OSGi event admin, newer versions provide enhanced support through special Java interface. This approach is preferred over the still supported but deprecated event admin way.</p>
+<p>A job consists of two parts, the job topic describing the nature of the job and the payload which is a key value map of serializable objects. A client can initiate a job by calling the <em>JobManager.addJob</em> method:</p>
+<p>import org.apache.sling.jobs.JobManager; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Reference; import java.util.Map; import java.util.HashMap;</p>
+<p>@Component public class MyComponent {</p>
+<p>@Reference private JobManager jobManager;</p>
+<p>public void startJob() { final Map&lt;String, Object&gt; props = new HashMap&lt;String, Object&gt;(); props.put("item1", "/something"); props.put("count", 5);</p>
+<p>jobManager.addJob("my/special/jobtopic", props); } }</p>
+<p>The job topic follows the conventions for the topic of an OSGi event. All objects in the payload must be serializable and publically available (exported by a bundle). This is required as the job is persisted and unmarshalled before processing.</p>
+<p>As soon as the method returns from the job manager, the job is persisted and the job manager ensures that this job will be processed exactly once.</p>
+<h3>JobBuilder</h3>
+<p>Instead of creating the jobs by calling <code>JobManager.addJob(&quot;my/special/jobtopic&quot;, props);</code> the <code>JobBuilder</code> can be used, which is retrieved via <code>JobManager.createJob(&quot;my/special/jobtopic&quot;)</code>. The last method being called on the <code>JobBuilder</code> must be <code>add(...)</code>, which finally adds the job to the queue.</p>
+<h3>Scheduled Jobs</h3>
+<p>Scheduled Jobs are put in the queue at a specific time (optionally periodically). For that the <code>ScheduleBuilder</code> must be used which is retrieved via <code>JobBuilder.schedule()</code>.</p>
+<p>An example code for scheduling a job looks like this:</p>
+<p>import org.apache.sling.jobs.JobManager; import org.apache.sling.event.jobs.JobBuilder.ScheduleBuilder; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Reference;</p>
+<p>@Component public class MyComponent {</p>
+<p>@Reference private JobManager jobManager;</p>
+<p>public void startScheduledJob() { ScheduleBuilder scheduleBuilder = jobManager.startJob("my/special/jobtopic").schedule(); scheduleBuilder.daily(0,0); // execute daily at midnight if (scheduleBuilder.add() == null) { // something went wrong here, use scheduleBuilder.add(List<String>) instead to get further information about the error } } }</p>
+<p>Internally the scheduled Jobs use the <a href="/documentation/bundles/scheduler-service-commons-scheduler.html">Commons Scheduler Service</a>. But in addition they are persisted (by default below <code>/var/eventing/scheduled-jobs</code>) and survive therefore even server restarts. When the scheduled time is reached, the job is automatically added as regular Sling Job through the <code>JobManager</code>.</p>
+<h3>Job Consumers</h3>
+<p>A job consumer is a service consuming and processing a job. It registers itself as an OSGi service together with a property defining which topics this consumer can process:</p>
+<p>import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Service; import org.apache.sling.event.jobs.Job; import org.apache.sling.event.jobs.consumer.JobConsumer;</p>
+<p>@Component @Service(value={JobConsumer.class}) @Property(name=JobConsumer.PROPERTY_TOPICS, value="my/special/jobtopic",) public class MyJobConsumer implements JobConsumer {</p>
+<p>public JobResult process(final Job job) { // process the job and return the result return JobResult.OK; } }</p>
+<p>The <em>Job</em> interface allows to query the topic, the payload and additional information about the current job. The consumer can either return <em>JobResult.OK</em> indicating that the job has been processed, <em>JobResult.FAILED</em> indicating the processing failed, but can be retried or <em>JobResult.CANCEL</em> the processing has failed permanently.</p>
+<h3>Job Handling</h3>
+<p>New jobs are first persisted in the resource tree (for failover etc.), then the job is distributed to an instance responsible for processing the job and on that instance the job is put into a processing queue. There are different types of queues defining how the jobs are processed (one after the other, in parallel etc.).</p>
+<p>For managing queues, the Sling Job Handler uses the OSGi ConfigAdmin - it is possible to configure one or more queue configurations through the ConfigAdmin. One way of creating and configuring such configurations is the Apache Felix WebConsole. If there is no specific queue configuration maintained for the given job topic, the Sling Job Handler falls back to using the <code>Apache Sling Job Default Queue</code> (which can be configured through OSGi as well).</p>
+<h4>Queue Configurations</h4>
+<p>A queue configuration can have the following properties:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property Name </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>queue.name</code> </td>
+      <td>The name of the queue. If matching is used for topics, the value {0} can be used for replacing the matched part. </td>
+    </tr>
+    <tr>
+      <td><code>queue.type</code> </td>
+      <td>The type of the queue: ORDERED, UNORDERED, TOPIC_ROUND_ROBIN </td>
+    </tr>
+    <tr>
+      <td><code>queue.topics</code> </td>
+      <td>A list of topics processed by this queue. Either the concrete topic is specified or the topic string ends with /* or /. If a star is at the end all topics and sub topics match, with a dot only direct sub topics match. </td>
+    </tr>
+    <tr>
+      <td><code>queue.maxparallel</code> </td>
+      <td>How many jobs can be processed in parallel? -1 for number of processors.</td>
+    </tr>
+    <tr>
+      <td><code>queue.retries</code> </td>
+      <td>How often the job should be retried in case of failure (i.e. Job did not finish with succeeded or cancelled result). -1 for endless retries. In case of exceptions there is no retry. </td>
+    </tr>
+    <tr>
+      <td><code>queue.retrydelay</code> </td>
+      <td>The waiting time in milliseconds between job retries. </td>
+    </tr>
+    <tr>
+      <td><code>queue.priority</code> </td>
+      <td>The thread priority: NORM, MIN, or MAX </td>
+    </tr>
+    <tr>
+      <td><code>service.ranking</code> </td>
+      <td>A ranking for this configuration.</td>
+    </tr>
+  </tbody>
+</table>
+<p>The configurations are processed in order of their service ranking. The first matching queue configuration is used for the job.</p>
+<h4>Ordered Queues</h4>
+<p>An ordered queue processes one job after the other.</p>
+<h4>Unordered Queues (or Parallel queues)</h4>
+<p>Unordered queues process jobs in parallel.</p>
+<h4>Topic-Round-Robin Queues</h4>
+<p>The jobs are processed in parallel. Scheduling of the jobs is based on the topic of the jobs. These are started by doing round-robin on the available topics.</p>
+<h3>Job Distributing</h3>
+<p>For job distribution (= distributing the processing in a cluster), the job handling uses the topology feature from Sling - each instance in the topology announces the set of topics (consumers) it currently has - and this defines the job capabilities, a mapping from an instance to the topics it can process.</p>
+<p>When a job is scheduled, the job manager uses these capabilities to find out the set of instances which is able to process the request. If the queue type is <em>ordered</em> then all jobs are processed by the leader of this set. For parallel queues, the jobs are distributed equally amongst those instance.</p>
+<p>Failover is handled by the leader: if an instance dies, the leader will detect this through the topology framework and then redistribute jobs from the dead instance to the available instances. Of course this takes a leader change into account as well. In addition if the job capabilities change and this require a reschedule of jobs, that's done by the leader as well.</p>
+<h3>Job Creation Patterns</h3>
+<p>The job manager ensures that a job is processed exactly once. However, the client code has to take care that a job is created exactly once. We'll discuss this based on some general usage patterns:</p>
+<h4>Jobs based on user action</h4>
+<p>If a user action results in the creation of a job, the thread processing the user action can directly create the job. This ensures that even in a clustered scenario the job is created only once.</p>
+<h4>Jobs based on observation / events</h4>
+<p>If an observation event or any other OSGi event results in the creation of a job, special care needs to be taken in a clustered installation to avoid the job is created on all cluster instances. The easiest way to avoid this, is to use the topology api and make sure the job is only created on the leader instance.</p>
+<h2>Distributed Events</h2>
+<p>In addition to the job handling, the Sling Event support adds handling for distributed events. A distributed event is an OSGi event which is sent across JVM boundaries to a different VM. A potential use case is to broadcast information in a clustered environment.</p>
+<h3>Basic Principles</h3>
+<p>The foundation of the distributed event mechanism is to distribute each event to every node in a clustered environment. The event distribution mechanism has no knowledge about the intent of the event and therefore is not able to make delivery decisions by itself. It is up to the sender to decide what should happen. The sender must explicitly declare an event to be distributed as for example framework related events (bundle stopped, installed etc.) should not be distributed.</p>
+<p>The event mechanism will provide additional functionality making it easier for event receivers to decide if they should process an event. The event receiver can determine if the event is a local event or comming from a remote application node. Therefore a general rule of thumb is to process events only if they're local and just regard remote events as a FYI.</p>
+<p>For distributed events two properties are defined (check the <em>EventUtil</em> class):</p>
+<ul>
+  <li><em>event.distribute</em> - this flag is set by the sender of an event to give a hint if the event should be distributed across instances. For example JCR observation based events are already distributed on all instances, so there is no further need to distribute them. If the flag is present, the event will be distributed. The value has currently no meaning, however the EventUtil method should be used to add this property. If the flag is absent the event is distributed locally only.</li>
+  <li><em>event.application</em> - An identifier for the current application node in the cluster. This information will be used to detect if an event has been created on different nodes. If the event has been created on the same node, the <em>event.application</em> is missing, if it is a remote event, the <em>event.application</em> contains the ID of the node, the event has been initially created. Use the <em>EventUtil.isLocal(Event)</em> method to detect if the event is a local or a distributed event.</li>
+</ul>
+<p>While the <em>event.distribute</em> must be set by the sender of an event (if the event should be distributed), the <em>event.application</em> property is maintained by the event mechanism. Therefore a client sending an event should <em>never</em> set this information by itself. This will confuse the local event handlers and result in unexpected behaviour. On remote events the <em>event.application</em> is set by the event distribution mechanism.</p>
+<h3>Event Distribution Across Application Nodes (Cluster)</h3>
+<p>The (local) event admin is the service distributing events locally. The Sling Distributing Event Handler is a registered event handler that is listening for events to be distributed. It distributes the events to remote application notes, Sling's resource tree is used for distribution. The distributing event handler writes the events into the resource tree, the distributing event handlers on other application nodes get notified through observation and then distribute the read events locally.</p>
+<p>As mentioned above, the client sending an event has to mark an event to be distributed in a cluster by setting the <em>event.distribute</em> in the event properties (through <em>EventUtil</em>). This distribution mechanism has the advantage that the application nodes do not need to know each other and the distribution mechanism is independent from the used event admin implementation.</p>
+<h2>Sending Scheduled Events</h2>
+<p>Scheduled events are OSGi events that have been created by the environemnt. They are generated on each application node of the cluster through an own scheduler instance. Sending these events works the same as sending events based on JCR events (see above).</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[42/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/issue-tracker.html
----------------------------------------------------------------------
diff --git a/documentation/development/issue-tracker.html b/documentation/development/issue-tracker.html
new file mode 100644
index 0000000..ace0e04
--- /dev/null
+++ b/documentation/development/issue-tracker.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Issue Tracker</h1></header><p>Apache Sling uses Jira for tracking bug reports and requests for improvements, new features, and other changes.</p>
+<p>The issue tracker is available at <a href="https://issues.apache.org/jira/browse/SLING">https://issues.apache.org/jira/browse/SLING</a> and is readable by everyone. A Jira account is needed to create new issues and to comment on existing issues. Use the <a href="https://issues.apache.org/jira/secure/Signup!default.jspa">registration form</a> to request an account if you do not already have one.</p>
+<p>See below for guidelines on creating and managing issues.</p>
+<h2>Issue type</h2>
+<p>When creating a new issue, select the issue type based as follows:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Issue type </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><em>Bug</em> </td>
+      <td>Bug reports are used for cases where Sling fails not function as it should (as defined by some documentation). If you are not certain whether the issue you've found is actually a bug, please ask the <a href="/project-information.html#mailing-lists">Sling mailing lists</a> first for help. </td>
+    </tr>
+    <tr>
+      <td><em>New Feature</em> </td>
+      <td>Use a feature request when Sling does not have some functionality you need. </td>
+    </tr>
+    <tr>
+      <td><em>Improvement</em> </td>
+      <td>Use an improvement request to suggest improvements to existing features. Typical improvement requests are about updating documentation, increasing stability and performance, simplifying the implementation, or other such changes that make Sling better without introducing new features or fixing existing bugs. </td>
+    </tr>
+    <tr>
+      <td><em>Test</em> </td>
+      <td>Use this type when contributing test cases for existing features. Normally test cases should be contributed as a part of the original feature request or as regression tests associated with bug reports, but sometimes you just want to extend test coverage by introducing new test cases. This issue type is for such cases. </td>
+    </tr>
+    <tr>
+      <td><em>Task</em> </td>
+      <td>Used only for issues related to project infrastructure. </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Summary</h2>
+<p>The issue summary should be a short and clear statement that indicates the scope of the issue. You are probably being too verbose if you exceed the length of the text field. Use the Environment and Description fields to provide more detailed information.</p>
+<h2>Issue priority</h2>
+<p>Issue priority should be set according to the following:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Issue priority </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><em>Blocker</em> </td>
+      <td>Legal or other fundamental issue that makes it impossible to release Jackrabbit code </td>
+    </tr>
+    <tr>
+      <td><em>Critical</em> </td>
+      <td>Major loss of functionality that affects many Slingusers </td>
+    </tr>
+    <tr>
+      <td><em>Major</em> </td>
+      <td>Important issue that should be resolved soon </td>
+    </tr>
+    <tr>
+      <td><em>Minor</em> </td>
+      <td>Nice to have issues </td>
+    </tr>
+    <tr>
+      <td><em>Trivial</em> </td>
+      <td>Trivial changes that can be applied whenever someone has extra time </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Issue States</h2>
+<p>Sling issues can transition through a number of states while being processed:</p>
+<table>
+  <thead>
+    <tr>
+      <th>State </th>
+      <th>Description </th>
+      <th>Next States in Workflow </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><em>Open</em> </td>
+      <td>The issue has just been created </td>
+      <td><em>In Pogress</em> </td>
+    </tr>
+    <tr>
+      <td><em>In Progress</em> </td>
+      <td>Work has started on the issue </td>
+      <td><em>Documentation Required</em>, <em>Testcase Required</em>, <em>Documentation/Testcase required</em>, <em>Resolved</em>, <em>Open</em> </td>
+    </tr>
+    <tr>
+      <td><em>Documentation Required</em> </td>
+      <td>Implementation work has finished for this issue. To complete it documentation must be created and/or updated. </td>
+      <td><em>Resolved</em> </td>
+    </tr>
+    <tr>
+      <td><em>Testcase Required</em> </td>
+      <td>Implementation work has finished for this issue. To complete it test cases must be created and/or updated. </td>
+      <td><em>Resolved</em> </td>
+    </tr>
+    <tr>
+      <td><em>Documentation/Testcase Required</em> </td>
+      <td>Implementation work has finished for this issue. To complete it documentation and test cases must be created and/or updated. </td>
+      <td><em>Resolved</em>, <em>Documentation Required</em>, <em>Testcase Required</em> </td>
+    </tr>
+    <tr>
+      <td><em>Resolved</em> </td>
+      <td>The issue has been resolved from the developers point of view. Documentation and Testcases have been created and updated as required. Issue is ready for release. </td>
+      <td><em>Reopened</em>, <em>Closed</em> </td>
+    </tr>
+    <tr>
+      <td><em>Reopened</em> </td>
+      <td>A resolved issue has been recognized to contain bugs or to be incomplete and thus has been reopened. </td>
+      <td><em>In Progress</em>, <em>Resolved</em> </td>
+    </tr>
+  </tbody>
+</table>
+<p>| <em>Closed</em> | Work on this issue has finished and it is included in the release. | -- |</p>
+<p>Users generally create issues and provide feedback while work on the issue is in progress. When the developer thinks the issue has been resolved, he resolves the issue. At this point, the user may test the resolution and reopen the issue if it has not really be solved. Otherwise the user may just acknowledge the fix.</p>
+<p>Developers transition the issue through the workflow while working on it. When done with the issue, they mark the issue resolved with the appropriate resolution and ask the reporting user to confirm.</p>
+<p>Issues are closed once the project against which it has been reported has been released. Issues once closed cannot be opened again. Rather new issues should be created against the new release to have broken implementations fixed or extended.</p>
+<h2>Patches</h2>
+<p>When reporting a bug, requesting a feature or propose an improvement, it is a good thing to attach a patch to the issue. This may speed up issue processing and helps you being recognized as a good community member leading to closer involvement with Sling.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/jcr-mock.html
----------------------------------------------------------------------
diff --git a/documentation/development/jcr-mock.html b/documentation/development/jcr-mock.html
new file mode 100644
index 0000000..6bc7b9f
--- /dev/null
+++ b/documentation/development/jcr-mock.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>JCR Mocks</h1></header><p>Mock implementation of selected JCR APIs for easier testing. It stores all data in-memory in a HashMap to ensure instantly creating and destroying of the JCR repository.</p>
+<p>[TOC]</p>
+<h2>Maven Dependency</h2>
+<h1>!xml</h1>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.jcr-mock</artifactId> </dependency></p>
+<p>See latest version on the <a href="/downloads.cgi">downloads page</a>.</p>
+<h2>Implemented mock features</h2>
+<p>The mock implementation supports:</p>
+<ul>
+  <li>Reading and writing all data (primitive values, arrays, binary data) via the JCR API</li>
+  <li>Creating any number of nodes and properties (stored in-memory in a hash map)</li>
+  <li>Register namespaces</li>
+  <li>Queries are supported by setting expected results for a given query</li>
+</ul>
+<p>The following features are <em>not supported</em>:</p>
+<ul>
+  <li>Node types are supported in the API, but their definitions and constraints are not applied</li>
+  <li>Versioning not supported</li>
+  <li>Transactions not supported</li>
+  <li>Observation events can be registered but are ignored</li>
+  <li>Access control always grants access</li>
+  <li>Exporting/Importing data via document and system views not supported</li>
+  <li>Workspace management methods not supported</li>
+</ul>
+<h2>Usage</h2>
+<h3>Getting JCR mock objects</h3>
+<p>The factory class <code>MockJcr</code> allows to instantiate the different mock implementations.</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>// get session Session session = MockJcr.newSession();</p>
+<p>// get repository Repository repository = MockJcr.newRepository();</p>
+<p>The repository is empty and contains only the root node. You can use the JCR API to read or write content.</p>
+<h3>Mocking queries</h3>
+<p>If you want to test code that contains a JCR query you can simulate a query execution and set the result to return during setting up your unit test.</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>// prepare mocked search result List<Node> resultNodes = ImmutableList.of(node1, node2, node3);</p>
+<p>// return this result for all queries MockJcr.setQueryResult(session, resultNodes);</p>
+<p>// return this result for a specific query MockJcr.setQueryResult(session, "your query statement", Query.JCR_SQL2, resultNodes);</p>
+<p>Alternatively you can use the <code>MockJcr.addQueryResultHandler</code> method to pass a callback object that allows you to return a query result after inspecting the given query object.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/jspc.html
----------------------------------------------------------------------
diff --git a/documentation/development/jspc.html b/documentation/development/jspc.html
new file mode 100644
index 0000000..b4754d8
--- /dev/null
+++ b/documentation/development/jspc.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>HTL Maven Plugin</h1></header><p>See <a href="http://sling.apache.org/components/jspc-maven-plugin/">Apache Sling JspC Maven Plugin documentation</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/jsr-305.html
----------------------------------------------------------------------
diff --git a/documentation/development/jsr-305.html b/documentation/development/jsr-305.html
new file mode 100644
index 0000000..18e5c38
--- /dev/null
+++ b/documentation/development/jsr-305.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Leveraging JSR-305 null annotations to prevent NullPointerExceptions</h1></header><p>[TOC]</p>
+<h1>Introduction</h1>
+<p>The Sling API forces developers to sometimes check for <code>null</code> return values. Most prominently this is the case for <a href="https://sling.apache.org/apidocs/sling8/org/apache/sling/api/adapter/Adaptable.html#adaptTo-java.lang.Class-"><code>Adaptable.adaptTo</code></a> and <a href="https://sling.apache.org/apidocs/sling8/org/apache/sling/api/resource/ResourceResolver.html#getResource-java.lang.String-"><code>ResourceResolver.getResource</code></a>. This is often forgotten, which may lead to <code>NullPointerException</code>s. Sling API 2.9.0 introduced the JSR-305 annotations (<a href="https://issues.apache.org/jira/browse/SLING-4377">SLING-4377</a>) which allow tools to check automatically for missing null checks in the code.</p>
+<h1>Annotations</h1>
+<p>The annotations used within Sling are based on the <a href="https://jcp.org/en/jsr/detail?id=305">JSR-305</a> which is dormant since 2012. Nevertheless those annotations are understood by most of the tools and used by other Apache Projects like Apache Oak <a href="https://issues.apache.org/jira/browse/OAK-37">OAK-37</a>.</p>
+<p>Due to the fact that Eclipse and FindBugs are interpreting annotations differently (<a href="https://sourceforge.net/p/findbugs/bugs/1355/">Findbugs-1355</a>). Sling only uses the following two different annotations which are supported by both tools:</p>
+<ol>
+  <li><code>javax.annotation.CheckForNull</code></li>
+  <li><code>javax.annotation.Nonnull</code></li>
+</ol>
+<p>Annotations which support setting the default null semantics of return values and or parameters on a package level cannot be leveraged for that reason.</p>
+<p>The annotations have a retention policy of <code>runtime</code>, therefore bundles using these automatically have a <code>Import-Package</code> header listing <code>javax.annotation</code>. That package is by default exported by the system bundle (as this package is also part of the <a href="https://docs.oracle.com/javase/7/docs/api/javax/annotation/package-summary.html">JRE</a>). To be able to resolve the bundle through this exported package from the system bundle you should use the <code>com.google.code.findbugs:jsr305</code> artifact in version 3.0.0 as that exports the package <code>javax.annotation</code> in no specific version. Newer versions use version directives which automatically restrict the version range for the generated <code>Import-Package</code> header to <code>[3,4)</code> <a href="https://github.com/amaembo/jsr-305/issues/31">which usually cannot be resolved at run time</a>.</p>
+<h1>Use With Eclipse</h1>
+<p>Eclipse since Juno supports <a href="http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler%2Fref-preferences-errors-warnings.htm&anchor=null_analysis">null analysis based on any annotations</a>. Those need to be enabled in <em>Preferences-&gt;Java-&gt;Compiler-&gt;Errors/Warnings</em> via <strong>Enable annoation-based null analysis</strong>. Also the annotations need to be configured. For Sling/JSR 305 those are</p>
+<ul>
+  <li><code>javax.annotation.CheckForNull</code> as <strong>'Nullable' annotation</strong> (primary annotation)</li>
+  <li><code>javax.annotation.Nonnull</code> as <strong>'NonNull' annotation</strong> (primary annotation)</li>
+</ul>
+<p><img src="eclipse-settings-null-analysis.png" alt="Eclipse Settings for Null analysis" /></p>
+<p>Unfortunately Eclipse cannot infer information about fields which are for sure either null or not null (reasoning is available in <a href="https://wiki.eclipse.org/JDT_Core/Null_Analysis/Options#Risks_of_flow_analysis_for_fields">https://wiki.eclipse.org/JDT_Core/Null_Analysis/Options#Risks_of_flow_analysis_for_fields</a> and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=247564">Eclipse Bug 247564</a>). This also affecs constants (static final fields) or enums which are known to be non null, but still Eclipse will emit a warning like <em>The expression of type 'String' needs unchecked conversion to conform to '@Nonnull String'</em>. The only known workaround is to disable the <strong>"Unchecked conversion from non-annotated type to @NonNull type"</strong> or to annotate also the field with <code>@Nonnull</code>.</p>
+<p>More information are available at <a href="https://wiki.eclipse.org/JDT_Core/Null_Analysis">https://wiki.eclipse.org/JDT_Core/Null_Analysis</a>.</p>
+<p>Since Eclipse 4.5 (Mars) <strong>external annotations</strong> are supported as well (i.e. annotations maintained outside of the source code of the libraries, e.g. for the JRE, Apache Commons Lang). There are some external annotations being mainted at <a href="http://www.lastnpe.org/">lastnpe.org</a> and <a href="https://github.com/tracecompass/tracecompass/tree/master/common/org.eclipse.tracecompass.common.core/annotations">TraceCompass</a>. There is no official repository yet though (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=449653">Eclipse Bug 449653</a>). <a href="http://www.lastnpe.org/">Lastnpe.org</a> provides also an m2e extension to ease setting up the classpaths with external annotations from within your pom.xml.</p>
+<h1>Use With Maven</h1>
+<h2>Leveraging Eclipse JDT Compiler (recommended)</h2>
+<p>You can use Eclipse JDT also in Maven (with null analysis enabled) for the regular compilation. That way it will give out the same warnings/errors as Eclipse and will also consider external annotations. JDT in its most recent version is provided by the <code>tycho-compiler-plugin</code> which can be hooked up with the <code>maven-compiler-plugin</code>. The full list of options for JDT is described in <a href="http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-using_batch_compiler.htm">here</a>. This method was presented by Michael Vorburger in his presentation <a href="https://www.slideshare.net/mikervorburger/the-end-of-the-world-as-we-know-it-aka-your-last-nullpointerexception-1b-bugs/14">The end of the world as we know it</a>.</p>
+<p>::xml <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> <showWarnings>true</showWarnings> <compilerId>jdt</compilerId> <compilerArguments> <!-- just take the full Maven classpath as external annotations --> <annotationpath>CLASSPATH</annotationpath> </compilerArguments> <!-- maintain the org.eclipse.jdt.core.prefs properties to options listed on
+http://help.eclipse.org/neon/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/task-using_batch_compiler.htm --> <compilerArgument>-err:nullAnnot,null,-missingNullDefault</compilerArgument> </configuration> <dependencies> <dependency> <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-compiler-jdt</artifactId> <version>1.0.0</version> </dependency> </dependencies> </plugin></p>
+<h2>Leveraging FindBugs</h2>
+<p>You can also let Maven automatically run FindBugs to execute those checks via the <strong>findbugs-maven-plugin</strong>. For that just add the following plugin to your <code>pom.xml</code></p>
+<p>::xml <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>findbugs-maven-plugin</artifactId> <version>3.0.0</version> <configuration> <visitors>InconsistentAnnotations,NoteUnconditionalParamDerefs,FindNullDeref,FindNullDerefsInvolvingNonShortCircuitEvaluation</visitors> </configuration> <executions> <execution> <id>run-findbugs-fornullchecks</id> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin></p>
+<p>The results are often very imprecise (<a href="http://jira.codehaus.org/browse/MFINDBUGS-208">MFINDBUGS-208</a>), especially when it comes to line numbers, therefore it is best to start the Findbugs GUI in case of errors found by this plugin via <code>mvn findbugs:gui</code>.</p>
+<h1>Use With FindBugs</h1>
+<p>FindBugs evaluates the JSR-305 annotations by default. You can restrict the rules to only the ones which check for those annotations, which are</p>
+<ul>
+  <li>InconsistentAnnotations</li>
+  <li>NoteUnconditionalParamDerefs</li>
+  <li>FindNullDeref</li>
+  <li>FindNullDerefsInvolvingNonShortCircuitEvaluation</li>
+</ul>
+<p>A complete list of visitors class names in Findbugs can be found in the <a href="https://code.google.com/p/findbugs/source/browse/#git%2Ffindbugs%2Fsrc%2Fjava%2Fedu%2Fumd%2Fcs%2Ffindbugs%2Fdetect%253Fstate%253Dclosed">sourcecode</a>. The according <a href="http://findbugs.sourceforge.net/bugDescriptions.html">bug patterns</a> have an identifier (in parenthesis) for which you can search in the according Java classes, in case you want to extend the checks.</p>
+<p>Findbugs is also integrated in <a href="http://docs.sonarqube.org/display/SONAR/Findbugs+Plugin">SonarQube</a> but for SonarQube you should now rather use the native Java plugin (look at <a href="#use-with-sonarqube">Use with SonarQube</a>).</p>
+<h1>Use with SonarQube</h1>
+<p>At least rule <a href="https://sonarqube.com/coding_rules#rule_key=squid%3AS2259">squid:S2259</a> in SonarQube supports JSR-305 annotations as well for null checks.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/logging.html
----------------------------------------------------------------------
diff --git a/documentation/development/logging.html b/documentation/development/logging.html
new file mode 100644
index 0000000..6b87cbf
--- /dev/null
+++ b/documentation/development/logging.html
@@ -0,0 +1,392 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Logging</h1></header><div class="note">
+This document is for the new (November 2013) 4.x release of the Sling Commons Log components. Refer to
+<a href="http://sling.apache.org/documentation/legacy/logging.html">Logging 3.x</a> for older versions.
+</div>
+<p>[TOC]</p>
+<h2>Introduction</h2>
+<p>Logging in Sling is supported by the <code>org.apache.sling.commons.log</code> bundle, which is one of the first bundles installed and started by the Sling Launcher. This bundle along with other bundles manages the Sling Logging and provides the following features:</p>
+<ul>
+  <li>Implements the OSGi Log Service Specification and registers the <code>LogService</code> and <code>LogReader</code> services</li>
+  <li>Exports three commonly used logging APIs:</li>
+  <li><a href="http://www.slf4j.org">Simple Logging Facade for Java (SLF4J)</a></li>
+  <li><a href="http://jakarta.apache.org/commons/logging">Apache Commons Logging</a></li>
+  <li><a href="http://logging.apache.org/log4j/index.html">log4j</a></li>
+  <li><a href="http://download.oracle.com/javase/6/docs/api/java/util/logging/package-summary.html">java.util.logging</a></li>
+  <li>Configures logging through Logback which is integrated with the OSGi environment</li>
+  <li>Allows logging to be configured both via editing Logback xml or via OSGi Configurations</li>
+</ul>
+<h3>v5.0.0 release</h3>
+<p>With Sling Log 5.0.0. release the webconsole support has been moved to a different bundle named Sling Commons Log WebConsole (org.apache.sling.commons.log.webconsole:1.0.0)</p>
+<p>Also with this release Logback 1.1.7 version is embedded and thus it requires slf4j-api:1.7.15. See <a href="https://issues.apache.org/jira/browse/SLING-6144">SLING-6144</a> for details</p>
+<h2>WebConsole Plugin</h2>
+<p>The Web Console Plugin supports the following features:</p>
+<ul>
+  <li>Display the list of loggers which have levels or appenders configured.</li>
+  <li>List the file appenders with the location of current active log files.</li>
+  <li>Show the contents of LogBack config files.</li>
+  <li>Show the contents of various Logback config fragments.</li>
+  <li>Show Logback Status logs.</li>
+  <li>Inline edit the Logger setting</li>
+  <li>Configure Logger with content assist for logger names</li>
+  <li>Provides links to log file content allows log file content to be viewed from Web UI</li>
+</ul>
+<img src="sling-log-support.png" />
+<h2>WebTail</h2>
+<p>The Web Console Plugin also supports tailing of the current active log files. It generates link to all active log files which can be used to see there content from within the browser. The url used is like</p>
+<p><code>
+http://localhost:8080/system/console/slinglog/tailer.txt?tail=1000&amp;grep=lucene&amp;name=%2Flogs%2Ferror.log
+</code></p>
+<p>It supports following parameters</p>
+<ul>
+  <li><code>name</code> - Appender name like <em>/logs/error.log</em></li>
+  <li><code>tail</code> - Number of lines to include in dump. -1 to include whole file</li>
+  <li><code>grep</code> - Filter the log lines based on <code>grep</code> value which can be</li>
+  <li>Simple string phrase - In this case search is done in case insensitive way via String.contains</li>
+  <li>regex - In this case the search would be done via regex pattern matching</li>
+</ul>
+<h2>Initial Configuration</h2>
+<p>The <code>org.apache.sling.commons.log</code> bundle gets its initial configuration from the following <code>BundleContext</code> properties:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>org.apache.sling.commons.log.level</code> </td>
+      <td><code>INFO</code> </td>
+      <td>Sets the initial logging level of the root logger. This may be any of the defined logging levels <code>DEBUG</code>, <code>INFO</code>, <code>WARN</code>, <code>ERROR</code> and <code>FATAL</code>. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file</code> </td>
+      <td>undefined </td>
+      <td>Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to <code>System.out</code>. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file.number</code> </td>
+      <td>5 </td>
+      <td>The number of rotated files to keep. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file.size</code> </td>
+      <td>'.'yyyy-MM-dd </td>
+      <td>Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section <em>Log File Rotation</em> below for full details on log file rotation. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.pattern</code> </td>
+      <td>{0,date,dd.MM.yyyy HH:mm:ss.SSS} <em>{4}</em> [{2}]({{ refs.-2.path }}) {3} {5} </td>
+      <td>The <code>MessageFormat</code> pattern to use for formatting log messages with the root logger. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.julenabled</code> </td>
+      <td>n/a </td>
+      <td>Enables the <code>java.util.logging</code> support. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.configurationFile</code> </td>
+      <td>n/a </td>
+      <td>Path for the Logback config file which would be used to configure logging. If the path is not absolute then it would be resolved against Sling Home </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.packagingDataEnabled</code> </td>
+      <td>true </td>
+      <td>Boolean property to control packaging data support of Logback. See <a href="http://www.slf4j.org/manual.html#mdc">Packaging Data</a> section of Logback for more details </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.numOfLines</code> </td>
+      <td>1000 </td>
+      <td>Number of lines from each log files to include while generating the dump in 'txt' mode. If set to -1 then whole file would be included </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.maxOldFileCountInDump</code> </td>
+      <td>3 </td>
+      <td>Maximum number of old rolled over files for each active file to be included while generating the dump as part of Status zip support </td>
+    </tr>
+    <tr>
+      <td><code>sling.log.root</code> </td>
+      <td>Sling Home </td>
+      <td>The directory, which is used to resolve relative path names against. If not specified it would map to sling.home. Since <a href="https://issues.apache.org/jira/browse/SLING-4225">4.0.2</a></td>
+    </tr>
+  </tbody>
+</table>
+<h2>User Configuration - OSGi Based</h2>
+<p>User Configuration after initial configuration is provided by the Configuration Admin Service. To this avail two <code>org.osgi.services.cm.ManagedServiceFactory</code> services are registered under the PIDs <code>org.apache.sling.commons.log.LogManager.factory.writer</code> and <code>org.apache.sling.commons.log.LogManager.factory.config</code> to receive configurations.</p>
+<h3>Logger Configuration</h3>
+<p>Loggers (or Categories) can be configured to log to specific files at specific levels using configurable patterns. To this avail factory configuration instances with factory PID <code>org.apache.sling.commons.log.LogManager.factory.config</code> may be created and configured with the Configuration Admin Service.</p>
+<p>The following properties may be set:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Type </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>org.apache.sling.commons.log.level</code> </td>
+      <td><code>String</code> </td>
+      <td><code>INFO</code> </td>
+      <td>Sets the logging level of the loggers. This may be any of the defined logging levels <code>DEBUG</code>, <code>INFO</code>, <code>WARN</code>, <code>ERROR</code> and <code>FATAL</code>. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file</code> </td>
+      <td><code>String</code> </td>
+      <td>undefined </td>
+      <td>Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to <code>System.out</code>. This property should refer to the file name of a configured Log Writer (see below). If no Log Writer is configured with the same file name an implicit Log Writer configuration with default configuration is created. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.pattern</code> </td>
+      <td><code>String</code> </td>
+      <td>{0,date,dd.MM.yyyy HH:mm:ss.SSS} <em>{4}</em> [{2}]({{ refs.-2.path }}) {3} {5} </td>
+      <td>The <code>java.util.MessageFormat</code> pattern to use for formatting log messages with the root logger. This is a <code>java.util.MessageFormat</code> pattern supporting up to six arguments: {0} The timestamp of type <code>java.util.Date</code>, {1} the log marker, {2} the name of the current thread, {3} the name of the logger, {4} the log level and {5} the actual log message. If the log call includes a Throwable, the stacktrace is just appended to the message regardless of the pattern. </td>
+    </tr>
+  </tbody>
+</table>
+<p>| <code>org.apache.sling.commons.log.names</code> | <code>String[]</code> | -- | A list of logger names to which this configuration applies. | | <code>org.apache.sling.commons.log.additiv</code> | <code>Boolean</code> | false | If set to false then logs from these loggers would not be sent to any appender attached higher in the hierarchy |</p>
+<p>Note that multiple Logger Configurations may refer to the same Log Writer Configuration. If no Log Writer Configuration exists whose file name matches the file name set on the Logger Configuration an implicit Log Writer Configuration with default setup (daily log rotation) is internally created. While the log level configuration is case insensitive, it is suggested to always use upper case letters.</p>
+<h3>Log Writer Configuration</h3>
+<p>Log Writer Configuration is used to setup file output and log file rotation characteristics for log writers used by the Loggers.</p>
+<p>The following properties may be set:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file</code> </td>
+      <td>undefined </td>
+      <td>Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to <code>System.out</code>. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file.number</code> </td>
+      <td>5 </td>
+      <td>The number of rotated files to keep. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file.size</code> </td>
+      <td>'.'yyyy-MM-dd </td>
+      <td>Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section <em>Log File Rotation</em> below for full details on log file rotation. </td>
+    </tr>
+  </tbody>
+</table>
+<p>See the section <em>Log File Rotation</em> below for full details on the <code>org.apache.sling.commons.log.file.size</code> and <code>org.apache.sling.commons.log.file.number</code> properties.</p>
+<h4>Log File Rotation</h4>
+<p>Log files can grow rather quickly and fill up available disk space. To cope with this growth log files may be rotated in two ways: At specific times or when the log file reaches a configurable size. The first method is called <em>Scheduled Rotation</em> and is used by specifying a <code>SimpleDateFormat</code> pattern as the log file "size". The second method is called <em>Size Rotation</em> and is used by setting a maximum file size as the log file size.</p>
+<p>As of version 2.0.6 of the Sling Commons Log bundle, the default value for log file scheduling is <code>&#39;.&#39;yyyy-MM-dd</code> causing daily log rotation. In previous version, log rotation defaults to a 10MB file size limit.</p>
+<h5>Scheduled Rotation</h5>
+<p>The rolling schedule is specified by setting the <code>org.apache.sling.commons.log.file.size</code> property to a <code>java.text.SimpleDateFormat</code> pattern. Literal text (such as a leading dot) to be included must be <em>enclosed</em> within a pair of single quotes. A formatted version of the date pattern is used as the suffix for the rolled file name. Internally the Log bundle configures a <code>TimeBasedRollingPolicy</code> for the appender. Refer to <a href="http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy">TimeBasedRollingPolicy</a> for more details around the pattern format</p>
+<p>For example, if the log file is configured as <code>/foo/bar.log</code> and the pattern set to <code>&#39;.&#39;yyyy-MM-dd</code>, on 2001-02-16 at midnight, the logging file <code>/foo/bar.log</code> will be renamed to <code>/foo/bar.log.2001-02-16</code> and logging for 2001-02-17 will continue in a new <code>/foo/bar.log</code> file until it rolls over the next day.</p>
+<p>It is possible to specify monthly, weekly, half-daily, daily, hourly, or minutely rollover schedules.</p>
+<table>
+  <thead>
+    <tr>
+      <th>DatePattern </th>
+      <th>Rollover schedule </th>
+      <th>Example </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-MM</code> </td>
+      <td>Rollover at the beginning of each month </td>
+      <td>At midnight of May 31st, 2002 <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-05</code>. Logging for the month of June will be output to <code>/foo/bar.log</code> until it is also rolled over the next month. </td>
+    </tr>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-ww</code> </td>
+      <td>Rollover at the first day of each week. The first day of the week depends on the locale. </td>
+      <td>Assuming the first day of the week is Sunday, on Saturday midnight, June 9th 2002, the file <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-23</code>. Logging for the 24th week of 2002 will be output to <code>/foo/bar.log</code> until it is rolled over the next week. </td>
+    </tr>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-MM-dd</code> </td>
+      <td>Rollover at midnight each day.</td>
+      <td>At midnight, on March 8th, 2002, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-03-08</code>. Logging for the 9th day of March will be output to <code>/foo/bar.log</code> until it is rolled over the next day.</td>
+    </tr>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-MM-dd-a</code> </td>
+      <td>Rollover at midnight and midday of each day.</td>
+      <td>at noon, on March 9th, 2002, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-03-09-AM</code>. Logging for the afternoon of the 9th will be output to <code>/foo/bar.log</code> until it is rolled over at midnight.</td>
+    </tr>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-MM-dd-HH</code> </td>
+      <td>Rollover at the top of every hour.</td>
+      <td>At approximately 11:00.000 o'clock on March 9th, 2002, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2002-03-09-10</code>. Logging for the 11th hour of the 9th of March will be output to <code>/foo/bar.log</code> until it is rolled over at the beginning of the next hour.</td>
+    </tr>
+    <tr>
+      <td><code>&#39;.&#39;yyyy-MM-dd-HH-mm</code> </td>
+      <td>Rollover at the beginning of every minute.</td>
+      <td>At approximately 11:23,000, on March 9th, 2001, <code>/foo/bar.log</code> will be copied to <code>/foo/bar.log.2001-03-09-10-22</code>. Logging for the minute of 11:23 (9th of March) will be output to <code>/foo/bar.log</code> until it is rolled over the next minute.</td>
+    </tr>
+  </tbody>
+</table>
+<p>Do not use the colon ":" character in anywhere in the pattern option. The text before the colon is interpreted as the protocol specification of a URL which is probably not what you want.</p>
+<p>Note that Scheduled Rotation ignores the <code>org.apache.sling.commons.log.file.number</code> property since the old log files are not numbered but "dated".</p>
+<h5>Size Rotation</h5>
+<p>Log file rotation by size is specified by setting the <code>org.apache.sling.commons.log.file.size</code> property to a plain number or a number plus a size multiplier. The size multiplier may be any of <code>K</code>, <code>KB</code>, <code>M</code>, <code>MB</code>, <code>G</code>, or <code>GB</code> where the case is ignored and the meaning is probably obvious.</p>
+<p>When using Size Rotation, the <code>org.apache.sling.commons.log.file.number</code> defines the number of old log file generations to keep. For example to keep 5 old log files indexed by 0 through 4, set the <code>org.apache.sling.commons.log.file.number</code> to <code>5</code> (which happens to be the default).</p>
+<h2>Logback Integration</h2>
+<p>Logback integration provides following features</p>
+<ul>
+  <li>LogBack configuration can be provided via Logback config xml</li>
+  <li>Supports Appenders registered as OSGi Services</li>
+  <li>Supports Filters and TurboFilters registered as OSGi Services</li>
+  <li>Support providing Logback configuration as fragments through OSGi Service Registry</li>
+  <li>Support for referring to Appenders registered as OSGi services from with Logback config</li>
+  <li>Exposes Logback runtime state through the Felix WebConsole Plugin</li>
+</ul>
+<p>The following sections provide more details.</p>
+<h3>TurboFilters as OSGi Services</h3>
+<p><a href="http://logback.qos.ch/manual/filters.html#TurboFilter">Logback TurboFilters</a> operate globally and are invoked for every Logback call. To register an OSGi <code>TurboFilter</code>, just to register an service that implements the <code>ch.qos.logback.classic.turbo.TurboFilter</code> interface.</p>
+<p>:::java import import ch.qos.logback.classic.turbo.MatchingFilter;</p>
+<p>SimpleTurboFilter stf = new SimpleTurboFilter(); ServiceRegistration sr = bundleContext.registerService(TurboFilter.class.getName(), stf, null);</p>
+<p>private static class SimpleTurboFilter extends MatchingFilter { @Override public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable t) { if(logger.getName().equals("turbofilter.foo.bar")){ return FilterReply.DENY; } return FilterReply.NEUTRAL; } }</p>
+<p>As these filters are invoked for every call they must execute quickly.</p>
+<h3>Filters as OSGi services</h3>
+<p><a href="http://logback.qos.ch/manual/filters.html">Logback Filters</a> are attached to appenders and are used to determine if any LoggingEvent needs to be passed to the appender. When registering a filter the bundle needs to configure a service property <code>appenders</code> which refers to list of appender names to which the Filter must be attached</p>
+<p>:::java import ch.qos.logback.core.filter.Filter;</p>
+<p>SimpleFilter stf = new SimpleFilter(); Dictionary&lt;String, Object&gt; props = new Hashtable&lt;String, Object&gt;(); props.put("appenders", "TestAppender"); ServiceRegistration sr = bundleContext.registerService(Filter.class.getName(), stf, props);</p>
+<p>private static class SimpleFilter extends Filter<ILoggingEvent> {</p>
+<p>@Override public FilterReply decide(ILoggingEvent event) { if(event.getLoggerName().equals("filter.foo.bar")){ return FilterReply.DENY; } return FilterReply.NEUTRAL; } }</p>
+<p>If the <code>appenders</code> value is set to <code>*</code> then the filter would be registered with all the appenders (<code>Since 4.0.4</code>)</p>
+<h3>Appenders as OSGi services</h3>
+<p><a href="http://logback.qos.ch/manual/appenders.html">Logback Appenders</a> handle the logging events produced by Logback. To register an OSGi <code>Appender</code>, just register a service that implements the <code>ch.qos.logback.core.Appender</code> interface. Such a service must have a <code>loggers</code> service property, which refers to list of logger names to which the Appender must be attached.</p>
+<p>:::java Dictionary&lt;String,Object&gt; props = new Hashtable&lt;String, Object&gt;();</p>
+<p>String[] loggers = { "foo.bar:DEBUG", "foo.bar.zoo:INFO", };</p>
+<p>props.put("loggers",loggers); sr = bundleContext.registerService(Appender.class.getName(),this,props);</p>
+<h3>Logback Config Fragment Support</h3>
+<p>Logback supports including parts of a configuration file from another file (See <a href="http://logback.qos.ch/manual/configuration.html#fileInclusion">File Inclusion</a>). This module extends that support by allowing other bundles to provide config fragments. There are two ways to achieve that, described below.</p>
+<h4>Logback config fragments as String objects</h4>
+<p>If you have the config as string then you can register that String instance as a service with property <code>logbackConfig</code> set to true. The Sling Logback Extension monitors such objects and passes them to logback.</p>
+<p>:::java Properties props = new Properties(); props.setProperty("logbackConfig","true");</p>
+<p>String config = "<included>n" + " <appender name="FOOFILE" class="ch.qos.logback.core.FileAppender">n" + " <file>${sling.home}/logs/foo.log</file>n" + " <encoder>n" + " <pattern>%d %-5level %logger{35} - %msg %n</pattern>n" + " </encoder>n" + " </appender>n" + "n" + " <logger name="foo.bar.include" level="INFO">n" + " <appender-ref ref="FOOFILE" />n" + " </logger>n" + "n" + "</included>";</p>
+<p>registration = context.registerService(String.class.getName(),config,props);</p>
+<p>If the config needs to be updated just re-register the service so that changes are picked up.</p>
+<h4>Logback config fragments as ConfigProvider instances</h4>
+<p>Another way to provide config fragments is with services that implement the <code>org.apache.sling.commons.log.logback.ConfigProvider</code> interface.</p>
+<p>:::java @Component @Service public class ConfigProviderExample implements ConfigProvider { public InputSource getConfigSource() { return new InputSource(getClass().getClassLoader().getResourceAsStream("foo-config.xml")); } }</p>
+<p>If the config changes then sending an OSGi event with the <code>org/apache/sling/commons/log/RESET</code> topic resets the Logback runtime.</p>
+<p>:::java eventAdmin.sendEvent(new Event("org/apache/sling/commons/log/RESET",new Properties()));</p>
+<h3>External Config File</h3>
+<p>Logback can be configured with an external file. The file name can be specified through</p>
+<ol>
+  <li>OSGi config - Look for a config with name <code>Apache Sling Logging Configuration</code> and specify the config file path.</li>
+  <li>OSGi Framework Properties - Logback support also looks for a file named according to the OSGi framwork <code>org.apache.sling.commons.log.configurationFile</code> property.</li>
+</ol>
+<p>If you are providing an external config file then to support OSGi integration you need to add following action entry:</p>
+<p>:::xml <newRule pattern="*/configuration/osgi"
+actionClass="org.apache.sling.commons.log.logback.OsgiAction"/> <newRule pattern="*/configuration/appender-ref-osgi"
+actionClass="org.apache.sling.commons.log.logback.OsgiAppenderRefAction"/> <osgi/></p>
+<p>The <code>osgi</code> element enables the OSGi integration support</p>
+<h3>Java Util Logging (JUL) Integration</h3>
+<p>The bundle also support <a href="http://www.slf4j.org/api/org/slf4j/bridge/SLF4JBridgeHandler.html">SLF4JBridgeHandler</a>. The two steps listed below enable the JUL integration. This allows for routing logging messages from JUL to the Logbback appenders.</p>
+<ol>
+  <li>Set the <code>org.apache.sling.commons.log.julenabled</code> framework property to true.</li>
+</ol>
+<p>If <code>org.apache.sling.commons.log.julenabled</code> is found to be true then <a href="http://logback.qos.ch/manual/configuration.html#LevelChangePropagator">LevelChangePropagator</a> would be registered automatically with Logback</p>
+<h3><a name="config-override"></a>Configuring OSGi appenders in the Logback Config</h3>
+<p>So far Sling used to configure the appenders based on OSGi config. This provides a very limited set of configuration options. To make use of other Logback features you can override the OSGi config from within the Logback config file. OSGi config based appenders are named based on the file name.</p>
+<p>For example, for the following OSGi config</p>
+<p>org.apache.sling.commons.log.file="logs/error.log" org.apache.sling.commons.log.level="INFO" org.apache.sling.commons.log.file.size="'.'yyyy-MM-dd" org.apache.sling.commons.log.file.number=I"7" org.apache.sling.commons.log.pattern="{0,date,dd.MM.yyyy HH:mm:ss.SSS} <em>{4}</em> [{2}] {3} {5}"</p>
+<p>The Logback appender would be named <code>logs/error.log</code>. To extend/override the config in a Logback config create an appender with the name <code>logs/error.log</code>:</p>
+<p>:::xml <appender name="/logs/error.log" class="ch.qos.logback.core.FileAppender"> <file>${sling.home}/logs/error.log</file> <encoder> <pattern>%d %-5level %X{sling.userId:-NA} [%thread] %logger{30} %marker- %msg %n</pattern> <immediateFlush>true</immediateFlush> </encoder> </appender></p>
+<p>In this case the logging module creates an appender based on the Logback config instead of the OSGi config. This can be used to move the application from OSGi based configs to Logback based configs.</p>
+<h2>Using Slf4j API 1.7</h2>
+<p>With Slf4j API 1.7 onwards its possible to use logger methods with varargs i.e. log n arguments without constructing an object array e.g. <code>log.info(&quot;This is a test {} , {}, {}, {}&quot;,1,2,3,4)</code>. Without var args you need to construct an object array <code>log.info(&quot;This is a test {} , {}, {}, {}&quot;,new Object[] {1,2,3,4})</code>. To make use of this API and still be able to use your bundle on Sling systems which package older version of the API jar, follow the below steps. (See <a href="https://issues.apache.org/jira/browse/SLING-3243">SLING-3243</a>) for more details.</p>
+<ol>
+  <li>Update the api version in the pom:</li>
+</ol>
+<p>:::xml <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> <scope>provided</scope> </dependency> ... </dependency></p>
+<ol>
+  <li>Add an <code>Import-Package</code> instruction with a custom version range:</li>
+</ol>
+<p>:::xml <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> ... <Import-Package> org.slf4j;version="[1.5,2)", * </Import-Package> </instructions> </configuration> </plugin> ... </plugins> </build></p>
+<p>The Slf4j API bundle 1.7.x is binary compatible with 1.6.x.</p>
+<p>This setup allows your bundles to make use of the var args feature while making logging calls, but the bundles can still be deployed on older systems which provide only the 1.6.4 version of the slf4j api.</p>
+<h2>Log Tracer</h2>
+<p>Log Tracer provides support for enabling the logs for specific category at specific level and only for specific request. It provides a very fine level of control via config provided as part of HTTP request around how the logging should be performed for given category.</p>
+<p>Refer to <a href="/documentation/bundles/log-tracers.html">Log Tracer Doc</a> for more details</p>
+<h2>Slf4j MDC</h2>
+<p>Sling MDC Inserting Filter exposes various request details as part of <a href="http://www.slf4j.org/manual.html#mdc">MDC</a>.</p>
+<p>Currently it exposes following variables:</p>
+<ol>
+  <li><code>req.remoteHost</code> - Request remote host</li>
+  <li><code>req.userAgent</code> - User Agent Header</li>
+  <li><code>req.requestURI</code> - Request URI</li>
+  <li><code>req.queryString</code> - Query String from request</li>
+  <li><code>req.requestURL</code> -</li>
+  <li><code>req.xForwardedFor</code> -</li>
+  <li><code>sling.userId</code> - UserID associated with the request. Obtained from ResourceResolver</li>
+  <li><code>jcr.sessionId</code> - Session ID of the JCR Session associated with current request.</li>
+</ol>
+<p>The filter also allow configuration to extract data from request cookie, header and parameters. Look for configuration with name 'Apache Sling Logging MDC Inserting Filter' for details on specifying header, cookie, param names.</p>
+<p><img src="/documentation/bundles/mdc-filter-config.png" alt="MDC Filter Config" /></p>
+<a name="mdc-pattern">
+<h3>Including MDC in Log Message</h3>
+<p>To include the MDC value in log message you MUST use the <a href="http://logback.qos.ch/manual/layouts.html#conversionWord">Logback pattern</a> based on Logback and not the old MessageFormat based pattern.</p>
+<p>%d{dd.MM.yyyy HH:mm:ss.SSS} <em>%p</em> [%X{req.remoteHost}] [%t] %c %msg%n</p>
+<h3>Installation</h3>
+<p>Download the bundle from <a href="http://sling.apache.org/downloads.cgi">here</a> or use following Maven dependency</p>
+<p>::xml <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.extensions.slf4j.mdc</artifactId> <version>1.0.0</version> </dependency></p>
+<h2>Logback Groovy Fragment</h2>
+<p>This fragment is required to make use of Groovy based event evaluation support provided by Logback. This enables programatic filtering of the log messages and is useful to get desired logs without flooding the system. For example Oak logs the JCR operations being performed via a particular session. if this lo is enabled it would flood the log with messages from all the active session. However if you need logging only from session created in a particular thread then that can be done in following way</p>
+<p>::xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; <configuration scan="true" scanPeriod="1 second"> <jmxConfigurator/> <newRule pattern="*/configuration/osgi" actionClass="org.apache.sling.commons.log.logback.OsgiAction"/> <newRule pattern="*/configuration/appender-ref-osgi" actionClass="org.apache.sling.commons.log.logback.OsgiAppenderRefAction"/> <osgi/></p>
+<p><appender name="OAK" class="ch.qos.logback.core.FileAppender"> <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator"> <expression>&lt;![CDATA[ return e.getThreadName().contains("JobHandler"); ]]&gt;</expression> </evaluator> <OnMismatch>DENY</OnMismatch> <OnMatch>ACCEPT</OnMatch> </filter> <file>${sling.home}/logs/oak.log</file> <encoder> <pattern>%d %-5level [%thread] %marker- %msg %n</pattern> <immediateFlush>true</immediateFlush> </encoder> </appender></p>
+<p><logger name="org.apache.jackrabbit.oak.jcr.operations" level="DEBUG" additivity="false"> <appender-ref ref="OAK"/> </logger> </configuration></p>
+<p>Logback exposes a variable <code>e</code> which is of type <a href="http://logback.qos.ch/apidocs/ch/qos/logback/classic/spi/ILoggingEvent.html">ILoggingEvent</a>. It provides access to current logging event. Above logback config would route all log messages from <code>org.apache.jackrabbit.oak.jcr.operations</code> category to <code>${sling.home}/logs/oak.log</code>. Further only those log messages would be logged where the <code>threadName</code> contains <code>JobHandler</code>. Depending on the requirement the expression can be customised.</p>
+<h3>Installation</h3>
+<p>Currently the bundle is not released and has to be build from <a href="http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/logback-groovy-fragment/">here</a></p>
+<p>::xml <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.extensions.logback-groovy-fragment</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency></p>
+<h2>FAQ</h2>
+<h5>Q. Can Sling Commons Log bundle be used in non Sling environments</h5>
+<p>This bundle does not depend on any other Sling bundle and can be easily used in any OSGi framework. To get complete log support working you need to deploy following bundles</p>
+<ul>
+  <li>Slf4j-Api - org.slf4j:slf4j-api</li>
+  <li>Jcl over Slf4j - org.slf4j:jcl-over-slf4j</li>
+  <li>Log4j over Slf4j - org.slf4j:log4j-over-slf4j</li>
+  <li>Sling Log Service - org.apache.sling:org.apache.sling.commons.logservice:1.0.2</li>
+  <li>Sling Commons Log - org.apache.sling:org.apache.sling.commons.log:4.0.0 or above</li>
+  <li>Sling Log WebConsole - org.apache.sling.commons.log.webconsole:1.0.0 or above</li>
+</ul>
+<h5>Q. How to start Sling with an external logback.xml file</h5>
+<p>You need to specify the location of logback.xml via <code>org.apache.sling.commons.log.configurationFile</code></p>
+<p>java -jar org.apache.sling.launchpad-XXX-standalone.jar -Dorg.apache.sling.commons.log.configurationFile=/path/to/logback</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/maven-archetypes.html
----------------------------------------------------------------------
diff --git a/documentation/development/maven-archetypes.html b/documentation/development/maven-archetypes.html
new file mode 100644
index 0000000..c647576
--- /dev/null
+++ b/documentation/development/maven-archetypes.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Maven Archetypes</h1></header><p>translation_pending: true</p>
+<p>Sling includes four Maven archetypes to quick start development. See <a href="http://maven.apache.org/archetype/maven-archetype-plugin/">http://maven.apache.org/archetype/maven-archetype-plugin/</a> for general information on using Maven archetypes. The Maven groupId for all Sling archetypes is <code>org.apache.sling</code>.</p>
+<h3>sling-launchpad-standalone-archetype</h3>
+<p>This archetype generates a Maven project which will build a standalone Launchpad JAR file using the default bundle set. For demonstration purposes, the generated project includes an extra bundle list file (<code>src/main/bundles/list</code>) which includes Apache Felix FileInstall as well as a test configuration file (<code>src/test/config/sling.properties</code>).</p>
+<h3>sling-launchpad-webapp-archetype</h3>
+<p>This archetype generates a Maven project which will build a Launchpad WAR file using the default bundle set. For demonstration purposes, the generated project includes an extra bundle list file (<code>src/main/bundles/list</code>) which includes Apache Felix FileInstall as well as a test configuration file (<code>src/test/config/sling.properties</code>).</p>
+<h3>sling-intitial-content-archetype</h3>
+<p>This archetype generates a Maven project which will build an OSGi bundle that supports JCR NodeType registration (in <code>SLING-INF/nodetypes/nodetypes.cnd</code>) and initial content loading (in <code>SLING-INF/scripts</code> and <code>SLING-INF/content</code>).</p>
+<h3>sling-servlet-archetype</h3>
+<p>This archetype generates a Maven project which will build an OSGi bundle containing two Servlets registered with Sling, one registered by path and one registered by resource type.</p>
+<h3>sling-bundle-archetype</h3>
+<p>This archetype generates a Maven project which will build a basic OSGi bundle including support for the Felix SCR Annotations. It is pre-configured to install using the Felix Web Console when the profile <code>autoInstallBundle</code> is activated.</p>
+<h3>sling-jcrinstall-bundle-archetype</h3>
+<p>This archetype generates a Maven project which will build a basic OSGi bundle including support for the Felix SCR Annotations. It is pre-configured to install using a WebDAV PUT into the JCR when the profile <code>autoInstallBundle</code> is activated.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/maven-launchpad-plugin.html
----------------------------------------------------------------------
diff --git a/documentation/development/maven-launchpad-plugin.html b/documentation/development/maven-launchpad-plugin.html
new file mode 100644
index 0000000..af6a239
--- /dev/null
+++ b/documentation/development/maven-launchpad-plugin.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Maven Launchpad Plugin</h1></header><p>translation_pending: true</p>
+<div class="note">
+This page is out of sync with the latest maven-launchpad-plugin features and settings. For now,
+refer to the source code and the launchpad/builder and launchpad/testing modules for more information.
+</div>
+<p>The Maven Launchpad Plugin provides goals which facilitate the creation of OSGi applications. It supports the following runtime scenarios:</p>
+<ul>
+  <li>A WAR file suitable for running in a JavaEE servlet container.</li>
+  <li>A standalone Java application, with HTTP support from the Felix HttpService implementation</li>
+  <li>Inside Apache Karaf</li>
+</ul>
+<p>In addition, the Maven Launchpad Plugin supports the publishing of an application descriptor, in the form of a <em>bundle list</em>, as a Maven artifact. This descriptor can then be used by downstream application builders as the basis for other applications. In Sling, this is embodied by two Maven projects:</p>
+<ul>
+  <li><a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/builder">org.apache.sling.launchpad</a> - produces an application descriptor.</li>
+  <li><a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/">org.apache.sling.launchpad.testing</a> - uses the application descriptor from <code>org.apache.sling.launchpad</code> and adds two bundles.</li>
+</ul>
+<p>Maven Launchpad Plugin provides the following goals:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Goals </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>launchpad:prepare-package </td>
+      <td>Create the file system structure required by Sling's Launchpad framework. </td>
+    </tr>
+    <tr>
+      <td>launchpad:attach-bundle-list </td>
+      <td>Attach the bundle list descriptor to the current project as a Maven artifact. </td>
+    </tr>
+    <tr>
+      <td>launchpad:create-karaf-descriptor </td>
+      <td>Create an Apache Karaf Feature descriptor. </td>
+    </tr>
+    <tr>
+      <td>launchpad:create-bundle-jar </td>
+      <td>Create a JAR file containing the bundles in a Launchpad-structured JAR file. </td>
+    </tr>
+    <tr>
+      <td>launchpad:check-bundle-list-for-snapshots </td>
+      <td>Validate that the bundle list does not contain any SNAPSHOT versions. </td>
+    </tr>
+    <tr>
+      <td>launchpad:run </td>
+      <td>Run a Launchpad application. </td>
+    </tr>
+    <tr>
+      <td>launchpad:start </td>
+      <td>Start a Launchpad application. </td>
+    </tr>
+    <tr>
+      <td>launchpad:stop </td>
+      <td>Stop a Launchpad application. </td>
+    </tr>
+    <tr>
+      <td>launchpad:output-bundle-list </td>
+      <td>Output the bundle list to the console as XML. (added in version 2.0.8) </td>
+    </tr>
+  </tbody>
+</table>
+<h3>General Configuration</h3>
+<p>In general, the bulk of the configuration of the Maven Launchpad Plugin is concerned with setting up the bundle list which all of the goals will use. This bundle list is created using the following steps:</p>
+<ol>
+  <li>If <code>includeDefaultBundles</code> is <code>true</code> (the default), the default bundle list is loaded. By default, this is <code>org.apache.sling.launchpad:org.apache.sling.launchpad:RELEASE:xml:bundlelist</code>, but can be overridden by setting the <code>defaultBundleList</code> plugin parameter.</li>
+  <li>If <code>includeDefaultBundles</code> is <code>false</code>, an empty list is created.</li>
+  <li>If the bundle list file exists (by default, at <code>src/main/bundles/list.xml</code>), the bundles defined in it are added to the bundle list.</li>
+  <li>If the <code>additionalBundles</code> plugin parameter is defined, those bundles are added to the bundle list.</li>
+  <li>If the <code>bundleExclusions</code> plugin parameter is defined, those bundles are removed from the bundle list.</li>
+</ol>
+<p>When a bundle is added to the bundle list, if a bundle with the same groupId, artifactId, type, and classifier is already in the bundle list, the version of the existing bundle is modified. However, the start level of a bundle is never changed once that bundle is added to the bundle list.</p>
+<p>The plugin may also contribute bundles to (or remove bundles from) the bundle list as it sees fit.</p>
+<h3>Framework Configuration</h3>
+<p>For the <code>run</code> and <code>start</code> goals, the plugin will look for a file named <code>src/test/config/sling.properties</code>. If this file is present, it will be filtered using standard Maven filtering and used to populate the OSGi framework properties. This can be used, for example, to specify a <code>repository.xml</code> file to be used during development:</p>
+<p>sling.repository.config.file.url=${basedir}/src/test/config/repository.xml</p>
+<h2>Bundle List Files</h2>
+<p>The bundle list file uses a simple XML syntax representing a list of bundles organized into start levels:</p>
+<p>&lt;?xml version="1.0"?&gt; <bundles> <startLevel level="0"> <bundle> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1.4</version> </bundle> <bundle> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </bundle> </startLevel></p>
+<p><startLevel level="10"> <bundle> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.eventadmin</artifactId> <version>1.0.0</version> </bundle> </startLevel></p>
+<p><startLevel level="15"> <bundle> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.jcr.api</artifactId> <version>2.0.2-incubator</version> </bundle> </startLevel> </bundles></p>
+<p>Within each <code>bundle</code> element, <code>type</code> and <code>classifier</code> are also supported.</p>
+<p>The Http Service support can not be configured using the bundle list, but only using the <code>jarWebSupport</code> parameter, since it is specific to whether the Sling Launchpad is built as a java application (in which case the Jetty-based Http Service is used) or a web application (in which case the Http Service bridge is used).</p>
+<h2>Artifact Definition</h2>
+<p>The <code>defaultBundleList</code>, <code>jarWebSupport</code>, <code>additionalBundles</code>, and <code>bundleExclusions</code> parameters are configured with artifact definitions. This is done using a syntax similar to Maven dependency elements:</p>
+<p><configuration> ... <jarWebSupport> <groupId>GROUP_ID</groupId> <artifactId>ARTIFACT_ID</artifactId> <version>VERSION</version> <!-- type and classifier can also be specified if needed --> </jarWebSupport> ... </configuration></p>
+<p>For example, to use Pax Web instead of Felix HttpService as the HttpService provider, use the following:</p>
+<p><configuration> ... <jarWebSupport> <groupId>org.ops4j.pax.web</groupId> <artifactId>pax-web-service</artifactId> <version>RELEASE</version> <!-- type and classifier can also be specified if needed --> </jarWebSupport> ... </configuration></p>
+<p>In the case of <code>additionalBundles</code> and <code>bundleExclusions</code>, these are arrays of definitions, so an intermediate <code>bundle</code> element is necessary:</p>
+<p><configuration> ... <additionalBundles> <bundle> <groupId>GROUP_ID</groupId> <artifactId>ARTIFACT_ID</artifactId> <version>VERSION</version> <!-- type and classifier can also be specified if needed --> </bundle> </additionalBundles> ... </configuration></p>
+<p>By default, bundles are added to start level 0. To change, this use the <code>startLevel</code> element within each additional bundle definition.</p>
+<h2>Integration Testing</h2>
+<p>For integration testing examples, see <code>/samples/inplace-integration-test</code> and <code>launchpad/testing</code> in the Sling source tree.</p>
+<h2>Bundle List Rewriting</h2>
+<p>The Maven Launchpad Plugin supports the use of rules to rewrite the bundle list. These rules are executed by the <a href="http://www.jboss.org/drools">Drools</a> rule engine. Typically, this is used along with Maven profiles. For example, Sling's testing project includes a profile called <code>test-reactor-sling-bundles</code>. When activated, this profile runs a Drools rule file which scans the project list from the Maven reactor and modifies the version number for bundles which were contained within the reactor.</p>
+<p>In order for rules to interact with the Maven build, the following global variables are made available:</p>
+<ul>
+  <li><code>mavenSession</code> - an instance of <code>org.apache.maven.execution.MavenSession</code>.</li>
+  <li><code>mavenProject</code> - an instance of <code>org.apache.maven.project.MavenProject</code>.</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[07/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/sling-archives/logo/sling-logo-since-2017-SLING-2696/PDF/Sling Logo - All Styles.pdf
----------------------------------------------------------------------
diff --git a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PDF/Sling Logo - All Styles.pdf b/sling-archives/logo/sling-logo-since-2017-SLING-2696/PDF/Sling Logo - All Styles.pdf
deleted file mode 100644
index 9857ad4..0000000
--- a/sling-archives/logo/sling-logo-since-2017-SLING-2696/PDF/Sling Logo - All Styles.pdf	
+++ /dev/null
@@ -1,881 +0,0 @@
-%PDF-1.5
%����
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R]/Order 6 0 R/RBGroups[]>>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 13473/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
-<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c137 79.159768, 2016/08/11-13:24:42        ">
-   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-      <rdf:Description rdf:about=""
-            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
-            xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
-            xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
-            xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
-            xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
-            xmlns:dc="http://purl.org/dc/elements/1.1/"
-            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
-            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
-            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
-            xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/"
-            xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
-         <xmp:CreatorTool>Adobe Illustrator CC 2017 (Macintosh)</xmp:CreatorTool>
-         <xmp:CreateDate>2017-03-31T15:26:44-06:00</xmp:CreateDate>
-         <xmp:ModifyDate>2017-03-31T15:26:44-06:00</xmp:ModifyDate>
-         <xmp:MetadataDate>2017-03-31T15:26:44-06:00</xmp:MetadataDate>
-         <xmp:Thumbnails>
-            <rdf:Alt>
-               <rdf:li rdf:parseType="Resource">
-                  <xmpGImg:width>256</xmpGImg:width>
-                  <xmpGImg:height>56</xmpGImg:height>
-                  <xmpGImg:format>JPEG</xmpGImg:format>
-                  <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAOAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FX
 Yq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwvzx561LSNW0&#xA;3y9oOnLqWv6oGkhjlf04Y4krV3O1fst3HT6DkYcIkDKRqIcPU6mUJCEBc5JXeeYfzjsbaS6vdN0O&#xA;1tYgDLPNdPHGoJoOTM4A3OTGPCTQMmqWXURFkQA97cfmD85ZBCY9M0NxcLztyty5EiUB5JR/iFCD&#xA;UY8GHvkoy6nuh81b9Kfnh/1ZdH/5Hyf814OHD3yZcep/mx+bv0p+eH/Vl0f/AJHyf8148OHvkvHq&#xA;f5sfmv8AK/m3z3qWpa7pOoWFjBqeim15xRNIUcXUMkoHMuaH4UFabVORzY4xAMTsbZ6bPOUpRmAD&#xA;GuXmzm0a5a0ha6RY7oxqZ0Q8kWQgcgpPUA9Mx3MVcVdirsVdirsVdirF/wAwPO3+FdNtpILRr/U9&#xA;RuFtNPsw3APK/wDM3YD8TT5i7Bh4zzoBxdVqPCiKFyJoJG2s/nakRll0bRokVeTl7hwFAFTyPOm2&#xA;W8GHvk0+Jqf5sfmoWvmn83Lu1hu7Wx0Ce0uG4QXEV2XjkbkV4o6yFWPJSKDvhOPEDRMvkxjn1BFg&#xA;Qr3or9Kfnh/1ZdH/AOR8n/NeR4cPfJnx6n+bH5u/Sn54f9WXR/8AkfJ/zXjw4e+S8ep/mx+bWjeb&#xA;vzCfzWPLut2Gn2lxNZPe27wNJIKJKsfxVf545MUODiiTzXFny+JwTAG17M20mTVZLJG1SGKC8qec&#xA;cLF02OxDGh3zFc9GYq7FXYq7FXYqwTzP588wJ5rHlTyppcWoarFALq9muZPThijNKDYgk/EO/cbH&#xA;tlY8MeHikaDg5tVPxPDxi5czaAv/ADP+b2nQrPqFhoNnCzCNZbi7aJS7dFDPIBU06ZKOPEeRl8mu&#xA;WbURFkQHxVv01+dXq
 +j+iNF9bjz9P6xJy41pypzrSuDgw98mXianlww+a/8ASn54f9WXR/8AkfJ/&#xA;zXg4cPfJPHqf5sfm79Kfnh/1ZdH/AOR8n/NePDh75Lx6n+bH5q3lLzX5113TNQkaysY9R0zUbjTr&#xA;iANIIy0Ai3D8mPV37b0GQz44xIrkRbbpM0sgPEKIkR8md5Q5TDfPvkW+1260/WdE1D9F+YdJ5/U7&#xA;ll5RusgoUk2O3XsepqDmRhzCIIkLiXD1WmMyJRPDOLBPMnnbXdR8l+bvLHma0jtvMGlQQyPJAaxT&#xA;RNNFRx1ofiU+9egpTMnHhiJxlE+kuDm1MpY5wmKnEfpCeWGp30Pm38vbCW1tJbO50pzaXRE31uJ1&#xA;sg0wFHWLi/BBup79MrlEcEzvz/S3xmRkxChRj8eSTxfmh+Zs3ly881paaUdG0y5Nvc2wE6zyAOqk&#xA;rV3UU9Re/vTLDpsfEIb2Wka3OYHJUeGJ82San50836x5mXy75RjtbWSGyiv769vwzBRMFZI0VK70&#xA;cb0+6m9McUIx4p99bORPUZJz4MdDaySh/wAop9VvPMnnS91pohrRurW1vYbdSIR9UjeJHRmJJDj9&#xA;XvsdUAIxEeSNAZGeQy+qwD8HpuYbsnYq7FXYq7FXYq7FWNefvJcfmzR4rRbprG9tJ0u7G8QcjHNG&#xA;CBUVBp8XY9aHtl2DNwG+YcbVafxY1dEbgsQtPN/nDT9QuvJvnGKGe8utPuZdN1W12WcRQuzeouwB&#xA;ojdAtPDeuXnFAjjh38nEjqMkSceTmQaIY1ouq3Vh+XP5dUtLS7tJdXcP9ZExkinF7J6MsPpvGtVU&#xA;yV51HTbLpxByT3PL9DjY5mOHFsCOL7bZLf8Ann8ybzW/NFnoMGli18ssHkNws/rSoUZlReLlSx9N&#xA;v5e2Uxw4xGJlfqcmWpzGUxDhqHvVJvzP8w6vZ+V7Hy
 5a28Ou+Y4ZJ5HuyxggSDkHI47mpjant2qc&#xA;Rp4xMjL6YpOsnMQEAOKff0UfKMnmWf8AN67g8zzW7anpmk8LZrNGWKaCSZGMhLGoYFwKU/VucvCM&#xA;Xp5EowGZ1BE64ox6PVswXaOxV2KuxV2KuxVgfnPyLr9x5gj82eU9RSw16KAW00EyhoLiINy4saNQ&#xA;9B07DpSuZWLNER4Ji4uDqNNMz8TGalXzYH51873nmXyK9rqloLHXNH1q2tdSt0NY+dJQGTdtiUYU&#xA;qenXMnDhEJ2DcTFwdRqTkxVIVKMwCy+98w6nZfmT5gSW0sjJZeXpbywu0ExmaKKRWSKariOnqM5P&#xA;FQenxZQMYOMbneTlyyyGaWw2hY5/aktt+Z/5h2+kaN5p1W10xvLuqXKWrwWwmW4QMzL6nxs6jeNu&#xA;5/jlh0+MkxF8QaBrcwjHJIR4JGvNO7nzX+YGv+ZNZ03yktha2eguIJ5r8OzzzkGqqEqFWqkfjXsK&#xA;xixxiDO/V3N5z5ck5Rx0BHv6qn5HTzXflnU9RuWH13UdXu7q9jVeKxzScOSLu1RtX6adq4NYKkAO&#xA;QAT2aSYEnmZEl6JmI7BgXnS68xXPnHTNG8v68dJ1A2ktz9Xkt1mt5kL8SWYlviXhsCnyOZWERECZ&#xA;CxbgaiUzkEYS4TXdsxjVfJen6Zp2vDzPr7XnmfzDbokt8IG9OOON1KAIg6FoQO2w2Hjj6jtfFhnG&#xA;J2A3pyNN2FmzwmQeKUtr5IN/O3kq01vynfXOrSPJ5XtpLSVEtJALj1bf0RIpLHiBSpB3wR18JRkB&#xA;/EXax9l9UTCW3oHf5UreUIfKWs+TNW8iaZ5hjm1HU5Xu45Ht5IqKzxtxVXI5kenuA1fbY5mHMTIZ&#xA;K2DrM3YuXBhljn1PNd520fzDp3m+xv8Ay1HqEU8OmLaXuqaZbx33rSRkIIpYHkRUoqg
 1Y+FB8Ncs&#xA;wziYESrnyOzrNTinHIDDi+mrAu/gyD8m5dMgXWtMMV7H5iiuFudck1BUWWSScEq44M4ApvSvf3yr&#xA;Vgmjtw9Kb+zzEcUd+O97ekZhuxdirsVdirsVdirsVYd+Yt5qynRdP0jVm0fUr+8KW8/oieOQpGx9&#xA;OSp+FTWv2W3HbMjABuSLADh6uUvSIy4SSxx/KMum6wfMnnrzAdQ1J7eay05beDhHCkiMjsFQb0WV&#xA;uw698q1XaWLDED6QT77bNH2TmzzMieKQHuq2ITan5Q0/yx5c0C51t2fQNQGoCeOzl4yr6rSGIVbZ&#xA;qydT92CHamOcpSj/ABCnYY/ZPVHHCPp9MrZF5P8AMnka48x+Zjb66v1jzdx+rQTQSQ+i0aSLxZ2P&#xA;Ak+rtuK02y/xDOMaH0tWXsTPglOUh9aH81+StV0TSfKNrpH1q61XRHmSbVtMhWaaGKUl1H1VpFLB&#xA;y1KluI3qd6ZkYswkZE1R6H9bo8+mlCMBGyY3uP1I78r7mO385X8evJqR83apbiYXWoQxwK9rGQOK&#xA;RRu/p7r06fD26ZHUi4DhrgHcz0RrIePi8SQ69z1vMB2zsVdirsVdirsVeca5L5v1XzzqOm+WfMn6&#xA;NlsbWH6zY3FqskQEgLLLG59SrfHvVR9IzLhwRgDKN267IckspjCdUOVMZ17yX5e0ry/e6Pfa87eY&#xA;by+h1LUdTe3d1Mq8mC8E7cZWb7W5PboMXJ21ix5eE9BVe9zMPs7my4vTuZSu9uizVvPXkW481ajq&#xA;8uqyxtf6NLorw/VJD6bu4b1iQxqv+SPvw49bAxAH863aT9l9UZme28OHmjtF0ry35v8AIVh5N0bX&#xA;45bvRZ47ieVoHRnUPI3wxuVJH7ynIEj7xmX4xEzkraTqNT2Rkx4o45bUUD5m07zXZ+etbvPK8eqW&#xA;NnqSw859Mt4
 r2G5kKn1JGdpY1hZWY06t1O1ctxygYASo137Otz48kcsjDiAPcLv7dmb/AJPT6B/h&#xA;M2GkQ3Fu2nXElvqEV4FE31oUMhbiSvegp4UzG1Qlx2ermaAw8Oo3sd772c5jOcxfzP8Al3o/mLVY&#xA;NVubq9tL22hNvHLZT+geBYsQSFJ6t45fjzmAoVTi5tJHJISJII7ltn+XWkwxLBc3t7qVutaR30iT&#xA;MATWgm4LMBU9A9MxdTix5jc4RvvcvSTyaf6Jyrz3/Ql95+S/ki6nMzJdRt2CXMlB8uRY+2Qhp4x5&#xA;O3j27qAK9P8ApQjdM/KryPp1ylzDYNLPGBxe4mlm3BJrxdivfwpmTHIQKDhZtdlyfUVXzD+Xmka5&#xA;NC8t3e2MUKBFtbCYW8Joa8mRV3boK+AyePOY9Afe6vPphkNky+BRnlbyX5d8r28sOj23pNcMGuZ3&#xA;ZpJZGFac3Yk7V6dMjkzSnzZYNPDEKiE8ytvdirsVdirsVdirsVYx568ueX9Zt7RtXvZrI2UjzWkl&#xA;tMIJS/DcISCSeI6LluLKYXXVoz6eOSrvbuSnT/K/lGCFlfzHc3dsGHq29/dwXAVmXlT96jPGWVa/&#xA;CQSMr1AhmFThE/BnpYzwG4TmPis1j8tPy0ubopczG1nRgphW9ZCGccgOLsxBYCoGY0NLCPIO7x9u&#xA;aiIqwfgFGL8vvynsBFcSSrOY2ADy3zvu7iIEgSAUVz9GZUJGPJx83aWbJzI+QTnzD5d8p6xYhDqZ&#xA;0u0s5GWc6dcRWq8224zMo7b0U+JycMxib5+91WfCMvMke4rfKPlDyLoGoSy6VKlxq84aOS4muBcX&#xA;JCEh13O1GQ8qDtv0w5M8pijyYYdJDGbHPvZflLkuxV2KuxV2KuxVh+t/lhomra5ca219qNlfXSJH&#xA;MbK59BSsahVGy17eOZENRKMeGhTiZNHGcjK5
 AnuKJh/LzRfREN9PdamiqFU3cimWgFBWaNI5m22+&#xA;JzmFn0+LLLilCPF3jZ2Gk1GXAKhOVedH9CUy/kn5HlnMxW8Vj1C3MlP67/PGOGMeTs/5d1FV6f8A&#xA;ShNdI/LPyXpM5uLXTw8xFOU8kk+3HidpWYb9cyPElVOBm1eTJ9RUNe/LHRNb1B7u6vdQiRwF+pW9&#xA;x6NsoApRY1XavU79cshqDEUAHV5dHHJKyZfNPPLnlnRPLmmrp2j2y21qCXYAlmdz1Z2YlmJp3yvJ&#xA;klM2W7FhjjjURQTPINrsVdirsVdirsVdirsVdirsVdirsVdirsVQepaRp+pLGl7GZVhbnGA7oA1C&#xA;tTwK12PfFUBd+UdKmthbw+paLyLM0TtyIZDGy1Yt1Vv8xXFV8/lLRJrx7t4pPWloJz6037wBOAV/&#xA;j3XiaEdD3riq638q6Fb8vRgZA9PUAmmIbi3NeQL0ajbivTFW08raGiSrHA0YmcyScJplPImpIKuC&#xA;vU9PE+JxVuDy9Y2+ox3kBeJYgeNsppFyblVivjRz8vltiqaYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FX//Z</xmpGImg:image>
-               </rdf:li>
-            </rdf:Alt>
-         </xmp:Thumbnails>
-         <xmpTPg:NPages>1</xmpTPg:NPages>
-         <xmpTPg:HasVisibleTransparency>True</xmpTPg:HasVisibleTransparency>
-         <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
-         <xmpTPg:MaxPageSize rdf:parseType="Resource">
-            <stDim:w>1072.000000</stDim:w>
-            <stDim:h>918.343750</stDim:h>
-            <stDim:unit>Points</stDim:unit>
-         </xmpTPg:MaxPageSize>
-         <xmpTPg:PlateNames>
-            <rdf:Seq>
-               <rdf:li>Cyan</rdf:li>
-               <rdf:li>Magenta</rdf:li>
-               <rdf:li>Yellow</rdf:li>
-               <rdf:li>Black</rdf:li>
-            </rdf:Seq>
-         </xmpTPg:PlateNames>
-         <xmpTPg:SwatchGroups>
-            <rdf:Seq>
-               <rdf:li rdf:parseType="Resource">
-                  <xmpG:groupName>Default Swatch Group</xmpG:groupName>
-                  <xmpG:groupType>0</xmpG:groupType>
-               </rdf:li>
-            </rdf:Seq>
-         </xmpTPg:SwatchGroups>
-         <dc:format>application/pdf</dc:format>
-         <dc:title>
-            <rdf:Alt>
-               <rdf:li xml:lang="x-default">Sling Logo - All Styles</rdf:li>
-            </rdf:Alt>
-         </dc:title>
-         <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
-         <xmpMM:DocumentID>xmp.did:4b38ed20-f1ee-45d0-89c4-5fffe03092b2</xmpMM:DocumentID>
-         <xmpMM:InstanceID>uuid:ab8688a2-d766-284e-b0d8-829570836b09</xmpMM:InstanceID>
-         <xmpMM:OriginalDocumentID>uuid:1b4ea81e-652a-5a46-86f5-fe91fe61a8ed</xmpMM:OriginalDocumentID>
-         <xmpMM:DerivedFrom rdf:parseType="Resource">
-            <stRef:instanceID>xmp.iid:4b7cf1a2-6f01-4ecc-bf59-301b0a63efca</stRef:instanceID>
-            <stRef:documentID>xmp.did:4b7cf1a2-6f01-4ecc-bf59-301b0a63efca</stRef:documentID>
-            <stRef:originalDocumentID>uuid:1b4ea81e-652a-5a46-86f5-fe91fe61a8ed</stRef:originalDocumentID>
-            <stRef:renditionClass>proof:pdf</stRef:renditionClass>
-         </xmpMM:DerivedFrom>
-         <xmpMM:History>
-            <rdf:Seq>
-               <rdf:li rdf:parseType="Resource">
-                  <stEvt:action>saved</stEvt:action>
-                  <stEvt:instanceID>xmp.iid:4b7cf1a2-6f01-4ecc-bf59-301b0a63efca</stEvt:instanceID>
-                  <stEvt:when>2017-03-31T15:26:27-06:00</stEvt:when>
-                  <stEvt:softwareAgent>Adobe Illustrator CC 2017 (Macintosh)</stEvt:softwareAgent>
-                  <stEvt:changed>/</stEvt:changed>
-               </rdf:li>
-               <rdf:li rdf:parseType="Resource">
-                  <stEvt:action>saved</stEvt:action>
-                  <stEvt:instanceID>xmp.iid:4b38ed20-f1ee-45d0-89c4-5fffe03092b2</stEvt:instanceID>
-                  <stEvt:when>2017-03-31T15:26:41-06:00</stEvt:when>
-                  <stEvt:softwareAgent>Adobe Illustrator CC 2017 (Macintosh)</stEvt:softwareAgent>
-                  <stEvt:changed>/</stEvt:changed>
-               </rdf:li>
-            </rdf:Seq>
-         </xmpMM:History>
-         <pdfx:CreatorVersion>21.0.2</pdfx:CreatorVersion>
-         <pdf:Producer>Adobe PDF library 15.00</pdf:Producer>
-      </rdf:Description>
-   </rdf:RDF>
-</x:xmpmeta>
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                                                                                                    
-                           
-<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 3/Kids[7 0 R 8 0 R 9 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[0.0 0.0 1072.0 776.0]/BleedBox[0.0 0.0 1072.0 776.0]/Contents 10 0 R/Group 11 0 R/LastModified(D:20170331152644-06'00')/MediaBox[0.0 0.0 1072.0 776.0]/Parent 3 0 R/PieceInfo<</Illustrator 12 0 R>>/Resources<</ExtGState<</GS0 13 0 R/GS1 14 0 R>>/Properties<</MC0 5 0 R>>/Shading<</Sh0 15 0 R/Sh1 16 0 R/Sh2 17 0 R>>/XObject<</Fm0 18 0 R/Fm1 19 0 R/Fm2 20 0 R/Fm3 21 0 R/Fm4 22 0 R>>>>/Thumb 23 0 R/TrimBox[0.0 0.0 1072.0 776.0]/Type/Page>>
endobj
8 0 obj
<</ArtBox[0.0 0.0 1072.0 918.344]/BleedBox[0.0 0.0 1072.0 918.344]/Contents 24 0 R/Group 25 0 R/LastModified(D:20170331152644-06'00')/MediaBox[0.0 0.0 1072.0 918.344]/Parent 3 0 R/PieceInfo<</Illustrator 12 0 R>>/Resources<</ExtGState<</GS0 13 0 R/GS1 14 0 R>>/Properties<</MC0 5 0 R>>/Shading<</Sh0 15 0 R/Sh1 16 0 R/Sh2 17 0 R>>/XObject<</Fm0 26 0 R/Fm1 27 0 R/Fm2 28 0 R/Fm3 29 0 R/Fm4 30 0 R>>>>/Thumb 31 0 R/TrimBox[0.0 
 0.0 1072.0 918.344]/Type/Page>>
endobj
9 0 obj
<</ArtBox[0.0 0.0 768.0 392.0]/BleedBox[0.0 0.0 768.0 392.0]/Contents 32 0 R/Group 33 0 R/LastModified(D:20170331152644-06'00')/MediaBox[0.0 0.0 768.0 392.0]/Parent 3 0 R/PieceInfo<</Illustrator 12 0 R>>/Resources<</ExtGState<</GS0 13 0 R/GS1 14 0 R>>/Properties<</MC0 5 0 R>>/Shading<</Sh0 15 0 R/Sh1 16 0 R/Sh2 17 0 R>>/XObject<</Fm0 34 0 R/Fm1 35 0 R/Fm2 36 0 R/Fm3 37 0 R/Fm4 38 0 R>>>>/Thumb 39 0 R/TrimBox[0.0 0.0 768.0 392.0]/Type/Page>>
endobj
32 0 obj
<</Filter/FlateDecode/Length 6593>>stream
-H���ͮ�
����Ӫb�����l��{!����~�|�5W�ݒ�l�mr��X���w}������}��������2m�mlw=����?��M�'�o������ݟ~H�Ͽ�>oy�G��^y˵�9ײ}��u���n���=n����8�n����#^��;�m���v���d�����?��>g�b�=+v�ݽn��a�����/[���n��=�}�g�p�����Z�g���s�mʕ����=����oxl��u��z�x�t�n�#3bl���^���i���������{�mO�@ow��R���o�����ZP�^�7+�;Q{�[��i�87���w��]�J8z�X�j5o_}���%�k�����"yɼG	wO�j��'�LU��މ��ũL)�{$��Z�0�9���ȵ�N���̿�r0�>�����f��$�h�;�+�Q�U��,r4��`���'៬��e�������NF%�D|�w�y�h���wKDSٕ��
 ���N�y���戣��LҾ_;�h��pPK����*y�N�(�֓���ӻ� ������� Gu!r�rl'�"��T�0.��5J�g���!*c��-�FS�`FLEy��a�*��Wc]��Zՙ��?p�+��ߌM(]��׳��_<�����<e康]ԠB�1��E'�!��ͧ���P�"_lS9چ���b#��#/�z��gK-|7:�w�a�J9I�e�d�m
p�U�N�
- z�G��	�t27���.萮/�'`g���8�A|�&�F��y��)����B�������c�y<2\3|?��N�G8R	��<�߀
��)ә��b@��p����w:d���mO3I��I�]ѧL��H�����Ob!�ԬE�}����hUu|��m�ٱ��`�{ �R���t%G��G�就�)na��0k[�=�up<������BM|�"�i�s.��g_Ltx>�™�˜��Z����~����1m�~������;Rf�4f������)�B���P^bf�C�+x
P��Ja��#	
-�ɚ,��sy�C���4�D^U_��9�h���B��	4�ص*l��N=9��,YgI���������c(��C(Ƭ8�4�Ν�>.��<�0@�o7=0F���i4�VdVk�WR��8�x�cYLw�1���˅����a@T��q��N�EKX�� �S�@SmP)� C�ˬ@��Om5��P��4@J��m�0�.�
-���9������C-����<{0$�<��%��j]Ch4�{Vg��`�5�2�ԗ�²�J\���dz"���0"K!P�509�P�g���8�ʁ&e�ː(���Zz�5�T��ΜY#٤/xA�OU��%¬���&6������<?QX��낱!��4L!aRR!�N��H��?��K=�\D�ta҅�Xg���x�C�I�����
�+Әw2k�ֳC(@-� ���d&���
-M�C�����֭�“�,�'=%�q?<ߨ���Y$	�qm5����d>�sҚbD�:ȓd�P��$f
]R�^$.R��P��0������`�Cg:=����;송�_��shՋ��^9�]2�a�j
3*yq<�1���)���X��s��ە�\�G��h8:��׌������2{���G�(�� A�=:YW��>#yg��#ؠ_��P�KB��&e-�	�S��C�3WH>�SwX��W�w�H�!_�;9��U+, ��l���2��qh�ڿK����{
� �k���ٱ�W�{�Sص�7E���'�*�v?٨��d�M�K_CbhULN�^�s�~v�|���ڧ�-8�<��8�MkBj�	0�&��z��xx�f��RѰ�I3�q7vj�2k|B`�
?E�y9�M���)�ϥ�1dZ��ce�F������F|��Dȱ�d��;��2vRb�H���1�b���!m�T)ѢK������Q�(�{�O�g��*G�Ea*��,xI�1�R�*�P�$	y9� �w��!zy��t��1u
 �Y-`���4������1R�7.�M �b��[m���5��ʌ��ώG8l�3�
����t����ښ����XS�sLq�z�1MM��%]$�UM��8�Z;`Z�+.�ceĭ.@5�\a�?�uf�Gl��9�	��@b��+�<+�Y�p�P=��x�ɛY%`��	�bL-՝@	���6Y�LE���=���@s��<�Z�d]L�,	S
�`�_��`��ļ#�ȤvSQ�F1{�Yt�Y�j�A^�j��i��Lŕ�Lx4W�"znD#�kb45s’2j��~ُ`�J6&<1��'݂gh|�ˆ������ P����j�w�2�D<r���(�M�4{���A};�Q%A�$�,�b��wuP�v���_�R+ҺI��'2�Pf	���ט�AZ����&/�9JZJC�>Iйt���B�^K��������l����;�=�����H	���I�U�(�$�&qQ��8���`F��%�d�r𜣎�t�ٱJ?R~s�Xf^f_�`/�'t�-G_D�2}�ŗY�ֿ�E�u���ӡ~�/�e�[Ir�=O�/�K�1�
 Zi�Y��_�y���UA����;3&��$�4?0'�cV������
�zq�t�fM��D;KW��db��1_�(0��lg�06�6�J+���dn����8����jZ��E���{�l)9���w��bb�Qe����5�`�i��P1����D)p�l��aN��[��w�hl2���ݘ<H�ֺ4��.�aw��Cz���̛�*j��a�ܒ'���7�4�N4n�B�t�i�/"��$���`�(&*z�od~�|�"�]�M��ˋ���B�#]�$��3_;D?,��ۧ�拯�������~@K���@T�Fd:�������&�t�>Ez���/(�������w;3phz��Mt�P�	6�Z�p�.^����˽@|H�y��b�e]�o��rt;�&�f	S�ɬ����l
-i�$"l� Y*y��
мp���砈��8�(�>�CC�Ȭ�)о>,�&D�C���RoRb�K�HVSA!%:c���X�����ML��S��9���Z��A+'s[‰aV�x��x����<�Y�;N;
-S
-�!*���A
�Y[���q�!2��%�OH��*����_��&(�Q����,Ad']�ك�~y-�F�ck��1ݷ���r(W �PP�3��Ӈ��fk5��^mE�v��X�c�š�Jb�Nr��t?	CH����C��*Es�U�L�Q���o��}R�H���B'еdh�=�4ħ�t4�Z��7��9h�c��R�9�ڔ�'�Z��V9M$�Q�-"���	٥L��o�X�m7��q/�^����������Dh��rIB5����!�zq .S��9N;���H�:y��F+���n��j�ƕQ*��m	刍�8�n
-��Z��h[߂-B.���*�ܛC�[=!��ɢ[���.�"��q��v��[1D�(+��ZގOp��R�+��!	G��o֓�?�43��_{�,���1��9{���ҥj��8C����Rc�ZfU;=���7�6�ZnwH��t�@ʂ��&�f�&�G\B}��n�ӎ�
-\�l"¹J�q�f�\��!"L�.GW�t�A针O��X)�0��K�+��XX�P�6��*(�͡��D��bu)�1D�x�6LN�})�� g$s���sA�*�3D���W\��z8�C��T���މ�&/��&�!�KX���w�Er5k%�XOM��B"�XN����7[e^�VUb3E8}iV�*�A����P��ü�D�6�.�7#o�Ł�6��i�*��X�@I�З��TsBӄ�>m�E�����i})wph$�zo^�9�p�4����s�V)W�q},�r\RL�V֔X�+��dP�4�mw�=�؅f
-
-ETD���;9���������d\Ҿ����M�r�l��v��}���r��7����|Ǥ��y[F�vH
��\H������'6O��;wiQ�*�����߀���nk5t����е��S:���$�(�ƙ�������S�-dj&U�ZLq��Ԛ�Y�;N;&�ƑE��R��LO�l˦:���қ4]�i�To��jF�+��$�%K�P7��E�. �B���Hf����%��;�/��& "��ܷ5�%O�@�O�y���'���8��
7P0T�N)'R���9�b���97�3�M�&b:%3ŮTOņ�.Յ��7[�dJ�g(�����9t�V�U-���Tn�R���������RY���e��6����e|.��#��t��0�]�vMX�Iz�4�?o�D� 餧~��-��	"�����}^柏�H��V�O��pP��_�����S����D����C�(�����}���������:>=���?��{y����xB�m��n<^s��]�н��
 �����4�r\���e��_�����|�~޿h]c�Ժ�
د���gKėy�ř�Y��#[D<��FQ�i[~ӆ�6�����ok�M���L]W�n��r3��n$3C�G6��(���i��|�a��ݎ�e�r��������L�t� m"
-�����J�}�%*%�L��2"��|����R_�R��a�/�a�����������e�.�u�y\�����������MB�i��q%��r�
-���y��&�x�'�u�ST�ģ��/6.rl�������Q����b2���Y0��R���q�5�	9��(��
|�^��k�����	�b@�	���(���uA>[�#Q��٩��7R{qY�1]�c�cJ0@�]��D�is
&�J���pE�����8���� 9�����dy.�l��ڤ��l���ó �����>DZ�I>�Bf��G����&@�~����̓�Z����]A�*":�\�z
-�f���}��'���U4x�7���%�2�����,�0�?Q��ʰ��O�!���AO�l=G-~���"�_�7d,�5�vJq3?��е�(����̬��/�R���.f.�������)U�͂Eu�>!:Y�I��������dANF��yP�4eO���,fEY�N�T7�̦4n�>��d��'
-Á'��-m�Y�"�"�O^�+!(��C�xKs4bѺ�\W�;D��r秝�]��g��
>��`�|��J]ٽ�*�x|�J��K捩
-#���ET��j�
�Ux�*̇��h^�CK��s�t�'�C����Z��Y�NN��P�6�Ko�6�C�T
�[��.Q�J|��~/���#�ʒ���j6�
��[�z\)������J`��r7bU��-pIZ�A[�+v!�DZ�tTq[=T�M�ђD%��P�NҢ>��ד��W���=%i�B9�QP\�Ծz����'��s���v�#ǑQ��)�T�*��sN!g�ߞ�~v�Yl�(,���LYoS{�R�d��kIq��*�}WžlI�R,<��HAp�J�@�r\s氵�n�+<��{.�9�7��P�9w�,�W@��������{O8���2Ap�Y�<g���
-x2�Z�t`���V�:�s†����R��j-d�D�����$'�–��\xฒ�I��ǂw�T��]��@���8M�h���;]��KY������A�F�M�c��m�<@�K�i9��\I��	o숤�n�X�����mIŠΉL�����	����$����P��B����/O���J�X��͍x�Z.o�Q`C�C	�S��w�VQ�Ό�pm!K$���
-bD���hb���;��j��؉�.\�{�+XE2ᐻ��k�&\r�g?�]�:��h��N����->��Wj���̮=�AF����<x�����VkN�Օ���l����;&l�ei��JF�!��[�R�,���_2˃dtg��
�pH�[�Ў�U:�QLZ���7���P��K8[hU�厖�%a��m���GƧ��(�����Sg� ���Ge��(�Q'ί��0TL���f���qA��'�8x��V(&-R�ꇌ[�y�7��|��w�����%�cOr����sAd�����߳��X�a����k�u�5s”~D����Bq�f�֙)}�C��#��L�M��xF���Ѷ!W�g�m�2i��eL'��t�.*h���^
I*m�L��n�T�A�����Z��%��R)�l��rQ�?>�aBQ�X-��4��J��$����T�����%��=.Kq�O^�������tۿI�l���ٻ!������8&�ӈ�C!��X�a1����,&3
 ���7��;>���}��P��*��~]�6I�������>'��=��b�_Rͽ=T���6a��s��=6;ח�ں�e��ϡCQ�m�������Ͽ���_��`M�
endstream
endobj
33 0 obj
<</CS/DeviceRGB/I false/K false/S/Transparency>>
endobj
39 0 obj
<</BitsPerComponent 8/ColorSpace 40 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 49/Length 750/Width 96>>stream
-8;Yi]]9._"&;KAN!7SnU<8n/r17*NTK*#9Z#nTA]:6Z_EW1B-j9D\eO_niI0)-]T1
-If%JqCLbcFVR&d9b9$MG=nTu&bG]#6Zh=TJb<P5UZ?O[mr4^?Qbi:Vsa<ls\WDD&4
-mS8Dd/,s,rjH$2Ed:`5u."^I=pbsW'lZ4WWhJQ_TK(CY.+mO.HjS6jpK^Z;GYN'8R
-,/E\>3&Mrg63nfFjpqn$[f#d:hkri);.+F\G[<T2o1>V9kGK$2EIMVgSHm71+b!jd
-Y8d,ZKqe,+,XCTP_&*0ehu=M*)en)%g]&V$H^PtgMDk2]HN^<MIa.Dd'&0lYS0%iO
-o!;<Mr4$89)h1]a]YKR0T`*ntHb"XaXT89PC$5I.ctGET722@hO7iK]C6i4o8ha\f
-iB6Pu'+(<bG`NEn#!^P_ciiNJ.?<n5@f59sbs0`AbEta#oRE,B3mdJY:@s0CW_nb^
-b!'[kk,g9(APmLG@LJ=R%@ueNUUn2-Xa&CWmP1ceMlU,3"*DZ_K/Mcck6Up-k5R>8
-;'ok[(P'RkFMlQYbMW'%)YmYImE"`?0FhJ!^:-i9@JDST,Q5\j9bk`T"@[YZ,?UrW
-a%.9VJGGfn^SA!7n='<!NSp73dj4mL5N<:3!LnQlD(bdA?S23#Pl5@Z01Z#;9[crj
-!6d[+qj`(7X0FZ8`,F:6"XFQ2s4F[1s/(8]qF$Q-1B4a_[F"s-oY9X^'^,DXr.b\*
-qoiu&b(=CGNnrFX!#@1kdJ~>
endstream
endobj
40 0 obj
[/Indexed/DeviceRGB 255 41 0 R]
endobj
41 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
-b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
-E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
-6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
-VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
-PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
-l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
34 0 obj
<</BBox[300.005 74.9456 302.443 71.3723]/Group 42 0 R/Length 218/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 13 0 R>>>>/Subtype/Form>>stream
-0.745 0.125 0.18 rg
-/GS0 gs
-q 1 0 0 1 300.0058 74.9454 cm
-0 0 m
-0.783 -1.147 1.6 -2.337 2.415 -3.555 c
-2.42 -3.566 2.432 -3.562 2.438 -3.573 c
-2.045 -2.95 1.64 -2.333 1.234 -1.744 c
-0.829 -1.155 0.411 -0.571 0 0 c
-f
-Q
-
endstream
endobj
35 0 obj
<</BBox[280.446 73.7369 282.365 70.9116]/Group 43 0 R/Length 214/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 13 0 R>>>>/Subtype/Form>>stream
-0.745 0.125 0.18 rg
-/GS0 gs
-q 1 0 0 1 282.3427 70.9297 cm
-0 0 m
-0 0 l
-0.017 -0.007 0.022 -0.019 y
--0.096 0.182 -0.221 0.363 -0.35 0.558 c
--0.84 1.333 -1.364 2.093 -1.896 2.808 c
--1.274 1.895 -0.643 0.959 0 0 c
-f
-Q
-
endstream
endobj
36 0 obj
<</BBox[301.229 73.196 302.431 71.367]/Group 44 0 R/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 13 0 R>>>>/Subtype/Form>>stream
-0.745 0.125 0.18 rg
-/GS0 gs
-q 1 0 0 1 301.2284 73.1964 cm
-0 0 m
-0.411 -0.601 0.811 -1.207 1.203 -1.829 c
-0.811 -1.207 0.411 -0.601 0 0 c
-f
-Q
-
endstream
endobj
37 0 obj
<</BBox[281.993 71.4876 282.365 70.9116]/Group 45 0 R/Length 137/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 13 0 R>>>>/Subtype/Form>>stream
-0.745 0.125 0.18 rg
-/GS0 gs
-q 1 0 0 1 282.3651 70.9112 cm
-0 0 m
--0.118 0.2 -0.243 0.382 -0.372 0.576 c
--0.243 0.382 -0.118 0.2 0 0 c
-f
-Q
-
endstream
endobj
38 0 obj
<</BBox[282.342 70.9296 282.348 70.918]/Group 46 0 R/Length 116/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 13 0 R>>>>/Subtype/Form>>stream
-0.745 0.125 0.18 rg
-/GS0 gs
-q 1 0 0 1 282.3476 70.918 cm
-0 0 m
--0.005 0.012 -0.005 0.012 0 0 c
--0.005 0.012 l
-h
-f
-Q
-
endstream
endobj
46 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
13 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
45 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
44 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
43 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
42 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
15 0 obj
<</AntiAlias false/ColorSpace/DeviceRGB/Coords[0.0 0.0 1.0 0.0]/Domain[0.0 1.0]/Extend[true true]/Function 47 0 R/ShadingType 2>>
endobj
16 0 obj
<</AntiAlias false/ColorSpace/DeviceRGB/Coords[0.0 0.0 1.0 0.0]/Domain[0.0 1.0]/Extend[true true]/Function 48 0 R/ShadingType 2>>
endobj
17 0 obj
<</AntiAlias false/ColorSpace/DeviceRGB/Coords[0.0 0.0 1.0 0.0]/Domain[0.0 1.0]/Extend[true true]/Function 49 0 R/ShadingType 2>>
endobj
49 0 obj
<</Bounds[0.0954839 0.7882 0.9487]/Domain[0.0 1.0]/Encode[0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0]/FunctionType 3/Fun
 ctions[50 0 R 51 0 R 52 0 R 53 0 R]>>
endobj
50 0 obj
<</C0[0.156863 0.14902 0.384314]/C1[0.4 0.180392 0.552941]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
51 0 obj
<</C0[0.4 0.180392 0.552941]/C1[0.623529 0.12549 0.392157]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
52 0 obj
<</C0[0.623529 0.12549 0.392157]/C1[0.803922 0.12549 0.196078]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
53 0 obj
<</C0[0.803922 0.12549 0.196078]/C1[0.803922 0.12549 0.196078]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
48 0 obj
<</Bounds[0.3233 0.6302 0.7514]/Domain[0.0 1.0]/Encode[0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0]/FunctionType 3/Functions[54 0 R 55 0 R 56 0 R 57 0 R]>>
endobj
54 0 obj
<</C0[0.619608 0.12549 0.392157]/C1[0.619608 0.12549 0.392157]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
55 0 obj
<</C0[0.619608 0.12549 0.392157]/C1[0.788235 0.12549 0.215686]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
56 0 obj
<</C0[0.788235 0.12549 0.215686]/C1[0.803922 0.137255 0.207843]/Domain[0.0 1.0]/Fun
 ctionType 2/N 1.0>>
endobj
57 0 obj
<</C0[0.803922 0.137255 0.207843]/C1[0.913725 0.470588 0.14902]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
47 0 obj
<</Bounds[0.3123 0.8383]/Domain[0.0 1.0]/Encode[0.0 1.0 0.0 1.0 0.0 1.0]/FunctionType 3/Functions[58 0 R 59 0 R 60 0 R]>>
endobj
58 0 obj
<</C0[0.964706 0.6 0.137255]/C1[0.968627 0.603922 0.137255]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
59 0 obj
<</C0[0.968627 0.603922 0.137255]/C1[0.913725 0.470588 0.14902]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
60 0 obj
<</C0[0.913725 0.470588 0.14902]/C1[0.913725 0.470588 0.14902]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
5 0 obj
<</Intent 61 0 R/Name(Layer 1)/Type/OCG/Usage 62 0 R>>
endobj
61 0 obj
[/View/Design]
endobj
62 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 21.0)/Subtype/Artwork>>>>
endobj
14 0 obj
<</AIS false/BM/Normal/CA 0.350006/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.350006/op false>>
endobj
12 0 obj
<</LastModified(D:20170331152644-06'00')/Pr
 ivate 63 0 R>>
endobj
63 0 obj
<</AIMetaData 64 0 R/AIPDFPrivateData1 65 0 R/AIPDFPrivateData2 66 0 R/AIPDFPrivateData3 67 0 R/AIPDFPrivateData4 68 0 R/AIPDFPrivateData5 69 0 R/AIPDFPrivateData6 70 0 R/AIPDFPrivateData7 71 0 R/ContainerVersion 11/CreatorVersion 21/NumBlock 7/RoundtripVersion 21>>
endobj
64 0 obj
<</Length 1424>>stream
-%!PS-Adobe-3.0 
%%Creator: Adobe Illustrator(R) 17.0
%%AI8_CreatorVersion: 21.0.2
%%For: (Chris Millar) ()
%%Title: (Sling Logo - All Styles.ai)
%%CreationDate: 3/31/17 3:26 PM
%%Canvassize: 16383
%%BoundingBox: -2026 -451 2287 468
%%HiResBoundingBox: -2025.17966406719 -450.61375427245 2286.86142014011 467.72999572755
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 13.0
%AI12_BuildNumber: 242
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: -253.159121963538 -450.61375427245 818.840878036463 467.72999572755
%AI3_TemplateBox: 300.5 76.2299957275391 300.5 76.2299957275391
%AI3_TileBox: -95.1591219635375 -279.44187927245 638.840878036463 296.55812072755
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI17_Begin_Content_if_version_gt:17 1
%AI9_OpenToView: -5171 3619.72999572754 0.125 1495 997 26
  0 0 110 212 0 0 0 1 1 0 1 1 0 1
%AI17_Alternate_Content
%AI9_OpenToView: -5171 3619.72999572754 0.125 1495 997 26 0 0 110 212 0 0 0 1 1 0 1 1 0 1
%AI17_End_Versioned_Content
%AI5_OpenViewLayers: 7
%%PageOrigin:-5 -320.270004272461
%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments

endstream
endobj
65 0 obj
<</Length 3766>>stream
-%%BoundingBox: -2026 -451 2287 468
%%HiResBoundingBox: -2025.17966406719 -450.61375427245 2286.86142014011 467.72999572755
%AI7_Thumbnail: 128 28 8
%%BeginData: 3580 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999
 CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FDFCFFFDFCFFFD8EFFAF845A845A847E845A847E845A847E845A84
%7E84A8A8A8FD1EFFAF7E845A847E845A847E845A847E845A847E8484FFA8
%FD19FFA8847E845A847E845A847E845A847E845A847EA9A8A8FD06FF350D
%5A3559355A355A2F5A35592F5A35592F350DAF7DA8F
 D1DFFA90CFD04355A
%355A355A35592F5A35592F5A0D5AA8A8FD18FF840D2F5A355A355A355A2F
%5A35592F5A3559352F5AFF7DFD05FF840CFD04FF84A8FFA8FD09FFA82FA8
%FD1FFF2F59FFFFFFAF59FFA8AFFD09FF8435FD1AFF2F59FFFFFFA884FFFF
%A8FD09FF595AFD07FFA80DA8FFFFFF0D84FF84FD0AFF2FFD20FF5A2FFFFF
%FF840DFFA984FD09FF845AFD1AFF355AFFFFFF840DFF84A9FD09FF845AFD
%08FF350D35FFFF2F7EA959FF7E843584FFFF59353535AFFD1FFFA80D0C84
%FFA80CFF59A8A884595AA8FFA859353559FD1AFFA90C2F7EFF7E2FA85AA8
%AF595A59FFFFA92F590D84FD09FF842F0DFF2F84840DFF352F600DAF5935
%843535FD22FF840C84A82FAF3559AF06602F59A93559840CA9FD1CFF590D
%7EA92FFF0D84840D593559FF0C845A0DA8FD0BFF0D59357EFF0CFF0D84FF
%35842F7EFF842FA8FD22FF840C840CFF355A840DFFA82F840CFFFF3559FD
%1DFF592F5935FF5A59A80DFF7E35592FFFFF0D84FD08FFAFFFAF0C842FA8
%AF35FF3584FF2FA9355AFF5A2FFD21FFAFFF5A358435FF5A59AF0DFFA835
%A83584AF0DA9FD1AFFA8FFFF5A2F842FFF35848435FF852FA90DAFA80D84
%FD07FFAF0C350C59FF365AFF0DFF2F84FF35A8A90C352FFD21FF590D0D0D
%84AF0DFF5960A82FFFA92FFF352F0D5AFD1BFF5A0C2F0CA9
 8435FF5A5AA9
%2FFF7E35FF590C355AFD08FFA88484AFFFFFA8CACAA8A2A9A8FFA9FF7E35
%595A84FD20FF8484A9AFFFCAA8CACAA1CAA8FD04FF35355A59AFFD1AFF84
%A884FFFFCFA8CAA8CAA8A9FFFFA9FF2F5A3560A9FD07FF842FFFFFC998BB
%93938D936F7077FFA8A97E84590DA8FD1FFF2FA8FFFFC1BB99998D936994
%4CA8CBFF84847E352FFD19FFA835A8FFFFC298BB93938D947071A8FFA8A8
%5A840C59FD07FF840D596083C89FBC9394939A7077A2FFA85A593535FD20
%FF5A2F5A5AA7A0C299949394707777FFA984595A2F84FD1AFF2F355984A7
%C299BC9394939B71A2A8FF7E5A353584FD08FF7E845984A8FFCACAA2CAA8
%FFCBFFFFAF5A8484FD21FF84845A8484AFCAFFA8CAA2FFA8FFFFFF84847E
%FD1CFFA87E845AA9A9FFA8CAA2CAA8FD04FF845A84A8FDBDFFA8A87DA8A8
%A8FFFD0EA8FD6BFFA87DA8A8A87DFF7DA884A87DA8A8A87DFFA8A87EA8FD
%6BFFA8FFFFFFA8A8FFFFA8FFFFFFA8FD06FFA8A8FDFCFFFDFCFFFDFCFFFD
%3CFFFF
%%EndData

endstream
endobj
66 0 obj
<</Filter[/FlateDecode]/Length 17766>>stream
-H��Wkoܺ�������aD=�qbd���E�P���F�Zm�����\k�87PHu`�;$g�sfFғ?]�ϳ��9�+�&O��cSO�x�i����i���R�W���fs\�����_���Ȋa����v�^�]W�g��3L\�S�`jݵ�m�b���4�t=}���n���Ƣ������oT�����������z�o��Y��ᐹ��o��
��H���s!iʘѩPK�ھn����V)A����!+E���i&�߯VFQ��R��+ͬ�R3-%����駫q�i��|�q��_�>��o1S�o�n������� xrS�]�8��SJ�i����;������]�2���o��7{�Z�����;H��4�<0�iy��-݀0��ﯛ�6������vvw��q�#!��JK��KnF�P�2�mWB��:���]�B|9!+�j�b�2n�����ȍ�K����ڮ��F�����#f�JJCYxt����6�/җC�D�qZ�,��8ƙׇ�����l$�
 �r�6��������1.����fB�
�a
-5b�-�����gJ�F�Ɓ�v�	�n���O��6��
-�F?^��zx�r.�F<�&DJV�I���Z���_��D��+=�G�nj���;�?�X��ͱ4ۥU�z��Q�H�+$���E�.Α���hBHHQEcY<��*4KM/+�/J-#�ٟ��piE�^���$��1�L�$�M~��X��\�X�B>��$��V��U�
�qn�?�`�aC�|5��י�3fs�0�l����!y{���
)�M_��'~�/�.�^��
����xw�Cu8�ؤq;����㻋�=��i{�����v�q��������4�gu/�O����B������x;�#�K�������
�h�
-������q6�x���#Z����÷z���J�U=}�ì��YA�y���|�=~����v�wڛԍ����z�Y�w�g;˹0�w>nr}�s�����fCG�/f�*l�_���������gW��ښ�|�&�_l��ܽ�vw�~!�B�7]�������q�����M�k֟k��������}�o���C;5�J�v�:]�wM8�����P����t~������ֳ�޶x��c�M��wx"�E)eg�w�x���m�ߓ?'x��{�	�
-(���cN�q���>Km
^ito�
-��O��@��qHP~Lp��I��W%PTy倬���t�Y��W�,)ˢ�KWf�-M�U�R��d8)��,�"/\RX@��qI^�e^��r��
�s����G�\�
-�\�3N9��9�UY��K�,3��T&�Å(`�Uy<!\pK�97m@�3�/�1�=����3$�b�-,�����;���#�!
�
�{���I������,2_�a�U��&&o�x��*@������ב:��<�D��)U!�tnM�78�8�I%Sx�6̲�9��˒U�s.𱦸�[�q�s�_�
-��;��B)���+�D8��r&��7�RJ%�4��L:���%���&��yR)��QVeʩ�(�;��4O��R+��	����b�N9P-���[�@����-`g�tDn����ƍ>��f����2V%��8f|�c6�<C��n���P�c4(Q\.- �1ֈ�@�	X(��5
-$1�E@\�4����x��"�L���f��``�s����'|-j��.�v�QƢMU�Z�/�-�eM�e�#�N
-�ʹ2'�a�0E�©��ڷl�U7?A/Z�>�u9����c�>6��.ɂ~$}��R��3����,ڤC�,��*�����
-tT�4z�E�u.G������s��+�d��b"+ʤ��Z�(#����#Z}�B���,�S�`�[9�f`��$X�Gު�\�Hމ��a�K9J�J�ħ��Q.)��s�%� b��f��^BEpJ�&���@�8$Bi��VP�%tyD�S��T������g�<��2��}��j�SH+K�^��
mۤ��HC,�C= ��¬�OX4.e�_C�e�g>�Bz���	HؽA�N�h��(	pg>���t/FNp���+я�`�Bh��'��;�HYJ�5�
-oF�(�x4�Jû2�J�!���8�mT(b��%�	�AU��?8A���
-���j�4���z��(Xe����E��@�CW�4™�+�?�W�n�F��;(�p�X�ᐜ��%J�t�!�m�"Zbl��(�T\����R�dYVj�r���9��s�q�h���8����0��E���]5�بĊF~�����&f���[L9hQ�h3�4�z��
-��v��i'u���a��@�"�7K�4Y�|��_K��s�&�>��²�
�o�����\�@��^MW�=f�:�
-��	�H�Z I8��Q�I	�A�D����� ��RH�j�!c"v�Mh����#4�����G��YUӯ�`XS�z������Fh�X�,wԆ�@�R�\S$�%�}h�o�Ժ4l?D+
�w
�M��p�a$���"z������EΤo5�Yd����k�&Q�+4���7�j�̐�ΰ����^�|��{�Ɇ�j@�B4l@�2Ӹj�0����!ۑt�ɘ�@�~��*�BQ�(�>
-��2�bXW
-�aMXaP���C?¥�x�L4�{a#�ֆ�Z�v`;�o�6�S,�Z%��c=|����F��P��%֑uL�02��C 5������n�E�RQS��C5��`�$����F���BhLK�$E]T�>������#!}|��@(9 k���( Jd�Z���{`���̫��ٲ�zv.�ġ�C���D�ĩ�
6��	)'�N�թ՟Q](��Ba�{�tihF@PC;���A}b���ft�a�
0i�������F�B��i�ȴ
ݡ�`:�_�h-�^��m�+=�;����?A9െ�="`�/.��)�oH��D�&>렟]@��T@h1z@u�8�X�&�kK�-��µմl�c~��V��vY�!�j�j�@�@��Y@��Ԁ��%LQ��&B'��"��(�R
N�V�q��J2x��yLiV�C��a�4����Y.<�~+���Kꧽ.��᫁��E
�X��I^��B_Sb)}�U	�*��Tµ$,�5B���P�F,UWqRQ���"���]�L�k!-5�ME�֕㟛�3�_
-O�Es�!'(s�!O��x�I��e��Z��OCJ,�:�Ad���0�h����s��<PF(
-W�|�%��\Q��|��	�bY��di
-kB���?O�yU�G�M4����#İ!��Or�����x6|l�FKQ�6�HΥ�l�%o���<#{,�K{�n,U/��h{���G-��{�kiQ`��)�p*bUīh1îh�հ��\�ؖ%�Xc\H��#
-h	PZ��?������.8�e��/�)+Z�۸��+X�娢�
@Z�"@�q���H\�o�tGK��1Iu��F��3_k++�5L�����c�s��,��3pa�S��K`F5�a��@b��7JО�7��h�Xmh�E3)�U�jN1���^�qf0ଏ�O�(��6�G�4lS��$s��xB�`�����^�p��&ki��]ץ��{�"Պӫ0��L�^���<��ڒ���%���ھ�3/|�?���Q�N�tz�9��e���9~�]�����A8ɯ�W���$���I���x���c��,K13f7���S�gG�9�lx|���Zc`��)�3m���K�X�3
��nK�3�[�E���IXT�}�����N��༃�|�U0��N1�������v�%�朡���������E�3W�e�y�,��A]�&�L	�1�V�q���
-�`�Vnq�2�
����=>��?~í;��9q>~b��/����I�h#
-���s%_�{�돸ϳ��v��wr�����8���Tptݕ�3~��A���↩2��`���p'��7��o&�(�e��,�Q�%U�GW/����s�����J��7&��v��wF�Ψ�0���[��ǵ�� f�_��죋�۫<�c�U��Ak79��5���[@fW1�����"�O阢������i>I6>|��q�M��0��"��WI����aQ���/p~k��&�&E2�{\��"�xJ?��Yb��{Z~��{��N�^�n�g�f/�/�G�n�-)W>}���';&�ǿ'�]"��|�_������|Cq\$թq�i�ڻ_(�ό����O�,٥����������u�M��e������:|W�Ħh��v-ǿ�/`�+2���K�/w�x�
�,�X|�2��rI̟ ���yg[R�S��������:Ӈ�q=�)��w��~�^i��ƒSO�s���7�`�b�~�w���Ly.��)���Iu��w���:����w��
-\�8�R�)$�.�=��+�/�y1Nz�|:�;1��ڷ	�IO���k�~�?L���6��
-��o7����œZA����,-�
-����ڮ۸����ڱq���l�i2K���N8�r�<.��H�l�x�L���s��y6'3?�ş��^5��8w��)�l>s�z$�&�3*�2���T�>k<?h�$)o�����o��y5�WO|��nn2�8�^�������v�u����V./~���_�䮗�q��j���|I"�_��k-��
-��r���⎔Zw�򲎎�tZQ��ϳ�h�P�X���,�?��:���u�M���)jE���(<�ǹ�E����9Lu]��/�F�'�O��5�8�˔<4O�Lj�Ȯt�/]��;��J�C�U�(�ϳ�t�
-�\Bv�ǔTL^���K�����o��hY%�ͤ�[BNY�5w��/��B�=��*��ch?D�5Mp&|.��C���e�?ګm�m��
-�UY�];O�-�&�]�&٪��DB�� ���O$HP&@:[�0S3V�їӧO#={�+�`0��B�E��x؟N�{��u'�PkS��h2@��u׼]X��F�YI~s�;�4@�ro�O��k	Q`R��@I��O��O�x+����x<�C�����;m�f2ð��W��	��*���:�-H�1���Iy�2��6�tHq�fZ�U�n�ЩJT+�Y��HЊ�(t�P��4���x4Ά�c��.1;b�,8��g��DȌ��������e���t2�Xޤ��G[�A��O
?qX͜}rN�h�3�$iz	��0�{5��g8.�wa�G�Rv$S��J�R��0U]�/I�	+�dN��t��c���8�s�ں+S�_-�k����#-��7�4�]�	C�����&Nz�)�@
bi%R��
-�ʥamM0��ۃ������78&�M;���������E�
-�
-��y�A4�F��~Q�T�����hZ͏�j�ܷ��<5^ߗ�	�Ml4��Y�^*lb�YL�z�Gh6E=/��t"k�������Jପ���GCR~�j���Ƴ�ϯ��㸅�68�
-�ƃ\�MN��h��pY�l��\$��w��]3�Ybѿ�_�d\(MI	����5�	]��3�J���F��$��lA
�N�A���7̨�A1:���,!/7TH�?@�`��J��t:�8-f��͆�0��,�&nwH)��ۛ@��jIb�'���W���[�iTVj:�:�&�R�e��AF�}�YIƏDd0��XijѰwԟ�����\����R�ՂX�`�p/ $�8�������>K��-�����0��[�$Z��w�b�^#7����HH����W�j?O+�
��=�R��Kq�)�1^uQfJ����4�~Zo-��*��F�~X��BD-]��Dx��ܠ�*�X�3�=T�Y��)�K���	�.�~ܑ���W��
:+��pS��*
-U�j��O����F�Z��N�>S1K��;'+��|�E�v!���u�Q���
-�}*���-�a�_��$�^��vÙrecQ5�eqP�3
�X��hBLeA���juu6��@3�	V�K���*(�����m�:�{����q?��s�XU,���@���k�Er{�f�q=���9�qE6��*�`��P<b�|�t}PD��<M�qTC�y۵�2�Kr�Ű��J��⃄-�e���S�;GB6��a���{x�Pڍ������'�7���<��֠-I��SX�u�Ԋ$����k��doMu7&��Lu݊:�n���P�ž�}�Dނ?W2<����oIO�,���m�欪󰹆)9��s����Z�C��,p��Bv~?�ZyX��0t@ۥ�Y�G"�:�����ޒ���Ć��P=2��l��
l�?��^2��)i�A�J�!���і�V2�)���������6�ǠC�żก�\�}밿�WQU�a�c)����t$���hY*z��\�8~j�89�;����@����9��
M��8� >o	�t��2j�~�PZ���0�P�n�nW����@!+=�PFt4�
-�}�"a�hUGFy��ԣv�y�J#M38����2+L2������`��M(��,�e�š�+������|��`؜\;��
o1�',p^葴�q�2��8��-ևm������J9�X���[�� �Ss��鞁8��%h���%Z���p�$���1�5?�D��u��鸳?{�V�}�\�:����Pa/��|v�&q
�BmS����8v�E����(]�
��.~��t�^�y��Rs~����C����ȉ8�vV{7Y�DyX�bR#�&\p�!3��yG�?%���{��N���=��?Ζ����:Zn>���U=O�J���'�`���'�h�j��Q�Z6-d�����1:�Z��ُ;���=��3�t������6�Ѓ�
-��V���U0v�K�%�]��H��@�<��Ap���\=�����|E�i��!�js8\��-d-�hŽ��6p�	It��7���f�%����p�a�/���[X�NW ��S�+���Z�J:�l��H�@��,%[�E�.I
-]������?\���P�m�̪��:�
ȶ�8�k�����G}dGF a0��c��ǚ�g<�	��{f�!��r�$2��C�����zy�Y�+L�O��hg?�,�U�u[�NC���~-g/�Ra�@���flH��49����]	����βC��%O���B_7����j7�s��ᵦ7��
-�(y.ڳ��NC�-�@�h8J�#I|�=�����FX�?/�&@	�{@C�.�K�w��+?��8C$G�y:w�Ŕ!Z{�+?e�+R\��	�Jc�b�M!h �Hg$�N�wˮ�iW��_cX��o��D��`za��΃�XЬE���X	�PS/�^�{����d{��O�.�j��zRu%�%��k�t�D;l)t�0�k{�>
-�Z�gʊ���$�<��7��G��B͌'-�0K�3�X-H`�f�/H�4'��V�L&���7����_3LSY��`g��`��&���LQ�S���wZ
-���kց�
O^��V��F�_��9�n`���<s�T1}��/�$Q��j�t���w_Z��}��|�B�4�����C屓��T4�	�j�n�e�X�9؅�����8�0���+3���������\RU[�O�;lG1aTPA%��۬���sSչoe�ٳO��c!����׽��~��U8������w%re�����p����&��ǯ�^���_G����g��)h�V^Ζ������Ǘ�#Z�������(�0;�b?b����879�ǣ�:���x�7��W��Aڊ��_e�����s.�&`����Pr]�@ܯ����gߝ�e�����x��]6�Ǜ?�_�.N�۔���wv��]?m,6
-��ҿ|@��p��F]7V~y�V��P($��T�~˖==�i����5�D=��s�Ej�s*�3��
-�Q��&�y�t��f.S�eS꛷�/J��R�c1��ĕ8bn��,�8��"q ,�:�7!����U�ebӺ�Lg&b8�2�j`�e$Eusgq��c�P����W��h�t]d1�n󫍷�@����*sS�ժ�޸�n}m�^.�g���gS����E�崙�`�CP��ߦ�
�yM���YXP]���G���e�޶��|��<ybA+8�Pb���!����u�]Hr�C'�$^�	��;�pHԃ�C��MY�^���ZГ�h�?-Qi�.�8Qǥ{�Z�� Yo舾]8��9���YZYDI��,��x�h�DG��[zIQ��,�']�pS�DTN-�R�(���Bd�ҾPp�o��ֈ��"�P`\m)���@^
-=ҕ���eZZ/E�]}�6�C@@2��S�#�du����~2t�fKS1��*��㑝h��[!���E6~)��3����Ӗ������2�Cu_14��������z�i��V�0���@_��_�!^1�[�tM��໸��!�`����.��p
q���H� �F^7O���dymre�����������c�ƻf�Ժ�;����+W��U�]X��=�"sY�p`fHQ5mo�K��"WVEY�kE���A���*�m�F@21b����k(����l���pK���ySU�S�D�jȜ2Y���(�3dd�#D�}r`��#����%�`Nvq�@�@,�8)j�{Wp�����oVs��~��1y���ԒS�������P5,[L����.i:CYPT[����Dѓf���D۞�J~�z����B�q�YJ��iQp \�����d�"�v�ϼ��wr�5E#���>3�\���
-��.�frÐ��QMf�$�)��[���|+����G�_��-�ٵ�\c��*����C
-��'D���l���=<���[�ř7Oo��J������~#*������8�hsMdrz��p�Fo�XmB�h�E�X�{c���c)39�w�ۻ���p��5k_$_�жn�)`��Ĺ{���������W��/�W*��4�
Y&/��Ȱ������坫_1�
-�>^l��$�1�u_���-;�6�����E=N��sZ�s���OL��il:Ne�OȚ�2�Ē�o����
-�!�K�U������o�o(㘐L�Cb�x�~H�����1��u�ߖÊn�Qk:�1�����M�d��AG�Xw���K
�
�YV�
-;D7��F�_S_�j��~C��0��%��(��tՄ��4�0�ԁ�?&�Ij�E"li�Z1����t�0 N�p�aT�_�̴�{��4�̟Sb��L���ǿ-@���_�BVͨ,�<&+m�
-+�GڊY.?�V�&�i1[��ԣ��7�i���(��0���CV3k�����Th�Ê�<�ƒk�C���|��C��+Ǟ5@�Y�GC#%f
��X#�����0���O�q�p�Vq'��iL�3���Hr;pW�UyX�dg n1=������"�ٶ�9��w�n�“`�(��P��ݰ�P.�WrM0t��`�y���(鮨C�����_��`��24�b[^/j��@��e�B�]U��l�)�};W��w��7�X��Y&D��
-�?,{`��S���d�=̏��4 �0�[�5Y~�;F�^��U
-���9?66_4�����R�Ӯ���16;�������68�Ю��G�\,�Z�p���$��{F-\S�	IXf-���5�����R&زJ�2#����*��f�ӽJWEQ����O��S=���xL��u�x�}�*�hQl���<�D�ש�Ǜ�=N�<���F{��~u��Al䚃_��O`xq�ɂ��@�_�y�ȴ,ʜ85��v�ij�Y`�
-�*?-w���
9�Y{Bj)DF쩈�R
-��ԂYv?��%)�B=�<]��.�v���z���0e=�C:P�ϱ���`z_U`����K;/������~J��ˀc���K	��LtGzi����W�z��|?`@I$��%�0YL�%2���
-��={qn�lf螙�ꪎ�Q�,̅ؓZ�$�D=N�}:�Z�T��7���|z�;0��-���\��FdbW��[�۰;B��
�.nr�\#X͍	���L�k}�ij��g~s�������CFE2�W==+AWu���#��h�;XbԲ&��"�X�!�F�����{����z���L�];z^h�L�#�W�WԣǨ�9Q�0\�^Ջ��u��y�D�;w$���T���#=r�#��؟�A៝��#{ŀ���b����&���^�A���=�3�b�E�n���5Q��-Ĭ�U�����a/�;{}��nm�����t�Ǽ2�)������2��:d���[q�=���L{��!Q��R�d4;h���J���~̴'on+���"��6�`c�Su}W�;��z����`�����Q!
�{�abz��N���:5mAl�橬��t�s��>͎U&v��rE�W������~v��yŜ�f���!b	���;UY���T���!(���yo
-#��!�j�"�S����/�*ԏr�"S���8�%�>��@]{c����S���:�-�@j~xJ�
-'��v���>}�Re�Ͷ����a �6`L-gbK�Uh5�B�m�P��X9�G&��vu�G�|���>�ɩ*����HC��[��[���ZO��J��JEG���7}�>7ƾ[��E���NZ4L�p���q�6��Z�_���`w�V(_a��CqqP|�V�kf��H��m��[E�0N:�v�n2Xp�#�+�&B�ƞB�o�.8��Ui@b��2}�;o�d!0��8J��,�j׉v4:G2���H\=2���v"~�����\��Za��?������|�5@H��0_�������{����囝�!J�ʫt&w��V����8�ۖ/������֎�]�K���V���r����,iҫgZ�zS��=E�q}p�
-t�b/��
-zrIfW�K��8��l����l�q�}8���s�F̐�z�\�:�������.�7�[ْ��6
��5/�5��Z2~J��,=�V/�B��U|sC��=�P�n�*��Љ��{���
-}單�7��+�G9i���Q8���@/��^����J��z��R:���po�sR6���[Ȼ�=lF�Fyc�!HI��cƨ`����)T�+�IP�]�&/��X>rqc� �ku3X�+�T��j��?]������FUAK�:����3Lj��Kv�����J!H�P��5`9ɱ ~��^���ȵb<���V*P���/L��ު�o��#3&xeҝ��l>	G*�t���xq���8X�s�+u�b4n�:Q����+b�vѣ��A��%��L��]Ԝ��"��3��^�\�<��i�K�Rոa��-چ1�lCl�ɲ�m+����Bk�O��U�*��S]\��S��ڮ/F�i��#�ِ�*�S�ZO_��
-�O�w@��ܪs�_=ESt5rI�z3�_��:
��YvWps��Sf}z��MU�ю�d������~�Aa�*�!(�#������\scB!$Ba�#ֶ�Œ{F����h�8�_8	���E�K.N�M����St�d������xe�>R@��X����
��љ|�u)�l���+]/��5~aY۟��f3ENU�ӫ0F�`����/�8�|7���)�>}p���%+��`�!�	N�'RC_�0���~��>b�z�T�]
-�d�|a��;���.S�v���l��g����O��<+�Pr�c�N:S�6'��G�M8��������jv����7����q�S؉��됒*��=`���3m��[k��$���B�#k݄<v��!
�4$��8�g7t�ք�H���"~F���6��
T�������2�I�Ns6�J]�gl�\W��ϊ^} �}���n��2����755'�S�ۧ�0��d�(H�k��ZK�S������y���/Y��z������>�h^̒X��3Z ,�I���ϱ�X\�Y��^�V��u�:v��$C�j�����d�Xd��<��<��›���qZIN�[/s�M�yڞ�6��a����u_�&K+���I&vޑ��|���?�v�;�)�����	v��\aK`o�~���d��Z����>��S�[��>�0'/ڣf�=ΰ�ܴ�-ĔN�����,�9�.�,x�����e������+�D'"��(8�C;�Э��
��Ώs�'�d�}��0o�'UI*U��
 ��(q���O�{D�K��F�Gd|%GaVGQz�!R|���;8H�3ՠ�sL�x��\�{ίxWsE>�ݡ~`��
˃ψg�����,%[�)��e*-�0�\��4ά�϶F�p�0�8\2��g���K\f#�
��Z�6�
i�o�Vhi��/\M�
_��a�&�`���"s5"
-skvo���M������<nueKA�Z�V��I�JGŚ_�K��ՠ5�J���j��r����X��¼s\�.]"�H�(U��:����^�� �Dk3�[�����'��K7�5�Q����d���p� ����*nѰb����vޫ��^���JZʂr說��/��Q�WpI*\���-�������7��{���tM���f�k�8�\��!
-�[^^�u�!g9-ՍbX\��K�3�i�6�}���^�5P�Զ��dA.M0���s�(���]k���=vſ՛f	h��-֘5���J%&���
-�6+�
--"D��
-�Q��Ji_$�hŨ�к�B�JwU6�-���-�������i�7��*&1_�ٶ���I`��(�y7[(-��q�u0om��|�F�@r���!,�n�
-�����?t��HQ,C10K?��/�E�CŹ��ಜJ���S���D�SL|�yiD�9y2�?���lr�d#�+����L��'�4���J���1��w4���üs!���?{̭�[�4��i���}�p!��nF*Z��=�Y�f��M�yҙ��
���)�i{q��@p�73��,Ǖ�<�3�;�>�G�*�r� EpuO4�&Os����2g"U���С���QЙ<�o:����\�~='`
-��GM�h߯#sh+���	)�����T,7.�A���N �a��?��P��c���l�a
-��;��HśfP���H�����~+Ml��(䡹��o��uWڞ��۞:�+��t�P�r�UJ�6:����cy��75���(�SZ��|��S������]�3&80��9��7|�=���U�'�GA�i��Ci����{uS��_�,���������x�	����R���B[������*nz��B��#-u�0�uO���riln�83^E�z�l-���9��R}z�}.�����?z@�{�uĂ�1��lg�:\3���^,"����=y�m���T���
-5��|3�vK��
-��۩��4�`5�V}��0��͠0��gIik�%�O(h
|��,��F��Pn�u��ΐН�[e�IL��
-Ϙ�����������`��Jb���������u�vƌw��
�V�*�u��
-]Qnå!���@�6��j�E��g*4��
�H�~g� �I���Ĥ��
-��zP�kl�ҡ�d���k�h�>.hP�{(��n/MN5���v�4��(��%�q
-�5*Q�\�5�D���5h��m�a��e��H��ѡھ�Z~��;)��\��^����C�6����⢙{VI�����ʠ�_d���(�p2M��I�D�*��P�"T=��
=ˣ$�f(RW��(
��4�R��*Tºj�M��a�j4�R��A'���G3��Nߎ!F������Pj�_�����/g,r��#U�{X�^4M-���/�R���#��y�]���0�C�n��=2E�;0�<��ILw_^��I�zq
-�f�<<�"Թm�{*!��t���PW� ��(���le���R��Cn�wp��8����؍'��c��ĜS�`%�*��i%�����E5F>R�c	��3Wi�F���B�S"?��Ԝ�ӾV|0��N.�K��R�D�T�?�f�Dd���P��QP��A<P�9�����2?�~���_�rl�B�a��u��k��.�'��r��x�p)wz���75��5�ଗ;0�~%�5�=�M����8X�Ě/�Z���d�w+v��w_�ޠ��O`�9��P/P��ݱ��-&ƍmm��.�Z�E_�}��?��#�;�z�2Ez���o���Ž6�3��|X�V>/�~$T?m(�&a�01��ñ^%=c_| �P�v@B��Ax@�-/X
e���#H�Zp-#��lm��=�����9��s?-�\{��Ռ�������~Z��s�j�>�|���y�8w=��6����r����g��^�{�_��S@kn==ߧqԦh��ЂŞCҖ����s`�����?�v~��bW@㾞�V9�z����gLE�&���
 �?���X�����(�	�!x$� �nA�.�"�RP+BźR���wf��a^���ץw���sέ�&F�����fZ�6��W0�r���O�5q��x�5��
��^ͼ�j:@2��d%{.N��	'���r>n?�O7
-�˿^�����>n}�X�S_;�ׇ�r�B�s��@���ݒͯ��W���s]������4}]�q2`��`8NQ��V����ݛ�����A2Y�W3�S輸�P�A�e0Uޜ�,���\��"�'=٠�^jJ<�U�kz�iX��LPO�@��me/����&�}���!��;�Cm%N��tFi�y�P��S��Fĥ9�Q;m����)��v�C�yr�We8U���deG��OqAsZv�Fx9��8����q��A�2�hL��Ҡ���.�b�C�s�0�
�`�P�"�{gN7�n��)���:��|�ڏ��Y�W1��Z)���X�_�j�8�?P�q�/L����H�JU�(%tY`�%��e_���"��Y.̟��1r$���H�_�b�S�b���'LL�H:F�6Ūh+IaR��m����{��fC�f������r���;)���,�RD������s������X��<6���'Xv�>�B��F
-�</�-7���fݽuL���Z���c��X!u���,Ϩ�5W�>qI�vǾ7vؒ��O�z��etHB�!�1�`3�(h��V6���Ք�}�qo�g����7/w��������4�S�k��B�1��W���������wR����ڣD4}�6,���,/jǺ���w%��\���%U.6���|��,�ڱ���Z|���oA��)�A^|Ҥ���U�����~1���:��[&c��@-��.s
-4f��I�VⵥyP}��[���҅D6��ߡŜ_�~�q�����%\qV�P�/�f\q�Y䂧]#V��\qΑ�?�;������˜�#�\m��pz�q!���)2��W̦A`Û�
�
*r�$Vi����m�[��n�����|�8˪T5j�
�?pv��ҙ�\���z֡���h�3����n��ؘ/
-���`^�*��.T��SA�o�+������ʝ��j����L������cT�;S��v�<l"t���DP'<m�2�ݾT�N��!yڤ�]����{XA^-*�-	�XsC� �J�`Jh�\��xY�R�$:_Y�Y����ˑ��W������fl�\��Yz�B{'D���z
-c�������6��?��`/�'å1w���q*
-�J�8����O�I�*����P!MA�P��"�����&�'e��q�\�9�U,;m��5�SK�3F�][�
����Ut_wHQ��#�Q�n@E�N�/	���ߕl\DӥN�{�3���[���
�b0�EC*�֙b4�Sʎ��λ�v|��݇qRj��Q�qM�qT�C�
�9�1~�e�&��5�����r`I�X�����q�kN[ߣh:�"G�֫o���ÿSƛ�������;:�n�'ٵV�Y,��d5U�����4��ݛ�+��Vp�BM�KX�0�8\kύBj�'�9��f�5��r�8$�縖\c
-���������c��v�V�A�Rᦉ��]|ݟ����3�zn\Y
A0��gi!�cd�-�=>S3�e*6���b ���T�Qqn�l��(��S�cr�P���1��P���x
-N�R�R<�ՐU=H�a���v��o���.��/RJ����Jq�9�Z�1��ߡ�|K��yK2X����v�_8���	t�H<IM|��쨸L'���"/�cyJ)a�@�l`Bl5�#-W��)Y��P�+%���d���Lݙ)�<�� ���})���\ko��,-��6��!������\0�7X;����E�
-b����b$�H�����8�>\��'��ܤ����^.w.d���Z�?e3�>�������|�f������ʪ�ߞ���-��E��V������ڽu����Uӿ�Ϊ�f�1u�=�ɔ�5,G�1𻋏tf����}�ɴ�~��V�vW��I�!��|=���&�U�_�Km^�ypH�0yzs�<�}���?���@?	M �Ϻ�z]����K��h�~[��EsA�E��ZޣςG��"��aD�G�Rr�x�+G_��o���G���'�8�h�G�t�z6�ԣ��5������Q$2;Z=�-�����~��D֚�Ono�����ޣ#�Q�a�P�~��?j}���~���G��ؘ*XX�j�'�%���~�����R�B����5��G޿�Q��\_��
�q:璔�w��ѫQ����S�
Ϋmc�5ݞK�K���fT��(C�����u�L�T�6f
-)�}�'5���`m������,��縠>_T֯ܵS�b�=��D�ߜ甂��v,ht��W:��]��v	ȼ��ő^u5;����UXܔ�@x���T��^���~�������
-)i*}�U���`J����d�kz���6�p͓<��ka��>�i�Իi�A�WK�%�8��\�X�J�jrnHφ�~�|*ᗆ;%T�iw,�1B����
���v9;��U%T�W*0sr��+��V��F��[rzL"�O��˖�1�����i*=C �����u�B����܄��f������t%��V��Ք�^�T?,���q���C����
�^r~^�|��W+��sa��y�$OZ)�㶣4�:�z=w��馰��Ɇm�Pd�-��/�@��i�}��5?��]��h�^-�� ���X��զ���3�u��I9��(�K���.���O����t~`+�I�gh.�6���:k~�cj$��9�1A��.��=�i'��`0Tv�3�ٱ�>;��%�+�.�R��b#��F��dK�[W�
`m���/;[����KM�Ev��6�����:�P[��E��[V�����~�a�F�D���s���՛4�'����|B���;�3��(s�n�����K��qؓ�@�
 ���ne&%��q.��U���y�����
endstream
endobj
67 0 obj
<</Filter[/FlateDecode]/Length 14840>>stream
-H��Wk[�L��\r$�b�� HE��Ex��J-����nB���ٍ�%�c�\�̙9��ߥR���q�$n��ځo7�ﷅ\��TWڋ�Xɗn��Z}�)��6Ņ�r�*�&Y-�j��ǂ�*����۴���l��NV�)?�m�[�7�M�Ev��]��Gՙ�Ek�b��󉒓Kڕ���%P��h˭[�7�S��J��:�Ȱ�v��51UT[sh�����'LjN�v� �Tqvz�>D;��Fi���꣭SS��;OH��m�x�?l���8�!A/���R�u�����b���Ս�,�_�$�AA
���r�~2G+jH�*�\��i#|H_�}���h��;���{,I����^{Z�N���0M��;S78�ψ�8�.g|��jWW��E�T	5h@�4��ٌ~�D�1�W}�2�?F��y�gjy��x�sRCm!�G��6��̬�`�En*Ps/������Xp�X�i;#��b���pI�����kA��f�M�.,}��t����xg�]�	";S�YR�G�"�g��u\p��tm
 8�$`�{�6I9#/x;4C�Q�����v�fDBVl�`=Q����t��	�eh^{62��SK��'@�ҡ�OK����ghZ���P�c�
-,ꖺ�Ѿ�m"/�-G&�,���J���4�Z��,�)��+���c����Qy\Ig�j��r\Ѧ@M�v��?b[ S���ef�E'4Ʊ�X=�������pT���$Y�紓�b4�NFvԃd��Yq��l����f,�2e�1�1��L$|�2��=����Yp#�-`,��#�BF�5���E��E�e��l!�5y����^��
-s_����ɂ���<�t^��_��Y�*	�)�O[b�e�f,w���_����BN +=V�9�����J�����&!�+s��m��f�.bN4P�3�S���-|�m�:�%ˣ�e ċI?
k�J0�1A��`���fGh�Wy������9�9F�!0f��!��ؾ��C$�C��D���+����-�;
{�]�R�#c�5ng4є}W���jk����a�ۋ<�I�������8�Y��+sh׫G�ʜ�#�ۘ޼��
-��o�Իo}qR��@����1+��v�d��2T4v��v�����q\��o1����P-+v����*�’�ZA^+�G|�>7J�����jWWу�h@Bk�;4�>��-4
}$�&L������#�-���8����[	����L(G���XIڦܺ���ƞ��&����6��SY9Z��5�E�x;>�]	*���Aw%ep�7m8a��X�������r��	C����K8�ɚ:���ņ��8��K���Q�v���-�g�gQ�g�T)u)��q���틊��1�Q����4� U*ܶX[s�M��ù�>�R��G]Nc��P�d�ʃ�g��D!�u3�v�>{=�7W���l�Z����s�Q:���~z�Z#�o�Q$�<�#j��Q{��"���>���q����J$�i����^F��r=��޲�o�d-{�߮V�#JƸ~��ݕ18*������vV�Q���v������b�4>2��ћ2�wfn� ��.�m>1Dn�N����T��e�����8�g���
 L���9�pjF��NMs5p��)�0��o���x;�95�z~���8����$�\����ݟ��0|'/����`@w���������T�P���Y�7�985��G[zs]��4bT��a�K�W�9DO�W�����i��م��}���&6E�9{��e��<�aq��Dluœ]!�z�.�����{T�T���@ۖ>�Z}��sZ�^�<��ҖuQ��$z��b�VH��t�$��m1>іV�!�nR�v�?o�ǪW�����~��}�%7NmY��Ԏ�q�'9'%��N�E��\p���	Lz��|!��8_?����Y�Ÿ!�߫���P ��>��!�_��14�ڡ���^�\8���Nm���C/��7P��l�k�����^�fS��R �n6����s�;�J�ɒ��1�W��55#~ּ��d�Ԇ1�U"	�]B�K�?'$�y:��C��gB�Lp��H��3��/�2��*,��ki)�R��*�G�)w&��ٗ�N$Lrs�HG��9��ȓܖ��XAE{X�
 	j~BA��Q�]�?�+0�&5BM/���Ji�.�馛���HP�j�IB��S���R��xWd(�U�04!05�|�&� 
�z1���'L��q��~>��am���%�B��E�`׫_ސ�+���_E�䋻!�AM�4�u�Ҍ@�
�7�����S?4�=���<�������%�^z�f��lc�%���eY�2�1�f
-��~H�r�C��1{�ڍ���w/_���`�k�!��c��P�=Xü6�]�^����<-�111�ū����nd�b��d��z�i[n���ù+�s2�7%&�wڙf@b]�Lŵ�`)	���d?&��}�ۯBfo��/��!*�\�?b�ս+�p��\瀃�#%V_���s$$�LQ
-����s칰vO@��ReJ��]I�W�Į����Ǵ𪋶,�Zob4u�#x0uq�.B]��W��R���+pz�/�/���t={�
*0$����Jޠ�W=:�=-�A�Й+�݅�9ap:�0ԋȈ�βދ�Ὲ�i�|W�B�㮔�����G�հXi|U���D�&b�a�X0� 5]�'5�`arF�w�r~�95�0�����o�Q��s��vF�m���'�걏��*/��cM˄��%�L��w���G��q;�nLL)yљ������<�v0{�B{U��X��-u�H�WB��Nd�
-�17gTrց�����@�Ѩ�݋�WtSZ|'���֥p�p���ouzSD�-�F��;q����?��9X�: �?fM���$�G�@`�qS@ClN�:��_���q+��^�]��P�ԏ`_e��
-�[QZl�ۃ����IREU�R)�/�s8������?)[��.��
't�-J�(��l:I�vm~��5ha)�r�jC���yg�����M����zKɧ6c���;�wߓ�(�at_Ǎ�A�+�9��{(�e�"���mli)۹U鶄�X����gQN��o)9s4D�@)I>&
�������(
-�ݞ��`q�eFiXʛRJ�Ї��D`����Ǽ�~{�LuC����S�5D�G��\��p_�w�$D>�����;n
-�a*��z���ӕ_Ix
%��	%����+���ES��xWѠ\0K����F���1HCDn���{�~][��T���{����i(�_i��/V��2K_�qx�!�I�n��4p4<ȍ�z���؍cOz�!F!4�v�8�4�P�U��x�!A�I��OC����.�Ō�7fh��� ��L`F���3�w�4Y�����x�����ǐ��ʽ���AP»q7�R�#+�:B��7��?��T�}pGL'A�<��8�O�h��#�h�9+��c;��ՄQ��e�B9�Z���)��e��4��]�����Ƨ_?g�z�#!�a8">]%9���r0�m��z���d%�!m�K9Ĺ�@�m���K�}�I3���{�:�pspI\�O����M����UJחǹ+'��l:�+ߕ�&��)�ҪCk�XA�U8R�5c��&Ɛ{�*���a�:|�ڍ�<���U`
-�ȵT�{EF���Okְ�${ņ�~�}A`�j�I}��+|�q僧�.�a0SK}SPM�}�M�z9I)�P~j!�БT��]���T1gy���fo����=���j����+5�I�8�%_��s�K��j���^
�R�n1h�.�U����ʏ�$q����ZgC+�Q<Ɂ|����Tz��U��JE������L�l�]����{/�X�pch�����1uB��(z���kz-P�~
����ŏF��G���<��/̳������p�=�z�~�p��B��?�7T���p�~tx��0ϕ���[�6�c���G�=d
-|��4�����_��{��Q-�s}sE^�G����hd��J5��%_J�h7>�Z��>ѣZ�<�;8�e�:+�'�e6"V�����w�����k`�G�rD��jΝ)�U���g:�
�}'�Io��vK�%t��d{U<c��(�([��N���6�_�J�\ǷV�qJ��ve�)��tX����u_g=/��"(dx%!a�E���IԮ��Q�k���q�跨�a�W�:��:��.o���N��X'z�Q�N��ye�y�rJ�df��@�}�󔙭��\�G_|���)?컥|Q+:)-IsT-u��f���h��'ZWx�c���R䣜:��|�=��d���z����|;3�����J>=#���']�Z%��2Fx�:�vP0��U*L���Q��W��Y����S�G�ٻ��!	%��WP��B�\2m��](�d���1���x �#؂N�1��s!O��<g�
3mX��W�c����ۉg�
-*�Wi��今D�=��/�e��d��#+-Ń�����.��I&�d�%���*G���iw����Zz�5;$���W
-~)��#i�,�_=3L:�(�]R1���M�s������[N?�m��\�b=��ŲĨF�%T�/5G7N;%��k
-��2�
-����{�S�l#����W��������,g�yV��{�ƫ�J�z�%�N��ֱ*��ZO`�F�X��ö��e��z�����}����EfG��a',��xzR�t�x+^Hc �9+�5�_(b�mI�n��1�W��oS	qZ)9� ���
e��C�׎�e�i�C��^���nrs�(-�$S�TN�SI���5�7X��X��R������Y}�K���О��B�Ƭ��I_��*���wO��k�yK���}n2�QW����q�3���.��+���/�+CS_�Nʌ'u����Ѡ(։9L���P�Z}�	.$�/��FU�
-��gu�yB��($��:�&��Ԍ�흍h��6{�m�+��>�1���OJ�+���z�<�
-%��N�Vn�惥h�N�*{�q��bm����ECs)<�C�����Z>x���\D׭rj��4���5�O%3�N��Y��$+�T��k!��%T\�哃*���̮Ra�N��+�Ba��o�
-�I��0X�͐KK�:,g�If|�]"ְ��
����<�ǜ-�U�o���qJ��u�iJI�1�m��‰��EX}��q��Ft�
-�i!ɤ��c�Ԝ�CT͘�	5z>[�����[���֬+�j!ԨЗc��I�,��連�E�y���ݳw�ƍ\w�xGF8��sP�8?6�9�wt��PYO��/z���qg?`0Ʒca8X�c���6c��Y�3V�U��(;}QÉ
u%��Q�Jr(蕃pN�����ԿiB`)W`,e5�=�W��-��$�Q�Ԇ�����ḀeFy�=�K�ΥU�ȣX�%&"�d�Kc��_A��>�f�9R�-�����gU��f<����I`0���%L��",w�z��=ڀa��W�z�
�@�}��>�3Z#+��[*v(KC����6�4
\C����f�����Ƨ_?g;�;y��X��r���>���Ӑ#�uY�Fx��Kd�
;��ni������1����^T�<T�q��D4�P4E�4]��;
6
T�����{��`Ok�`&T!٣F�gܕ=F��Kd����9������o
�xM����=v�js���ѹ�ls0+m�l���t/���%Wmk��n����
-Yy����d��y����(��5�`�i0�R�Ƹ�`�@��8�j��ɔ�������c���R���}lWv��u�M��I�Q��dő���~=
-
QV�x�QF�V1F��R����dl������$I�/�$i0������ՎӰ�	V���O;]gVn����cݕ���#؁C����3�hqH�D`�w���1�U�������AI�B
-�p�ڧ��ҫ�g�P�G8���*��{�RV�o~?���{�:�:T�����?�tl���<�(Q)]_:��d�ob���l:�EVġ�JK$o7�]8ʃ����D��i�<�6�
����Q��Q��d^��4¹����$ހ5���)l�V�r���3OV.����^��*A�	|TD�Ec�\�C4�k�׈�����%���I���kh����95;��v+�s�_�ˮ.C��ݧ�(�>��O8����cg�6�dm*	�x^���E&iW�'>a{�e땞I�/��b�z��N(_b&���&��c�&[���H�f�f|酪ȯ��E��FxT̕:���Qy1����@�sS=l'#d����=�=q���˨�n�P�ءn���j��&�ۗu���W��6���{�ܺ�$��LS�1�t�-gK��d��Ɣ�E7*�pl�Е�L�5��v{D(��W:����YC�{�;�f�Ԟ{��$%�L|����4r��-�Xy)n��-�MfE�W�A$4淇O�Є�-�ʇ`�PA�2�h±ߠn��1�
 �Ϟ}��Ӡ�����t�� }�G�ri�u�C}_��,{ɍ�&¥g$�
-"f�U��s;�;�Pr����q�+4��P��݅kg�9�>���Ey� ��A�`�RN5,P�G��<�V�%�}���F�������Yʻq���Mت��zqY��N�7����'��_)V�L�]�°��s�qV�
+>�v�w�Y�r��A�m�fC/�#�9�1��K��^D�<~��b�:P`���7$�䐼\�r��(��X�L�z�ă�F�\l����q+͟7D��!u��	�
�^c��Q��6ڐ0z��L�Kށ���v&͝?����� ޜ�셅s����a��'�����{:�C$"�~E��G^P�C��	��0�i1�T��V�@#�
G�ȱ�Cr��s@����u�#���,�-��,���t!�'^zqWt�b��]@�P3����z�^��[�!����'Q��ГW#�.1ú�$(k���c��EV�����r�g�qX���O��.˫_�q�8��
-���
��s������z�~[LFr�V��q5�#���k�D��7<6��gt\�����,&O]9.��T��w<��{��-_������cög����;�8�����~Ah���_��’�$����d��*�]�3~�
������k��n�p�er�3t�'�5x��޽�#�U����3�
�b5���
��}[��}7���((oK�ciP�������ps�`@����g�HR�����4���y�)�JY�y;h�MZ��2�Oz�rMb��r�౳;�f�~��`�d-�����Ѳ������I<�xN�p0u�s´�#p��\�%bpL˟�2+�x#e�
-�do=��[�p%-�z�r�#��u$�� ��[#�����;T-"t�/��'~��ԁ���	Ar�e�*yO�y�ԋl`��]�ޱ��&�g3ea_��,�����ɠ���ƹ*[a�K���3�&og�����a,�T��X8j'��C�?
-ʼnz���5�ÕUÌ�»��������8��`�7>�$�./C��KߜB,���$�����j#t%��5�zl�Vsϡ�|�wۥxJ����K4�0���yr �����F�S�e���FZgͦ���<��t���Ft�j1*�+�4OR�w+Q}-��O-�Z��#כ#H�}p���;w-5���+N�~T�G��F�&urM̤����#�UWJ�"�t��\y}�����-C^�m��b/���u��(��_trb@6)��!��j,���jG�>O|�`|,`��/����z�%hyf��#Z�IQm8U�nwU�V�~i#��[N����+V/��yR�Ѿ`V^�(�����}�S�*&
-;�ܻ����t�F����_,�#W���N��bI��؃y��F�a�ۅ��^����[�hss6x���a��x���|��5`��<u��K��N��x��f�	�C�($���ήNi�Pyru�a>u��؆{��_�..�
-�4���xK�-�����>�N���I�]�k�_~�Wp8T�Y�����-_d�o�����,��W�=����'I��ϗ,����a�Ԛ��\�]�+x�36�C}��#�	��O����ӊ�ڣ�,�����jIWS�M^��QF}�w-9ꖤQ�-���~�f�o;�}�R�s�T�%�^�8n�z�Y�[yG6�'9�4
-2)o�h�^@���������#���$�*ܬ�Rȱ����D��fl1��=5��dkE��c|���>!q'�#9�׭4V��4��w^_k��%�y����/g1��DNlKp�Q�[FE��?��`�b�y�:
C��ש'@��
-�+�g�:��"sԓm˗o���h�3��R���f�b���s�6��s���#�?�w�o+g|��ɍsY�q�?��~��6��V9s
-VJ�j4��?6Z��1�iޛ��`�p�&<\}|,֪���{�n'$�'�B"�&"j�W���D�5j�D=g~ͳOu�F��$��tCu-�nU��x\&�MC�����Ѩk�
-�-B�y(&��D!��y(7�x��c&�����'��H0��pe\ݢ[��7�%�F�G�iS�΅��j��o}�T�Д�O���3�����d��`�����@ꮩ+8��k�)Eݸ>R��M9����W����6�B��B=������GY��[�n9&�NL.��lb��~���������:�f�a�I��k7�������S�ⱞ��,��]�9�$.��`�T�`�>���y��$������pz!\A�-Aw�A���3�;/�ʇ��f�:o��8N���M�@��Q9�Φg�����ͮ�F���m|�~������'��3�������s�l�I4{�Ȱ����c���ᖃ}�O:J�p�-wu��<�@\NQ�s=�Jk������4����?�hz����^��L��G��G���ێ�m��OH)*����V��R�DSj7)n.$S/�7��`��7�)�	_�$J�|8<��Tl�?��II�D��Zd��Vl���	Y��))]�.O�Y=��
 ��Rz��M��'��V��ƣ��k1V9�'�D�i��m�S^)��"xb�A�z���f#�R��h�(�q��B���a�k�1�w���K�6��î��x���xv�ǁ�a�[�6�8쐕xv�S���c)j��a�q�Q?����a���J�qk�Ɨ	V�v������!as�\I�ͩ�%��6-�7�䙛���Ǖ�q��7f=���{"��?�*��2}�1~q��•4Zx2*�(=�|��x�F^|^��ur[Īw�i��u1o����d=���HjZ���c&���-�{�0D<�"��%�'(���)‹S�'��P�l�U@8���X���vG��Z��l�Rͥ
-OO�o�y�	{0��;ޘ��Ű�r�7�4�h���0[�(!9JK�Ȥମ�V�e��ȸ|�=G�
�\SF\��̝��3__�ZÔ�oT�^jz��,���d%~�{lE�K	Օ�Eá�]E�6f���xLsB�kr%:�|n�	H�� DG��y�vA��U��EsBu�	�a'�K��{��\�M�n� �й�nb�iN�B�o'$<����4]X� ���?ʻp`#
$`' �4nG�ĕ�섗��}8p���j-��c��߂�A&,�",0�/NTK��E�d�qfW>�q��Nr�=Q\_��fH�dTߚkoZ���mb�':@k��?�T�-�DPf\��}�MaT�;M���1eƥY��hP*���"�fl�0P�?���h���g�m&\�*j��cNJ0Py��a�6�����z���t�;���<����Z��Y���h��g��7{0f�c�e<}����N2��6b��#�؇��:lc���}�Sn�k"�E{S���T�Y�cT�t0Ud�*������
DlV��`\Z �-�R+2sjE�#��c���g�'���ʇ�+�
 �C��/|��ni�uia(��d�H|�a��I4E\~)�� n�R�Yq��6+s�J�rWW��}�T��F��m��m �!A�9�h�$��@��c<�Ƃ�s���^Y�-��^u�z�9� �U�yMM�
O9�z`iz�yZz�=�;�֊��>E���0cx2�pT?HrƁ�L���%��֪���)
-Ɓ��ls2m�9�d
ߙo�*.i��_�[ty?	�go�n�}��ײ�dC�u�!MĝĢO8m컻r�3��#�y�?��0	ܕ�@x��kU|��m�iap�ÀT�‘�[$OD��v��[��7���v�@w�/�;�6;����
I��Z?�s::�t��ܻ$f1+˂!�K��#ґ��y�15}B`���V�K�T��|x��txu���
�t���	�x�"�D��U����+p����uo.>��5R�
-�p�B�{��|�9ܣ2�(�Q����S���ڥ��ͨ+�����~��S2�5Jܺ�dKϛ(+9����e�%��QG�u�,+ь��h�q��C��=\J;��Ue� �ȁQ�(_�
7ґ�S���4�2�|��=1]c3[�\�'��<$��h��K��|����S�x�#�2�a2�[i<f�5I#��DK$�0�
���b�O*���(��Lk�F���Q�lx���P�H|�a��0L}b��4�r��z�0,��l��|�p�4���
�cX��C=j'�o����9��h�r�%��ص�-P�
-4�K��1����|�x�v`��� ��@%'uF����̹F�
�w��w�2�4|��oTb�d_}~��#[�FΞt���L�셩�k���t�k
-�SE���m�`�s/|@�B�����ܥ�x�u����>=�l�;u�����5<���g/��`�<��S��U�/^f�|���	���xA����~�����a(;�]�b]y(��&
-�E���b���,��E	��"��w8�y�]��*.�Z�Z^���z�,�1XMU��ԣ��2<y��q
-D>�PS��R��&�,��`.��+�����j�����X*��ˀv��~�pS�D��\� ��@�|T	������j�J\Y�O�;$h��{�(�rGA'��DA����s��Tw�**3��:�e�tu������
-���������;G�c2~&4��@���2>��E�BF�ڗ6��]��i������w����!�M`���i���E��6X��q��6|���O �w��
�;��w���8|7m�Q���w���8�
.F�qnX�DR;#���C����9mn��N_��>�F@Y ����Y$8'c�e	�F��r�����2IZI�k`��v[���*�1����P��8�T��?����>Pi-��B��K�d�B�E�H'1��+������4�eCq�H�+�m� (1 �4����U���c�+�d�K�W�+`۰�M�b�h����'bO'6�x��P���i�Ց]�a�y���\���C��.���:]`E��B<[+A%�"���I�\��	qZ���]��\��XFl�<w �zqEln��&��_�O�g\H>�f6R����<G���+vH��|ŻxU��m��TP���/�25R�Zb����c�6'���R[�!n�s�n�e
l1�0U��Wol=
-�]*�����v�$��惔���\2(�*Q4��9ƙ�s��ᬌ����l��q����z���=�����ޟ𸐰 ��n(�28�����rH�!^Cb���Y�$@ۆD��xڹ��y.��������lJ�o.�5�P�7u9�#&$`���C���Mu�~lϋ��#��ւf��sC���8p��oĕ��7�ӕ�o�o���U�L�a��t� �\�
�Jڻ)�u$���P��~�\0E3�\��_�n��ޒnHq��('�yPn��t�^*��er�=��
-Pp��X��OTt�{T�G
-nW(b_rC]��ê,k�/��Z������8��*��*�A�k7��f����������F���k�T_C���O���w��Up�J��`���ӈzTd��#cWb�/��1��eqA/f�X��G��h������U�V�݇���:���X˖�*���=Dy�c���j���NW� N�훦���	�ƆW��L�?pc��J�c{���[�qr�����o>���ͭ��^��^��%�A7���>��'6��A��~�(�d���s#�%pi�}Pg獼�RD�B��O��^D$c�P!c�e��Օ�ImqOZ�Q�R�R���5��z������i�>ʌ��!�s�V�YRU��k.�.�����)���7ip|���\��Y0���*t���YG�6�{���5j��⦵�+j~��92̆�����Dz��![ff�н�"����G08̟؂|��N�TW ?�ق�٥\���L�$��yw.�c�g�r��h�"|N���X�3�E���W%d;$L4O]�*|#��,�Т
 4zs~f|����Jހ*i6`�R6X�k�����4{SoO�������<
-����570��.�p�x��GO�`��.��N��MCF.+W�*@����@)���B6�`�<���������}���+9U.�����ҽ�pv���݊��S��J��@tx�Kk�Q�b>
-š�u+�5��Z5�ǞK����3r�����=�X�u�����.N��v�c!bָ�9�h|0[�X�L��G�'���{�}}EY�Lf	ܐ	���:�����(Qj䦩�
-/��~i;e��^�t�} 2�pzi�Phg�+U�>˕����=��:�OZ��,��G2�K�p�8y��K�uJF���&ɞ����]"Z�V*g
-{��O��D�'��#𹤂�v��L��peEQ�����ߘH5�7Rmlp������Lè��P���(
-�T��Ub�Q?��7�,������Ԯh0$��}�	$�!(��B	��5�<Z8�/L��b����ߋFF.����əS!+�\��]d�b�Mq.�̳�����p̂��u��c��Q\��4��/��l�����#��#y]��O�t@�����w8��]	qԊ���?�1�\�8�8�����v��[����nl�h�����6���}a�X��gR&8>E�/��i�^Kpa�6���Y�G����(���b>X�&�ДR�u��0?P�c"&�*�Q��2W�L��?�_4�}[_�}����n����_����a�����7��j=�R�Y�0O�k}n��:7\)z���)
m���S���t�Lg>~�Em�k����ӭ��9�w��fֲc���u܇��V�5�S�c��g������xS��,���Ob/�\�%�U�#����|�s���Ԗ_�C�~Wg����מ���P�P~�%�6|,-�,K�d
-�'X(MZ�$NJ�$������LI�̳|B�eV�6�H%$��%6%$P��"+�2	|R�8�If��dJ8!I(�	��P~��9�a�_�c�:ѻc�!�ݖ/�%X�N&y�M�	PI2�%^r*ʼn<1۱��x:��/�����s*+�������B�w����_vK��i
-�� 9���ED�N��j��� �a"��*� �l	�o�lL�(3���� fӗkzR�ހh
����*��D�[y!�Vco,������Q[�,#��O�k���ҩ�
F$m��[���YF�TƾŘ�.��z~y�p�a��nO��A��r<c���UeE<'־����û/�n�_�D���O�~��ݨ��3Ӕt���/�?���S?��Sp���4�g�ڑ��jG�qϱ&�q�y��<�4�i�t��0�x'��s?�b��_�\��\��t��=�_�ch^��X�R�>��T�:��f�@��څ@^;(ռ�=��
Y��M��e�R�s	�!�
�{��e��!M]������*�Q�샗w���M�i��E���;)�yYg$���&�B�XC���%�AJMd�쀬�Su��e
�Z<�����#�#��#�yyw��&�a5��r�ml���9J?+�B�ȱ�ƾE"n����7��?QN�4�]o^#.�:���(%�C��*5�^-گ\��'��-�bx�l�-�P	�o2
 �����ef�0���A@6--�m�w���n�{u�Ls���{��bӴ���GW�@��f,o)��a�؂U^��1Гuv�Zl
-��'�(��PȺ����b@)o�ӹ�_�Q�]�b��������@LS��:��.W�.ܳ�cw� �O�7aCi���P̚|�.�.-Z�p��(��  oS�-�h��6:���ue�k{d#ңg�Au>�p;�h��u�R���I�S�/@
��D�y�P	[��Ct��J(a��u�'��1E>�r��3�a�e�l����7-� �j[��w�6���2kn���"��ٷ¿vv����3�+Pϼ��‘&�<�#5�*ƛ���xU��H�"x,#.AHi��n�VA�,G �sE�L�0^V���?&;v�N��ˠe
0��_����K
endstream
endobj
68 0 obj
<</Filter[/FlateDecode]/Length 22684>>stream
-H���_o���?���{S�H�����i�l"EHm/B��+�C��Y�T�}����ER�P1��ǻ�3gΜ1o�����q*-��Kɭ�}K�{�%��r#m@F�\��k*@b�[/�[��-��|�y�B�N^��������7o�����\޽���G};{zs��>�����q�����~�~��������JO���g�won^o��WW������R�,���ĶoxO�c/�67�2�bϽ�y�#ooi� �TjMU��W����Z�?�ܢ{XI���*�r�E��R�b��D�E��Du#��5���*+��R[N��'=Q
-�[2÷��v/#FMV=��+���|X����=�η�
��E��v痬u/����{m�RŖ�+/�佅��<%q4�AN2�uk11�7�Q*�m��T,(1y��D����F�QKI��({������qo��F���O���Խ[)p��̛�=��(]?*T���ޜ򒶞�}9�1�����q�:ݳ�ۅ)e7�-:�"��쩒�J�A���Q�Eԉ����Oީ
-���sϟBUZ���%VC5OuW��\&u	�9e�z�����\\j-��yB
-���w9���Ik�	��|(�Q�P��s:�%)�%JW�$�X������S���
~~}��I�}N]woYYj3x�p�Ԝ��{_�}�}�.��2-�Ԕg��lP�{��7:U��z
���2eF���l��HܓzSkzL�tHJ��4���E��Nتo��$�me&��ݹ�6�=�23Jԝ���H�I�m�3F�4~�3�A�:RM�;w5^��pR��g[��
`���v�/g��NB�y`r~bSԥ�$���{'�ռ=�D&�Q��,W���Dd�	)_w%�epz�P����4��Ԥ��Y���;jMW��Φ"��4ĩ��;��
ń�5��U7�up�K��	Ј���XC);�chG���̈�ښ�W
-�� ���5D!~rp���у��xf^xE�4@�4��"#"R�N�%��-դ'ݗ(�(!&�NCԤ���n��%?�\�HK��������������7�L��6SZ�~"aH��mLv�N��AThC�a�&��!e{��
-0�L:b;�	}@�j����G�_
-#�'�5���}�+�{K�����-��0څ�o���+D�i���QD��\�<k�qa�o����RS�`�V1�hI+�N��sD%����侭��{�z��]l�ߗ�1��Ѽ�mPtdC��m�aS�yXSvZ��8��1Yh'���u�w��B��j��i��1���>�ϼl�G!J�U�#;4
�\���J�ؐ��&}�b�9�L��ʡ$�bp\\||����v����ﮯn�^�;�)�Ͼ����ϗ��r�v����G3~�������1���?^�8/xֳ�w?]���c�W�5�2���7m�_J)��T�����F��j�����N~b��wt�{w�\��2妠'�1r�m���(g�1Ms,T�B��v ,�Æ�/D��|�Q�E�T�-�{��`J��U�5��{��َ7js$0�x�͑����g�C�́b��	ȊOs61H��z� �;�˼��T�J˰|ԅAS���^L�U�!�����JPE�8^�`�����`�k&�_������c���®T�8���Q��+��
 �+�栔[}X#M��<���y�A�:���Z�>�/$��V�+&}���J�3JBj23��p㐚���I�M�Xr�P�+!>K������Al����0��ˋ���4�Z��}��5>p�Z0��i����!4!��cXj�c������g˪%o5&��:���,s�U����u�
&�ź�0�&�GR4�� ��PD(3�	“�����:r$�w�mt4��p�蒂E�
�Ֆ��C�N&�������f3"L-As�B��c����&_d`�m�� �����)��6�c�4/L(M/��zL4���d�I-�ϱS���$%)�����*��:��ۏAU�u�,5D�<�Iq��9u'Ǵ�D��ux�-`���u[�;�Be��	E��Q�g{��hZ��g�8 X����)MNA���jL��L�D�p��Ҳ�.-)���1�|6��6^�#x .�K�a�xX`l'G�|�B� �C�vT�����+�ΥuW+7Ɵ��nC08wҤ,R��>��0�	�~S�uƵ7�.�D� Pi1�9���G�
 �Ie��5����D)|����j�Z��fZ�CMU\��?�@f��X��~#���:H;��y�?ԕޢ�k���l�5���a��h��"ͪ3'�@�ӢO��'�	�x`*�<�^
�0�G��-+f;�O�
Cjԏ�y.�L0�~Lf��"�Eq��wX�H`��L�<gTdR�����)!E&�4>&�F߆ǁi!+IF��o�Bt����Ԏ=�Ü<A��C��e�QB�'/c$�!E(��:'�p��O��Y�`Z�(.l;��@t�h�N�F���~���U%Q�	�g9�U�>�3@Ht#qQ�Qd����"����j�F�������ާjպ���k-�9���ZZ�M$C�`^���Ykp��C���h�^�gV��Q"�&�pa�Z��Xc֔�F�����l� 
��]'��$+�s]:g��̨R����%І�T��P[}=	ށa�(�5@V��cY�F`���l^��x�P`r�h��y�a�c?��m�j#셻�QE	����5���K�G=�N�JYP����:�((z��}U0�.�`)=JX
 ��$q�{�ԅ�du�\�X���䳩�=VQZ-��BiԀJ\,w
-�Z��B�KԠ�]��7�� t��u�!k��N�"���&*G�KE��ŧ�a���y���$,d6k=�=D����;iY����G*��\��|vY�I�d:����/�j|�N�m��'bC4�EߛV��J��F�1�E3���
-�b��R�*'S��U2gѥ�$�����>�P:4l�˥��j��Zf����C��dL�
p��K�����	5�;X�$��f��2\m�h�ppz[�y�_�=)�Hȍ7��d�&�G�w�x���K�3"��t�*���R�8�@M&�U$Q��e�,Y��:
#��/ORԘr��c���_��t|vł��b%H
�vx��U����AB�=Ҁ�?�G0%��,l�A�.�-�v�UL������x丹�
-��p���9�(dM��j�]�n��"��>kk�YJ�*!�Sx%��`���䰇�0�9j$�&bߠ����[��Ƹ�
-���D��ƻGEr��`SV9�%�|������V��{���K
V�(����]�Hw	�M�y��k�Q��HF��-�7����߬
-�Hrtu�ȭ5�=	w���J2�sS\t�!ݥ��������c��#����ǀay�593�W��r$
-p��S���>�����~�N���GU}�5bUO��X�2�@ 1_Y��pEN/0�&��ap���K��JM8�bӕ0�ܝh7�
-�dUӴ}o�k2L(��-��U�n!3���IF�����`�F.Uf����PY�-���d��F1oا�p�+�4i�����@����>��N�?p�[��V|%��N���τ3۰��Db��+
Nb�>�4J�[�$D�4+�e�<'�t嘔����Ꮖ5-b^��:j��3:ɿNZD�tB�����dC���5%A%�9�d�Į��*y�j�g�0��*�&.������5)Zc�l*T�s�q����E8
-_O��&�خ�R:�*i�3p�Q�m�V�/��m�+�r�L�LFęV��V3���E�t�.#͉�M"����fF:d)��:�5�t|D�@bҝa�s �5�F��&׾�2ݮu(MXL�����X5�0���_��6֔�y���lJ����Q'h�8�j����`�p8z�7��ɻ6��(<z��6��eY��kYeP��fӅ�A@����l4�	D]{��|F�?r4;׳��$>?U3e7A5�Xl.���^���Nf9�n�Ns?�ë�;�%iE�H����x7k�z�ȹ���I���b�&ϩ�l�G	��z(ɱ(�q�a���
-ݷ��x]�IJ�5�ʁ�A�v���,o�n��H�[NmqU�"6���3���v�$�zyR��ٸ:������Q��ƻ�q�(�v�d[���ć��?������."e��}@�e���}bs�K��9�'8|��{��W��\����}}w|�����{h����)��]�����g0慥�d@�EPX��s�6�?�)���m������_�zA
u�MV�a��a�h��wWO��i"�wRȥf��S�#����XJ�P�Ϲ��l܂y��!
-���,Z�
-�Sa�� ��n8�珢�B�����cy�m5֣Ģ;2�� Dh����ٳD�����D$�����J�<�)���j$;�!N�, �q���k^�7��CX^�iE1T��2����%�k�^E�g�4o���8O��x0�bP�����]�M�����<'�h��4q�L8���\��ɉ�2:��,)��
-����>�ѽ�{\_���y���g�|����߾y{��ɹ��K������q���7GO^<����_�z����նTǓ�wo���������⧟���eV�{5o7wb%�s�����+��iǓ����d��W�T��@�pwx���)L��#�!��:v�k2T���=UE8E�e]��z��O��)Yj�2���Ȅ2�8�,��*JH���g5	%e�C*���Z�����øڮ�'u�d�a�z�'㦫
���H*=�L$���5� <Q�jY5���Sl#�e�d�z��0�;��a����%���5���&&l,FSfB�
-/#J*���d������81��G��|�������9C[$�k�0w|IŖ)䗜�&?-������J縝� ;<�<1*�I�<5�Ʉ�ݤ�Y��|���)`N���gLA1�^t�[���>ٱ�N����zr�$�{x�k5x8���l�@F��d1����
-�S��x�"�~C�iY���B����ES�%��e�
-�@�!�ENjp���p����<h�K�Qs�+�ά/��_r�0f�A��K�[��	7��f��Q�n�
�`�\K=n�EN���� �H��.�1I�Q,`mU�oC�`)BX���T�u%]��쥄�c��$_5C�m�;��th�Z��$D�I�/¸���r!�H��ǿS����'�v�o�+ڊ�4��}g��❦&��76L5�8�E\j�4��H�؈�U�Ν�jI��9T����~��hn#A�Jo�� J")��b~"���e���x��AUg�b�D��W�:1V������b�I�B��bhÙ硑��lo?�C)Ԫ�]z��<^��'&����]�x���S�R�!#*�t5!,�� ���j|��?��3���Ū�S������^a]��N"���E�W��%i�#ȑU�B���7�r�3�_P,�ď���FK.��'��	��O�P�W|RI��A#ck��1����	5Y�ߖ��p���>�?�IwT�*P�;��M����\�Qb�8N���|CA���m�s?^n�R�m��
 �=+��&u�h� S�3���--4;*F�mo�z§3r�ÙT�Z�e�*0�}�߽���"U���d��n�z�y��=O'���qq���Ѡ�b'�uI1�!@��
a���	�E�����I��u�m�]�6��� ��J���/闘�>p�9���Al���ܰ����B�E�r�*��X�GZ��w�p�����*&�,ߡ�k�,�3v5
-bھ�T���
����z����i������ɮ���+�f#����xP����^X(f�eD��m���v9B��GF�Gn�U��$��jU�v.�K:{��ވS6�
->͊	���7�҃�l��;cqzE�9��@j#���~�Zw�'1�������h{�����7d<�6g�E]v�߯8��®��&��^�Eo��ّ��i�6O�a�J����|����_��z>�~�շ�k��c�B���P�e�c|����� �e�8�kW����ʿ_�#9�b�5�[[�B��,�(d`�����w�L���g`f���4|�y�s��j��t�&j�:��Q� �	��$1K�q4*�I���/,�Sv Z���6��Q�f͝���t0e:2���XI�/���
-�%���Y_ �&ӧ�5n�i� ����7機����Q�tE�Ŏ�M�Y{�7=77;}�4�L�og��h�4�X9�URҎ����w_�֗���_U�
V�ǚpk#`�����
'��ߍz��r�jE��(}�1jB �6�Ę�l+����6L�H
-V”w�����2����n}��R�N�G��7H	���{c�Zn?�Xߡ�I�,�獊�I�|w���x���<:���\y������18EQ�eؐ`��Ž��XXı�]��|�'����
�VFm�������U�1�	�:�l3�ɫ�M����C�sW�
-p����;��Yƛ/���?O&���BFJ�B��|��H�Բv�"�g�;B�^�Q�t��8IN}д#dU?�PB�cf��B*0����i��&��rsӊЮ3��oc�4��qgW��}���#��o�6�e��*G��|�3����v|�#�:��z�<dc���ğmT��eb.琍#p�f�T�+2�c���A�ӯ�1�^&,��S�5����2�l�e�> A���ݰc"*yY�>)�����V!�Gר���&tX�ҫUdS���+˥F=�3T�&��T�:SGW�=!�&�v|g��V�����ـ��$ƚ��w|:&n�)�^�"�w���G`��u�Y�hI��~�o��
-��rN?��p\��f�LU����*���A�j�����6�L��{�A��|j���D&0��Х�n����0l����ʚ�:��}�dd##:��Y Y3�*S��,7#��X�Km-�M��wo��?�'uBB�F��T�|�m��ק09o;
�娾 �}�6����2��.��-‹r�����M:��|:���W�T1,������_Hү=���$�?_v�@Xd���|R����b<
-��\��U8iF31�����>a��m�F�π	A)f�W$s�k�D9�pp���H5v����yZ
-�w9QӲ���^�G[�_1^�X�_������}W�h���z�F���Z�Y���0�u֊����gT�g����S����YJd��@Q��Ưժ
-�:x����=+>�
-���#,N�����;(��[�@��.3��31�O�/g�r��';WHRrkڠ�δg-����	-����
��	�ן����1�?"pҧh�KP�;d���\_�ܱ~&��Xt-���<BFG����i����.1���$�E������=��b�	��|P �^*y�Tq�H[�9���O�$��>6�A�е�Q��������\\���8&�ޟ�n��<x��'U���@�'���O�a�^�5���;vD��ig�s��{�+�/�?k��3�;b$f��F�/x��N�\C`�7
?ϳ%��k
:�5i��Of�<��ҡn�.J��ػ�T=����~�%��Bu�Sq"9�Ri��ϓ�##+&H#���_~�Ff2�X��e. N���1�A-B�(-;#�g�Z/ݕ�[�F=(�]�>�l�>���m���7�aj��A;W����iQ��MT�����{�%�F���������V�.c�
-)���W�Z�]'�m���l=?�Gx�^�-��䂹ƾ��ngo��s���=Ű�z�x<?�Q��ʸW���'5붓�\UPu��@dd���-�ڊ���-fh������f����NҞz�6)
J��|ϑ��w̯��bJ�ӓR�ƛƲD�?��5�1Q���^�.c	�G��M�l$3�^�a�W��R����yI�:|g�������6�U++4�"ӵ̳H[�YVE�O�Gˊ/���Q��O�XD\�u9���8�����v^��I�cMC�'5o@|$�oIA��O齃Gt��"��T
���vv�h����O:����>��͇�t��'Uh]҉�i6�N`T��{\]��4;pBx�~�jq?�����kY�mT_�Z����u�rx�c�4T�mP�E���7�����t����Y����H}��[*��?��G��)B(6����������_�c�I�t&��[�Ξ^1�ڨ�$ڨGւ�[;���A2t���u�>�ܹcdzş�;�v�z��J7ޢ�O>�ٜ�M'�r��c��܏�
 �:�^v�uW��� C+�מ����Z�v��N(��b+���Y3G)�`��&؉���{f�w���ùb���a�O��p��6.12|#)WS�0Ac�T1޶u<q%�g�
E�J27ē�W`���2̛��H�~/V�
-!Kvl֠����̷�:���q��LC�����#�X��M�os"#s�A����1hze�O�gMq]os�ن���ד��*��b�+\9tV����KP�	��݊��1�)Ϛ�	�+p��)�F���m��P��G�N��T�5�y��n�0m�.#����	��0ڦO��T�bF"I�p�-ܜ��Gq�}y0�;�B[���#C�v�͠\���*DE�wѧw��e>hg LZ6
^�d#
-��#b
�G� �d����~��� /�D �4��j�����O%����� ��Qc��Y�8=O@m3"����V"�*����
-1��!DUr>��0F����͓yb��7�(Kz�M2m��-\!5M��^�9[��ӛ����e7���@�����ℙ���Yb0b���w����K�"��q��T��[]�,B�p��=�ff˼w�8k�0m�x�;���2c�Q���F�tnc-|�����q��妗��!��w��m����(���q�����Hˆ�f����M���@�I+~U��#��-��c2�6�F+2�2�̡�nzG�C%(D���Jw†H��"��N8��\c.�D��]
v<�@�oߎ]Z�0!�5���X�x��険Śl�m��GR��W���	G�O�̉�[%� j�P[$5j��.��X*^r������"��B[�#��"��!mAPh�d��(��H깁V6�5��b(Y������.�,�f#�+������Q%Ĝ��Ѷ/��!�����`����:_��Ϟ���gD���ޅ�r_���,U N�Vj��^BI�����@v0�>�CVcw��f���B,���š5
 �/�P�Dе��.�2�.Ik�/ѵ(��ڪ��g��ag�:0_�����X���H�?���� ܏�BH��TM�'Aݰ4R�5�E�d�x����@����X$���1�R���R<��|��w�8*[�2�~TO�@�`�2̅lt�w�C��5�c.r[��fA�DP��/�K|;
-��y�5|M��&F6 �*&ޭ�y�#Pb���qS6��IY�J�rv���0�eDwe�&�,����KQBD;��qQ��BT�2k�4х�M�|�TUoy��
�-E�T=�LHv]~�U/��
-�m5�'+ኟ��u"�ѣU��p�uQvT�UU:�-YEoXP��y�
U,*B4o}
-	ܫ=����+#��'���/5h<�?�k�+uI���������
-D�z�x<ȆP�T��CK?�����N
*
���*�ۚ�����9���pO�hkӠu��-j`+���f�dMIG�ӧ&IwH�l�u��q>N�厞�e"B���Y�k>e����9�s�}�03Y��[�^�(|m���$ �,Ms�X~U��u�3�YQ�	g���t���Ct�x5���Q�#ϓ���
-��l�6���8z�6���p�hc�197R��xJ\*ۏ�il�p�W�/CC	�0"�֢*��x(�Ɠ�nj	�<߶K����$���-��H��to�I�@�\s�E�S�3<����$�B�|�nj)���0�x�n��G���&��0�Aȩ���A0�dӺn� �cj���9d����G8��Z�1�jpg<Śb^���?�jT1�f�*�*�_
�x���դơ����hZ
ͪ�F�S��A���81j�6�W��=vD{tL+���#��͞�����f�i|�0[��F��T�s��=]���Ƙf�c�A.�ǻ�&�[�Z+��G�� �s�7��XT�k�&��nˏ|���7T1O~,Hb[������ArbԠ�4w[�khtp��|�
0�����dC���.���l>]�51��1����ݔ����es��eYA7qq��������?ػ3"4qa�c��l�/΅��ƅ�|�Y�&7��n�*"�t��Q֩t{I��%��&�QM�<��!��1�(p4�3)xlE�5��RiD�2"۠ؗ�
 #-�(z��R/&��q�X��8�5(w߃'�����"���ͪ��iǚ4@
vlw�\.jH��$����m�	����y"�T�az}T
-Χ���������P�Pժ�PKT5�E�%n����))1��uh-�m�d��92�FMf(�0W��~x�O����������wn?=�ryz��f��t0E3L=%��z6XM�)U[���쥡^�~��l��1��?}����/p��&�lP7ޕ�~�������Vg\��ܣ��U�]�"ɠ�J.nB_�*@D�
��v����!F
-&�T�@�A��t���#/Cl��&�����t�׼w����8��҇ђ
-s󝫷�>w����@….9�X]�R��{�̲�Î�����K�d�H��{a?!�!��ٓ)�q��I������/�>%����`+vħ�q�
t[i6�����1ppí���0��$(��B��`�)6W������?��M��evޕy���~|�NWWO~u�����>�}�p������~�?��������ۻ�w�گ���us������7����O��⻵���xw�q��i�w�����~��~�b\s�������2�j?={W\���wׯ�v��������� Z������5����tqu���ۿ|u�p�c֛�C���;����\�����PE̦�.����U�g�&���5Վ/�0vc��N�R����KӸ	���9�<�
-.�w!�Tp����M��]#�:���Q(�t��z���-i�,���Y>�ƒ�3��og&���$ZC�����z.k��H@��zY�`�F��ن	��j�CH]�u�|�a��'��SǕ��'���h$��U�̝�\$�C�(�Kd��
>������{c�7�6��Ҏ�`7�]k����v�g�-*�Qt]�&(8X�}XZ��H0H�7�1�@�q�P���pu)'�
(�ʆ�F�m"� j|�&�s�.��[��ߑ]�.t�lV��uޘlm�b����E񲷹�v���H�a���Z[g��e�&���pB�H���״6��S����QD�6�rYȑy����Y:%=L�V�,u5�!�K��L�Oqn�L��v���1�nxe(�XUiP�o�/�S#�VΠ�Y�Q����5����@0�_�$$�N��Xk����͜x��[��������o�葎�ߍ�"qHx��Z���,��\�5�i)>j�GW(d++��g
-�n��簏	Q2X��H�^�:*8�$��,Hg���=*�F�r��H�D���� \L��HV���&K�62%�sFoQ'e�mh2��X�� ڈ�CNQ�i�
�Z��6.�9k��8�!�(T�F��ԏ��\��\ǜ�,̐P�r?_��A��^��1Bfeu>W�8?P�pɇ�M�=2��<w�ۙ��pJ��e��Oj�EB	f��챉��^#ʙ�H��iI,P��^�50�BQ�ޜ�0CP`ufJ��Xr�B8+[�2�90d�׹������2����a�vae���k��`8���T�7����'�DE0��JJ�V����`�D;�*�s_�.J�F��'`�u�\�9��a
!=�F���جh�&D�̩�Pyƙ�.��Ğ#<�����˯�����h6?�)��&3s=y(٨�r�&�6&�E�#F*�o�$IA����`�B�yBn�^du>�'~�,���B����dJ7M����
-���\�nej�u!�Xx�r�C�,���c���2M�G6
��F'U�����i��:��ҝVGk��:���WG�l�,7&p�_&Gb�h��o��o$EJ��S�>%�!Kb�}$O0T�O� ����m�Gd:P�q�-��D�,��X�
6�L���#
-%sy{H���!
��6�a���kX��舯X�N$N6��8$԰E_�
�r)ò�xGjFWc���WyN8WDf����٪��&�@��Rł������!Y��-�%T:�]��?�j���]D�՚G����n�9D	f(�-��(�1���y>z�Zsӓ�ڒb���)j��Kۢ�Ь�d��qL��,{�G�tOs_���ͣ;p��Q���&�Y��Յ�j	XSzh�׋B#3�h��V����������`Ve��<�hq��Q��s��-ʱ��6�[�4LSwn^��Қ�u�g�"p��0�O�7���qn��I�
�j��Bai
���JhEX
nh�1�.�����2?Ctwedcvw���q��7�=��޷D�	��<�"��m�Bt����/$����39\8�.g���"�m��Cp�
@ W�.t�G]\]R�4�+o�D���^�B+�"���$V�Bt��1$.����������%H:��)ٝ��~ �� C�K��g���jo]�C�-�*���d�8�{��-<G=�L���
-��Wd�[�<��xn�8�x.�^���f���5H{�˭�Sk1�Mb���*af:����ۼ=[���[�9��o�����n��)��@ɻ�#[�i���;�7yu��c�#G1�t6H�M��x� �Q��30�s�xDΜ �|࢐�������lM�K�d�l��3G���жй���A�T�v
����!$�z���~�]E���3PU��Q�K�x�R���5��7+�og\S��ߎ�"�Ht�* -r��Y#�1�J�q�J�º��R�~ʠ=ʧ����>:4���"��pݬ�P�@��qm���p���)�Jyw�Z!z\�h��0�S�%E���ޒYE�����=E~%��y�N���-C.6��dS�Kb�3DU���ĀL_#fa��W�\�(*�z�i�e�t�D�ԆI=T�m��Lȗ�p�ɻIc*^D�*�W\A*��t�k�ɦ5Ж����D��	�75O���D��i������߹_��H��䛁6BK��#�4N.�v��N�6%��h*ti�ن�:YdX!�L�F匬$�c�
 �����	M�3���X�5~�rA���`dR?x�|�+�$��`M4F�%LGN�����F]���U�j��#�^l5��~�Ie@3����\�Uc��\�@�N�9��i��͚=�Ę5�d�'l)�F�g|�\��(��ʙ]}l��"{"���R�M�jL����ߙoՌ��f�T��,h*���]�6Q�\�K%3��H�P���F �ql�!Q�W*�ξzvpv���)�Z�8?I��5ˤ��+�� ��xc�B���	+h�ͧގV�鈳�=�w���b�	������!k�����N�1�N.�=�C\�U�Y*#�[�y>�n2:�8;���)����aZ��g�_��d.�zv�����v<_{���wg/��f��=���w?�l�s��8�f7��tr��og���k&?���==~��w�//���~��p�0��q��hy��5F�gf�n�O�c	��o?���8ګ����雓{%�>WZ��Ze�m�������˷����dvt��������ǯ�,����=\y��㳗�N.��
 ����`�������������/��q��O	!pѣ�C-�=�V-)����@����V�N�)K�k�v8\e���=ƨg�ƐJ��Gj��߲�_2RӰ5����wor�=��z#�|�#4l�����~��<����� L�"��[�g
e��c�!�2ro�xb��1�o5��'��^F	=�M�Y�L,��Z.��t�Q�\'D��
|�7�o*��CN�w�8��\o����n�I+�T�͊�����-k��m�Nh�����ĨrAo���-,=/�l%���5W��GSK�}�[�a|2���J��.tX��OY���Y�ZU�?���&�����ɵ7���qR�ɡ|jQ�E��쭎�y����Y+�Pc�}�L�~n�!���m5�F2,wkt"��q����#��F�+_o��yF��έ�h��f����n�%)z�fkQ�1�Uii�Ur�5�󾨔$�&�?'���e�[���Z�EX��[K�'epo 8�c��zu�TIz;;��.��`gU�s�
�k��&Z?������Qr��ۯQ�
 )I��6��V�v9-�1
�m��E�^�Y� �b��i�|o�rk�噿�7@3��ELY=
�R��mO���<G�-�F!�\	g�r6��M�5X���b)��zt��#6�U2�(�E�i��$r��Wye��	��G���n�9�1�kp�����W��q�BEseT]5���)*!�J��[ٰnܜ3ivd���/��xWѳ�n�J�(�V�4]����	�Y���y���(�1�U-�Na�40wm�v��O�an;���؃��)�*Ξ����*��mZh߬<�����LKO�-����Ql(�<�N�5�8�S�� ;8ĐU)���Ǫ�cP�H��
PE�Q�o�<�{N�e��`�F�y1f'�j�C^���4��^?����[��?�HJ�a�'��?�v���$<E��B��Ea֮�(��~!ua��#|"�X�G�M�ZF�(�."�1H��{t�����s���[Gsx;���7��:h��4���6�>�f��%�;�hƬ����Ƒ�yS���
-=�:t@T8��}MdU�&��z9��ڊ�}r�:�t~�A�ރ��B���ޡ �
-Ljhx90Dd���Н6Ģ�69��]�fϫ
��N�Q5�D��k-~lH��y��+���|f@��-#u/����:����Av�q�젯�
-j}� �ml�d����g������n�EX��Yg��A=4?BT�y��–d�)l��Cy����BVHY۪j,��Ҝ!3�8աXh�ד	�T�V��&�nW%�*0��_;u$@$�g�\5����Ky�'ي������I�[سe�+��B?-&K�Z!���4���uS���1�2O���O0p:�f;m�ç4���d,���T�p9�1w���c���.����E�ּN�r	](�N�EF6�溽�s3����9E��v��F	?.N}r�gLT��$l�~��K�"f%a2_h���K<�(�h�2Ju>�6�y�;�	M�M�
-�h��$
-���z��� ���oՆ�ħ_�!���]��5��K_���,t�_���py/�$^�4W�%�:�r͗ƫ�|���z0�EkM�?�R��� ���9��tՄ�H��Ma�sx�	g�Ia&��P��e�!P��)���q3��M�Nu(���]��e�P�{�P�Wd��X�;��/K�9�<�%�'�=�d9���yѩ|�L����]��*��`�/��NJ>�
+����x�P�W��G�3&���DV�c�i�r��
�wTn�x2|*��6��(iE�^D�[<���I&�	�X��q���Y]��k�3͙����2����C�MCԃ}����Jb�ڡh �t�ڧ�*kP���'����y~fA������e��[�$H��A!}I�5���w�0=3�T���`�=ٱ�QDlRҗ.c*d1�wH���t
a���8X�j
���p�6kpڣ{�4R�]4��Hׄ�U���09v(ϗ�9G3��]���$�
a5��d�w��¡���ݹ
-3�QmjM{����,�y�s�s!O|�3"K����6cDV��W���"��X
-����#p'D��}�<	��1s���!�I�v�Q�.�u��IL;���&m�TaZ-�q�]J�w3[G��*����=�I������$�A8���0��*-4Hl.��7��q�WmX�#>Y�Ϭ�!�묣�2Xҡ$�
c°@]����q���"��J��|@P��j���U��S=|���'h��������o��´w\�B�c��V-t.����
-E�*�d���c-��+�脰Gi��gP����w�z��P�s%�s�1X5������ؽ�<
-��a(q̌�m���ڋz��Z���s��bD'�-�nF(��O+{�>%�{�aay�HG�1����
-���`��s���w�>L1W�k��*zG�1�='��V� ���N@�
(�o���]K�	=�߷��
Sh���'����������Ӱ�|�6,��c��>�3k���to�r4TY�����F>�ɒ��/-=���v3�tl��z,�r��ݰ԰��ק����_,IYb;�X��hz����8x	��w3��9_=aI<Q+PH�r�B�=�,���>���2L5�ؽ�(��ȓ���[�#�Ѓ���ۡ�C��d9�R�E	�Yel0�>�(�-[ �����$��$Es��c�\� n�{�w��0�ֻ���*7U�'�<P>|�EIt�@�ȹn��Lm��Ѥv;WqB���>�?Au]��I��"�s�gY*�>�C7Cs�c�>8�o�th�q7�O��(��S���\V�x3�&H���
-�ܖ�\��j�
��MծeN߁o���~����
D��}
-�D>�E����ђy��;�*��O0��7Hv�L�P��Wv"!�HH�s�_؉,�"o�﫞C<{;KȚ��k�V�÷�k�w�KT���	�R�D��-����~�"&s Xu9�c-��<��L"C�1M�t@?Y�L�n����Y<��}�fKi�i��G��X-JD�$=7@g	���n����M�n�Ͱ��=pqD���E������u1_&�� �M�i�%Ɨ	t�篻�nY*�x�E��b9��c�R�>�o��WQ�1S��ɲ(�1 ��99)Y��f_�8v9,y
,1ڤ��aXԴV�{��З�Y��۫�- �];|�U=�.��>K���3�R���"4nk��a�)R:�VLJ�d:v�|Ǵ�->�7����_r�5>ś��u���F���p��S!�M\�J#���v�O7�B�s�N�B�)<��۵˺�Cݻ"�=mw0w?WL����Sz��� �h��90�ׯBm���Y�`$���赉
-$`�
�z���1�p�yUM����kR�3M9��U�j��;i�%q�%��M����)�U��,�ִ$B���X�ts�E��ԔE��([�����UZ�otᓗ??>���@K�rke��Vl�h�9�l�����Y�2�G���G��UNC�X:���*����{>y�ix�<�
-)����Z�pYۥ#Ѯ]��}�S?g��:gd#�Ժ�zէ�H�[K�$��ץd-b��S�R|7+ȍ�Idtr�]�e6���o�Ȏm�m��=����j�{(��������Q���j����u[&���Í�%E\���O2�;їY�n�*4c�y�Y�,]�G*pdI[�5:F����u���6}��ق�_*2:MK����8<��b=��������g��𗋌��5%�g�W"�Yb�A���>s&3��?b#�{�̫��m2x(�/�DS?���Dn����~��P�b�W�$b-��t��[S���ANlh�q�-���̣�5%DaԴ968j/m��)gm��3)<;�=G�˸��8��"���ufۅ���,F)fb�B��Q��yU��@�A��s�/�u�RЏ]�J� Y^�,LV�Q���:���������v�"N����8����pa[�y�[`��Z�������>��ݗ�^�{���o��:|��7�G_������^�헟^>~�G�Jd�����7?��>}��
 ��ϯ����9���bx��eOq�:d��h�|p�ԋ��PC������S��z���k̴rI�M�$�c��o�aF�U�˶���{��S�?���]eO�mlp�!+�`�ݎ�ׄ���+εw�d��
-U��ی��±�6��bIa��8_g��� ���w=�D#1`�Z{�6-�'l�m�႘5�~>��p|�DJ\�r���zh䆽s��oYl��c ���Jy�M��J�6��"�s�md���Lݫ�)�O�5cs�0K�f�ͺe��xc�6�DM�[A����W�JOcEW�2�a�N�<w�r�9�y�g0v��A9�8	��=gҳ�D�벶3)�'��(���ϕ�NJ��!(���u�n��5������ZHU<z��6�4q1�nP�8&��E��ƪ�%��,<߷�(`�I��UCє��ĆL�j��f����N��Ʃ>��҆��
�6��$\��Ҿx{�	]�Z�lW�{	�i�_<�=n�7�4���" �n꥖�o�*J��e3��c _��0}�\Rk�e�q���2o�gwM0�ZT�z]����'N��i�c����g&J�4���B���\eo�DA�~͚��Vˇgl�1z)Tg:�{�k3���n����d>[m�?�.�/�7/�2⥋��F�k����w!���V��6�
6�Y]m &y5y�C��|S�J
-�k޷I�m��e���X3P����s+��l�=|!���OMD�*H(ڔk�u6y���uL�l��j�ZgkR�������?���{۩	�^�WLa�޻��I�Z�m�%D�P�|�S?��/���3o� $��M��� ;1��:��HSX�
�#F{�zo�o�6���ۓ�� 6s�g�h�n�A�9J���fڵ-x����w+TlZs,�!Fb��o�/����_�%l9#V�s���i�p,��dS�2Ƅw~���OJ�L:c�"��RUU$��������n
-�@m�$v�kƖ��n��Se��Q{�=��n��q�����)�p��we�����&����	���eΚf2����E���I��V��LD��tҐu�e�.�\K�>��9�<�ԤGV���Y��Ǘs�k]��8:�?�����L�J�S�Խ�'�r�h��ׄ�}!�1�Ff1�y�F~���T�9iQ�,��4��l�Y9t��)�MN��Q"[RIF�1��|��.����h�T��ڍ��}��Kpx@s}�->�������b�-]��UҪ��r��K����};�:������Ɋ�L�t�V����5�JS�>��Y�V��YC������0W�3�rL��(΄��B�c�����i�M���]�X]q���T�ƃոCb]L��h��m�N��O�f�����o�ߝ��k�y���n�=Ç��d���a�]�;
-�����7vg�1�X/�8�1�pAb!�0����t7T��e�G�������Q��_I·���0��Y�?)x���U�(JS5�j����&�+��x��t���g��:؋,��dȭ��}�*�ْ97-[�(�?*�����%J#xE�h-c!�8zLh
��rU4� xoS�����^!�&ct�p�`��;�ۋ���5��y�����?�}������T��aK���0�t&ʴ�~��@��Km$o���GآY�|d�t��p蹏N�.��k����諀�J�k�ux���e���*Beb�<��Ox�y�(K��:f�[�T��K�s�{�'�v�1�ϼ�j��\�[��^�–ܥ��L��?��ͮ��'�ΐL�����C� ��$�)d��
#$˃���]�q��\"lO@\$�٧~v��~8��0견ڬ1Ww���V?�x#�FXWs��v{��#�u���QE'�:�Ks���fO�Lڬ9g��)���d��$nl#O�M*N�)M�8S���٧ic|��∸���2�Z1W�YK_��
 ���O���<���oO�����_}���o�B��7E�_���O/�ݿm}{��/�x���^������R���/�}��W/���|�Z����^�x�Q��f9��3������ېE��d1+�~��,�C���?ܞ��ѻO���Y�ά�'?�XH>�0�w��SN=E4���Q��WR�3~%�����m���xZ^*ҟ�5�e��p�?�|�+B��)��]�q�C$�+�ˮ��S½�G�a5�bt�[U�a��\�d(Q���0�%&��s�m%
-�R6����3N�%Zڒ�㺶115��3ǹM1�Q��ڿ��g��������n�1
-�w�<j
��K1��̊H��o[n�h4NN�W�Ш�{fۺ)q`��2o����^�����C��֙�����aIg��n{#,�8I���:�*j`s9���7h+�~_ k-�꾱*k�M���O[S41��F��.����N�)!X���ڵ~>8�F�D�Sk-G��6-�v��V�Y��9�b��)�
8�9g��w1Fħ#�6�	���B����H�u���"�/����j��e��%���"R2��L��"�"X�TᏐ������&��P"�q��p�];m����S�8#m�9��Dv��C^p�d�K��}u�$��z�A)�=h��&{Z[I���\Mc>��g+79�:k�!�߭s�92ۭ�=%�ܳ�g+ǁ��H�:kYփ��f-���讃�ĄZ��-[��H�U�u��Z�L�޽�Y���)Y�v�H�q�2��u8_f�5�`�ӛ�-<f��>Jl-V`��Y��ÄS�����-|؊0��'�Vq\�	w�8RA�۝�f���:�΃��\-i^m��G���L�<u��H��oX߯���w�-�
 � ����})�@���\+0D���(�d�L�WaAFV��c��az��kN|�@��!�*�
-p��`'S�9�&.m���3���sl4ݝ<#�Ǽ�,s����:=4y,�U���]��裄��% z
c ɠ5�]�V�}����[�Η2Ćd7���VK�i��	��Z%�ٸG�"�\���EXn;�S�Ɖt����G��uo��Gɂn裰�TI<4�?=�z�Cs�D]��q��՜�VD\��������] D�A¡��$ת8�n�lN5P��j����H����������pp��(A��B�K)�#NuC\J�
-��(ܰ�c6Y�����WQ�u�F���G�ސ�J�K����EI��v"�W��ƽμ_�+��w�&��d��	��β�i԰��m� �rD%�Ya���	a��������%ے��`��[�����p:��w(�Ou�;��#͎6��&6����'Cwd�
Xm����pQT�
�wlf�}��.�Z%6�����f9�_(���D��ѿ��Gܧ���3M�/ݶ_�wf��\E��R�5�{T
x�%VH�[�P�af�1׳a�I؃;8j>O+���=�D���2�G|�b�ݲ�~����X����;`���Kgs���0:�fd�����T�I[�d���💆Iy��AO�,Z�	�� n�� �ދ���a�3���*=�����P!G&+�he�L����>�vq��1z�S*J������]t�x�Qҏq�0g��e,�>���@@�y�:r��,����s�C𣣢׬�-��}�!�65��Z�/�S�n�P����}�<��wE�1�	�<�<
d��J_-���Ġ�*
 )/iNb��ߊXOh��u�0cy���zs��_�J7l�rvn�'�H������L,�� 5�
?���Ȩ��-���SJ#n46���d�K������/������1�G�%!�}2C({i![��Q�=S��H9n��|��,s	X�� 0L�+���`$/+��G�6.�G̨��,��g��="k��(��Z�r�ޣC�ϣm�if��
-F`=���k
��s��cl4ňw�"gc��,1���ƕh��}�u%čeOS�H��~>���p��q׺l2|�֝g蘍
e���8@��	�
- q�\z��Wz���������pp��>��3�>G��?$�7)��)@q��WMA�\�;�������Ƥ���Ż@\cZF	���K%+�!�����,���Z�8�;���+&��Hp�~�������
�V%�8V���%6pe�FH����-K�κn|�F�5,X��(�a��E3.��!~�[}��w�ϸ����	�?��}ӡ(�gm�}�G�
l[p�oC��yi����J�}B���{#?z�WIS-��G�0{�h�g���e�Jkg�I&�C����"'����G�$�U�
endstream
endobj
69 0 obj
<</Filter[/FlateDecode]/Length 24472>>stream
-H���j]���@�o䴺���'�ҙ�`HraO�	��q#i
-�o�o�>��0
-1��`,��kwuW��j���4F�֚��^��-xdsZ�o"�����e&^�FL"z*}��k�>Ͷ�Έ��9f�ަ�AF�}��|[!NLo��+"�nu���{D�y�K[{!�
�}:��L%Ŝ���6���G�v��Q����
��F��� ը�N�jl����͞=k75�R���,�Tm�;�Z�Y�ô��ϥ��÷�*�%���V[�=�R��9	� ��`�YU�{g%z�"+����J�(����{�-^�X��a��\� Wj��[l|�\#�{v�nU�"q��|�C�8p*T8�>8!M�a�f�Q�ʙ&k��r�:C%4�d�ʥ%57���2Se7�.j�+��dѬP�a���D�J��f�2�Mn��(��+��>)m�X�Q3���)�Ҙ��{T#�-yi�fu�K
�V&`������L (ȩzn�3�j�%N(�G�
-	v�9N.��nb��	+6!����nm�| H+:��� /n��`�:-�lj&���R���{�y��N��]�����-�ɓg�a� ���(�N���
-�5ܛ�(�֦�E���&v�-�~�9�,�S�E�Yͦ��=+��o���7w�_�bۡ��YM�����2���������잙>�=ʿ����,��ǿz����ѳ�hU�͞�S�V�ee;~8;P�T�~��*l
-�V���99jlV������
-�2B	z%i��uI�26i�����@
 q���C��e�@cF�xe2Q)Ch؁�ϓ➤���v�%$�@Є+e�R�Q��^���p�v�+tiI*=�����8�D1B�`�I8t4z���ȉ�"=��8���s�[٤~�e0Kۀ#j�;E�o�LF���rLır�D�!�Y���ڶ�p1CFk�w-�Pj�䎶}w�����חW�/��x���������+=�ǿ���?����}z��n����J�˷�7�������_I��u��������au�6����������7�c�{�������٣�v��8�ǯ������o>�p��:/��!��v��u?l������_�>��h�S&�S�������Ge=���X�i�����Og�&h��M;1�o��
-��=S+<����HȌ�X�`|�:�{P��B�'��k����ȼ�)3Bd�٢�i� ���dz�Y0���"�
-�f��}��Če��=�f\E;�0�z�H�^{*��
��A�[F�� ��25׻��'�)��ғ��%��
-!�
-�^��E������+M�l[&�$O�緙�
-�Y�&K�NCa�[c.Rz�KC
-�x��2�W*��aX0B��q
�E��Z&�Kh��/&o�&6myt�Lp��/a����ސT%�=��8�-oR���u&�[&�K���Ί�
˧d����ƕ	6�A*ʄ��=S�4���Sۑ�,3�4Y��y��e�����YY�Ua+���^�㾤M�c�#��h�⦀l��&��D_ 6U��񍉁w�x�@/#��0�4ɪ>�`����CND�p���ܦ� �d?��SB/�e�:�g��y=T4�;Ju�'��
-��
����J���@��=&�ۈ	Ev����S�XY3N-8��/{�{��
-4���Y;R!���a��a������BԺ�
��k��Pt�S@h&g���{ھ�S4�E�}Y���@�C�lAc���V��UZ@�g`-���*C� ��,�9&�-C3�m��g�AN�	���B�2��6���Yu0�)��h�tW`��J��9��ԡ86�b�[eǐC'�߲�Y��4U�]����ۇ�8l����Q\r�>]�Z"!��a\��i)QYA����P�	���Ď����g�$�~z��{�]/4����[��,z�)f��@1 ���Xn��C����RKE'�a=gQ�4�6��W����:p��]�XF}����S~���yn�4�g����ʇ�
pVje6��N��6��!�D��iJ����F(�����m����p�Ҍ�bg[�4Z��Ic��T��+�$2����k�Aw�XY��?��M,��s�V�<7�	�t9|"(���,�u�
-ʓ�×.�!U`t�����{?�jƪ�x�Zle��5�n�����gq���&����F�����#�g�7̛�ݚ<��h�
-Ɏ��0!1��}�
-�'�d��Sl\Ր�������S
�/B�H3�Q�f�C�Fn:�7�D8
-�L�`m`��nhso��̚j�W�����y](YkȍY���������e��ʑ%突��t�W׀�c��>i�>��,Z)������c����רyjbL��ED%b��D8q��b�@b� t\&1�͘4������`��%�&F�B�fY&/7;������Zpj�d�q։A:b��*��e,4�Q�.*���_/;��Z�_�)��v��S�����v֙��#�`��Z����%ղo/���HP�$���M�N	���5I��ħ��Pw�7��&A1��Z��I�o�הx}��N�p'�,��:��0����R�T�f�]�,�����)eR��6)�a)KE��}..��O8%#�k>��)��kC|{:4U���K	*^ם#>�\�\s�8��W����P��������(!E9����v��L*e�%�j�����A�ƗB�{;���}5��"J/�u3�{���n�֖�r�*��f�rr�v�;0�-�

<TRUNCATED>

[23/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/managing-permissions-jackrabbit-accessmanager.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/managing-permissions-jackrabbit-accessmanager.md b/content/documentation/bundles/managing-permissions-jackrabbit-accessmanager.md
deleted file mode 100644
index 99b4c24..0000000
--- a/content/documentation/bundles/managing-permissions-jackrabbit-accessmanager.md
+++ /dev/null
@@ -1,111 +0,0 @@
-title=Managing permissions (jackrabbit.accessmanager)		
-type=page
-status=published
-~~~~~~
-
-
-The `jackrabbit-accessmanager` bundle delivers a REST interface to manipulate users permissions in the JCR. After installing the `jackrabbit-accessmanager` bundle the REST services are exposed under the path of the node where you will manipulate the permissions for a user with a specific selector like `modifyAce`, `acl` and `deleteAce`.
-[TOC]
-
-## Privileges
-
-| privilagename | description |
-|--|--|
-| jcr:read | the privilege to retrieve a node and get its properties and their values |
-| jcr:readAccessControl | the privilege to get the access control policy of a node |
-| jcr:modifyProperties | the privilege to create, modify and remove the properties of a node |
-| jcr:addChildNodes | the privilege to create child nodes of a node |
-| jcr:removeChildNodes | the privilege to remove child nodes of a node |
-| jcr:removeNode | the privilege to remove a node |
-| jcr:write | an aggregate privilege that contains: jcr:modifyProperties  jcr:addChildNodes  jcr:removeNode  jcr:removeChildNodes |
-| jcr:modifyAccessControl | the privilege to modify the access control policies of a node |
-| jcr:lockManagement | the privilege to lock and unlock a node |
-| jcr:versionManagement | the privilege to perform versioning operations on a node |
-| jcr:nodeTypeManagement | the privilege to add and remove mixin node types and change the primary node type of a node |
-| jcr:retentionManagement | the privilege to perform retention management operations on a node |
-| jcr:lifecycleManagement | the privilege to perform lifecycle operations on a node |
-| jcr:all | an aggregate privilege that contains all predefined privileges |
-
-## Add or modify permissions
-
-To modify the permissions for a node POST a request to `/<path-to-the-node>.modifyAce.<html or json>`. The following parameters are available:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-* *numeric* - Place the target ACE at the specified numeric index. |
-
-
-Responses:
-| 200 | Success |
-| 500  | Failure, HTML (or JSON) explains failure. |
-Example with curl:
-
-curl -FprincipalId=myuser -Fprivilege@jcr:read=granted http://localhost:8080/test/node.modifyAce.html
-
-
-
-## Delete permissions
-
-To delete permissions for a node POST a request to `/<path-to-the-node>.deleteAce.<html or json>`. The following parameters are available:
-
-
-
-
-
-Responses:
-| 200 | Success |
-| 500  | Failure, HTML (or JSON) explains failure. |
-Example with curl:
-
-curl -F:applyTo=myuser http://localhost:8080/test/node.deleteAce.html
-
-
-## Get permissions
-
-### Bound Permissions
-
-To get the permissions bound to a particular node in a json format for a node send a GET request to `/<path-to-the-node>.acl.json`.
-
-Example:
-
-http://localhost:8080/test/node.acl.json
-
-
-### Effective Permissions
-
-To get the permissions which are effective for a particular node in a json format for a node send a GET request to `/<path-to-the-node>.eacl.json`.
-
-Example:
-
-http://localhost:8080/test/node.eacl.json
-
-
-<div class="note">
-See section 16.3 of the JCR 2.0 specification for an explanation of the difference between bound and effective policies.
-</div>
-
-
-## Sample User Interface Implementation
-
-*Since Version 2.1.1*
-
-A sample implementation of ui pages for permissions management is provided @ http://svn.apache.org/viewvc/sling/trunk/samples/accessmanager-ui/

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.md b/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.md
deleted file mode 100644
index 5c69bd4..0000000
--- a/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.md
+++ /dev/null
@@ -1,312 +0,0 @@
-title=Managing users and groups (jackrabbit.usermanager)		
-type=page
-status=published
-~~~~~~
-
-The `jackrabbit-usermanager` bundle delivers a REST interface to create, update and delete users and groups in the JCR. After installing the `jackrabbit-usermanager` bundle all REST services are exposed under the path `/system/userManager`. Its interface for modifing/creating authorizables is similar to the [SlingPostServlet](/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html).
-
-For getting information about existing authorizables it provides all authorizables as Sling resources through its `AuthorizableResourceProvider` below `/system/userManager/user` and `/system/userManager/group`. Those resources can be exposed via the [Default GET Servlet](/documentation/bundles/rendering-content-default-get-servlets.html).
-
-[TOC]
-
-## List users
-
-To list existing users a GET request to the `/system/userManager/user` resource can be issued. Depending on the configuration of the [Default GET Servlet](/documentation/bundles/rendering-content-default-get-servlets.html)
-and/or the availability of a Servlet or Script handling the `sling/users` resource type, a result may be delivered/
-
-Example with curl and the default JSON rendering:
-
-$ curl http://localhost:8080/system/userManager/user.tidy.1.json
-{
-"admin": {
-"memberOf": [],
-"declaredMemberOf": []
-},
-"anonymous": {
-"memberOf": [],
-"declaredMemberOf": []
-}
-}
-
-
-## Get user
-*since version 2.0.8*
-The properties of a single user can be retrieved by sending a GET request to the user's resource at `/system/userManager/user/<username>` where `<username>` would be replaced with the name of the user.  Depending on the configuration of the [Default GET Servlet](/documentation/bundles/rendering-content-default-get-servlets.html) and/or the availability of a Servlet or Script handling the `sling/user` resource type, a result may be delivered.
-
-Example with curl and the default JSON rendering:
-
-$ curl http://localhost:8080/system/userManager/user/admin.tidy.1.json
-{
-"memberOf": [],
-"declaredMemberOf": []
-}
-
-
-If a non-existing user is requested a `404/NOT FOUND` status is sent back.
-
-
-## Create user
-
-To create a new user POST a request to `/system/userManager/user.create.<html or json>`. The following parameters are available:
-
-Parameter Name | Required | Description
---- | --- | ---
-`:name` | yes | The name of the new user
-`pwd` | yes | The password of the new user
-`pwdConfirm` | yes | The password of the new user (must be equal to the value of `pwd`)
-`<anyproperty>` | no | Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 ([SLING-6747](https://issues.apache.org/jira/browse/SLING-6747)).
-
-Responses:
-
-Status Code | Description
---- | ---
-200 | Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status.
-500 | Failure, including user already exists. HTML (or JSON) explains failure.
-
-Example with curl:
-
-curl -F:name=myuser -Fpwd=password -FpwdConfirm=password -Fanyproperty1=value1         http://localhost:8080/system/userManager/user.create.html
-
-
-
-## Update user
-
-To update an existing user POST a request to `/system/userManager/user/username.update.<html or json>`. You can NOT update the username or the password (see Change Password below) only the additional properties are updateable through this URL. The following parameters are available:
-
-Parameter Name | Required | Description
---- | --- | ---
-`:disabled` | no | (since version 2.1.1) If `true` disables the user to block further login attempts. If `false` enables a disabled user.
-`:disabledReason` | no | Specifies the reason why a user has been disabled.
-`<anyproperty>` | no | Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 ([SLING-6747](https://issues.apache.org/jira/browse/SLING-6747)).
-`<anyproperty>@Delete` | no | Properties with @Delete at the end of the name will be deleted in the JCR. Nested properties are supported since 2.2.6 ([SLING-6747](https://issues.apache.org/jira/browse/SLING-6747)).
-
-Responses:
-
-Status Code | Description
---- | ---
-200 | Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status.
-404 | User was not found.
-500 | Any other failure. HTML (or JSON) explains failure.
-
-Example
-
-curl -Fanyproperty1@Delete -Fproperty2=value2         http://localhost:8080/system/userManager/user/myuser.update.html
-
-
-## Change password
-
-To change a password of an existing user POST a request to `/system/userManager/user/username.changePassword.<html or json>`. NOTE: since version 2.1.1, the oldPwd is optional if the current user is a user administrator.  The following parameters are available:
-
-Parameter Name | Required | Description
---- | --- | ---
-`oldPwd` | yes | Old password.
-`newPwd` | yes | New password.
-`newPwdConfirm` | yes | New password (must be equal to the value of `newPwd`).
-
-Responses:
-
-Status Code | Description
---- | ---
-200 | Success, no body.
-404 | User was not found.
-500 | Any other failure. HTML (or JSON) explains failure.
-
-Example
-
-curl -FoldPwd=oldpassword -FnewPwd=newpassword -FnewPwdConfirm=newpassword         http://localhost:8080/system/userManager/user/myuser.changePassword.html
-
-
-## Delete user
-
-To delete an existing user POST a request to `/system/userManager/user/username.delete.<html or json>`. The following parameters are available:
-
-Parameter Name | Required | Description
---- | --- | ---
-`:applyTo` | no | An array of relative resource references to users to be deleted. If this parameter is present, the username from the URL is ignored and all listed users are removed.
-
-Responses:
-
-Status Code | Description
---- | ---
-200 | Success, no body.
-404 | User(s) was/were not found.
-500 | Any other failure. HTML (or JSON) explains failure.
-
-Example
-
-curl -Fgo=1 http://localhost:8080/system/userManager/user/myuser.delete.html
-
-
-## List groups
-
-To list existing groups a GET request to the `/system/userManager/group` resource can be sent. Depending on the configuration of the [Default GET Servlet](/documentation/bundles/rendering-content-default-get-servlets.html) and/or the availability of a Servlet or Script handling the `sling/groups` resource type, a result may be delivered.
-
-Example with curl and the default JSON rendering:
-
-$ curl http://localhost:8080/system/userManager/group.tidy.1.json
-{
-"UserAdmin": {
-"members": [],
-"declaredMembers": [],
-"memberOf": [],
-"declaredMemberOf": []
-},
-"GroupAdmin": {
-"members": [],
-"declaredMembers": [],
-"memberOf": [],
-"declaredMemberOf": []
-},
-"administrators": {
-"members": [],
-"declaredMembers": [],
-"memberOf": [],
-"declaredMemberOf": []
-}
-}
-
-
-## Get group
-
-The properties of a single group can be retrieved by sending a GET request to the group's resource at `/system/userManager/group/groupname` where *groupname* would be replaced with the name of the group.  Depending on the configuration of the [Default GET Servlet](/documentation/bundles/rendering-content-default-get-servlets.html) and/or the availability of a Servlet or Script handling the `sling/group` resource type, a result may be delivered.
-
-Example with curl and the default JSON rendering:
-
-$ curl http://localhost:8080/system/userManager/group/administrators.tidy.1.json
-{
-"members": [],
-"declaredMembers": [],
-"memberOf": [],
-"declaredMemberOf": []
-}
-
-
-If a non-existing group is requested a 404/NOT FOUND status is sent back.
-
-
-## Create group
-
-To create a new group POST a request to `/system/userManager/group.create.<html or json>`. The following parameters are available:
-
-
-Parameter Name | Required | Description
---- | --- | ---
-`:name` | yes | The name of the new group
-`<anyproperty>` | no | Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 ([SLING-6747](https://issues.apache.org/jira/browse/SLING-6747)).
-
-Responses:
-
-Status Code | Description
---- | ---
-200 | Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status
-500 | Failure including group already exists. HTML (or JSON) explains failure.
-
-
-Example with curl:
-
-curl -F:name=mygroup -Fanyproperty1=value1         http://localhost:8080/system/userManager/group.create.html
-
-
-## Update group
-
-To update an existing group POST a request to `/system/userManager/group/groupname.update.<html or json>`. You can NOT update the name of the group only the additional properties are updateable. The following parameters are available:
-
-Parameter Name | Required | Description
---- | --- | ---
-`:member` | no | user(s) (name or URI) to add to the group as a member. Can also be an array of users.
-`:member@Delete` | no | user(s) (name or URI) to remove from the group. Can also be an array of users.
-`<anyproperty>` | no | Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 ([SLING-6747](https://issues.apache.org/jira/browse/SLING-6747)).
-`<anyproperty>@Delete` | no | Properties with @Delete at the end of the name will be deleted in the JCR. Nested properties are supported since 2.2.6 ([SLING-6747](https://issues.apache.org/jira/browse/SLING-6747)).
-
-Responses:
-
-Status Code | Description
---- | ---
-200 | Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status.
-404 | Group was not found.
-500 | Any other failure. HTML (or JSON) explains failure.
-
-
-Example
-
-curl -Fanyproperty1@Delete -Fproperty2=value2 -F ":member=/system/userManager/user/myuser"         http://localhost:8080/system/userManager/group/mygroup.update.html
-
-
-## Delete group
-
-To delete an existing group POST a request to `/system/userManager/group/groupname.delete.<html or json>`. The following parameters are available:
-
-Parameter Name | Required | Description
---- | --- | ---
-`:applyTo` | no | An array of relative resource references to groups to be deleted. If this parameter is present, the name of the group from the URL is ignored and all listed groups are removed.
-
-Responses:
-
-Status Code | Description
---- | ---
-200 | Success, sent with no body.
-404 | Group(s) was/were not found.
-500 | Any other failure. HTML (or JSON) explains failure.
-
-Example
-
-curl -Fgo=1 http://localhost:8080/system/userManager/group/mygroup.delete.html
-
-
-## Automated Tests
-
-The [launchpad/testing](http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/) module contains test classes for various operations of the `jackrabbit-usermanager`. Such tests run as part of our continuous integration process, to demonstrate and verify the behavior of the various operations, in a way that's guaranteed to be in sync with the actual Sling core code. If you have an idea for additional tests, make sure to let us know!
-
-## Permissions checking from scripts
-
-*Since Version 2.0.6*
-
-When developing scripts that will perform user or group updates, you may want to know what actions the current user is provisioned to do.  This information can be used to conditionally render parts of your page differently based on the user rights.
-
-The jackrabbit.usermanager bundle provides a service (AuthorizablePrivilegesInfo) you can utilize to do help with this permission checking.
-
-The AuthorizablePrivilegesInfo provides methods for checking the following actions
-
-| Method | Description |
-|---|---|
-| `canAddUser(jcrSession)` | Checks if the current user may add new users |
-| `canAddGroup(jcrSession)` | Checks if the current user may add new groups |
-| `canUpdateProperties(jcrSession, principalId)` | Checks if the current user may update the properties of the specified principal |
-| `canRemove(jcrSession, principalId)` | Checks if the current user may remove the specified user or group |
-| `canUpdateGroupMembers(jcrSession, groupId)` | Checks if the current user may modify the membership of the specified group |
-
-
-Example:
-
-<%
-// lookup the service
-var privilegesInfo = sling.getService(Packages.org.apache.sling.jackrabbit.usermanager.AuthorizablePrivilegesInfo);
-
-if (privilegesInfo.canAddUser(currentSession)) {
-//TODO: render the UI that allows the user to add a user here
-}
-
-if (privilegesInfo.canAddGroup(currentSession)) {
-//TODO: render the UI that allows the user to add a group here
-}
-
-if (privilegesInfo.canUpdateProperties(currentSession, "someUserId")) {
-//TODO: render the UI that allows the user to update the properties of the user here
-}
-
-if (privilegesInfo.canRemove(currentSession, "someUserId")) {
-//TODO: render the UI that allows the user to remove the user here
-}
-
-if (privilegesInfo.canUpdateGroupMembers(currentSession, "GroupName")) {
-//TODO: draw your UI that allows the user to update the group memebership here
-}
-%>
-
-
-
-## Sample User Interface Implementation
-
-*Since Version 2.1.1*
-
-A sample implementation of ui pages for user/group management is provided @ [http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/](http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.md b/content/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.md
deleted file mode 100644
index dfc84c6..0000000
--- a/content/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.md
+++ /dev/null
@@ -1,892 +0,0 @@
-title=Manipulating Content - The SlingPostServlet (servlets.post)		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-
-
-## Multiple Ways to Modify Content
-
-As always in life there is more than one way to do it. So to modify content in a JCR repository underlying Sling, you have multiple options, two of which are WebDAV and the Sling default POST Servlet also called the *SlingPostServlet*. This page is about how you can modify - create, modify, copy, move, delete, import - content through the *SlingPostServlet*. In addition it also explains how to extend the SlingPostServlet with new operations.
-
-
-What is Content anyway? In the following discussion, I use the terms *Content* and *Item* interchangeably. With *Content* I just mean some data to be stored in the JCR repository to be later used as the basis for some presentation. In this sense *Content* is a rather conceptual term. *Item* is the name of the parent interface of the JCR *Node* and *Property* interfaces. When speaking of *Items* we mean some actual data stored in the repository ignoring whether the data is actually stored as a *Node* with child nodes and properties or just a single *Property*.
-
-
-## Quickstart: Creating Content
-
-To create content you simply send an HTTP POST request using the path of the node to store the content in and include the actual content as request parameters. So one possibility to do just that is by having an HTML Form like the following:
-
-
-
-<form method="POST" action="http://host/some/new/content" enctype="multipart/form-data">
-<input type="text" name="title" value="" />
-<input type="text" name="text" value="" />
-</form>
-
-
-
-This simple form will set the `title` and `text` properties on a node at `/some/new/content`. If this node does not exist it is just created otherwise the existing content would be modified.
-
-Similarly, you can do this using the `curl` command line tool:
-
-
-$ curl -Ftitle="some title text" -Ftext="some body text content" http://host/some/new/content
-
-
-
-You might want to use a specific JCR node type for a newly created node. This is possible by simply setting a `jcr:primaryType` property on the request, e.g.
-
-
-$ curl -F"jcr:primaryType=nt:unstructured" -Ftitle="some title text"
--Ftext="some body text content" http://host/some/new/content
-
-
-Similarly, you may assign JCR mixin node types using the `jcr:mixinTypes` property and a Sling resource type using the `sling:resourceType` property. For example:
-
-
-$ curl -F"sling:resourceType=sling:sample" -Ftitle="some title text"
--Ftext="some body text content" http://host/some/new/content
-
-
-
-## Preface: multipart/form-data POSTs
-
-Sometimes you might want to have the content modifications applied in a certain order. This is particularly interesting if you use fields to create child nodes and if you want to stipulate a certain child node order based on the form fields.
-
-In this case, ensure you are submitting the POST request using `multipart/form-data` encoding. This preserves the order of parameter application according to the original HTML form. To this avail, ensure to always include the `enctype="multipart/form-data"` attribute with the `<form>` tag.
-
-This support requires Sling Engine 2.1.0 and the Sling Default Post Servlet 2.0.6.
-
-
-## SlingPostServlet Operations
-
-The SlingPostServlet is actually just a front-end to the actual operations. To select the actual operation to execute, the `:operation` request parameter is used. Out of the box, the SlingPostServlet supports the following operations:
-
-* property not set or empty -- Create new content or modify existing content
-* `delete` -- Remove existing content
-* `move` -- Move existing content to a new location
-* `copy` -- Copy existing content to a new location
-* `import` -- Import content structures from JSON/XML/Zip
-* `nop` -- Explicitly requests to do nothing and just sets the response status
-* `checkin` - Check in a versionable node
-* `checkout` - Check out a versionable node
-
-All these operations always operate on the resource of the request as returned by `SlingHttpServletRequest.getResource()`. Some operations require additional parameters to be set to operate completely.
-
-Please note that operations are mutually exclusive. For a single POST request only one operation may be executed. Operations also only consume the request parameters as described below. Any excess parameters are silently ignored.
-
-<div class="note">
-<b>Automated tests</b>:
-Note that the `launchpad/testing` module contains a number of <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/post/">integration tests</a> for the SlingPostServlet. Most of these tests are fairly readable, and can be used to find out more details about the servlet's behavior.
-</div>
-
-
-<div class="note">
-<b>Trailing star in the :applyTo parameter</b>:
-This applies to operations that use this parameter, since version 2.1.2 of the *org.apache.sling.servlets.post* bundle: If the last segment of the `:applyTo` value is '*' then the operation applies to all the children of the resolved parent resource. This can be used to act on all the children
-of a resource without having to specify the path of each individual child resource.
-</div>
-
-
-### Content Creation or Modification
-
-
-The simplest and most common use case, probably, is content creation and modification. We already saw an example above in the quickstart section. In this section we elaborate more on the concrete stuff.
-
-First, the request URL indicates the actual repository node to be handled. If the URL addresses an existing node, the request parameters just provide values for the properties to be set on the existing node.
-
-If the resource of the request is a synthetic resource, e.g. `NonExistingResource` or `StarResource`, a new item is created. The path (including name) of the item to be created is derived from the resource path:
-
-* If the resource path ends with a `/*` or `/` the name of the item is automatically created using a name creation algorithm taking into account various request parameters.
-* Otherwise the resource path is used as the path and name of the new item.
-
-In both cases the path may still include selectors and extensions, which are cut off the path before finding out, what to do.
-
-To illustrate this algorithm, lets look at some examples (and check the [`PostServletCreateTest`](https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletCreateTest.java) in case of doubt):
-
-| Resource Path | Item path |
-|--|--|
-| `/content/new` | `/content/new` |
-| `/content/new.html` | `/content/new` |
-| `/content/new.print.a4.html` | `/content/new` |
-| `/content/` | `/content/xxx` where `xxx` is a generated name |
-| `/content/*`| `/content/xxx` where `xxx` is a generated name |
-| `/content/*.html`| `/content/xxx` where `xxx` is a generated name |
-| `/content/*.print.a4.html`| `/content/xxx` where `xxx` is a generated name |
-
-
-
-
-##### Setting Property Values
-
-Setting property values is as simple as just adding a request parameter whose name is the name of the property to be set and whose value is the value to be assigned to the property. We already saw how to do this in the quick start examples above.
-
-Here is another example show a simple HTML form to create a new node with an automatically created name:
-
-<form method="POST" action="/content/page/first" enctype="multipart/form-data">
-<input type="text" name="title" />
-<input type="text" name="text" />
-<input type="Submit" />
-</form>
-
-
-If this form is submitted with *title* and *This is some Text* as values for the `title` and `text` fields respectively, a new node is created at the path `/content/page/first` and the `title` and `text` properties set to the respective field values. If a node at `/content/page/first` already existed before submitting the form, the `title` and `text` properties are just updated to the new values from the form fields.
-
-If a parameter has multiple values, the respective property will be created as a multi-value property. So for example the command line:
-
-$ curl -Fmulti=one -Fmulti=two http://host/content/page
-
-Would assign the `/content/page/multi` property the value *[ "one", "two" ]*.
-
-This is pretty much all there is to know about creating and modifying content. The following sections will now introduce more functionality which help you with more fine-grained control in your content management application.
-
-##### Automatic property values: last modified and created by
-
-To make it easier to set "last modified" and "created by" property
-values from POST requests, values are generated automatically for the
-following property names _if they are supplied with empty values in such a request_:
-
-* `created` and `jcr:created` are set to the node creation time, as a Date value.
-
-* `lastModified`, `jcr:lastModified` are set to the node modification time, as a Date value.
-
-* `createdBy` and `jcr:createdBy` are set to the name of the user who created the node.
-
-* `lastModifiedBy`, `jcr:lastModifiedBy` are set to the name of the user who modified the node.
-
-This is demonstrated by the [SlingAutoPropertiesTest](https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/SlingAutoPropertiesTest.java) which is part of our launchpad integration tests.
-
-##### File Uploads
-
-File uploads are typically done using the `<input type="file""/>` element of an HTML form and ensuring the correct form encoding. The SlingPostServlet handles uploaded files specially, in that the file data is not simply written into a property, but a node is actually created with three properties:
-
-* `jcr:data` -- The actual file contents
-* `jcr:lastModified` -- The time stamp of processing the uploaded file
-* `jcr:mimeType` -- The MIME type from the original file submission (if contained in the file body part) or derived from the original file name
-
-The name of the node is either taken from the parameter name or if the name is `*` from the name of the uploaded file.
-
-The primary node type of the uploaded file is selected using the following algorithm:
-
-* If a `@TypeHint suffixed parameter (see below for a description) is present check whether the value is a known non-mixin node type. If so, the node is created with this primary node type.
-* If a `@TypeHint` suffixed parameter is not present or the value does not denote an existing non-mixin node type, the node will be created as an `nt:file` node if the parent node is of type `nt:folder`. Otherwise the node will be created with primary node type `nt:resource`.
-
-If the node to be created is `nt:file`, the actual file data will really be stored in the `jcr:content` child node of the new `nt:file` node whose primary node type is then set as `nt:resource`.
-
-Example 1: Upload an image to a node named `image` below `/content/page`:
-
-<form method="POST" action="/content/page" enctype="multipart/form-data">
-<input type="file" name="image" />
-<input type="Submit" />
-</form>
-
-
-
-Example 2: Upload a file as a node of type `nt:file` below `/content/folder`:
-
-<form method="POST" action="/content/page" enctype="multipart/form-data">
-<input type="file" name="*" />
-<input type="hidden" name="*@TypeHint" value="nt:file" />
-<input type="Submit" />
-</form>
-
-
-Assuming the user selected a file named `myImage.jpg` the uploaded file would be stored in an `nt:file` node at `/content/folder/myImage.jpg`.
-
-
-
-
-##### Date properties
-
-Parameters providing date/time values to be stored in JCR properties of type *Date* require special handling. The problem is that there are a number of formats to represent such date/time values. To account for this open-ended list of formats, the Sling Post Servlet supports configurability of the process of parsing strings into `Calendar` objects.
-
-The Sling Post Servlet configuration property `servlet.post.dateFormats` takes a list of format strings which are used to setup `java.text.SimpleDateFormat` instances for parsing date/time string representations. A special format string `ISO8601` is supported to indicate the string to be parsed as a JCR standard string representation of a _Date_ property.
-Only the latter supports storing the actual timezone offset. All the parsers leveraging `java.text.SimpleDateFormat` loose the given timezone and convert that just to the default timezone of the JRE (when creating the `Calendar` out of the `Date`, because `java.lang.Date` is not carrying any timezone information).
-
-The default list of configured date/time parse pattern is:
-
-* EEE MMM dd yyyy HH:mm:ss 'GMT'Z
-* ISO8601, using the org.apache.jackrabbit.util.ISO8601 parser (±YYYY-MM-DDThh:mm:ss.SSSTZD)
-* yyyy-MM-dd'T'HH:mm:ss.SSSZ
-* yyyy-MM-dd'T'HH:mm:ss
-* yyyy-MM-dd
-* dd.MM.yyyy HH:mm:ss
-* dd.MM.yyyy
-
-Any date/time string parameter supplied is subject to the patterns in the configured order. The first pattern accepting the string and parsing it into a `Date` -- and thus a `Calendar` -- object is used. Therefore this list is best ordered in a most-stringent to least-stringent order.
-
-
-
-##### Omitting Some Parameters
-
-There may be times that you have forms which contain a lot of fields which you do not want to actually store in content. Such forms usually are created using some client-side GUI library which uses the fields for its own purposes. To be able to easily differentiate between real content to be actually stored and such control parameters, you may prefix the names of the fields destined for content with a dot-slash (`./`).
-
-As soon as the SlingPostServlet encounters parameters prefixed with dot-slash, only those parameters are considered for content updates while all other parameters not prefixed are just ignored. In addition to dot-slash prefixed parameters, also parameters prefixed with dot-dot-slash (`../`) and slash (`/`) are considered in this situation.
-
-For example, the following form only uses the first two fields for content update and ignores the rest:
-
-<form method="POST" action="/content/page/first" enctype="multipart/form-data">
-<input type="text" name="./title" />
-<input type="text" name="../first/text" />
-<input type="hidden" name="control0" /><!-- ignored -->
-<input type="hidden" name="control1" /><!-- ignored -->
-<input type="Submit" />
-</form>
-
-
-Because the SlingPostServlet encounters the `./title` parameter, only parameters prefixed with dot-slash, dot-dot-slash and slash are considered for content update. In this case this would `./title` and `../first/text` while `control0` and `control1` are not prefixed and thus ignored.
-
-Background: The name of the parameters used for content update are actually intended to be relative path names of the properties to modify. So in effect using the field name `text` is equivalent to `./text` -- dot-slash meaning relative to the current node identified by the `action` attribute value for `form` tag -- or `../first/text` if `first` is the name of the node to modify -- dot-dot-slash meaning relative to the parent node of the node identified by the `action` attribute value of the `form` tag.
-
-In addition to the mechanism explained here, the following parameters are also ignored:
-
-* Parameters whose name start with a colon (`:`) are always ignored by the SlingPostServlet with respect to content update. The reason is that the prefixing colon is intended as a marker for SlingPostServlet control parameters.
-* The `charset` request parameter is also never written back because this parameter is used to convey the character encoding used to transport the request parameters.
-* Request parameters matching a regular expression supplied with the `servlet.post.ignorePattern` configuration parameter are also ignored. By default this pattern is `j_.*` thus ignoring any request parameters with the prefix `j_` such as `j_username`. Those request parameters are generally used for authentication purposes and may hit the Sling POST Servlet in some situations.
-
-
-
-##### Controlling Content Updates with `@` Suffixes
-
-Generally just creating forms with parameters and their values suffices it completely. Sometimes, though, you want to have more control on how the parameter values are actually stored in the properties. For example, you want to set a property to a default value if the user did provide an actual value. Or you might want to store a parameter explicitly with a given data type, such as numeric, boolean etc.
-
-The SlingPostServlet provides such property control in the form of `@` suffixed parameters, which are now presented.
-
-The `@` suffixed parameters are not used on their own but always in conjunction with a plain parameter. The part of the parameter name before the `@` suffix is used in this case for correlation and must match exactly the name of the parameter to which the `@` suffixed parameter belongs.
-
-For example, the parameter `width@TypeHint` applies to the `width` parameter and the `./height@TypeHint` parameter applies to the `./height` parameter. As can be seen, the correlation between the parameters is a simple case-sensitive string comparison. That is the `widht@TypeHint` parameter would not apply to the `./width` even though both parameters address the same property but they do not have a string match.
-
-
-###### `@TypeHint`
-
-Parameters with the `@TypeHint` suffix may be used to force storing the named parameter in a property with the given type. The value of the `@TypeHint` parameter, if applied to a parameter for a property, is the JCR property type name. If the `@TypeHint` parameter is applied to a field upload parameter, the value is used to indicate the JCR primary node type for the node into which the uploaded file is stored.
-
-If the `@TypeHint` value ends with `[]`, it indicates a multi-value property. A multi-value property is usually auto-detected if there are multiple values for the property (i.e. request parameter). But if only a single value is present in the request, the desired property type needs to be explicitly defined as multi-value by stating `@TypeHint=<type>[]`.
-
-Example: The following form sets the numeric `width`, the boolean `checked`, and the multi-valued `hobbys` (with 3 values to enter) properties:
-
-<form method="POST" action="/content/page/first" enctype="multipart/form-data">
-<input type="text" name="width" />
-<input type="hidden" name="width@TypeHint" value="Long" />
-<input type="checkbox" name="checked" />
-<input type="hidden" name="checked@TypeHint" value="Boolean" />
-<input type="text" name="hobbys"/>
-<input type="text" name="hobbys"/>
-<input type="text" name="hobbys"/>
-<input type="hidden" name="hobbys@TypeHint" value="String[]" />
-<input type="Submit" />
-</form>
-
-
-In real applications you would need some JavaScript that allows to add/remove values, ie. add/remove inputs with the name "hobbys". Or a pure JavaScript based form post would be used, that gathers the properties to update programmatically, but the additional parameter `hobbys@TypeHint=String[]` would be the same.
-
-The `@TypeHint` suffixed parameter is assumed to be single-valued. If the parameter has multiple values, only the first is actually used.
-
-For multi-value properties, see also the `@Patch` option.
-
-For more information on applying `@TypeHint` to a file upload parameter see the section on File Uploads above.
-
-
-###### `@DefaultValue`
-
-
-The `@DefaultValue` suffixed parameter may be provided to set a property to a default value should no value be provided in the actual parameters. Same as for normal parameters, the `@DefaultValue` parameter may have multiple values to create multi-valued properties.
-
-Example: Set the `text` property to a default value if the user does not provide one:
-
-<form method="POST" action="/content/page/first" enctype="multipart/form-data">
-<input type="text" name="text" />
-<input type="hidden" name="text@DefaultValue" value="--- Default Value ---" />
-<input type="Submit" />
-</form>
-
-
-
-###### `@UseDefaultWhenMissing`
-
-As described above, `@DefaultValue` only takes effect if no value is provided for a particular parameter. However, in some cases, such as HTML checkboxes, this isn't sufficient because the parameter isn't submitted at all. To handle this scenario, you can use the `@UseDefaultWhenMissing` suffixed parameter.
-
-<form method="POST" action="/content/page/first" enctype="multipart/form-data">
-<input name="queryIgnoreNoise" class="input" type="checkbox" value="true"/>
-<input type="hidden" name="queryIgnoreNoise@DefaultValue" value="false"/>
-<input type="hidden" name="queryIgnoreNoise@UseDefaultWhenMissing" value="true"/>
-</form>
-
-
-
-###### `@IgnoreBlanks`
-
-Sometimes a form client will supply empty parameter values resulting in content being created or modified. For example submitting this form:
-
-<form method="POST" action="/content/page/first" enctype="multipart/form-data">
-<input type="hidden" name="stringProperty@TypeHint" value="String[]"/>
-<input type="text" name="stringProperty" value="foo"/>
-<input type="text" name="stringProperty" value="bar"/>
-<input type="text" name="stringProperty" value=""/>
-</form>
-
-
-will result in multi-value String property being set to [ "foo", "bar", "" ]. Notice the blank value.
-
-Likewise submitting this form without a value entered:
-
-<form method="POST" action="/content/page/first" enctype="multipart/form-data">
-<input type="hidden" name="stringProperty@TypeHint" value="String"/>
-<input type="text" name="stringProperty" value=""/>
-</form>
-
-
-will result in the single-value String property being set to an empty string.
-
-To overcome this situation the `@IgnoreBlanks` suffix may be used to consider parameters with an empty string value to be ignored during processing. That is such parameter values would be treated as if they would not be supplied.
-
-Adding
-
-<input type="hidden" name="stringProperty@IgnoreBlanks" value="true"/>
-
-to the above forms will cause the multi-value property be set to the two-element value [ "foo", "bar" ] and to not modify the property at all in the second single-value example.
-
-
-###### `@ValueFrom`
-
-In some situations, an HTML form with parameters may be reused to update content. But one or more form parameters may not comply with the names expected to be used for properties. In this case a parameter suffixed with `@ValueFrom` may be set containing the name of the parameter providing the actual data to be used.
-
-Example: To set the property `text` from a form element `supplied_text`, you might use the following form:
-
-<form method="POST" action="/content/page/first" enctype="multipart/form-data">
-<input type="text" name="supplied_text" />
-<input type="hidden" name="./text@ValueFrom" value="supplied_text" />
-<input type="Submit" />
-</form>
-
-
-To prevent storing the additional parameters in the repository you might want to use the prefixing mechanism as shown in the example above, where the `@ValueFrom` parameter is prefixed and thus the `supplied_text` parameter is not used for property setting.
-
-The `@ValueFrom` suffixed parameter is assumed to be single-valued. If the parameter has multiple values it is ignored completely.
-
-The `@ValueFrom` suffixed parameter is also special in that there must not be a correlated parameter without a suffix. Thus have parameters `text` and `text@ValueFrom` may have unexpected results.
-
-
-###### `@Delete`
-
-Sometimes it may be required to not set a property to a specific value but to just remove it while processing the content update request. One such situation is a property filled from one or more checkboxes in an HTML form. If none of the checkboxes are checked, no parameter is actually submitted for these checkboxes. Hence the SlingPostServlet will not touch this property and effectively leave it untouched, while the natural reaction would have been to remove the property.
-
-Here comes the `@Delete` suffixed parameter. This simply causes the indicated property be removed if it exists. If the property does not exist, nothing more happens. The actual value of the `@Delete` suffixed parameter does not care as long as the parameter is submitted.
-
-Example: To ensure the `color` property is actually removed if no color has been selected, you might use the following form:
-
-<form method="POST" action="/content/page/first" enctype="multipart/form-data">
-<input type="checkbox" name="color" value="red" />
-<input type="checkbox" name="color" value="green" />
-<input type="checkbox" name="color" value="blue" />
-<input type="hidden" name="color@Delete" value="delete text" /><!-- actual value is ignored -->
-<input type="Submit" />
-</form>
-
-
-The `@Delete` suffixed parameter is also special in that there need not be a correlated parameter without a suffix. If both -- a parameters `text` and `text@Delete` are set, the `text` property is first deleted and then filled with the new content.
-
-The `@Delete` suffixed parameter in fact calls for a sub-operation, which is executed after the node addressed by the request URL is created (if needed) but before any other tasks of content creation and modification are done. Any item -- this may be a property or a node, actually -- addressed by the `@Delete` suffixed parameter is just removed if it exists. If the item does not exist, nothing happens.
-
-
-
-###### `@MoveFrom`
-
-Now, that your bright and shiny content management application has great Flash-based file upload feature you will want to be able to use the pre-uploaded files for your content with the same request as when you upload other content. For example you might have a node storing some text and an illustration you uploaded as an image file.
-
-To support this kind of functionality, the `@MoveFrom` suffixed parameter may be set to the repository path of the node to where you uploaded the image file.
-
-Example: Your Flash-based file upload stored the file on the server at `/tmp/upload/123`. You now want to store this file along with a title and a text in a newly created node. The following form will be your friend:
-
-<!-- trailing slash generates a name for the new node -->
-<form method="POST" action="/content/page/" enctype="multipart/form-data">
-<input type="hidden" name="image@MoveFrom" value="/tmp/upload/123" />
-<input type="text" name="title" />
-<input type="text" name="text" />
-<input type="Submit" />
-</form>
-
-
-If there exists no repository item at the indicated path, nothing is done. If the item indicated by the `@MoveFrom` suffixed parameter already exists, it is replaced by the item addressed by the parameter value -- unless of course there is no item at the named location.
-
-The `@MoveFrom` suffixed parameter is assumed to be single-valued. If the parameter has multiple values it is ignored completely.
-
-The `@MoveFrom` suffixed parameter is also special in that there must not be a correlated parameter without a suffix. Thus have parameters `text` and `text@MoveFrom` may have unexpected results.
-
-The `@MoveFrom` suffixed parameter in fact calls for a sub-operation, which is executed after the `@Delete` sub operation but before any other tasks of content creation and modification are done.
-
-
-###### `@CopyFrom`
-
-Similar to the `@MoveFrom` suffix exists a `@CopyFrom` suffix. The latter works exactly the same as the former except that the item addressed by the parameter value is not moved but just copied.
-
-Example: Your Flash-based file upload stored the file on the server at `/tmp/upload/123`. You now want to store this file along with a title and a text in a newly created node. The following form may be your friend:
-
-<!-- trailing slash generates a name for the new node -->
-<form method="POST" action="/content/page/" enctype="multipart/form-data">
-<input type="hidden" name="image@CopyFrom" value="/tmp/upload/123" />
-<input type="text" name="title" />
-<input type="text" name="text" />
-<input type="Submit" />
-</form>
-
-
-If there exists no repository item at the indicated path, nothing is done. If the item indicated by the `@CopyFrom` suffixed parameter already exists, it is replaced by the item addressed by the parameter value -- unless of course there is no item at the named location.
-
-The `@CopyFrom` suffixed parameter is assumed to be single-valued. If the parameter has multiple values it is ignored completely.
-
-The `@CopyFrom` suffixed parameter is also special in that there must not be a correlated parameter without a suffix. Thus have parameters `text` and `text@CopyFrom` may have unexpected results.
-
-The `@CopyFrom` suffixed parameter in fact calls for a sub-operation, which is executed after the `@MoveFrom` sub operation but before any other tasks of content creation and modification are done.
-
-###### `@Patch`
-
-When modifying multi-value properties, the `@Patch` suffix can be used to just add `+` or remove `-` individual values without overwriting the full array. This allows to change the array without knowing the current values.
-
-For example, imagine a multi-value string property that stores tags or keywords. To both add a tag "cool" and remove "boring" from the list:
-
-<form method="POST" action="/content/page/first" enctype="multipart/form-data">
-<input type="hidden" name="tags@TypeHint" value="String[]" />
-<input type="hidden" name="tags@Patch"    value="true" />
-<input type="text"   name="tags"          value="+cool"/>
-<input type="text"   name="tags"          value="-boring"/>
-<input type="Submit" />
-</form>
-
-The array will be treated like a set: when adding a value, it will only be added once if it does not exist yet; when removing a value, all occurrences of it will be removed. For values not affected by the add or remove operations, nothing changes. An existing array with duplicate entries will not automatically be converted into a set.
-
-The format for an individual parameter value is `<operation><value>`. If there is no or no valid operation given, this value will be ignored.
-
-Operation `+` will add the `<value>` to the array if it is not part of it yet.
-
-Operation `-` will remove all occurrences of `<value>` from the array.
-
-The value of the `@Patch` suffixed parameter is irrelevant, it can be empty (example above uses `true` for clarity).
-
-All types should be supported via `@TypeHint`, but it needs to indicate a multi-value property, ending with `[]`.
-
-
-##### Algorithm for Node Name Creation
-
-If request is posted with an URL ending in slash `/` or slash-star `/*`, the SlingPostServlet derives a name for the node to be created upon the request applying the following algorithm:
-
-
-1. If a `:name` parameter is supplied, the (first) value of this parameter is used unmodified as the name for the new node. If the name is illegally formed with respect to JCR name requirements, an exception will be thrown when trying to create the node. The assumption with the `:name` parameter is, that the caller knows what he (or she) is supplying and should get the exact result if possible.
-1. Otherwise if a `:nameHint` parameter is supplied, the (first) value of this parameter is used to generate the node name. A name filtering is applied to this hint to ensure a valid JCR node name.
-1. Otherwise a series of request parameters supplied to set content is inspected for a possible name. The list of the names of these parameter is configurable with the SlingPostServlet and defaults to `[ title, jcr:title, name, description, jcr:description, abstract ](` refs.-title-jcr-title-name-description-jcr-description-abstract.path `)`. The first request parameter with a non-empty value is used and filtered to get the valid JCR name.
-1. Otherwise an ever increasing auto generated number is used. Filtering is also applied to this numeric name.
-
-
-The filtering algorithm to create a valid name of the hints from above steps (except the first) works as follows:
-
-* Convert the proposed name to all lower case.
-* Replace all characters not in the range [0..9a..z*] by a single underscore `_`.
-* If the name starts with a digit prepend an underscore. Technically names with leading digits are valid, but they present major issues when using such names in JCR XPath expressions. The algorithm takes care to not create names with two or more consecutive underscore characters.
-* Finally the name is cut to a configurable maximum length (default is 20 characters).
-
-
-For example the `:nameHint` value *A quick brown Fox ...* is filtered to become *a_quick_brown_fox_*.
-
-After generating and filtering the name it is further guaranteed that the name is unique: If a node of the same name as just generated from the algorithm already exists below the same parent node a numeric index is appended to the new node name to make it unique.
-
-
-##### Response Status
-
-The modification operation has the following status responses:
-
-| Status | Explanation |
-|--|--|
-| 200/OK | An existing node has been updated with content |
-| 201/CREATED | A new node has been created and filled with content |
-| 500/INTERNAL SERVER ERROR | Some exception, for example a `RepositoryException`, occurred while processing the request |
-
-
-### Content Removal
-
-To remove existing content just address the item to be removed and set the `:operation` parameter to `delete`. For example the following command line removes the `/content/sample` page:
-
-
-$ curl -F":operation=delete" http://host/content/sample
-
-
-
-##### Response Status
-
-The delete operation has the following status responses:
-
-| Status | Explanation |
-|--|--|
-| 200/OK | The resource (and all its descendants) has been removed |
-| 404/NOT FOUND | The request URL does not address an existing repository item |
-| 500/INTERNAL SERVER ERROR | Some exception, for example a `RepositoryException`, occurred while processing the request |
-
-
-
-##### Deleting Multiple Items
-
-By using the `:applyTo` request parameter it is possible to remove multiple items in one single request. Deleting items in this way leaves you with less control, though. In addition, if a single item removal fails, no item at all is removed.
-
-When specifying the item(s) to be removed with the `:applyTo` parameter, the request resource is left untouched (unless of course if listed in the `:applyTo` parameter) and only used to resolve any relative paths in the `:applyTo` parameter.
-
-To remove the `/content/page1` and `/content/page2` nodes, for example, you might use the following command line:
-
-
-$ curl -F":operation=delete" -F":applyTo=/content/page1"
--F":applyTo=/content/page2" http://host/content/sample
-
-
-Using a trailing star in the :applyTo parameter (as mentioned before), you can remove all the children of the `/content` node, for example, as follows:
-
-
-$ curl -F":operation=delete" -F":applyTo=/content/*" http://host/content/sample
-
-
-If any resource listed in the `:applyTo` parameter does not exist, it is silently ignored.
-
-###### Response Status
-
-The delete operation applied to multiple resources has the following status responses:
-
-| Status | Explanation |
-|--|--|
-| 200/OK | All requested and existing resources have been removed |
-| 500/INTERNAL SERVER ERROR | Some exception, for example a `RepositoryException`, occurred while processing the request |
-
-
-
-### Copying Content
-
-
-To copy existing content to a new location, the `copy` operation is specified. This operation copies the item addressed by the request URL to a new location indicated by the `:dest` parameter. The `:dest` parameter is the absolute or relative path to which the resource is copied. If the path is relative it is assumed to be below the same parent as the request resource. If it is terminated with a `/` character the request resource is copied to an item of the same name under the destination path.
-
-To illustrate the `:dest` parameter handling, lets look at a few examples. All examples are based on addressing the `/content/sample` item:
-
-| `:dest` Parameter | Destination Absolute Path |
-|--|--|
-| `/content/newSample` | `/content/newSample` |
-| `different/newSample` | `/content/different/newSample` |
-| `/content/different/` | `/content/different/sample` |
-| `different/` | `/content/different/sample` |
-
-
-If an item already exists at the location derived from the `:dest` parameter, the copy operation fails unless the `:replace` parameter is set to `true` (case is ignored when checking the parameter value).
-
-
-
-##### Response Status
-
-The copy operation has the following status responses:
-
-| Status | Explanation |
-|--|--|
-| 200/OK | The node has been copied to the new location replacing an existing item at the destination |
-| 201/CREATED | The node has been copied to the new location creating a new item at the destination |
-| 404/NOT FOUND | The request URL does not address an existing repository item |
-| 412/PRECONDITION FAILED | An item already exists at the destination and the `:replace` parameter is not set to `true` |
-| 500/INTERNAL SERVER ERROR | Some exception, for example a `RepositoryException`, occurred while processing the request |
-
-
-
-##### Copying Multiple Items
-
-By using the `:applyTo` request parameter it is possible to copy multiple items in one single request. Copying items in this way leaves you with less control, though. In addition, if a single item copy fails, no item at all is copied.
-
-When specifying the item(s) to be copied with the `:applyTo` parameter, the request resource is left untouched (unless of course if listed in the `:applyTo` parameter) and only used to resolve any relative paths in the `:applyTo` parameter.
-
-To copy the `/content/page1` and `/content/page2` nodes to `/content/target`, for example, use:
-
-
-$ curl -F":operation=copy" -F":applyTo=/content/page1" -F":applyTo=/content/page2"
--F":dest=/content/target/" http://host/content/sample
-
-
-Please note the trailing slash character (`/`) in the value of the `:dest` parameter. This is required for multi-item copy operations using the `:applyTo` parameter. The copied items are created below the node indicated by the `:dest`.
-
-Using a trailing star in the :applyTo parameter (as mentioned before), you can copy all the children of the `/content` node, for example, as follows:
-
-
-$ curl -F":operation=copy" -F":applyTo=/content/*" -F":dest=/content/target/"
-http://host/content/sample
-
-
-If any resource listed in the `:applyTo` parameter does not exist, it is silently ignored. Any item already existing at the copy destination whose name is the same as the name of an item to be copied is silently overwritten with the source item.
-
-###### Response Status
-
-The copy operation applied to multiple resources has the following status responses:
-
-| Status | Explanation |
-|--|--|
-| 200/OK | All requested and existing resources have been copied |
-| 412/PRECONDITION FAILED | The node indicated by the `:dest` parameter does not exist |
-| 500/INTERNAL SERVER ERROR | Some exception, for example a `RepositoryException`, occurred while processing the request. This status is also set if the `:dest` parameter value does not have a trailing slash character. |
-
-
-
-
-
-### Moving Content
-
-
-To move existing content to a new location, the `move` operation is specified. This operation moves the item addressed by the request URL to a new location indicated by the `:dest` parameter. The `:dest` parameter is the absolute or relative path to which the resource is moved. If the path is relative it is assumed to be below the same parent as the request resource. If it is terminated with a `/` character the request resource is moved to an item of the same name under the destination path.
-
-To illustrate the `:dest` parameter handling, lets look at a few examples. All examples are based on addressing the `/content/sample` item:
-
-| `:dest` Parameter | Destination Absolute Path |
-|--|--|
-| `/content/newSample` | `/content/newSample` |
-| `different/newSample` | `/content/different/newSample` |
-| `/content/different/` | `/content/different/sample` |
-| `different/` | `/content/different/sample` |
-
-
-If an item already exists at the location derived from the `:dest` parameter, the move operation fails unless the `:replace` parameter is set to `true` (case is ignored when checking the parameter value).
-
-
-
-##### Response Status
-
-The move operation has the following status responses:
-
-| Status | Explanation |
-|--|--|
-| 200/OK | The node has been moved to the new location replacing an existing item at the destination |
-| 201/CREATED | The node has been moved to the new location creating a new item at the destination |
-| 404/NOT FOUND | The request URL does not address an existing repository item |
-| 412/PRECONDITION FAILED | An item already exists at the destination and the `:replace` parameter is not set to `true` |
-| 500/INTERNAL SERVER ERROR | Some exception, for example a `RepositoryException`, occurred while processing the request |
-
-
-
-##### Moving Multiple Items
-
-By using the `:applyTo` request parameter it is possible to move multiple items in one single request. Moving items in this way leaves you with less control, though. In addition, if a single item move fails, no item at all is moved.
-
-When specifying the item(s) to be moved with the `:applyTo` parameter, the request resource is left untouched (unless of course if listed in the `:applyTo` parameter) and only used to resolve any relative paths in the `:applyTo` parameter.
-
-To for example move the `/content/page1` and `/content/page2` nodes to `/content/target`, you might use the following command line:
-
-
-$ curl -F":operation=move" -F":applyTo=/content/page1" -F":applyTo=/content/page2"
--F":dest=/content/target/" http://host/content/sample
-
-
-Please note the trailing slash character (`/`) in the value of the `:dest` parameter. This is required for multi-item move operations using the `:applyTo` parameter. The moved items are created below the node indicated by the `:dest`.
-
-Using a trailing star in the :applyTo parameter (as mentioned before), you can move all the children of the `/content` node, for example, as follows:
-
-
-$ curl -F":operation=move" -F":applyTo=/content/*" -F":dest=/content/target/"
-http://host/content/sample
-
-
-If any resource listed in the `:applyTo` parameter does not exist, it is silently ignored. Any item already existing at the move destination whose name is the same as the name of an item to be moved is silently overwritten with the source item.
-
-###### Response Status
-
-The move operation applied to multiple resources has the following status responses:
-
-| Status | Explanation |
-|--|--|
-| 200/OK | All requested and existing resources have been moved |
-| 412/PRECONDITION FAILED | The node indicated by the `:dest` parameter does not exist |
-| 500/INTERNAL SERVER ERROR | Some exception, for example a `RepositoryException`, occurred while processing the request. This status is also set if the `:dest` parameter value does not have a trailing slash character. |
-
-
-
-
-### Importing Content Structures
-
-To import content structures just address the parent item to import into and set the `:operation` parameter to `import`.
-
-The optional name of the root node of the imported content may optionally be supplied using the [Algorithm for Node Name Creation](#algorithm-for-node-name-creation).
-
-Other parameters for the import operation:
-
-| Parameter | Required | Default value | Description |
-|--|--|--|--|
-| `:contentType` | `true` | | The `:contentType` value specifies the type of content being imported.  Possible values are: xml, jcr.xml, json, jar, zip |
-| `:content` | `false` | | The `:content` value specifies content string to import. The format of the import content is the same as is used by the jcr.contentloader bundle.  This parameter is required if the :contentFile parameter is not supplied. |
-| `:contentFile` | `false` | | The `:contentFile` value specifies a file uploaded for import. The format of the import content is the same as is used by the jcr.contentloader bundle.  This parameter is required if the :content parameter is not supplied. |
-| `:checkin` | `false` | false | The `:checkin` value specifies whether versionable nodes should be checked in during the import. |
-| `:autoCheckout` | `false` | false | The `:autoCheckout` value specifies whether versionable nodes should be checked out when necessary during the import. |
-| `:replace` | `false` | false | The `:replace` value specifies whether the import should replace any existing nodes at the same path. Note: When true, the existing nodes will be deleted and a new node is created in the same place. |
-| `:replaceProperties` | `false` | false | The `:replaceProperties` value specifies whether the import should replace properties if they already exist. |
-
-
-For example the following command line imports the `/content/sample` page:
-
-
-$ curl -F":operation=import" -F":contentType=json" -F":name=sample"
--F':content={ "jcr:primaryType": "nt:unstructured", "propOne" : "propOneValue", "childOne" : { "childPropOne" : true } }'
-http://host/content
-
-
-For example the following command line imports the `/content/sample` page without the optional name parameter:
-
-
-$ curl -F":operation=import" -F":contentType=json"
--F':content={ "sample" : {"propOne" : "propOneValue", "childOne" : { "childPropOne" : true } } }'
-http://host/content
-
-
-For example the following form imports the `/content/sample` page:
-
-<form method="POST" action="/content" enctype="multipart/form-data">
-<input type="hidden" name=":operation" value="import" />
-<input type="hidden" name=":contentType" value="json" />
-<input type="hidden" name=":nameHint" value="sample" />
-
-<input type="text" name=":content" value="{ &quot;jcr:primaryType&quot; : &quot;nt:unstructured&quot; , &quot;propOne&quot; : &quot;propOneValue&quot;, &quot;childOne&quot; : { &quot;childPropOne&quot; : true } }" />
-<input type="Submit" />
-</form>
-
-
-For example the following form imports content from a file upload:
-
-<form method="POST" action="/content" enctype="multipart/form-data">
-<input type="hidden" name=":operation" value="import" />
-<input type="hidden" name=":contentType" value="json" />
-<input type="hidden" name=":nameHint" value="sample" />
-
-<input type="file" name=":contentFile" />
-<input type="Submit" />
-</form>
-
-
-
-###### Response Status
-
-The move operation applied to multiple resources has the following status responses:
-
-| Status | Explanation |
-|--|--|
-| 200/OK | All requested content has been imported |
-| 404/NOT FOUND | The target parent node does not exist |
-| 412/PRECONDITION FAILED | One or more of the required parameters does not exist |
-| 500/INTERNAL SERVER ERROR | Some exception, for example a `RepositoryException`, occurred while processing the request. This status is also set if the ContentImporter service is missing. |
-
-
-
-
-
-### Null Operation
-
-Sometimes it is useful to explicitly request that nothing is to be done. The SlingPostServlet now provides such an operation under the name `nop`. Apart from doing nothing, the `nop` operations sets the response status to either the default `200/OK` or to any status requested by the `:nopstatus` request parameter.
-
-The `:nopstatus` request parameter must be an integral number in the range [ 100 .. 999 ]. If the parameter value cannot be parsed to an integer or the value is outside of this range, the default status `200/OK` is still set.
-
-
-###### Response Status
-
-The null operation sets a default status or the status requested by the `:nopstatus` request parameter.
-
-| Status | Explanation |
-|--|--|
-| 200/OK | Default status set if `:nopstatus` parameter is not set or does not have a valid value |
-| {:nopstatus} | The status as requested by the `:nopstatus` parameter |
-
-
-
-## Special Parameters
-
-
-Some parameters have special significance for the complete processing of the SlingPostServlet or are used by multiple operations. This section summarizes these parameters:
-
-
-### `:order`
-
-Child nodes may be ordered if the primary node type of their common parent node is defined as having orderable child nodes. To employ such ordering, the content creation/modification, move and copy operations support the `:order` parameter which apply child node ordering amongst its siblings of the target node.
-
-The `:order` parameter may have the following values:
-
-| Value | Description |
-|--|--|
-| `first` | Place the target node as the first amongst its siblings |
-| `last` | Place the target node as the last amongst its siblings |
-| `before *xyz*` | Place the target node immediately before the sibling whose name is *xyz* |
-| `after *xyz*` | Place the target node immediately after the sibling whose name is *xyz* |
-| numeric | Place the target node at the indicated numeric place amongst its siblings where *0* is equivalent to `first` and *1* means the second place |
-
-
-Note that simple content reordering can be requested without applying any other operations. This is easiest done by placing a request to the resource to be reordered and just setting the `:order` parameter. For example to order the `/content/sample/page5` resource above its sibling resource `/content/sample/other` a simple request
-
-
-$ curl -F":order=before other" http://host/content/sample/page5
-
-
-does the trick. To be redirected after the reodering, the `:redirect` parameter may optionally also be specified.
-
-
-### `:redirect`
-
-Instructs the SlingPostServlet to redirect the client to the indicated location if the operation succeeds. That is the response status is set to *302/FOUND* and the `Location` header is set to the value of the `:redirect` parameter.
-
-
-### `:status`
-
-By default the SlingPostServlet sets response status according to the status of the operation executed. In some cases, it may be desirable to not have the real status codes (e.g. 404 or 505) but a normal *200/OK* to trick the client browser into displaying the response content generated by the SlingPostServlet.
-
-To not send the actual response status back to the client, the `:status` request parameter should be set to `browser`. If this parameter is not set, is empty, is set to `standard` or to any other value, the actual status code is sent back to the client.
-
-
-## Response format
-
-The SlingPostServlet produces a basic HTTP response body, listing the response status, what changes have been made, and other meta-data about the result of the POST request.
-
-The format of this response is either HTML or JSON (JSON support introduced with [SLING-1336](https://issues.apache.org/jira/browse/SLING-1336)). SlingPostServlet determines which format to use by examining the Accept header of the incoming request. If the client has specified a preference for the media type "application/json", the JSON format is used, otherwise HTML is returned.
-The Accept header can be overridden (and simulated) by posting a :http-equiv-accept field, which should have the same format as the Accept header.
-
-Examples:
-
-1. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,**/**;q=0.8
-1. Accept: application/json,**/**;q=0.9
-
-In example #1, SlingPostServlet will return HTML, since the client has specified a preference for text/html. In example #2, SlingPostServlet will return JSON.
-
-See [RFC 2616, section 14.1](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1) for information on the HTTP Accept header.
-
-## Versionable Node Support
-
-The modify (default), delete, move, and copy operations of the SlingPostServlet support JCR Versionable Nodes. By default, when a node needs to be checked out for a modification to occur, it will be checked out and any nodes the operation checks out will be checked in upon completion of the request. Newly created versionable nodes (or non-versionable nodes made versionable by adding the mix:versionable mixin) will be left in their default, checked out state.
-
-This default behavior can be modified either globally (i.e. for all requests) or on a per-request basis. The global behavior is changed through OSGi ConfigAdmin using these three properties of the PID `org.apache.sling.servlets.post.impl.SlingPostServlet`:
-
-* `servlet.post.checkinNewVersionableNodes`
-* `servlet.post.autoCheckout`
-* `servlet.post.autoCheckin`
-
-![](2010-07-01_1036.png)
-
-On a per-request basis, these request parameters can be used:
-
-* `:checkinNewVersionableNodes`
-* `:autoCheckout`
-* `:autoCheckin`
-
-Checkout and Check In changes will be reflected in the ChangeLog portion of the response.
-
-
-## Extending the SlingPostServlet
-
-### Additional POST operations
-
-OSGi services of the `org.apache.sling.servlets.post.PostOperation` type can be used to implement new POST operations.
-
-Such services must have a `sling.post.operation` service registration property set to the name of the operation. This name is used as the value of the `:operation` parameter of POST requests to select the extended operation.
-
-Before version 2.1.2 of the *org.apache.sling.servlets.post* bundle, such additional operations were implemented by the `org.apache.sling.servlets.post.SlingPostOperation` interface, which is now deprecated but still supported via a bridge. See [SLING-1725](https://issues.apache.org/jira/browse/SLING-1725) for details and discussions about this change.
-
-Two examples (old and new style) of additional POST operations are found in the [test-services](http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/post/) module, with the corresponding test code in the [integration-tests](http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/CustomPostOperationTest.java) module.
-
-
-### SlingPostProcessor
-
-OSGi services of the `org.apache.sling.servlets.post.SlingPostOperation` type can be used to post process `PostOperation`s. They are called after the operation has performed its changes but before the changes are persisted (via commit). All registered SlingPostProcessors are always called in the reverse order of their service ranking (i.e. the one with the highest service ranking first).
-
-A `SlingPostProcessor` may perform additional changes or revert previous ones. It is important that the `SlingPostProcessor` does not commit its changes but rather only performs the changes in the transient space (with the resource resolver bound to the current request) and in addition reports the changes through the 2nd parameter of the method `process(SlingHttpServletRequest, List<Modification>)`.
-
-Two examples of SlingPostProcessors are found in the [test-services](http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/post/) module, with the corresponding test code in the [integration-tests](http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/SlingPostProcessorTest) module.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/mdc-filter-config.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/mdc-filter-config.png b/content/documentation/bundles/mdc-filter-config.png
deleted file mode 100644
index 9f14b35..0000000
Binary files a/content/documentation/bundles/mdc-filter-config.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/metric-web-console.png
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/metric-web-console.png b/content/documentation/bundles/metric-web-console.png
deleted file mode 100644
index 561e199..0000000
Binary files a/content/documentation/bundles/metric-web-console.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/metrics.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/metrics.md b/content/documentation/bundles/metrics.md
deleted file mode 100644
index 65e6c47..0000000
--- a/content/documentation/bundles/metrics.md
+++ /dev/null
@@ -1,140 +0,0 @@
-title=Sling Metrics		
-type=page
-status=published
-~~~~~~
-
-Sling Metrics bundle provides integration with [Dropwizard Metrics][1] library
-which provides a toolkit to capture runtime performance statistics in your
-application.
-
-## Features
-
-* Registers a [MetricsService][3] which can be used to create various types of Metric
-instances
-* WebConsole Plugin which provides a HTML Reporter for the various Metric instances
-* Inventory Plugin which dumps the Metric state in plain text format
-
-## Basic Usage
-
-:::java
-import org.apache.sling.metrics.Counter;
-import org.apache.sling.metrics.MetricsService;
-
-@Reference
-private MetricsService metricsService;
-
-private Counter counter;
-
-@Activate
-private void activate(){
-counter = metricsService.counter("sessionCounter");
-}
-
-public void onSessionCreation(){
-counter.increment();
-}
-
-To make use of `MetricsService`
-
-1. Get a reference to `org.apache.sling.metrics.MetricsService`
-2. Initialize the metric e.g. Counter in above case. This avoids
-any potential lookup cost in critical code paths
-3. Make use of metric instance to capture require stats
-
-Refer to [Metric Getting Started][2] guide to see how various types
-of Metric instances can be used. Note that when using Sling Commons Metrics
-bundle class names belong to `org.apache.sling.commons.metrics` package
-
-## Best Practices
-
-1. Use descriptive names - Qualify the name with class/package name where the
-metric is being used
-2. Do not use the metrics for operation which take less than 1E-7s i.e. 1000 nano
-seconds otherwise timer overhead (Metrics makes use of System.nanoTime)
-would start affecting the performance.
-
-## API
-
-Sling Metrics bundle provides its own Metric classes which are modelled on
-[Dropwizard Metrics][1] library. The metric interfaces defined by Sling bundle
-only provides methods related to data collection.
-
-* [org.apache.sling.commons.metrics.Meter][4] - Similar to [Dropwizard Meter][dw-meter]
-* [org.apache.sling.commons.metrics.Timer][6] - Similar to [Dropwizard Timer][dw-timer]
-* [org.apache.sling.commons.metrics.Counter][5] - Similar to [Dropwizard Counter][dw-counter]
-* [org.apache.sling.commons.metrics.Histogram][7] - Similar to [Dropwizard Histogram][dw-histogram]
-
-Further it provides a `MetricsService` which enables creation of different
-type of Metrics like Meter, Timer, Counter and Histogram.
-
-### Requirement of wrapper interfaces
-
-* Abstraction - Provides an abstraction around how metrics are collected and how
-they are reported and consumed. Most of the code would only be concerned with
-collecting interesting data. How it gets consumed or reported is implementation
-detail.
-* Ability to turnoff stats collection - We can easily turn off data collection
-by switching to NOOP variant of `MetricsService` in case it starts adding appreciable
-overhead. Turning on and off can also be done on individual metric basis.
-
-It also allows us to later extend the type of data collected. For e.g. we can also collect
-[TimerSeries][8] type of data for each metric without modifying the caller logic.
-
-### Access to Dropwizard Metrics API
-
-Sling Metrics bundle also registers the `MetricRegistry` instance with OSGi service registry.
-The instance registered has a service property `name` set to `sling` (so as allow distinguishing
-from any other registered `MetricRegistry` instance). It can be used to get direct access to Dropwizard
-Metric API if required.
-
-:::java
-@Reference(target = "(name=sling)")
-private MetricRegistry registry;
-
-Also the wrapper Metric instance can be converted to actual instance via `adaptTo` calls.
-
-:::java
-import org.apache.sling.commons.metrics.Counter
-
-Counter counter = metricService.counter("login");
-com.codahale.metrics.Counter = counter.adaptTo(com.codahale.metrics.Counter.class)
-
-## WebConsole Plugin
-
-A Web Console plugin is also provided which is accessible at
-http://localhost:8080/system/console/slingmetrics. It lists down all registered
-Metric instances and their state.
-
-![Metric Plugin](/documentation/bundles/metric-web-console.png)
-
-The plugin lists all Metric instances from any `MetricRegistry` instance found in
-the OSGi service registry. If the `MetricRegistry` service has a `name` property defined
-then that would be prefixed to the Metric names from that registry. This allows
-use of same name in different registry instances.
-
-## Installation
-
-Add following Maven dependency to your pom.xml:
-
-:::xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.commons.metrics</artifactId>
-<version>1.0.0</version>
-</dependency>
-
-Or download from [here][9]
-
-[1]: http://metrics.dropwizard.io/
-[dw-meter]: https://dropwizard.github.io/metrics/3.1.0/manual/core/#meters
-[dw-counter]: https://dropwizard.github.io/metrics/3.1.0/manual/core/#counters
-[dw-histogram]: https://dropwizard.github.io/metrics/3.1.0/manual/core/#histograms
-[dw-timer]: https://dropwizard.github.io/metrics/3.1.0/manual/core/#timers
-[2]: https://dropwizard.github.io/metrics/3.1.0/getting-started/#counters
-[3]: https://github.com/apache/sling/blob/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/MetricsService.java
-[4]: https://github.com/apache/sling/blob/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Meter.java
-[5]: https://github.com/apache/sling/blob/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Counter.java
-[6]: https://github.com/apache/sling/blob/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Timer.java
-[7]: https://github.com/apache/sling/blob/trunk/bundles/commons/metrics/src/main/java/org/apache/sling/commons/metrics/Histogram.java
-[8]: https://jackrabbit.apache.org/api/2.6/org/apache/jackrabbit/api/stats/TimeSeries.html
-[9]: http://sling.apache.org/downloads.cgi

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/bundles/mime-type-support-commons-mime.md
----------------------------------------------------------------------
diff --git a/content/documentation/bundles/mime-type-support-commons-mime.md b/content/documentation/bundles/mime-type-support-commons-mime.md
deleted file mode 100644
index 11dcdaa..0000000
--- a/content/documentation/bundles/mime-type-support-commons-mime.md
+++ /dev/null
@@ -1,83 +0,0 @@
-title=MIME Type Support (commons.mime and commons.contentdetection)		
-type=page
-status=published
-~~~~~~
-
-Support for MIME type mappings is generally a problematic issue. On the one hand applications have to take care to stay up to date with their mappings on the other hands in web applications it is tedious to maintain the mappings. Apache Sling takes a very user and deployment friendly approadch to this problem which is described in detail on this page.
-
-[TOC]
-
-## Servlet API Support
-
-The Servlet API specification provides a limited support for MIME type mappings :
-
-* Mappings may be defined in the `mime-mapping` elements of the the web application descriptor `web.xml`. Managing these mappings is presumably tedious. So servlet containers may provide reasonable defaults (or not).
-* The `ServletContext.getMimeType(String)` returns a MIME type for a given file name based on the extension of the filename. The mapping returned is based on the servlet container configuration as well as the web application descriptor's `mime-mapping` elements.
-
-
-## The Sling MimeTypeService
-
-Already at the start of the Sling project we realized, that just basing the MIME type mapping decisions on the servlet container will not yield acceptable results. For this reason the Apache Sling projects provides a spezialized and configurable service supporting such mappings: The [`MimeTypeService`](/apidocs/sling6/org/apache/sling/commons/mime/MimeTypeService.html) provided by the `org.apache.sling.commons.mime` bundle.
-
-This service provides access to registered MIME types and their mappings with two methods:
-
-* `getExtension(String)` -- given a MIME type this methods returns a primary extension. For example for the type `text/plain` this method will return `txt`
-* `getMimeType(String)` -- given a file name or just the extension) returns the mapped MIME type. For example for the filename `sample.html` (or just the extension `html`) this method will return `text/html`
-
-
-Two more methods allow to programmatically add MIME type mappings:
-
-* `registerMimeType(InputStream)` registers additional mappings from the given input stream which is expected to be formated in traditional `mime.types` file format (see below).
-* `registerMimeType(String, String...)` registers a single mapping for the give MIME type and the respective extensions.
-
-## The Sling ContentAwareMimeTypeService
-
-For content-based mime type detection (as opposed to filename-based detection), the `org.apache.sling.commons.contentdetection` bundle
-provides the `ContentAwareMimeTypeService`, which takes an `InputStream` that's analyzed to detect its mime type, using Apache Tika
-by default:
-
-* `getMimeType(String filename, InputStream content)` -- given a filename and an `InputStream` that points to the file contents, this method first tries content-based detection using the stream, and falls back to filename-based detection if needed.
-
-## And More...
-
-Besides the `MimeTypeService` provided by Apache Sling, there is actually more:
-
-* The [`SlingHttpServletRequest`](/apidocs/sling6/org/apache/sling/api/SlingHttpServletRequest.html) provides the `getResponseContentType()` method, which returns the preferred *Content-Type* for the response based on the requests extension. This method is implemented by Apache Sling using the `MimeTypeService`. So servlets and scripts may just call this method to set the content type of the response to the desired value.
-* Each Servlet (and JSP scripts) is initialized by Apache Sling with a `ServletContext` instance whose implementation of the `getMimeType(String)` effectively calls the `MimeTypeService.getMimeType(String)` method.
-* The Scripting support infrastructure of Sling sets the response content type on behalf of the script to the default value as returned by the `SlingHttpServletRequest.getResponseContentType()` method. At the same time the response character set is also set to `UTF-8` for *text* content types.
-
-## Configuring MIME Type Mappings
-
-The implementation of the `MimeTypeService` in the Apache Sling MIME type mapping support (`org.apache.sling.commons.mime`) bundle supports a numnber of ways to configure and extend the set of MIME type mappings:
-
-* Default configuration. The default configuration is based on the [`mime.types`](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) file maintained by Roy Fielding for the Apache httpd project and some extensions by Apache Sling.
-* Bundle provided mappings. Bundles registered in the OSGi framework may contain MIME type mappings files `META-INF/mime.types` which are loaded automatically by the Apache Sling MIME type mapping support bundle.
-* Configuration. Mappings may be supplied by configuration of the `MimeTypeService` implementation as the multi-value string property `mime.types`. Each value of the property corresponds to a line in a MIME type configuration file (see below for the format).
-* Registered Mappings. Mappings may be registered with the `MimeTypeService.registerMapping` methods.
-* [`MimeTypeProvider`](/apidocs/sling6/org/apache/sling/commons/mime/MimeTypeProvider.html). Additional mappings may be provided by service implementing the `MimeTypeProvider` interface. The `MimeTypeService` implementation will call these services in turn until a service returns a mapping provided there is no static configuration to responde to the mapping request.
-
-Please note, that existing mappings cannot be overwritten later. Thus mappings have an inherent priority:
-
-1. Mappings provided by the Apache httpd project's `mime.types` file
-1. Extensions by the Apache Sling MIME type mapping support bundle
-1. Bundles providing a `META-INF/mime.types` file in the order of their bundle-id (or startup order if started after the MIME type mapping support bundle)
-1. OSGi Configuration. Note that bundles started *after* the MIME type mapping support bundle may not overwrite mappings provided by the OSGi configuration. This may sounds like a problem, but in reality this should genrally not matter
-1. Mappings registered calling the `MimeTypeService.registerMimeType` method
-1. Mappings provided by `MimeTypeProvider` services
-
-## MIME Type Mapping File Format
-
-The file format for MIME type mapping files is rather simple:
-
-* The files are assumed to be encoded with the *ISO-8859-1* (aka Latin 1) character encoding
-* The files consist of lines defining mappings where each line is terminated with either or both of a carriage return (CR, 0x0c) and line feed character (LF, 0x0a). There is no line continuation support *-la shell scripts or Java properties files.
-* Empty lines and lines starting with a hash sign (`#`) are ignored
-* Data lines consist of space (any whitespace matching the `s` regular expression) separated values. The first value is the MIME type name and the remaining values defining mappings to file name extensions. The first listed file name extension is considered the *default mapping* and is returned by the `MimeTypeService.getExtension(String)` method. Entry lines consisting of just a mime type but no extensions are also (currently) ignored.
-
-THe data line format described here also applies to configuration provided by the values of the `mime.types` property of the MIME type service configuration. The file format description applies to all `META-INF/mime.types` files provided by the bundles as well as input streams supplied to the `MimeTypeService.registerMimeType(InputStream)` method.
-
-## Web Console Plugin
-
-The Apache Sling MIME type mapping support bundle implements a plugin for the Apache Felix Web Console which may be consulted to investigate the current contents of the MIME type mapping tables.
-
-![Mime Types Web Console Plugin](/documentation/bundles/mimetypes.png)


[14/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/service-authentication.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/service-authentication.md b/content/documentation/the-sling-engine/service-authentication.md
deleted file mode 100644
index be77891..0000000
--- a/content/documentation/the-sling-engine/service-authentication.md
+++ /dev/null
@@ -1,255 +0,0 @@
-title=Service Authentication		
-type=page
-status=published
-~~~~~~
-Excerpt: Introduce new service level authentication to replace `loginAdministrative`
-
-[TOC]
-
-## Problem
-
-To access the data storage in the Resource Tree and/or the JCR Repository
-authentication is required to properly setup access control and guard
-sensitive data from unauthorized access. For regular request processing
-this authentication step is handled by the Sling
-[{{ refs.authentication.headers.title }}](/documentation/the-sling-engine/authentication.html)
-subsystem.
-
-On the other hand there are also some background tasks to be executed
-with access to the resources. Such tasks cannot in general be configured
-with user names and passwords: Neither hard coding the passwords in the code
-nor having the passwords in &ndash; more or less &ndash; plain text in some
-configuration is considered good practice.
-
-To solve this problem for services to identify themselves and authenticate
-with special users properly configured to support those services.
-
-The solution presented here serves the following goals:
-
-* Prevent over-use and abuse of administrative ResourceResolvers and/ro JCR Sessions
-* Allow services access to ResourceResolvers and/or JCR Sessions without
-requiring to hard-code or configure passwords
-* Allow services to use *service users* which have been specially
-configured for service level access (as is usually done on unixish systems)
-* Allow administrators to configure the assignment of service users to
-services
-
-
-## Concept
-
-A *Service* is a piece or collection of functionality. Examples of services
-are the Sling queuing system, Tenant Administration, or some Message Transfer
-System. Each service is identified by a unique *Service Name*. Since a
-service will  be implemented in an OSGi bundle (or a collection of OSGi
-bundles), services are named by the bundles providing them.
-
-A Service may be comprised of multiple parts, so each part of the
-service may be further identified by a *Subservice Name*. This
-Subservice Name is optional, though. Examples of *Subservice Name*
-are names for subsystems in a Message Transfer System such as accepting
-messages, queueing messages, delivering messages.
-
-Ultimately, the combination of the *Service Name* and *Subservice Name*
-defines the *Service ID*. It is the *Service ID* which is finally mapped to
-a Resource Resolver and/or JCR Repository user ID for authentication.
-
-Thus the actual service identification (service ID) is defined as:
-
-#!text
-service-id = service-name [ ":" subservice-name ] .
-
-The `service-name` is the symbolic name of the bundle providing the service.
-
-
-### Example: Tenant Administration
-
-Tenant Administration mostly deals with creating and managing groups
-and some other user administration tasks. Instead of just using an
-administrative session for Tenant administration this feature could
-define itself as being the `tenant-admin` service and leverage a
-properly configured Tenant Administration account.
-
-### Example: Mail Transfer System
-
-Consider a Mail Transfer System which may be comprised of the following
-sub systems:
-
-* Accepting mail for processing &mdash; for example the SMTP server daemon
-* Queing and processing the messages
-* Delivering messages to mailboxes
-
-You could conceive that all these functions serve different purposes and
-thus should have different access rights to the repository to persist
-messages while they are being processed.
-
-Using the Service Authentication framework, the Mail Transfer System
-would be consituting the `mta` service. The sub systems would be called
-`smtp`, `queue`, and `deliver`.
-
-Thus the SMTP server daemon would be represented by a user for the
-`mta:smtp` Service.  queueing with `mta:queue`, and delivery with `mta:deliver`.
-
-
-## Implementation
-
-The implementation in Sling of the *Service Authentication* concept
-described above consists of three parts:
-
-### `ServiceUserMapper`
-
-The first part is a new OSGi Service `ServiceUserMapper`. The
-`ServiceUserMapper` service allows for mapping *Service IDs* comprised of
-the *Service Names* defined by the providing bundles and optional *Subservice Name*
-to ResourceResolver and/or JCR Repository user IDs. This mapping is configurable
-such that system administrators are in full control of assigning users to services.
-
-The `ServiceUserMapper` defines the following API:
-
-#!java
-String getServiceUserID(Bundle bundle, String subServiceName);
-
-The implementation uses two fallbacks in case no mapping can be found for the given subServiceName
-
-1. Use user mapping for the serviceName only (not considering subServiceName)
-1. Use default user (if one is configured).
-
-In addition a service named `ServiceUserMapped` is registered for each bundle and subservice name for which a service user mapping is configured ([SLING-4312](https://issues.apache.org/jira/browse/SLING-4312)). By explicitly defining a (static) reference towards `ServiceUserMapped` one can defer starting the service until that service user mapping is available.
-
-### `ResourceResolverFactory`
-
-The second part is support for service access to the Resource Tree. To this
-avail, the `ResourceResolverFactory` service is enhanced with a new factory
-method
-
-#!java
-ResourceResolver getServiceResourceResolver(Map<String, Object> authenticationInfo)
-throws LoginException;
-
-This method allows for access to the resource tree for services where the
-service bundle is the bundle actually using the `ResourceResolverFactory`
-service. The optional Subservice Name may be provided as an entry
-in the `authenticationInfo` map.
-
-In addition to having new API on the `ResourceResolverFactory` service to
-be used by services, the `ResourceProviderFactory` service is updated
-with support for Service Authentication: Now new API is required, though
-but additional properties are defined to convey the service to authenticate
-for.
-
-The default implementation leverages `ServiceUserMapper.getServiceUserID()` to resolve the right user id and throws a `LoginException` in case no mapping has been setup (and none of the fallbacks returned a user id != `null` either).
-
-### `SlingRepository`
-
-The third part is an extension to the `SlingRepository`service interface
-to support JCR Repository access for services:
-
-#!java
-Session loginService(String subServiceName, String workspace)
-throws LoginException, RepositoryException;
-
-This method allows for access to the JCR Repository for services where the
-service bundle is the bundle actually using the `SlingRepository`
-service. The additional Subservice Name may be provided with the
-`subServiceName` parameter.
-
-## Configuration
-
-### Service User Mappings
-
-For each service/subservice name combination an according mapping needs to be provided. The mapping binds a service name/subservice name to a JCR system user.
-This is configured through an OSGi configuration for the factory configuration with PID `org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended` [SLING-3578](https://issues.apache.org/jira/browse/SLING-3578). There you can set one configuration property named `user.mapping` getting a String array as value where each entry must stick to the following format:
-
-<service-name>[:<subservice-name>]=<authorizable id of a JCR system user>]
-
-The according user must exist at the point in time where `ResourceResolverFactory.getServiceResourceResolver(...)` or `SlingRepository.loginService(...)` is called. If you rely on one of those methods in your `activate` method of an OSGi component you should make sure that you defer starting your OSGi component until the according service user mapping is in place. For that you can reference the OSGi service `ServiceUserMapped` ([SLING-4312](https://issues.apache.org/jira/browse/SLING-4312)), optionally with a target filter on property `subServiceName` (in case such a subservice name is used). The service `ServiceUserMapped` does not expose any methods but is only a marker interface exclusively used to defer starting of other OSGi components. However this waits only for the mapping configuration to be available, it does not wait for the service user itself to be available.
-
-Example OSGi DS Component
-
-:::java
-@Component(
-reference = {
-// this waits with the activation of this component until a service user mapping with the service name = current bundle's id and the sub service name 'my-subservice-name' is available.
-// you can leave out "target" if the sub service name is not used.
-// Please note that this only waits for the mapping to be available, it does not wait for the service user itself to be available!
-@Reference(name ="scriptsServiceUser", target="(subServiceName=my-subservice-name)", service=ServiceUserMapped.class)
-}
-)
-class MyComponent {
-}
-
-There is a default mapping applied if no OSGi configuration is available for the mapping. The default is: "serviceuser--" + bundleId [ + "--" + subservice-name]. Please note, that these default mappings are not represented as a ServiceUserMapped service and therefore the above mentioned reference does not work.
-
-## Deprecation of administrative authentication
-
-Originally the `ResourceResolverFactory.getAdministrativeResourceResolver`
-and `SlingRepository.loginAdministrative` methods have been defined to
-provide access to the resource tree and JCR Repository. These methods
-proved to be inappropriate because they allow for much too broad access.
-
-Consequently these methods are being deprecated and will be removed in
-future releases of the service implementations.
-
-The following methods are deprecated:
-
-* `ResourceResolverFactory.getAdministrativeResourceResolver`
-* `ResourceProviderFactory.getAdministrativeResourceProvider`
-* `SlingRepository.loginAdministrative`
-
-The implementations we have in Sling's bundle will remain implemented
-in the near future. But there will be a configuration switch to disable
-support for these methods: If the method is disabled, a `LoginException`
-is always thrown from these methods. The JavaDoc of the methods is
-extended with this information.
-
-### Whitelisting bundles for administrative login
-
-In order to be able to manage few (hopefully legit) uses of the above deprecated
-methods, a whitelisting mechanism was introduced with [SLING-5153](https://issues.apache.org/jira/browse/SLING-5135) (*JCR Base 2.4.2*).
-
-The recommended way to whitelist a bundle for administrative login is via a
-_whitelist fragment configuration_. It can be created as an OSGi factory
-configuration with the factoryPID `org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment`.
-E.g. a typical configuration file might be called
-`org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-myapp.config`
-and could look as follows:
-
-whitelist.name="myapp"
-whitelist.bundles=[
-"com.myapp.core",
-"com.myapp.commons"
-]
-
-| Property            | Type     | Default     | Description |
-|---------------------|----------|-------------|-------------|
-| `whitelist.name`    | String   | `[unnamed]` | Purely informational property that allows easy identification of different fragments. |
-| `whitelist.bundles` | String[] | []          | An array of bundle symbolic names that should be allowed to make use of the administrative login functionality. |
-
-All configured whitelist fragments are taken into account. This makes
-it easy to separate whitelists for different application layers and
-purposes.
-
-For example, some Sling bundles need to be whitelisted, which
-could be done in a whitelist fragment named `sling`. In addition `myapp`
-adds a whitelist fragment called `myapp`. For integration tests and
-additional whitelist fragment `myapp-integration-testing` may be added.
-
-Furthermore, there is a global configuration with PID `org.apache.sling.jcr.base.internal.LoginAdminWhitelist`, which should
-only be used in exceptional cases. It has a switch to turn administrative
-login on globally (`whitelist.bypass`) and it allows supplying a regular
-expression to whitelist matching bundle symbolic names (`whitelist.bundles.regexp`).
-
-The regular expression is most useful for running PaxExam based tests, where
-bundle symbolic names follow a set pattern but have randomly generated parts.
-
-Example: to whitelist all bundles generated by PaxExam a configuration file named `org.apache.sling.jcr.base.internal.LoginAdminWhitelist.config` might look as follows:
-
-whitelist.bypass=B"false"
-whitelist.bundles.regexp="^PAXEXAM.*$"
-
-The configuration PID is `org.apache.sling.jcr.base.internal.LoginAdminWhitelist`.
-It supports the following configuration properties.
-
-| Property                   | Type     | Default     | Description |
-|----------------------------|----------|-------------|-------------|
-| `whitelist.bypass`         | Boolean  | false       | Allow all bundles to use administrative login. This is __NOT__ recommended for production and warnings will be logged. |
-| `whitelist.bundles.regexp` | String   | ""          | A regular expression that whitelists all matching bundle symbolic names. This is __NOT__ recommended for production and warnings will be logged. |

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/servlets.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/servlets.md b/content/documentation/the-sling-engine/servlets.md
deleted file mode 100644
index 477e00e..0000000
--- a/content/documentation/the-sling-engine/servlets.md
+++ /dev/null
@@ -1,193 +0,0 @@
-title=Servlets and Scripts		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-See also [URL to Script Resolution](/documentation/the-sling-engine/url-to-script-resolution.html) which explains how Sling maps URLs
-to a script or and servlet.
-
-## Servlet Registration
-
-Servlets can be registered as OSGi services. The following service reference properties are evaluated for Servlets defined as OSGi services of type `javax.servlet.Servlet` (all those property names are defined in `org.apache.sling.api.servlets.ServletResolverConstants` (since API 2.15.2) or `org.apache.sling.servlets.resolver.internal.ServletResolverConstants` (before API 2.15.2)):
-
-| Name | Description |
-|--|--|
-| `sling.servlet.paths` | A list of absolute paths under which the servlet is accessible as a Resource. The property value must either be a single String, an array of Strings or a Vector of Strings.<br>A servlet using this property might be ignored unless its path is included in the *Execution Paths* (`servletresolver.paths`) configuration setting of the `SlingServletResolver` service. Either this property or the `sling.servlet.resourceTypes` property must be set, or the servlet is ignored. If both are set, the servlet is registered using both ways.<br>Binding resources by paths is discouraged, see [caveats when binding servlets by path](#caveats-when-binding-servlets-by-path) below. |
-| `sling.servlet.resourceTypes` | The resource type(s) supported by the servlet. The property value must either be a single String, an array of Strings or a Vector of Strings. Either this property or the `sling.servlet.paths` property must be set, or the servlet is ignored. If both are set, the servlet is registered using both ways. |
-| `sling.servlet.selectors` | The request URL selectors supported by the servlet. The selectors must be configured as they would be specified in the URL that is as a list of dot-separated strings such as <em>print.a4</em>. The property value must either be a single String, an array of Strings or a Vector of Strings. This property is only considered for the registration with `sling.servlet.resourceTypes`. |
-| `sling.servlet.extensions` | The request URL extensions supported by the servlet for requests. The property value must either be a single String, an array of Strings or a Vector of Strings. This property is only considered for the registration with `sling.servlet.resourceTypes`. |
-| `sling.servlet.methods` | The request methods supported by the servlet. The property value must either be a single String, an array of Strings or a Vector of Strings. This property is only considered for the registration with `sling.servlet.resourceTypes`. If this property is missing, the value defaults to GET and HEAD, regardless of which methods are actually implemented/handled by the servlet.|
-| `sling.servlet.prefix` | The prefix or numeric index to make relative paths absolute. If the value of this property is a number (int), it defines the index of the search path entries from the resource resolver to be used as the prefix. The defined search path is used as a prefix to mount this servlet. The number can be -1 which always points to the last search entry. If the specified value is higher than than the highest index of the search paths, the last entry is used. The index starts with 0. If the value of this property is a string and parseable as a number, the value is treated as if it would be a number. If the value of this property is a string starting with "/", this value is applied as a prefix, regardless of the configured search paths! If the value is anything else, it is ignored. If this property is not specified, it defaults to the default configuration of the sling servlet resolver. |
-
-A `SlingServletResolver` listens for `Servlet` services and - given the correct service registration properties - provides the servlets as resources in the (virtual) resource tree. Such servlets are provided as `ServletResource` instances which adapt to the `javax.servlet.Servlet` class.
-
-For a Servlet registered as an OSGi service to be used by the Sling Servlet Resolver, either one or both of the `sling.servlet.paths` or the `sling.servlet.resourceTypes` service reference properties must be set. If neither is set, the Servlet service is ignored.
-
-Each path to be used for registration - either from the `sling.servlet.paths` property or constructed from the other `sling.servlet.*` properties - must be absolute. Any relative path is made absolute by prefixing it with a root path. This prefix may be set with the `sling.servlet.prefix` service registration property. If this property is not set, the first entry in the `ResourceResolver` search path for the `ResourceResolver.getResource(String)` method is used as the prefix. If this entry cannot be derived, a simpe slash - `/` - is used as the prefix.
-
-If `sling.servlet.methods` is not specified, the servlet is only registered for handling GET and HEAD requests. Make sure to list all methods you want to be handled by this servlet.
-
-### Caveats when binding servlets by path
-
-Binding servlets by paths has several disadvantages when compared to binding by resource types, namely:
-
-* path-bound servlets cannot be access controlled using the default JCR repository ACLs
-* path-bound servlets can only be registered to a path and not a resource type (i.e. no suffix handling)
-* if a path-bound servlet is not active, e.g. if the bundle is missing or not started, a POST might result in unexpected results. usually creating a node at /bin/xyz which subsequently overlays the servlets path binding
-* the mapping is not transparent to a developer looking just at the repository
-
-Given these drawbacks it is strongly recommended to bind servlets to resource types rather than paths.
-
-### Registering a Servlet using Java Annotations
-
-If you are working with the default Apache Sling development stack you can either use
-
-* [OSGi DS annotations](https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/annotations/package-summary.html) (introduced with DS 1.2/OSGi 5, properly supported since [bnd 3.0](https://github.com/bndtools/bndtools/wiki/Changes-in-3.0.0), being used in [maven-bundle-plugin 3.0.0](http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html)) or
-* Generic Felix SCR or Sling-specific `@SlingServlet` annotations from [Apache Felix Maven SCR Plugin](http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin.html) to register your Sling servlets:
-
-The following examples show example code how you can register Servlets with Sling
-
-1. OSGi DS annotations (recommended)
-
-:::java
-@Component(
-service = { Servlet.class },
-property = {
-SLING_SERVLET_RESOURCE_TYPES + "=/apps/my/type"
-SLING_SERVLET_METHODS + "=GET",
-SLING_SERVLET_EXTENSIONS + "=html",
-SLING_SERVLET_SELECTORS + "=hello",
-}
-)
-public class MyServlet extends SlingSafeMethodsServlet {
-
-@Override
-protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
-...
-}
-}
-
-Custom OSGi DS annotations (e.g. for Sling servlets) are not yet supported by the OSGi spec (and therefore by bnd), but this is supposed to be fixed with DS 1.4 (OSGi 7), see also [FELIX-5396](https://issues.apache.org/jira/browse/FELIX-5396).
-
-2. The `@SlingServlet` annotation (evaluated by maven-scr-plugin)
-
-:::java
-@SlingServlet(
-resourceTypes = "/apps/my/type",
-selectors = "hello",
-extensions = "html",
-methods = "GET")
-public class MyServlet extends SlingSafeMethodsServlet {
-
-@Override
-protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
-...
-}
-}
-
-### Automated tests
-
-The [launchpad/test-services](http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/) module contains test servlets that use various combinations of the above properties.
-
-The [launchpad/integration-tests](http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/) module contains a number of tests (like the [ExtensionServletTest|http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolution/ExtensionServletTest.java] for example) that verify the results.
-
-Such tests run as part of our continuous integration process, to demonstrate and verify the behavior of the various servlet registration mechanisms, in a way that's guaranteed to be in sync with the actual Sling core code. If you have an idea for additional tests, make sure to let us know!
-
-
-### Example: Registration by Path
-
-sling.servlet.paths = [ "/libs/sling/sample/html", "/libs/sling/sample/txt" ]
-sling.servlet.selectors = [ "img" ]
-sling.servlet.extensions = [ "html", "txt", "json" ]
-
-
-A Servlet service registered with these properties is registered under the following paths:
-
-* `/libs/sling/sample/html`
-* `/libs/sling/sample/txt`
-
-The registration properties `sling.servlet.selectors` and `sling.servlet.extensions` *are ignored* because the servlet is registered only by path (only `sling.servlet.paths` property is set).
-
-
-### Example: Registration by Resource Type etc.
-
-
-sling.servlet.resourceTypes = [ "sling/unused" ]
-sling.servlet.selectors = [ "img", "tab" ]
-sling.servlet.extensions = [ "html", "txt", "json" ]
-
-A Servlet service registered with these properties is registered for the following resource types:
-
-* `<prefix>/sling/unused/img/html`
-* `<prefix>/sling/unused/img/txt`
-* `<prefix>/sling/unused/img/json`
-* `<prefix>/sling/unused/tab/html`
-* `<prefix>/sling/unused/tab/txt`
-* `<prefix>/sling/unused/tab/json`
-
-As explained the Servlet is registered for each permutation of the resource types, selectors and extension. See above at the explanation of `sling.servlet.prefix` how `<prefix>` is defined.
-
-It is more common to register for absolute resource types or at least explicitly define `sling.servlet.prefix` as well, because otherwise you are in most cases not sure under which absolute path the Servlet is registered (and therefore by which
-other paths it might get overwritten).
-
-### Servlet Lifecycle Issues
-
-The Servlet API specification states the following with respect to the life
-cycle of Servlets:
-
->  The servlet container calls the init method exactly once after
->  instantiating the servlet.
-
-This works perfectly in a regular servlet container which both instantiates
-and initializes the servlets. With Sling the tasks of instantiation and
-initialization are split:
-
-* The provider of the Servlet service takes care of creating the servlet instance
-* The Sling Servlet Resolver picks up the Servlet services and initializes and destroys them as needed
-
-So Sling has not way of making sure a Servlet is only initialized and destroyed
-once in the life time of the Servlet object instance.
-
-The provider of the Servlet service on the other can cope with this
-situation by making sure to drop the servlet instance once it is destroyed.
-The mechanism helping the provider here is the OSGi Service Factory.
-
-
-
-## Scripts are Servlets
-
-
-The Sling API defines a `SlingScript` interface which is used to represent (executable) scripts inside of Sling. This interface is implemented in the `scripting/core` bundle in the `DefaultSlingScript` class which also implements the `javax.servlet.Servlet`.
-
-To further simplify the access to scripts from the Resource tree, the `scripting/core` bundle registers an `AdapterFactory` to adapt Resources to Scripts and Servlets (the `SlingScriptAdapterFactory`). In fact the adapter factory returns instances of the `DefaultSlingScript` class for both Scripts and Servlets.
-
-From the perspective of the Servlet resolver, scripts and servlets are handled exactly the same. In fact, internally, Sling only handles with Servlets, whereas scripts are packed inside a Servlet wrapping and representing the script.
-
-
-
-## Default Servlet(s)
-
-As explained in the Resolution Process section above, a default Servlet is selected if no servlet (or script) for the current resource type can be found. To make the provisioning of a default Servlet as versatile as provisioning per resource type Servlets (or scripts), the default Servlet is selected with just a special resource type `sling/servlet/default`.
-
-The actual Servlet or Script called as the default Servlet is resolved exactly the same way as for any resource type. That is, also for the default Servlet selection, the request selectors and extension or method are considered. Also, the Servlet may be a Servlet registered as an OSGi service or it may be a Script stored in the repository or provided by any bundle.
-
-Finally, if not even a registered default Servlet may be resolved for the request, because none has been registered, the `servlets/resolver` bundle provides a fall back the `DefaultServlet` with the following functionality:
-
-* If an `NonExistingResource` was created for the request the `DefaultServlet` sends a 404 (Not Found)
-* Otherwise the `DefaultServlet` sends a 500 (Internal Server Error), because normally at least a `NonExistingResource` should be created
-
-
-## OptingServlet interface
-
-If a registered servlet implements the OptingServlet interface, Sling uses that servlet's `accepts(SlingHttpServletRequest request)` method to refine the servlet resolution process.
-
-In this case, the servlet is only selected for processing the current request if its `accept` method returns true.
-
-While an opting servlet seems to be a nice way of picking the right servlet to process the request, the use of an opting servlet is not recommended: the main reason is that it complicates the request processing, makes it less transparent what is going on during a request and prevents optimizations like caching the script resolution in an optimal manner. The other static options are usually sufficient for all use cases.
-
-
-## Error Handler Servlet(s) or Scripts
-
-Error handling support is described on the [Errorhandling](/documentation/the-sling-engine/errorhandling.html) page.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/sling-api-crud-support.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/sling-api-crud-support.md b/content/documentation/the-sling-engine/sling-api-crud-support.md
deleted file mode 100644
index 23fe6a8..0000000
--- a/content/documentation/the-sling-engine/sling-api-crud-support.md
+++ /dev/null
@@ -1,172 +0,0 @@
-title=Sling API CRUD Support		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-## Apache Sling API Support
-
-As of version 2.3.0, the Sling API provides full Create Read Update Delete (CRUD) features.  CRUD support is provided by the addition of the following methods to the ResourceResolver:
-
-* [void delete(Resource resource) throws PersistenceException](https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#delete-org.apache.sling.api.resource.Resource-)
-* [Resource create(Resource parent, String name, Map<String, Object> properties) throws PersistenceException](https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#create-org.apache.sling.api.resource.Resource-java.lang.String-java.util.Map-)
-* [void revert()](https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#revert--)
-* [void commit() throws PersistenceException](https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#commit--)
-* [boolean hasChanges()](https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#hasChanges--)
-* [void refresh()](https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#refresh--)
-
-Which provide the ability to create and delete resources as well as the addition of the ModifiableValueMap interface which is similar to the ValueMap interface, but allows for updating properties on a resource.
-
-## Comparing Sling API CRUD to Sling Post Servlet
-
-Here are some examples of common operations performed using the Sling Post Servlet and Sling API CRUD support.  Note, the examples are derived from the [SlingPostServlet Cheatsheet](http://dev.day.com/content/ddc/blog/2008/07/cheatsheet/_jcr_content/images/cheatsheet/back.png).
-
-### Updating a Property
-
-Update /myresource, setting the title and body:
-
-**Sling Post Servlet**
-
-<form action="/myresource" method="POST">
-<input type="text" name="title">
-<textarea name="body">
-</form>
-
-**Sling API CRUD**
-
-Resource myResource = resourceResolver.getResource("/myresource");
-ModifiableValueMap properties = myNode.adaptTo(ModifiableValueMap.class);
-properties.put("title", {TITLE});
-properties.put("body", {BODY});
-resourceResolver.commit();
-
-### Create New Resource
-
-Create a new resource below /myresource
-
-**Sling Post Servlet**
-
-<form action="/myresource/" method="POST">
-<input type="text" name="dummy">
-</form>
-
-**Sling API CRUD**
-
-Resource myResource = resourceResolver.getResource("/myresource");
-Map<String,Object> properties = new HashMap<String,Object>();
-properties.put("jcr:primaryType", "nt:unstructured");
-properties.put("sling:resourceType", "myapp/components/mytype");
-Resource dummy = resourceResolver.create(myResource, "dummy", properties);
-resourceResolver.commit();
-
-### Remove a Property
-
-Remove the property title
-
-**Sling Post Servlet**
-
-<form action="/myresource" method="POST">
-<input type="hidden" name="title@Delete">
-</form>
-
-**Sling API CRUD**
-
-Resource myResource = resourceResolver.getResource("/myresource");
-ModifiableValueMap properties = myResource.adaptTo(ModifiableValueMap.class);
-properties.remove("title");
-resourceResolver.commit();
-
-### Copy a Resource
-
-Copy the resource /myresource to /myresource2
-
-**Sling Post Servlet**
-
-<form action="/myresource" method="POST">
-<input type="hidden" name=":operation" value="copy">
-<input type="hidden" name=":dest" value="/myresource2">
-<input type="hidden" name=":replace" value="true">
-</form>
-
-**Sling API CRUD**
-
-Map<String,Object> properties = myResource.adaptTo(ValueMap.class);
-Resource myResource2 = resourceResolver.create(null, "myresource2", properties);
-resourceResolver.commit();
-
-### Move a Resource
-
-Move the resource /myresource2 to /myresource3
-
-**Sling Post Servlet**
-
-<form action="/myresource2" method="POST">
-<input type="hidden" name=":operation" value="move">
-<input type="hidden" name=":dest" value="/myresource3">
-</form>
-
-**Sling API CRUD**
-
-Resource myResource2 = resourceResolver.getResource("/myresource2");
-Map<String,Object> properties = myResource2.adaptTo(ValueMap.class);
-Resource myResource3 = resourceResolver.create(null, "myresource3", properties);
-resourceResolver.delete(myResource2);
-resourceResolver.commit();
-
-### Setting non-String Value
-
-Set the property date to a particular date
-
-**Sling Post Servlet**
-
-<form action="/myresource3" method="POST">
-<input type="text" name="date" value="2008-06-13T18:55:00">
-<input type="hidden" name="date@TypeHint" value="Date">
-</form>
-
-**Sling API CRUD**
-
-Resource myResource3 = resourceResolver.getResource("/myresource3");
-Calendar calendar = [SOME_DATE];
-ModifiableValueMap properties = myResource3.adaptTo(ModifiableValueMap.class);
-properties.put("date", calendar);
-resourceResolver.commit();
-
-### Delete a Resource
-
-Delete the resource /myresource
-
-**Sling Post Servlet**
-
-<form action="/myresource" method="POST">
-<input type="hidden" name=":operation" value="delete">
-</form>
-
-**Sling API CRUD**
-
-Resource myResource = resourceResolver.getResource("/myresource");
-resourceResolver.delete(myResource);
-resourceResolver.commit();
-
-## Value Class Support
-
-
-<div class="info">
-Please note, this information is specific to the Sling JCR Resource implementation provided by the Apache Sling project.  Other implementations may have different value class support.
-</div>
-
-The Classes implementing the following types are supported directly when setting properties:
-
-* [Calendar](http://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html)
-* [InputStream](http://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html)
-* [Node](http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/javax/jcr/Node.html)
-* [BigDecimal](http://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html)
-* [Long](http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html)
-* [Short](http://docs.oracle.com/javase/8/docs/api/java/lang/Short.html)
-* [Integer](http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html)
-* [Number](http://docs.oracle.com/javase/8/docs/api/java/lang/Number.html)
-* [Boolean](http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html)
-* [String](http://docs.oracle.com/javase/8/docs/api/java/lang/String.html)
-
-As well as the corresponding primitive types.  Any object which implements the Serializable interface will be serialized and the result of the serialization will be saved as a binary value for the property.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/sling-properties.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/sling-properties.md b/content/documentation/the-sling-engine/sling-properties.md
deleted file mode 100644
index 8e5d417..0000000
--- a/content/documentation/the-sling-engine/sling-properties.md
+++ /dev/null
@@ -1,51 +0,0 @@
-title=Well-known Sling Properties		
-type=page
-status=published
-~~~~~~
-
-This table lists properties which have known functionality in the OSGi and Sling frameworks.
-
-With the exception of the Sling setup properties (`sling.home`, `sling.launchpad`, and `sling.properties`) all properties can be set on the command line using the `-D` command line option or in the `sling.properties` file. Properties defined on the command line or in the `web.xml` file always overwrite properties in the `sling.properties` file.
-
-[TOC]
-
-
-## Sling Setup Properties
-
-| Property | Default Value | Description |
-|---|---|---|
-| `sling.home` | `sling` | Path to the main Sling Directory; relative path is resolved against current working directory as defined in the `user.dir` system property. Can also be set with the `-c` command line option. | Launchpad |
-| `sling.launchpad` | `${sling.home}` | Location for the Sling launchpad JAR file and the startup folder containing bundles to be installed by the Bootstrap Installer. Can also be set with the `-i` command line option. | Launchpad |
-| `sling.properties` | `${sling.home}/sling.properties` | Path to the `sling.properties` file; relative path is resolved against `${sling.home}` | Launchpad |
-
-## Server Control Port Properties
-
-| Property | Default Value | Description |
-|---|---|---|
-| `sling.control.socket` | `127.0.0.1:0` | Specification of the control port. Can also be set with the `-j` command line option. This property is only used by the Standalone Sling Application. | Launchpad |
-| `sling.control.action` | -- | Action to execute. This is the same as specifying `start`, `status`, or `stop` on the command line. This property is only used by the Standalone Sling Application. | Launchpad |
-
-## Logging Configuration
-
-Logging configuration defined by these properties sets up initial configuration for the Sling Commons Log bundle. This configuration is used as long as there is no configuration from the Configuration Admin Service for the service PID `org.apache.sling.commons.log.LogManager`.
-
-| Property | Default Value | Description |
-|---|---|---|
-| `org.apache.sling.commons.log.level` | `INFO` | Sets the initial logging level of the root logger. This may be any of the defined logging levels `DEBUG`, `INFO`, `WARN`, or `ERROR`.  This property can also be set with the `-l` command line option. |
-| `org.apache.sling.commons.log.file` | `${sling.home}/logs/error.log` | Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to System.out. This property can also be set with the `-f` command line option. |
-| `org.apache.sling.commons.log.file.number` | `5` | The number of rotated files to keep. |
-| `org.apache.sling.commons.log.file.size` | `'.'yyyy-MM-dd` | Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section [Log File Rotation](http://sling.apache.org/site/logging.html#Logging-LogFileRotation) for full details on log file rotation. |
-| `org.apache.sling.commons.log.pattern` | `{0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}] {3} {5}` | The MessageFormat pattern to use for formatting log messages with the root logger. |
-| org.apache.sling.commons.log.julenabled | `false` | Enables the java.util.logging support. |
-
-See [Logging](http://sling.apache.org/site/logging.html) for full information on configuring the Sling Logging system.
-
-
-## Http Service Properties
-
-| Property | Default Value | Description |
-|---|---|---|
-| `org.apache.felix.http.context_path` | `/` | The servlet context path for the Http Service of the embedded servlet container. This property requires support by the Http Service bundle. |
-| `org.apache.felix.http.host` | `0.0.0.0` | The host interface to bind the HTTP Server to. This property requires support by the Http Service bundle. |
-| `org.osgi.service.http.port` | 8080 | The port to listen on for HTTP requests. This property requires support by the Http Service bundle. |
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/the-sling-launchpad.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/the-sling-launchpad.md b/content/documentation/the-sling-engine/the-sling-launchpad.md
deleted file mode 100644
index 8f4ad76..0000000
--- a/content/documentation/the-sling-engine/the-sling-launchpad.md
+++ /dev/null
@@ -1,190 +0,0 @@
-title=The Sling Launchpad		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-This tries to explain how exactly the Sling Launchpad works, what constitutes the Sling Launchpad and how you can use the Sling Launchpad to custom create you Sling launchers. For a view behind the scenes of the Sling Launchpad Base module (the actual launcher) you might want to refer to the [Embedding Sling](/documentation/development/embedding-sling.html) page.
-
-
-## Sling Home
-
-Since Sling requires some space on the filesystem to store various files Sling has to know where this filesystem space is located.
-
-The following is a list of uses for the Sling Home directory:
-
-* `sling.properties` -- The main configuration file used by Sling to launch the framework. It mainly contains OSGi framework configuration and initial configuration for some bundles. This file is read on each startup of *Launcher JAR*. That is, changes to this file require a restart of the *Launcher JAR*.
-* `org.apache.sling.launchpad.base.jar` --  This is the *Launcher JAR* file used by the Standalone Application or the Web Application to start the OSGi Framework. This file is initially placed when first starting Sling and may later be updated by updating the system bundle with a new *Launcher JAR*.
-* `felix` -- The directory into which the Apache Felix Framework places the bundles, which have been installed into the system. This does generally not need to be touched.
-* `config` -- The directory into which the Apache Felix Configuration Admin Service stores the configurationes. Do not change any files in this directory, since changes will not generally be picked up.
-* `jackrabbit` -- The directory in which the Apache Jackrabbit JCR repository is started ( only applicable when using Apache Jackrabbit 2.x ). This is only available for Sling Launchpad 7 or older. Amongst other things this also contains the Jackrabbit configuration file `repository.xml`. You may modify this file, but don't forget to restart the Embedded Jackrabbit Repository bundle after doing this.
-* `oak` - The directory in which the Apache Jackrabbit Oak JCR Repository is started ( only applicable when using Apache Jackrabbit Oak with the SegmentNodeStoreBackend ). This is only available for Sling Launchpad 8 or newer.
-* `logs` -- Contains the log files generated by Sling. By default this contains the error.log and its rotated generations.
-
-
-## Command Line Options
-
-
-The Java Standalone Application supports a number of command line options, which influence the operation of the launch process.
-
-| Option | Argument | Description |
-|--|--|--|
-| `start` | -- | Open a TCP/IP server socket when starting Sling. Uses option `-j` to define the local socket address. |
-| `status` | -- | Check whether a (remote) Sling application is running. Uses option `-j` to define the address of the Sling instance to check. Note, that the Sling application terminates after checking for the (remote) Sling status. |
-| `stop` | -- | Stop a (remote) Sling application is running. Uses option `-j` to define the address of the Sling instance to stop. Note, that the Sling application tesrminates after stopping the (remote) Sling instance. |
-| `-j` | [ host ":" ] port |  The socket address to listen on for control connections (`start` or to use as the remote endpoint for the control connection (`status` and `stop`. If this parameter has no arguments or is not specified, the address defaults to any free port on localhost/127.0.0.1. If only the port is specified localhost/127.0.0.1 is used as the host part of the address. |
-| `-c` | slinghome | The directory in which Sling locates its initial configuration file `sling.properties` and where files of Sling itself such as the Apache Felix bundle archive or the JCR repository files are stored. This defaults to the `sling` folder in the current working directory. This is the value which is commonly refered to as `${sling.home}.`
-| `-i` | launchpadhome |  The launchpad directory. If not set, this is the same as `${sling.home}.` (since Sling Launchpad 2.4.0)  |
-| `-l` | loglevel | Sets the initial loglevel as an integer in the range 0 to 4 or as one of the well known level strings `ERROR`, `WARN`, `INFO`, or `DEBUG`. This option overwrites the `org.apache.sling.osg.log.level` setting the `sling.properties` file. The default is `INFO`. |
-| `-f` | logfile |  The log file to use or `-` to log to standard out. This option overwrites the `org.apache.sling.osg.log.file` setting in the `sling.properties` file. The default is `${sling.home}/logs/error.log`. |
-| `-a` | address | The interfact to bind to (use 0.0.0.0 for any). This option overwrites the `org.apache.felix.http.host` setting in the `sling.properties` file and requires the embedded Http Service implementation to honor this property. (supported since Sling Launchpad 2.4.0) |
-| `-p` | port |  The port to listen (default 8080) to handle HTTP requests. This option overwrites the `org.osgi.service.http.port` setting in the `sling.properties` file. |
-| `-r` | path | The root servlet context path for the Http Service (default is /). This option overwrites the `org.apache.felix.http.context_path` setting in the `sling.properties` file and requires the embedded Http Service implementation to honor this property. (since Sling Launchpad 2.4.0) |
-| `-D` | n=v | Sets the property `n` to the value `v`. This option can be added repeatedly setting additional properties. Any property set in this manner overwrites same named properties in the `sling.properties` file. (since Sling Launchpad 2.4.0) |
-| `-n` | -- | Don't install the shutdown hook. See [Shutdown Hook](#shutdown-hook) below. (since Sling Launchpad 2.5.2) |
-| `-h` | -- | Prints a simple usage message listing all available command line options. |
-
-The Sling Standalone application looks for a definition of the `sling.home` setting in the following locations in order of precendence:
-
-1. The `-c` command line option
-1. The `sling.home` system property
-1. The `SLING_HOME` environment variable
-1. If none of the above resolves to a non-null value, the default value of `sling` is assumed
-
-
-### Control Port
-
-When starting the Sling Standalone Application with the `start` command line option, a TCP control port is opened to receive simple commands which allow for stopping an instance and getting thread dumps.
-
-Currently supported commands are
-
-* `stop` to stop the Sling instance
-* `status` to get the instance status (OK or STOPPING)
-* `threads` to get a thread dump
-
-For the Whole Truth about this functionality see the [ControlListener class source code](https://svn.apache.org/repos/asf/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/app/ControlListener.java).
-
-The interface and port is configurable with the `-j` command line option. The actual address and port used are written to the `${sling.home}/conf/controlport` file. So technically the `-j` option is not required for the `status` and `stop` operations because the port information can be read from that file.
-
-Note that using a control connection for the Sling Standalone Application presents a potential security issue. For this reason the following defaults apply:
-
-* The server side socket for a running Sling Standalone Application is not created by default, but only if the application is started with the `start` command line option.
-* The default control port configuration is `localhost/127.0.0.1` meaning that the socket is only accessible from the same system as the Sling Standalone Application is running on.
-* A nonce, followed by a space character, must be used as a prefix for every command sent to the control port. This nonce is generated by Sling at startup and also written to the `controlport` file mentioned above.
-
-For additional security, do not allow the control port to be opened on an externally visible network interface and strictly restrict access to the Sling installation folder (`${sling.home}`).
-
-Here's an example session where a Sling Standalone Application is started with the control port active:
-
-$ java -jar target/org.apache.sling.launchpad-9-SNAPSHOT.jar start
-05.04.2016 11:50:45.003 *INFO * [main] Setting sling.home=sling (default)
-05.04.2016 11:50:45.006 *INFO * [main] Starting Apache Sling in /foo/sling/launchpad/builder/sling
-...
-05.04.2016 11:50:45.012 *INFO * [Apache Sling Control Listener@/127.0.0.1:59239] Apache Sling Control Listener started
-...
-
-And stopped using its control port, from another terminal:
-
-$ cat sling/conf/controlport
-127.0.0.1:59239
-mdsryh1k5fpcgvm7suqnckxkr7fvluzv
-
-$ telnet 127.0.0.1 59239
-Trying 127.0.0.1...
-Connected to localhost.
-Escape character is '^]'.
-
-mdsryh1k5fpcgvm7suqnckxkr7fvluzv stop
-
-OK
-Connection closed by foreign host.
-
-
-### Shutdown Hook
-
-By default the Sling Launchpad standalone application installs a Shutdown Hook with the Java Runtime to make sure the framework is properly
-terminated in case of a Java termination. In some situations or setups you want to control shutdown of Sling yourselves, so Sling supports a command
-line option `-n` to prevent the installation of a shutdown hook.
-
-Apart from the command line option, the `sling.shutdown.hook` system property is also supported: If this property is set to `true` or is not set at all
-the shutdown hook is installed as expected. If the property is set to anything other than `true`, e.g. `false`, the shutdown hook is not installed.
-
-If you are embedding the Sling Launchpad application's `Main` class, the `sling.shutdown.hook` property can also be set as a member of the `props` map
-handed to the `Main` constructor.
-
-
-## Servlet Parameters
-
-The Web Application does not require specific servlet parameters. Those which are specified are used to overwrite any properties with the same name from the `sling.properties` file. One exception to this rule is the `sling.home` parameter, which is used to set the value of the `sling.home` property. If no parameter with this name is defined the Sling home directory is derived from the context path at which the Sling Web Application is registered.
-
-The `sling.home` folders for Sling Web Applications without the `sling.home` servlet parameter are all located in the `sling` folder in the current working directory as reported by the `user.dir` system property. The name of the actual directory is derived from the Web Application Context Path by replacing all slash characters `/` by underscore characters `_`. For the root context a single underscore character `_` is used.
-
-Examples:
-
-| Servlet Context | Default `sling.home` |
-|--|--|
-| *root* | `sling/_` |
-| `/sling` | `sling/_sling` |
-| `/sling/instance1` | `sling/_sling/instance1` |
-
-Starting with Launchpad Base 2.2.2 the fixed prefix `sling` is configurable with the `sling.home.prefix` system property. If this property is set the value used as the prefix.
-
-Examples: Assume the `sling.home.prefix` system property is set to `/var/sling`
-
-| Servlet Context | Default `sling.home` |
-|--|--|
-| *root* | `/var/sling/_` |
-| `/sling` | `/var/sling/_sling` |
-| `/sling/instance1` | `/var/sling/_sling/instance1` |
-
-
-## sling.properties
-
-The `sling.properties` file contains the initial setup of the Sling Application and the OSGi framework. Some of the parameters are required and should not be modified without a very good reason. Some parameters may be freely modified to your needs. Please see the inlined comment in the `sling.properties` file installed when Sling is first started.
-
-One thing to note is, that the `sling.properties` file is a simple Java Properties file with support for property references. That is, the value of properties may refer other property values by means of the well known `${name}` notation. Such property references may even be nested as in
-
-
-java.packages=${jre-${java.specification.version}}
-
-
-
-## Components
-
-The Sling Launchapd consists of *Launchbad Base* project and three additional projects which ultimately create a Standalone Java Application and a Web Appliction with standard parts of Sling.
-
-
-### Launchpad Base
-
-The *Launchpad Base* projects creates the following artifacts, which are required in actual setups to get a Sling application:
-
-* *Launcher JAR* -- The primary artifact of the Base project contains the actual support to launch the Apache Felix OSGi Framework and install bundles, which are packaged with the application. It also contains the Apache Felix Framework together with the OSGi R4.1 Core and Compendium libraries as well as the Equinox HttpService bridge and the Servlet API.
-
-* *App JAR* -- The secondary artifact with classifier *app* is a minimal Standalone Java Application which may be started by simply typing
-
-
-$ java -jar org.apache.sling.launchpad.base-app.jar
-
-
-* *Web App Archive* -- The secondary artifact with classifier *webapp* is a minimal Web Application, which may simply be deployed into your favirourite servlet container, provided it supports at least Servlet API 2.4.
-
-* *Source JAR* -- The secondary artifact with the classifier *sources* is simple the source of the *Launchpad Base* project.
-
-To build a very basic Sling launcher, the *Launchpad Base* is actually all you need. But to really glue this together and get a usable system, some more work is required. Lets see how the additionaly projects *Launchpad Bundles*, *Launchpad App*, and *Launchpad WebApp* get to that.
-
-### Launchpad App and Launchpad WebApp
-
-The *Launchpad App* and *Launchpad WebApp* bundles are actually projects which just glue together artifacts from the Launchpad projects. There is nothing special about them. Here's what is done:
-
-* Take the appropriate secondary artifact from the *Launchpad Base* project: *app* for the Standalone Java Application or *webapp* for the Web Application and unpack
-* Take the *Launchpad Base* primary artifact and place it under the name `org.apache.sling.launchpad.base.jar` into the `resources` folder
-* Copies the list of artifacts defined in the [Provisioning model](/documentation/development/slingstart.html)
-* Finally pack all together into a single big JAR or WAR file
-
-The artifacts can be configured to use different JCR repository implementations, based on the value of the `-Dsling.run.modes` property. The following run modes are available for the 8 version of the Sling Launchpad:
-
-* `oak`: configures and starts up an Apache Jackrabbit Oak repository implementation with a SegmentNodeStore ( TarMK ) implementation
-* `oak,oak_mongo`: configures and starts up an Apache Jackrabbit Oak repository implementation with a DocumentNodeStore implementation connected to a MongoDB database. The default configuration points to a MongoDB instance at mongodb://localhost:27017 and a database named sling.
-
-That's it. The resulting artifact may be directly used to launch the Standalone Java Application or may directly be deployed into any Servlet API 3.0 (or later) compliant servlet container.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/url-decomposition.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/url-decomposition.md b/content/documentation/the-sling-engine/url-decomposition.md
deleted file mode 100644
index d29eba0..0000000
--- a/content/documentation/the-sling-engine/url-decomposition.md
+++ /dev/null
@@ -1,49 +0,0 @@
-title=URL decomposition		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-# Overview #
-During the *Resource Resolution* step, the client request URI (as being returned by [HttpServletRequest.getRequestURI()](http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getRequestURI())) is decomposed into the following parts (in exactly this order):
-
-1. **Resource Path** - For existing resources the resource path is the longest match (also considering its [mappings](/documentation/the-sling-engine/mappings-for-resource-resolution.html)) pointing to a resource where the next character is either a dot (`.`) or it is the full request URI.
-Otherwise (for a path not matching any existing resource) the resource path ends at the *first dot (`.`)* in the request url. The exact logic for retrieving the resource path is implemented at [ResourceResolver.resolve(HttpServletRequest,String)](https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#resolve-javax.servlet.http.HttpServletRequest-java.lang.String-). *It is impossible to tell from just looking at the request URI where the resource path part ends. You have to know the underlying resource structure to know how a URL is decomposed. You cannot safely assume that the resource path will always end at the first dot!*.
-1. **Selectors** - If the first character in the request URL after the resource path is a dot  (`.`), the string after the dot up to but not including the last dot before the next slash character or the end of the request URL comprises the selectors. If the resource path spans the complete request URL no selectors exist. If only one dot follows the resource path before the end of the request URL or the next slash, also no selectors exist.
-1. **Extension** - The string after the last dot after the resource path in the request URL but before the end of the request URL or the next slash after the resource path in the request URL is the extension.
-1. **Suffix** - If the request URL contains a slash character after the resource path and optional selectors and extension, the path starting with the slash up to the end of the request URL is the suffix path. Otherwise, the suffix path is empty. Note, that after the resource path at least a dot must be in the URL to let Sling detect the suffix.
-
-Those decomposed parts can be accessed through the `RequestPathInfo` object, which is retrieved via [SlingHttpServletRequest.getPathInfo()](https://sling.apache.org/apidocs/sling7/org/apache/sling/api/SlingHttpServletRequest.html#getRequestPathInfo--).
-
-There's a cheat sheet in Adobe's AEM documentation at [https://docs.adobe.com/docs/en/aem/6-2/develop/platform/sling-cheatsheet.html](https://docs.adobe.com/docs/en/aem/6-2/develop/platform/sling-cheatsheet.html) available to get you familiar with the URL decomposition of Sling.
-
-# Examples #
-Assume there is a Resource at `/a/b`, which has no children.
-
-| URI | Resource Path | Selectors | Extension | Suffix | Resource Found |
-|--|--|--|--|--|--|
-| /a/b                      | /a/b | null  | null | null       | yes |
-| /a/b.html                 | /a/b | null  | html | null       | yes |
-| /a/b.s1.html              | /a/b | s1    | html | null       | yes |
-| /a/b.s1.s2.html           | /a/b | s1.s2 | html | null       | yes |
-| /a/b/c/d                  | /a/b/c/d | null  | null | null       | no! |
-| /a/c.html/s.txt           | /a/c | null  | html | /s.txt     | no! |
-| /a/b./c/d                  | /a/b | null  | null | /c/d       | yes |
-| /a/b.html/c/d             | /a/b | null  | html | /c/d       | yes |
-| /a/b.s1.html/c/d          | /a/b | s1    | html | /c/d       | yes |
-| /a/b.s1.s2.html/c/d       | /a/b | s1.s2 | html | /c/d       | yes |
-| /a/b/c/d.s.txt            | /a/b/c/d | s  | txt | null | no! |
-| /a/b.html/c/d.s.txt       | /a/b | null  | html | /c/d.s.txt | yes |
-| /a/b.s1.html/c/d.s.txt    | /a/b | s1    | html | /c/d.s.txt | yes |
-| /a/b.s1.s2.html/c/d.s.txt | /a/b | s1.s2 | html | /c/d.s.txt | yes |
-
-
-# Automated Tests #
-
-The tests at
-
-* [ResourceResolverImplTest](http://svn.apache.org/repos/asf/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java) shows the split between resource path and the rest. Mostly in the method `testBasicAPIAssumptions`.
-* [SlingRequestPathInfoTest](http://svn.apache.org/repos/asf/sling/trunk/bundles/engine/src/test/java/org/apache/sling/engine/impl/request/SlingRequestPathInfoTest.java) demonstrates the decomposition after the resource path part.
-
-Feel free to suggest additional tests that help clarify how this works!

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/url-to-script-resolution.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/url-to-script-resolution.md b/content/documentation/the-sling-engine/url-to-script-resolution.md
deleted file mode 100644
index e85d38e..0000000
--- a/content/documentation/the-sling-engine/url-to-script-resolution.md
+++ /dev/null
@@ -1,108 +0,0 @@
-title=URL to Script Resolution		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-This page explains how Sling maps URLs to a script or and servlet.
-
-See also [Servlets and Scripts](/documentation/the-sling-engine/servlets.html) which provides detailed info about how to register servlets.
-
-First of all Sling looks up the resource identified by the URL - typically a path inside the JCR repository, which is annotated by the `sling:resourceType` property
-which defines the resource type of that resource. Using this resource type (which is kind of a relative path,
-eg. "myblog/comment"), scripts or servlets are looked up. For more details about how the initial resource is identified for a specific request URL look at [URL decomposition](/documentation/the-sling-engine/url-decomposition.html).
-
-Scripts and servlets are itself resources in Sling and thus have a resource path: this is either the location in the
-JCR repository, the resource type in a servlet component configuration or the "virtual" bundle resource path
-(if a script is provided inside a bundle without being installed into the JCR repository).
-
-For the whole Truth about script resolution, see the [ScriptSelectionTest](http://svn.apache.org/repos/asf/sling/trunk/bundles/servlets/resolver/src/test/java/org/apache/sling/servlets/resolver/internal/helper/ScriptSelectionTest.java) class. If you see interesting cases that are not
-covered there, please let us know via the Sling users mailing list.
-
-TODO: explain super types, servlet path mappings, node type resource types (`my:type -> my/type`)
-
-##  Fundamental: Scripts and Servlets are equal
-
-In the following discussion, I will write about scripts. This will always include servlets as well. In fact, internally, Sling only handles with Servlets, whereas scripts are packed inside a Servlet wrapping and representing the script.
-
-## Base: Resource Type Inheritance
-
-While not exactly part of our discussion, resource type inheritance as implemented for [SLING-278](https://issues.apache.org/jira/browse/SLING-278) plays a vital role in script resolution.
-
-Each resource type may have a resource super type, which may be defined in various ways. One example is having a `sling:resourceSuperType` property in the node addressed by the resource type. See [http://www.mail-archive.com/sling-dev@incubator.apache.org/msg02365.html](http://www.mail-archive.com/sling-dev@incubator.apache.org/msg02365.html) and [SLING-278](http://issues.apache.org/jira/browse/SLING-278) for more details.
-
-If a resource type has no explicit resource super type, the resource super type is assumed to be "sling/servlet/default". That is the resource type used for default script selection is also acting as a basic resource type much like java.lang.Object does for other types in the Java language.
-
-## Script Locations
-
-Scripts are looked up in a series of locations defined by the ResourceResolver.getSearchPath() and the resource type (and resource super types) of the requested resource:
-
-{scriptPathPrefix}/{resourceTypePath}
-
-The pseudo code for iterating the locations would be something like:
-
-
-var type = resource.getResourceType();
-while (type != null) {
-for (String root: resourceResolver.getSearchPath()) {
-String path = root + type.toPath();
-findScriptsIn(path);
-}
-
-if (type == defaultServlet) {
-type = null;
-} else {
-type = getResourceSuperType(type);
-if (type == null) {
-type = defaultServlet;
-}
-}
-}
-
-
-## All requests are NOT equal
-
-GET and HEAD request methods are treated differently than the other request methods. Only for GET and HEAD requests will the request selectors and extension be considered for script selection. For other requests the servlet or script name (without the script extension) must exactly match the request method.
-
-That is for a PUT request, the script must be PUT.esp or PUT.jsp. For a GET request with a request extension of html, the script name may be html.esp or GET.esp.
-
-## Scripts for GET requests
-
-Apart for supporting scripts named after the request method, scripts handling GET and HEAD requests may be named differently for Sling to support a more elaborate processing order.
-
-Depending on whether request selectors are considered, a script may have two forms:
-
-* a. Ignoring request selectors (e.g. there are none in the request URI) `{resourceTypeLabel}.{requestExtension}.{scriptExtension}`
-* b. Handling request selectors `{selectorStringPath}.{requestExtension}.{scriptExtension}`
-
-The constituents of these script names are as follows:
-
-* `{resourceTypeLabel}` - The last path segment of the path created from the resource type. This part is optional if the `{requestExtension}` is used in the script name. The resource type might either be set via the `sling:resourceType` property on the accessed node or if that property is not there its primary node type (property `jcr:primaryType`) is taken as fallback.
-* `{requestExtension}` - The request extension. This part may be ommitted if the request extension is "html", otherwise this part is required. If this part is ommitted, the `{resourceTypeLabel}` is required in the case of ignoring the selectors.
-* `{scriptExtension}` - The extension, e.g. "esp" or "jsp", identifying the scripting langauage used.
-* `{selectorStringPath}` - The selector string converted to a path, along the lines of `selectorString.replace('.', '/')`. If less selectors are specified in the script name than given in the request, the script will only be taken into consideration if the given selectors are the **first** selectors in the request. This means *sel1/sel2.html.jsp* will be a candidate for the request url */content/test.sel1.sel2.sel3.html* but not for */content/test.sel3.sel1.sel2.html*. So the order of selectors is relevant!
-
-## Priority
-
-The rules for script path priorization is defined as follows:
-
-* The more request selectors are matched, the better
-* A script including the request extension matches better than one without a request extension (for html only)
-* A script found earlier matches better than a script found later in the processing order. This means, that script closer to the original resource type in the resource type hierarchy is considered earlier.
-
-## Examples
-
-Let's consider the following script paths for a request of a resource whose resource type is `slingsample` and the request selectors are *print.a4* and the request extension is *html*:
-
-* (0) GET.esp
-* (1) sample.esp
-* (2) html.esp
-* (3) print.esp
-* (4) print/a4.esp
-* (5) print.html.esp
-* (6) print/a4.html.esp
-* (7) a4.html.esp
-* (8) a4/print.html.esp
-
-The priority of script selection would be (starting with the best one): (6) - (4) - (5) - (3) - (2) - (1) - (0). Note that (4) is a better match than (5) because it matches more selectors even though (5) has an extension match where (4) does not. (7) is not a candidate because it does not include the first selector (print) and (8) is not a candidate because it has the wrong order of selectors.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/the-sling-engine/wrap-or-decorate-resources.md
----------------------------------------------------------------------
diff --git a/content/documentation/the-sling-engine/wrap-or-decorate-resources.md b/content/documentation/the-sling-engine/wrap-or-decorate-resources.md
deleted file mode 100644
index 0cc370f..0000000
--- a/content/documentation/the-sling-engine/wrap-or-decorate-resources.md
+++ /dev/null
@@ -1,39 +0,0 @@
-title=Wrap or Decorate Resources		
-type=page
-status=published
-~~~~~~
-
-## Introduction
-
-The Sling API provides an easy way to wrap or decorate a resource before returning. Use cases for this could for example be
-* overwrite resource type/resource super type (for example based on the resource path)
-* add metadata
-
-##
-
-To add a resource decorator just register one or more services which implement the interface `ResourceDecorator`
-
-:::java
-interface ResourceDecorator {
-/** Optionally decorate the supplied Resource */
-Resource decorate(Resource)
-
-/** Only called if using older versions of Sling, see below */
-@Deprecated
-Resource decorate(Resource, HttpServletRequest)
-}
-
-
-The registered decorators will be called from the resource resolver for each resource returned.
-If the service decorates the resource it should return the new resource (often using a `ResourceWrapper` to wrap the original Resource).
-If the service does not want to decorate the resource, it should return the original resource or null.
-
-Starting with version 2.1.0 of the JCR Resource bundle, the two-argument `decorate` method is not called anymore.
-Implementors of this interface targeting both newer and older versions of this bundle are advised to implement this method as:
-
-:::java
-public Resource decorate(Resource resource, HttpServletRequest request) {
-return this.decorate(resource);
-}
-
-And use some other mechanism (e.g. a `ThreadLocal`) to obtain the current request if necessary.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/tutorials-how-tos.md
----------------------------------------------------------------------
diff --git a/content/documentation/tutorials-how-tos.md b/content/documentation/tutorials-how-tos.md
deleted file mode 100644
index bde31cb..0000000
--- a/content/documentation/tutorials-how-tos.md
+++ /dev/null
@@ -1,7 +0,0 @@
-title=Tutorials & How-Tos		
-type=page
-status=published
-~~~~~~
-
-{% for label, page in children %}* [{{ page.headers.title }}]({{ page.path }})
-{% endfor %}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/tutorials-how-tos/46-line-blog.md
----------------------------------------------------------------------
diff --git a/content/documentation/tutorials-how-tos/46-line-blog.md b/content/documentation/tutorials-how-tos/46-line-blog.md
deleted file mode 100644
index b9af697..0000000
--- a/content/documentation/tutorials-how-tos/46-line-blog.md
+++ /dev/null
@@ -1,159 +0,0 @@
-title=46 Line Blog		
-type=page
-status=published
-~~~~~~
-
-This tutorial is based on the first *Sling Gems* on dev.day.com: The [Sling gems: a blog in 46 lines of code](http://dev.day.com/microsling/content/blogs/main/sling-46-lines-blog.html). It has slightly been adapted to fit here.
-
-In this tutorial, the SlingPostServlet and the sling.js library are brought together using 46 (no kidding: *fourty-six*) lines of code to create a simple blog (or let's say *bloggish*) application.
-
-I used this example in my [Rapid JCR application development with Apache Sling](http://www.slideshare.net/bdelacretaz/rapid-jcr-applications-development-with-sling-1196003) presentation at ApacheCon US 09 in Oakland (slides will be available soon), and I think it's a good testimony to the power and simplicity of Sling.
-
-## Audience
-
-Although this is a simple sample, it requires some custom settings to work. If you're just starting with Sling, [Discover Sling in 15 minutes](/documentation/getting-started/discover-sling-in-15-minutes.html) might be a better choice.
-
-## Step 0: Start, configure and login to Sling
-
-See [Getting and Building Sling](/documentation/development/getting-and-building-sling.html) for how to start Sling. Start it on port 8888 for the below links to work.
-
-For this sample we need the optional *org.apache.sling.samples.path-based.rtp* bundle, if it's not present in the [OSGi console](http://localhost:8888/system/console/bundles), install and start it. That bundle is not released yet so you might need to build it yourself, from its [source](http://svn.apache.org/repos/asf/sling/trunk/samples/path-based-rtp). The bundle must then appear in the [OSGI console's list of bundles](http://localhost:8888/system/console/bundles), with name = *org.apache.sling.samples.path-based.rtp* and status = *Active*.
-
-Then, login using <http://localhost:8888/?sling:authRequestLogin=1> which should prompt you for a username and password, use *admin* and *admin*. Once that's done, <http://localhost:8888/index.html> should say *You are currently logged in as user *admin* to workspace *default**.
-
-## Step 1: Creating content
-
-The easiest way to create content in Sling is to use an HTTP POST request, let's use a simple HTML form:
-
-<html>
-<body>
-<h1>Sling microblog</h1>
-
-<div>
-<form method="POST">
-<input type="text" name="title" style="width:100%"/>
-
-<br/>Text:<br/>
-<textarea style="width:100%" name="text"></textarea>
-
-<br/>
-<input type="submit" value="save"/>
-<input type="hidden" name=":redirect" value="*.html"/>
-
-<!-- used by Sling when decoding request parameters -->
-<input type="hidden" name="_charset_" value="UTF-8"/>
-</form>
-</div>
-
-<!-- code of step 2 comes here -->
-</body>
-</html>
-
-
-That's two input fields, a submit button and a hidden field that tells Sling what to do after the POST (in this case: redirect to the html view of the node that was just created).
-
-To test the form, start Sling and save the above script as {{/apps/blog/blog.esp}} [^esp]  in the Sling repository - a WebDAV mount is the easiest way to do that. Browsing to <http://localhost:8888/content/blog/*.html> [^port] should display the above form.
-
-[^esp]: ESP is Sling's server-side javascript language
-[^port]: This assumes your instance of Sling is running on port 8888. If that's not the case, adjust the example URLs accordingly.
-
-Input some data (using "foo" for the title, for the sake of our examples below), save the form, and Sling should display the form again, using the URL of the node that was just created.
-
-<div class="note">
-If you get an error saying _javax.jcr.AccessDeniedException: ...not allowed to add or modify item_ it means that you are not logged in as user _admin_. See instructions above for logging in.
-</div>
-
-At this point you're probably looking at an empty form with an URL ending in _foo_, if you used that for the title. Or _foo_0_ or _foo_1_ if other _foo_s already existed. Don't worry about not seeing your content, we'll fix that right away.
-
-
-## Step 2: Where's my content?
-
-To verify that our content has been created, we can have a look at the JSON data at <http://localhost:8888/content/blog/foo.tidy.json>, which should display our new node's values:
-
-
-{
-"jcr:primaryType": "nt:unstructured",
-"text": "This is the foo text",
-"title": "foo"
-}
-
-
-That's reassuring, but what we really want is for these values to be displayed on the editing form for our post.
-
-Thanks to the *sling.js* client library, we just need to add a `Sling.wizard()` call to our form to display those values. Let's first add a `<head>` element to our form to load the *sling.js* library, before the existing `<body>` of course:
-
-<head>
-<script src="/system/sling.js"></script>
-</head>
-
-
-And add the `Sling.wizard()` after the form, where we had the _code of step 2 comes here_ comment:
-
-<!-- code of step 2 comes here -->
-<script>Sling.wizard();</script>
-
-
-Reloading the form at `http://localhost:8888/content/blog/*.html` and creating a new post should now redirect to an editable version of the post, with the form fields correctly initialized.
-
-We can now create and edit posts; let's add some navigation, using more of the *sling.js* functionality.
-
-## Step 3: Navigation
-
-The *sling.js* library provides utilities to access and manipulate content. For our blog, we'll use the `getContent(path)` method to list the siblings of the current node.
-
-Add the following code to your script, after the `Sling.wizard()` call that was added in step 2:
-
-<h3>Navigation</h3>
-<ul>
-<li><em><a href="/content/blog/*.html">[Create new post]</a></em></li>
-<script>
-var posts = Sling.getContent("/content/blog", 2);
-for(var i in posts) {
-document.write("<li>"
-+ "<a href='/content/blog/" + i + ".html'>"
-+ posts[i].title
-+ "</a></li>");
-}
-</script>
-</ul>
-
-
-The first link to `/content/blog/*` brings us back to our content creating form, which is nothing else than the editing form reading empty values and posting to the "magic star" URL.
-
-The rest of the javascript runs client-side, as it is not embedded in `<% %>` code markers, calls the `sling.getContent` method to get two levels of node data below `/content/blog`, and displays links to nodes that it finds.
-
-That's a basic navigation, of course, in a real blog we'd need some paging and contextualization to cope with large numbers of posts.
-
-Nevertheless, with this addition our ESP script allows us to create, edit and navigate blog posts - not bad for 46 lines of code, including comments, whitespace and output formatting.
-
-
-## Step 4: Data first, structure later
-
-You might have heard this mantra, which we apply in many areas of Sling.
-
-In this case, adding a new field to our blog posts could not be easier: just add an input field to the form, and Sling will do the rest.
-
-Adding this inside our script's `<form>` element, for example:
-
-<br/>Author:<br/>
-<input type="author" name="author" style="width:100%"/>
-
-
-Allows us to add an author name to our blog posts. No need to define anything at the repository level, as Sling is using it in unstructured mode in this case, and no need to migrate existing data, the author field of existing posts will simply be empty.
-
-
-## I want my ESP!
-
-Now wait...we said we were going to create an ESP script, but our "application" is just static HTML and some client javascript at this point.
-
-That's correct - as we are using only Sling client-facing features at this point (HTTP POST and `sling.js`), we do not necessarily need to use ESP code.
-
-To keep things simple, we'll refrain from adding ESP-based features at this point, but you can of course use any ESP code in the *blog.esp* "script".
-
-
-## That's the power of Sling
-
-The 46-line blog is a good example of the power of Sling. It leverages the [SlingPostServlet](/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html), which handles POST requests in a form-friendly way, and the [`sling.js`](http://svn.apache.org/repos/asf/sling/trunk/bundles/servlets/post/src/main/resources/system/sling.js) client library, which provides high-level functionality on the client side.
-
-///Footnotes Go Here///
-

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/tutorials-how-tos/DropBoxEventHandler.java
----------------------------------------------------------------------
diff --git a/content/documentation/tutorials-how-tos/DropBoxEventHandler.java b/content/documentation/tutorials-how-tos/DropBoxEventHandler.java
deleted file mode 100644
index 099415e..0000000
--- a/content/documentation/tutorials-how-tos/DropBoxEventHandler.java
+++ /dev/null
@@ -1,82 +0,0 @@
-
-package mypackage;
-
-import javax.jcr.Session;
-
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.event.jobs.Job;
-import org.apache.sling.event.jobs.consumer.JobConsumer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The <code>DropBoxEventHandler</code> moves files posted to /tmp/dropbox to the appropriate locations:
- * images (MIME type: image/png) to /dropbox/images/
- * music (MIME type: audio/mpeg) to /dropbox/music/
- * movies (MIME type: video/x-msvideo) to /dropbox/movies/
- * otherwise to /dropbox/other/
- *
- */
-@Component
-@Service(value=JobConsumer.class)
-@Property(name=JobConsumer.PROPERTY_TOPICS, value=DropBoxService.JOB_TOPIC)
-public class DropBoxEventHandler implements JobConsumer {
-
-    /** Default logger. */
-    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
-
-    @Reference
-    private ResourceResolverFactory resolverFactory;
-
-    private final static String IMAGES_PATH = "/dropbox/images/";
-    private final static String MUSIC_PATH = "/dropbox/music/";
-    private final static String MOVIES_PATH = "/dropbox/movies/";
-    private final static String OTHER_PATH = "/dropbox/other/";
-
-	@Override
-    public JobResult process(final Job job) {
-		ResourceResolver adminResolver = null;
-		try {
-            adminResolver = resolverFactory.getAdministrativeResourceResolver(null);
-
-            final String resourcePath = (String) job.getProperty("resourcePath");
-			final String resourceName = resourcePath.substring(resourcePath.lastIndexOf("/") + 1);
-
-			final Resource res = adminResolver.getResource(resourcePath);
-			if ( res.isResourceType("nt:file") ) {
-	        	final String mimeType = res.getResourceMetadata().getContentType();
-	        	String destDir;
-	        	if (mimeType.equals("image/png")) {
-	        		destDir = IMAGES_PATH;
-	        	}
-	        	else if (mimeType.equals("audio/mpeg")) {
-	        		destDir = MUSIC_PATH;
-	        	}
-	        	else if (mimeType.equals("video/x-msvideo")) {
-	        		destDir = MOVIES_PATH;
-	        	}
-	        	else {
-	        		destDir = OTHER_PATH;
-	        	}
-	        	final Session adminSession = adminResolver.adaptTo(Session.class);
-        		adminSession.move(resourcePath, destDir + resourceName);
-	        	adminSession.save();
-	        	logger.info("The file {} has been moved to {}", resourceName, destDir);
-	        }
-	        return JobResult.OK;
-		} catch (final Exception e) {
-			logger.error("Exception: " + e, e);
-			return JobResult.FAILED;
-        } finally {
-            if (adminResolver != null) {
-                adminResolver.close();
-            }
-        }
-	}
-}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/tutorials-how-tos/DropBoxService.java
----------------------------------------------------------------------
diff --git a/content/documentation/tutorials-how-tos/DropBoxService.java b/content/documentation/tutorials-how-tos/DropBoxService.java
deleted file mode 100644
index b791e5f..0000000
--- a/content/documentation/tutorials-how-tos/DropBoxService.java
+++ /dev/null
@@ -1,53 +0,0 @@
-
-package mypackage;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
-import org.apache.sling.api.SlingConstants;
-import org.apache.sling.event.jobs.JobManager;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventConstants;
-import org.osgi.service.event.EventHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The <code>DropBoxService</code> is listening content added to /tmp/dropbox by using OSGI events
- *
- */
-@Component(immediate=true)
-@Service(value=EventHandler.class)
-@Property(name=EventConstants.EVENT_TOPIC, value=SlingConstants.TOPIC_RESOURCE_ADDED)
-public class DropBoxService implements EventHandler {
-
-    /** Default logger. */
-    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
-
-    /** The job manager for starting the jobs. */
-    @Reference
-    private JobManager jobManager;
-
-    /** The job topic for dropbox job events. */
-    public static final String JOB_TOPIC = "com/sling/eventing/dropbox/job";
-
-	@Override
-    public void handleEvent(final Event event) {
-        // get the resource event information
-        final String propPath = (String) event.getProperty(SlingConstants.PROPERTY_PATH);
-        final String propResType = (String) event.getProperty(SlingConstants.PROPERTY_RESOURCE_TYPE);
-        // a job is started if a file is added to /tmp/dropbox
-        if ( propPath.startsWith("/tmp/dropbox") && "nt:file".equals(propResType) ) {
-            // create payload
-            final Map<String, Object> payload = new HashMap<String, Object>();
-            payload.put("resourcePath", propPath);
-            // start job
-            this.jobManager.addJob(JOB_TOPIC, payload);
-            logger.info("the dropbox job has been started for: {}", propPath);
-        }
-	}
-}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.md
----------------------------------------------------------------------
diff --git a/content/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.md b/content/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.md
deleted file mode 100644
index 72f67e3..0000000
--- a/content/documentation/tutorials-how-tos/getting-resources-and-properties-in-sling.md
+++ /dev/null
@@ -1,98 +0,0 @@
-title=Getting Resources and Properties in Sling		
-type=page
-status=published
-~~~~~~
-
-
-The Resource is one of the central parts of Sling. Extending from JCR's Everything is Content, Sling assumes Everthing is a Resource. Thus Sling is maintaining a virtual tree of resources, which is a merger of the actual contents in the JCR Repository and resources provided by so called resource providers. By doing this Sling fits very well in the paradigm of the REST architecture.
-
-In this article we will explore a few ways to programmatically map a resource path (String) to a resource object (Resource) and its properties in Sling, from within an OSGI service, a servlet and a JSP.
-
-The whole game consists in first getting a `ResourceResolver` and then getting the `Resource` itself.
-
-## Within an OSGI Service/Compoment
-
-You can access a resource through the `ResourceResolverFactory` service:
-
-#!java
-@Reference
-private ResourceResolverFactory resolverFactory;
-
-public void myMethod() {
-try {
-String resourcePath = "path/to/resource";
-ResourceResolver resourceResolver = resolverFactory.getAdministrativeResourceResolver(null);
-Resource res = resourceResolver.getResource(resourcePath);
-// do something with the resource
-// when done, close the ResourceResolver
-resourceResolver.close();
-} catch (LoginException e) {
-// log the error
-}
-}
-
-
-
-## Within a Servlet
-
-You can access the resource defined by the request URL through the `SlingHttpServletRequest`:
-
-#!java
-// req is the SlingHttpServletRequest
-Resource res = req.getResource();
-
-
-You can access any resource by first accessing the `ResourceResolver`:
-
-#!java
-String resourcePath = "path/to/resource";
-// req is the SlingHttpServletRequest
-ResourceResolver resourceResolver = req.getResourceResolver();
-Resource res = resourceResolver.getResource(resourcePath);
-
-
-## Within a JSP file
-
-When you use the `<sling:defineObjects>` tag in a JSP file, you have access to a few handy objects, one of them is `resource`, the resource that is resolved from the URL. Another one is `resourceResolver`, the `ResourceResolver` defined through the `SlingHttpServletRequest`.
-
-To access a resource:
-
-#!jsp
-<sling:defineObjects>
-<%
-String resourcePath = "path/to/resource";
-Resource res = resourceResolver.getResource(resourcePath);
-%>
-
-
-If needed you can adapt a Sling Resource to a JCR Node:
-
-#!java
-Node node = resource.adaptTo(Node.class);
-
-
-Note: `resource.adaptTo(Node.class)` may return null if the resource is not backed by a JCR node. This is particularly the case for `NonExistingResource` resources or resource provided by a non-JCR resource provider.
-
-## Accessing a Property
-
-The `ValueMap` is an easy way to access properties of a resource. With most resources you can use `Adaptable.adaptTo(Class)` to adapt the resource to a value map:
-
-#!java
-// res is the Resource
-ValueMap properties = res.adaptTo(ValueMap.class);
-
-
-You can also access the properties through the `ResourceUtil` utility class:
-
-#!java
-// res is the Resource
-ValueMap properties = ResourceUtil.getValueMap(res);
-
-
-Then, to access a specific String property called `propName`:
-
-#!java
-String rule = properties.get(propName, (String) null);
-
-
-For more details about resources and how to access them in Sling, you can refer to the [Sling documentation about Resources](/documentation/the-sling-engine/resources.html).


[40/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/sling-mock.html
----------------------------------------------------------------------
diff --git a/documentation/development/sling-mock.html b/documentation/development/sling-mock.html
new file mode 100644
index 0000000..7b8c1f9
--- /dev/null
+++ b/documentation/development/sling-mock.html
@@ -0,0 +1,250 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Mocks</h1></header><p>Mock implementation of selected Sling APIs for easier testing.</p>
+<p>[TOC]</p>
+<h2>Maven Dependency</h2>
+<h1>!xml</h1>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.sling-mock</artifactId> </dependency></p>
+<p>See latest version on the <a href="/downloads.cgi">downloads page</a>.</p>
+<p>There are two major version ranges available:</p>
+<ul>
+  <li>sling-mock 1.x: compatible with older Sling versions from 2014 (Sling API 2.4 and above)</li>
+  <li>sling-mock 2.x: compatible with Sling versions from 2016 (Sling API 2.11 and above)</li>
+</ul>
+<h2>Implemented mock features</h2>
+<p>The mock implementation supports:</p>
+<ul>
+  <li><code>ResourceResolver</code> implementation for reading and writing resource data using the Sling Resource API</li>
+  <li>Backed by a <a href="/documentation/development/jcr-mock.html">mocked</a> or real Jackrabbit JCR implementation</li>
+  <li>Uses the productive <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/resource">Sling JCR resource provider implementation</a> internally to do the Resource-JCR mapping</li>
+  <li>Alternatively the non-JCR mock implementation provided by the <a href="/documentation/development/resourceresolver-mock.html">Sling resourceresolver-mock implementation</a> can be used</li>
+  <li><code>AdapterManager</code> implementation for registering adapter factories and resolving adaptions</li>
+  <li>The implementation is thread-safe so it can be used in parallel running unit tests</li>
+  <li><code>SlingScriptHelper</code> implementation providing access to mocked request/response objects and supports getting OSGi services from the <a href="/documentation/development/osgi-mock.html">mocked OSGi</a> environment.</li>
+  <li>Implementations of the servlet-related Sling API classes like <code>SlingHttpServletRequest</code> and <code>SlingHttpServletRequest</code></li>
+  <li>It is possible to set request data to simulate a certain Sling HTTP request</li>
+  <li>Support for Sling Models (Sling Models API 1.1 and Impl 1.1 or higher required)</li>
+  <li>Additional services <code>MimeTypeService</code></li>
+  <li>Context Plugins</li>
+</ul>
+<p>The following features are <em>not supported</em>:</p>
+<ul>
+  <li>It is not possible (nor intended) to really execute sling components/scripts and render their results.</li>
+  <li>The goal is to test supporting classes in Sling context, not the sling components/scripts themselves</li>
+</ul>
+<h3>Additional features</h3>
+<p>Additional features provided:</p>
+<ul>
+  <li><code>SlingContext</code> JUnit Rule for easily setting up a Sling Mock environment in your JUnit test cases</li>
+  <li><code>ContentLoader</code> supports importing JSON data and binary data into the mock resource hierarchy to easily prepare a test fixture consisting of a hierarchy of resources and properties.</li>
+  <li>The same JSON format can be used that is provided by the Sling GET servlet for output</li>
+  <li><code>ContentBuilder</code> and <code>ResourceBuilder</code> make it easier to create resources and properties as test fixture</li>
+</ul>
+<h2>Usage</h2>
+<h3>Sling Context JUnit Rule</h3>
+<p>The Sling mock context can be injected into a JUnit test using a custom JUnit rule named <code>SlingContext</code>. This rules takes care of all initialization and cleanup tasks required to make sure all unit tests can run independently (and in parallel, if required).</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>public class ExampleTest {</p>
+<p>@Rule public final SlingContext context = new SlingContext();</p>
+<p>@Test public void testSomething() { Resource resource = context.resourceResolver().getResource("/content/sample/en"); // further testing }</p>
+<p>}</p>
+<p>It is possible to combine such a unit test rule with a <code>@RunWith</code> annotation e.g. for <a href="http://mockito.github.io/mockito/docs/current/org/mockito/runners/MockitoJUnitRunner.html">Mockito JUnit Runner</a>.</p>
+<p>The <code>SlingContext</code> object provides access to mock implementations of:</p>
+<ul>
+  <li>OSGi Component Context</li>
+  <li>OSGi Bundle Context</li>
+  <li>Sling Resource Resolver</li>
+  <li>Sling Request</li>
+  <li>Sling Response</li>
+  <li>Sling Script Helper</li>
+</ul>
+<p>Additionally it supports:</p>
+<ul>
+  <li>Registering OSGi services</li>
+  <li>Registering adapter factories</li>
+  <li>Accessing ContentLoader, and ContentBuilder and ResourceBuilder</li>
+</ul>
+<h3>Choosing Resource Resolver Mock Type</h3>
+<p>The Sling mock context supports different resource resolver types. Example:</p>
+<h1>!java</h1>
+<p>public class ExampleTest {</p>
+<p>@Rule public final SlingContext context = new SlingContext(ResourceResolverType.RESOURCERESOLVER_MOCK);</p>
+<p>}</p>
+<p>Different resource resolver mock types are supported with pros and cons, see next chapter for details.</p>
+<h3>Resource Resolver Types</h3>
+<p>The Sling Mocks resource resolver implementation supports different "types" of adapters for the mocks. Depending on the type an underlying JCR repository is used or not, and the data is stored in-memory or in a real repository.</p>
+<p>Resource resolver types currently supported:</p>
+<p><strong>RESOURCERESOLVER_MOCK (default)</strong></p>
+<ul>
+  <li>Simulates an In-Memory resource tree, does not provide adaptions to JCR API.</li>
+  <li>Based on the <a href="/documentation/development/resourceresolver-mock.html">Sling resourceresolver-mock implementation</a> implementation</li>
+  <li>You can use it to make sure the code you want to test does not contain references to JCR API.</li>
+  <li>Behaves slightly different from JCR resource mapping e.g. handling binary and date values.</li>
+  <li>This resource resolver type is very fast because data is stored in memory and no JCR mapping is applied.</li>
+</ul>
+<p><strong>JCR_MOCK</strong></p>
+<ul>
+  <li>Based on the <a href="/documentation/development/jcr-mock.html">JCR Mocks</a> implementation</li>
+  <li>Uses the productive <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/resource">Sling JCR resource provider implementation</a> internally to do the Resource-JCR mapping</li>
+  <li>Is quite fast because data is stored only in-memory</li>
+</ul>
+<p><strong>NONE</strong></p>
+<ul>
+  <li>Uses the productive Sling resource factory implementation without any ResourceProvider. You have to register one yourself to do anything useful with it.</li>
+  <li>The performance of this resource resolver type depends on the resource provider registered.</li>
+  <li>This is useful if you want to test your own resource provides mapped to root without any JCR.</li>
+</ul>
+<p><strong>JCR_OAK</strong></p>
+<ul>
+  <li>Uses a real JCR Jackrabbit Oak implementation based on the <code>MemoryNodeStore</code></li>
+  <li>Full JCR/Sling features supported e.g. observations manager, transactions, versioning</li>
+  <li>Uses the productive <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/resource">Sling JCR resource provider implementation</a> internally to do the Resource-JCR mapping</li>
+  <li>Takes some seconds for startup on the first access</li>
+  <li>Node types defined in OSGi bundle header 'Sling-Nodetypes' found in MANIFEST.MF files in the classpath are registered automatically.</li>
+  <li>Lucene indexing is not included, thus fulltext search queries will return no result</li>
+</ul>
+<p>To use this type you have to declare an additional dependency in your test project:</p>
+<h1>!xml</h1>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.sling-mock-oak</artifactId> <scope>test</scope> </dependency></p>
+<p>See latest version on the <a href="/downloads.cgi">downloads page</a>.</p>
+<p><strong>JCR_JACKRABBIT</strong></p>
+<ul>
+  <li>Uses a real JCR Jackrabbit implementation (not Oak) as provided by <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/commons/testing">sling/commons/testing</a></li>
+  <li>Full JCR/Sling features supported e.g. observations manager, transactions, versioning</li>
+  <li>Uses the productive <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/resource">Sling JCR resource provider implementation</a> internally to do the Resource-JCR mapping</li>
+  <li>Takes some seconds for startup on the first access</li>
+  <li>Node types defined in OSGi bundle header 'Sling-Nodetypes' found in MANIFEST.MF files in the classpath are registered automatically.</li>
+</ul>
+<p>To use this type you have to declare an additional dependency in your test project:</p>
+<h1>!xml</h1>
+<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.sling-mock-jackrabbit</artifactId> <scope>test</scope> </dependency></p>
+<p>See latest version on the <a href="/downloads.cgi">downloads page</a>.</p>
+<p><em>Remarks on the JCR_JACKRABBIT type:</em></p>
+<ul>
+  <li>The repository is not cleared for each unit test, so make sure to use a unique node path for each unit test. You may use the <code>uniquePath()</code> helper object of the SlingContext rule for this.</li>
+  <li>The <a href="http://svn.apache.org/repos/asf/sling/trunk/bundles/commons/testing">sling/commons/testing</a> dependency introduces a lot of further dependencies from jackrabbit and others, be careful that they do not conflict and are imported in the right order in your test project</li>
+</ul>
+<h3>Sling Resource Resolver</h3>
+<p>Example:</p>
+<h1>!java</h1>
+<p>// get a resource resolver ResourceResolver resolver = MockSling.newResourceResolver();</p>
+<p>// get a resource resolver backed by a specific repository type ResourceResolver resolver = MockSling.newResourceResolver(ResourceResolverType.JCR_MOCK);</p>
+<p>If you use the <code>SlingContext</code> JUnit rule you case just use <code>context.resourceResolver()</code>.</p>
+<h3>Adapter Factories</h3>
+<p>You can register your own or existing adapter factories to support adaptions e.g. for classes extending <code>SlingAdaptable</code>.</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>// register adapter factory BundleContext bundleContext = MockOsgi.newBundleContext(); MockSling.setAdapterManagerBundleContext(bundleContext); bundleContext.registerService(myAdapterFactory);</p>
+<p>// test adaption MyClass object = resource.adaptTo(MyClass.class);</p>
+<p>// cleanup after unit test MockSling.clearAdapterManagerBundleContext();</p>
+<p>Make sure you clean up the adapter manager bundle association after running the unit test otherwise it can interfere with the following tests. If you use the <code>SlingContext</code> JUnit rule this is done automatically for you.</p>
+<p>If you use the <code>SlingContext</code> JUnit rule you case just use <code>context.registerService()</code>.</p>
+<h3>SlingScriptHelper</h3>
+<p>Example:</p>
+<h1>!java</h1>
+<p>// get script helper SlingScriptHelper scriptHelper = MockSling.newSlingScriptHelper();</p>
+<p>// get request SlingHttpServletRequest request = scriptHelper.getRequest();</p>
+<p>// get service MyService object = scriptHelper.getService(MyService.class);</p>
+<p>To support getting OSGi services you have to register them via the <code>BundleContext</code> interface of the <a href="/documentation/development/jcr-mock.html">JCR Mocks</a> before. You can use an alternative factory method for the <code>SlingScriptHelper</code> providing existing instances of request, response and bundle context.</p>
+<p>If you use the <code>SlingContext</code> JUnit rule you case just use <code>context.slingScriptHelper()</code>.</p>
+<h3>SlingHttpServletRequest</h3>
+<p>Example for preparing a sling request with custom request data:</p>
+<h1>!java</h1>
+<p>// prepare sling request ResourceResolver resourceResolver = MockSling.newResourceResolver(); MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(resourceResolver);</p>
+<p>// simulate query string request.setQueryString("param1=aaa&amp;param2=bbb");</p>
+<p>// alternative - set query parameters as map request.setParameterMap(ImmutableMap.&lt;String,Object&gt;builder() .put("param1", "aaa") .put("param2", "bbb") .build());</p>
+<p>// set current resource request.setResource(resourceResolver.getResource("/content/sample"));</p>
+<p>// set sling request path info properties MockRequestPathInfo requestPathInfo = (MockRequestPathInfo)request.getRequestPathInfo(); requestPathInfo.setSelectorString("selector1.selector2"); requestPathInfo.setExtension("html");</p>
+<p>// set method request.setMethod(HttpConstants.METHOD_POST);</p>
+<p>// set attributes request.setAttribute("attr1", "value1");</p>
+<p>// set headers request.addHeader("header1", "value1");</p>
+<p>// set cookies request.addCookie(new Cookie("cookie1", "value1"));</p>
+<h3>SlingHttpServletResponse</h3>
+<p>Example for preparing a sling response which can collect the data that was written to it:</p>
+<h1>!java</h1>
+<p>// prepare sling response MockSlingHttpServletResponse response = new MockSlingHttpServletResponse();</p>
+<p>// execute your unit test code that writes to the response...</p>
+<p>// validate status code assertEquals(HttpServletResponse.SC_OK, response.getStatus());</p>
+<p>// validate content type and content length assertEquals("text/plain;charset=UTF-8", response.getContentType()); assertEquals(CharEncoding.UTF_8, response.getCharacterEncoding()); assertEquals(55, response.getContentLength());</p>
+<p>// validate headers assertTrue(response.containsHeader("header1")); assertEquals("5", response.getHeader("header2"));</p>
+<p>// validate response body as string assertEquals(TEST_CONTENT, response.getOutputAsString());</p>
+<p>// validate response body as binary data assertArrayEquals(TEST_DATA, response.getOutput());</p>
+<h3>Import resource data from JSON file in classpath</h3>
+<p>With the <code>ContentLoader</code> it is possible to import structured resource and property data from a JSON file stored in the classpath beneath the unit tests. This data can be used as text fixture for unit tests.</p>
+<p>Example JSON data:</p>
+<h1>!json</h1>
+<p>{ "jcr:primaryType": "app:Page", "jcr:content": { "jcr:primaryType": "app:PageContent", "jcr:title": "English", "app:template": "/apps/sample/templates/homepage", "sling:resourceType": "sample/components/homepage", "jcr:createdBy": "admin", "jcr:created": "Thu Aug 07 2014 16:32:59 GMT+0200", "par": { "jcr:primaryType": "nt:unstructured", "sling:resourceType": "foundation/components/parsys", "colctrl": { "jcr:primaryType": "nt:unstructured", "layout": "2;colctrl-lt0", "sling:resourceType": "foundation/components/parsys/colctrl" } } } }</p>
+<p>Example code to import the JSON data:</p>
+<h1>!java</h1>
+<p>context.load().json("/sample-data.json", "/content/sample/en");</p>
+<p>This codes creates a new resource at <code>/content/sample/en</code> (and - if not existent - the parent resources) and imports the JSON data to this node. It can be accessed using the Sling Resource or JCR API afterwards.</p>
+<h3>Import binary data from file in classpath</h3>
+<p>With the <code>ContentLoader</code> it is possible to import a binary file stored in the classpath beneath the unit tests. The data is stored using a nt:file/nt:resource or nt:resource node type.</p>
+<p>Example code to import a binary file:</p>
+<h1>!java</h1>
+<p>context.load().binaryFile("/sample-file.gif", "/content/binary/sample-file.gif");</p>
+<p>This codes creates a new resource at <code>/content/binary/sample-file.gif</code> (and - if not existent - the parent resources) and imports the binary data to a jcr:content subnode.</p>
+<h3>Building content</h3>
+<p>Sling Mocks provides two alterantives for quickly building test content in the repository with as few code as possible. Sling Mocks provides two alternatives. Both are quite similar in their results, but follow different API concepts. You can choose whatever matches your needs and mix them as well.</p>
+<ul>
+  <li><code>ContentBuilder</code>: Part of Sling Mocks since its first release. If you need a references to each created resource this is the easiest way.</li>
+  <li><code>ResourceBuilder</code>: Separate bundle that can also be used in integration tests or live instances. Supports a "fluent" API to create a bunch of resources in hierarchy at once.</li>
+</ul>
+<h4>Building content using <code>ContentBuilder</code></h4>
+<p>The entry point for the <code>ContentBuilder</code> is the <code>create()</code> method on the Sling context.</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>context.create().resource("/content/test1", ImmutableMap.&lt;String, Object&gt;builder() .put("prop1", "value1") .put("prop2", "value2") .build());</p>
+<p>Simplified syntax without using a map:</p>
+<h1>!java</h1>
+<p>context.create().resource("/content/test1", "prop1", "value1", "prop2", "value2");</p>
+<p>If you use the <code>SlingContext</code> JUnit rule you case just use <code>context.create()</code>.</p>
+<h4>Building content using <code>ResourceBuilder</code></h4>
+<p>The entry point for the <code>ResourceBuilder</code> is the <code>build()</code> method on the Sling context.</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>context.build().resource("/content/test1") .siblingsMode() .resource("test1.1", "stringParam", "configValue1.1") .resource("test1.2", "stringParam", "configValue1.2") .resource("test1.2", "stringParam", "configValue1.3");</p>
+<p>See JavaDocs of the class <code>org.apache.sling.resourcebuilder.api.ResourceBuilder</code> for a detailed documentation.</p>
+<h3>Context Plugins</h3>
+<p>Sling Mocks supports "Context Plugins" that hook into the lifecycle of each test run and can prepare test setup before or after the other setUp actions, and execute test tear down code before or after the other tearDown action.</p>
+<p>To define a plugin implement the <code>org.apache.sling.testing.mock.osgi.context.ContextPlugin&lt;SlingContextImpl&gt;</code> interface. For convenience it is recommended to extend the abstract class <code>org.apache.sling.testing.mock.osgi.context.AbstractContextPlugin&lt;SlingContextImpl&gt;</code>. These plugins can be used with Sling Mock context, but also with context instances deriving from it like AEM Mocks. In most cases you would just override the <code>afterSetUp</code> method. In this method you can register additional OSGi services or do other preparation work. It is recommended to define a constant pointing to a singleton of a plugin instance for using it.</p>
+<p>To use a plugin in your unit test class, use the <code>SlingContextBuilder</code> class instead of directly instantiating the <code>SlingContext</code>class. This allows you in a fluent style to configure more options, with the <code>plugin(...)</code> method you can add one or more plugins.</p>
+<p>Example:</p>
+<h1>!java</h1>
+<p>@Rule public SlingContext context = new SlingContextBuilder().plugin(MY_PLUGIN).build();</p>
+<p>More examples:</p>
+<ul>
+  <li><a href="https://github.com/apache/sling/blob/trunk/contrib/extensions/contextaware-config/testing/mocks/caconfig-mock-plugin/src/main/java/org/apache/sling/testing/mock/caconfig/ContextPlugins.java">Apache Sling Context-Aware Configuration Mock Plugin</a></li>
+  <li><a href="https://github.com/apache/sling/blob/trunk/contrib/extensions/contextaware-config/testing/mocks/caconfig-mock-plugin/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java">Apache Sling Context-Aware Configuration Mock Plugin Test</a></li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/sling-testing-tools.html
----------------------------------------------------------------------
diff --git a/documentation/development/sling-testing-tools.html b/documentation/development/sling-testing-tools.html
new file mode 100644
index 0000000..72b9518
--- /dev/null
+++ b/documentation/development/sling-testing-tools.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Testing Tools</h1></header><div class="warning">
+While this information is still valid, we recommend using the tools and techniques described
+in the newer "Junit Server-Side Tests Support" page instead, see link below.
+</div>
+<p>As mentioned above, this is now replaced by the <a href="/documentation/bundles/org-apache-sling-junit-bundles.html">Junit Server-Side Tests Support</a> page.</p>
+<p>Sling provides a number of testing tools to support the following use cases:</p>
+<ul>
+  <li>Run JUnit tests contributed by OSGi bundles in an OSGi system. This does not require Sling and should work in other OSGi environments.</li>
+  <li>Run scriptable tests in a Sling instance, using any supported scripting language.</li>
+  <li>Run integration tests via HTTP against a Sling instance that is started during the Maven build cycle, or independently.</li>
+</ul>
+<p>This page describes those tools, and points to the bundles that implement them.</p>
+<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests">testing/samples/integration-tests</a> module demonstrates these tools, and is also meant as a sample project to show how to run integration tests for Sling-based applications.</p>
+<p>The main Sling integration tests at <a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests">launchpad/integration-tests</a> were created before this testing framework, and do not use it yet (as of March 2011). The new testing tools are simpler to use, but the "old" tests (all 400 of them as I write this) fulfill their validation role for testing Sling itself, there's no real need to modify them to use the new tools.</p>
+<p>See also <a href="/documentation/tutorials-how-tos/testing-sling-based-applications.html">Testing Sling-based applications</a> which discusses testing in general.</p>
+<h2>Required bundles</h2>
+<p>These tools require a number of bundles on top of the standard Sling launchpad. See the <a href="http://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests/pom.xml">sample tests pom.xml</a> for an up-to-date list. Look for <code>sling.additional.bundle.*</code> entries in that pom for the bundle artifact IDs, and see the <code>dependencies</code> section for their version numbers.</p>
+<h1>Server-side JUnit tests contributed by bundles</h1>
+<p>The services provided by the <a href="http://svn.apache.org/repos/asf/sling/trunk/testing/junit/core">org.apache.sling.junit.core</a> bundle allow bundles to register JUnit tests, which are executed server-side by the JUnitServlet registered by default at <code>/system/sling/junit</code>. This bundle is not dependent on Sling, it should work in other OSGi environments.</p>
+<div class="warning">
+Note that the JUnitServlet does not require authentication, so it would allow any client to run tests. The servlet can be disabled by configuration if needed, but in general the `/system` path should not be accessible to website visitors anyway.
+</div>
+<div class="note">
+For tighter integration with Sling, the alternate `SlingJUnitServlet` is registered with the `sling/junit/testing` resource type and `.junit` selector, if the bundle is running in a Sling system. Using this servlet instead of the plain JUnitServlet also allows Sling authentication to be used for running the tests, and the standard Sling request processing is used, including servlet filters for example.
+</div>
+<p>To try the JUnitServlet interactively, install a bundle that contains tests registered via the <code>Sling-Test-Regexp=.*Test</code> bundle header.</p>
+<p>The JUnit core services use this regular expression to select which classes of the test bundle should be executed as JUnit tests.</p>
+<p>To list the available tests, open http://localhost:8080/system/sling/junit/ . The servlet shows available tests, and allows you to execute them via a POST request.</p>
+<p>Adding a path allows you to select a specific subset of tests, as in http://localhost:8080/system/sling/junit/org.apache.sling.junit.remote.html - the example integration tests described below use this to selectively execute server-side tests. The JUnitServlet provides various output formats, including in particular JSON, see http://localhost:8080/system/sling/junit/.json for example.</p>
+<p>To supply tests from your own bundles, simply export the tests classes and add the <code>Sling-Test-Regexp</code> header to the bundle so that the Sling JUnit core services register them as tests.</p>
+<h3>Injection of OSGi services</h3>
+<p>The <code>@TestReference</code> annotation is used to inject OSGi services in tests that are executed server side.The <code>BundleContext</code> can also be injected in this way.</p>
+<h2>Curl examples</h2>
+<p>Here's an example executing a few tests using curl:</p>
+<p>$ curl -X POST http://localhost:8080/system/sling/junit/org.apache.sling.testing.samples.sampletests.JUnit.json [{ "INFO_TYPE": "test", "description": "testPasses(org.apache.sling.testing.samples.sampletests.JUnit3Test)" },{ "INFO_TYPE": "test", "description": "testPasses(org.apache.sling.testing.samples.sampletests.JUnit4Test)" },{ "INFO_TYPE": "test", "description": "testRequiresBefore(org.apache.sling.testing.samples.sampletests.JUnit4Test)" } ]</p>
+<p>And another example with a test that fails:</p>
+<p>$ curl -X POST http://localhost:8080/system/sling/junit/org.apache.sling.testing.samples.failingtests.JUnit4FailingTest.json</p>
+<h1>Scriptable server-side tests</h1>
+<p>If the <a href="http://svn.apache.org/repos/asf/sling/trunk/testing/junit/scriptable">org.apache.sling.junit.scriptable</a> bundle is active in a Sling system, (in addition to the <code>org.apache.sling.junit.core</code> bundle), scriptable tests can be executed by the <code>JUnitServlet</code> according to the following rules:</p>
+<ul>
+  <li>A node that has the <code>sling:Test</code> mixin is a scriptable test node.</li>
+  <li>For security reasons, scriptable test nodes are only executed as tests if they are found under <code>/libs</code> or <code>/apps</code>, or more precisely under a path that's part of Sling's <code>ResourceResolver</code> search path.</li>
+  <li>To execute a test, the scriptable tests provider makes an HTTP request to the test node's path, with a <code>.test.txt</code> selector and extension, and expects the output to contain only the string <code>TEST_PASSED</code>. Empty lines and comment lines starting with a hash sign (#) are ignored in the output, and other lines are reported as failures.</li>
+</ul>
+<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests/src/test/java/org/apache/sling/testing/samples/integrationtests/serverside/scriptable/ScriptableTestsTest.java">ScriptableTestsTest</a> class, from the integration test samples module described below, sets up such a test node and its accompanying script, and calls the JUnitServlet to execute the test. It can be used as a detailed example of how this works.</p>
+<p>Here's a minimal example that sets up and executes a scriptable test:</p>
+<p>$ curl -u admin:admin -Fjcr:primaryNodeType=sling:Folder -Fsling:resourceType=foo -Fjcr:mixinTypes=sling:Test http://localhost:8080/apps/foo ... $ echo TEST_PASSED &gt; /tmp/test.txt.esp ; curl -u admin:admin -T/tmp/test.txt.esp http://localhost:8080/apps/foo/test.txt.esp</p>
+<p>At this point, foo.test.txt is what the scriptable test framework will request, and that outputs just TEST_PASSED:</p>
+<p>$ curl -u admin:admin http://localhost:8080/apps/foo.test.txt TEST_PASSED</p>
+<p>And a POST to the JUnit servlet returns information on the test's execution:</p>
+<p>curl -u admin:admin -XPOST http://localhost:8080/system/sling/junit/org.apache.sling.junit.scriptable.ScriptableTestsProvider.json [{ "INFO_TYPE": "test", "description": "verifyContent<a href="org.apache.sling.junit.scriptable.TestAllPaths">0</a>", "test_metadata": { "test_execution_time_msec": 2 } } ]</p>
+<p>Test failures would be included in this JSON representation - you can test that by modifying the script to fail and making the same request again.</p>
+<h1>Integration tests example</h1>
+<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests">testing/samples/integration-tests</a> module runs some simple integration tests against a Sling Launchpad instance that's setup from scratch before running the tests.</p>
+<p>This module's pom and Java code can be used as examples to setup your own integration testing modules for Sling-based apps - or for any other runnable jar that provides an http service.</p>
+<p>Besides serving as examples, some of the tests in this module are used to validate the testing tools. They run as part of the full Sling <a href="/project-information.html">continuous integration</a> build, so they're guaranteed to be correct examples if that build is successful.</p>
+<p>The sample uses the <a href="http://svn.apache.org/repos/asf/sling/trunk/testing/tools">testing/tools</a> to make the test code simpler. See the [OsgiConsoleTest|https://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests/src/test/java/org/apache/sling/testing/samples/integrationtests/http/OsgiConsoleTest.java] class for an example of a test that's very readable and requires no test setup or boilerplate code.</p>
+<p>The following steps are executed in the <code>integration-test</code> phase of this module's Maven build:</p>
+<ol>
+  <li>A random port number for the Sling server is selected by the Maven build helper plugin, unless explicitely set (see pom.xml for such options).</li>
+  <li>Additional bundles, defined in the module's pom, are downloaded from the Maven repository in the <code>target/sling/additional-bundles</code> folder.</li>
+  <li>The first test that inherits from the <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/tools/src/main/java/org/apache/sling/testing/tools/sling/SlingTestBase.java">SlingTestBase</a> class causes the Sling runnable jar (defined as a dependency in the module's pom) to be started.</li>
+  <li>The <code>SlingTestBase</code> class waits for the Sling server to be ready, based on URLs and expected responses defined in the pom.</li>
+  <li>The <code>SlingTestBase</code> class installs and starts the bundles found in the <code>target/sling/additional-bundles</code> folder.</li>
+  <li>The test can now either test Sling directly via its http interface, or use the JUnitServlet to execute server-side tests contributed by bundles or scripts, as described above.</li>
+  <li>The Sling runnable jar is stopped when the test VM exits.</li>
+  <li>The test results are reported via the usual Maven mechanisms.</li>
+</ol>
+<p>If <code>-DkeepJarRunning</code> is used on the Maven command line, the Sling runnable jar does not exit, to allow for running individual tests against this instance, for example when debugging the tests or the server code. See the pom for details.</p>
+<h2>Running tests against existing server</h2>
+<p>Instead of provisioning a completely new Sling server, the ITs can also be executed on an already existing server instance. For that the <code>test-server-url</code> system property has to point to the existing server url. Additional bundles can still be deployed by using the <code>sling.additional.bundle.&lt;num&gt;</code> system property.</p>
+<p>Optionally, the additional bundles can be undeployed after the execution of the IT by setting <code>additional.bundles.uninstall</code> to <code>true</code>. (since Sling Testing Tools 1.0.12, <a href="https://issues.apache.org/jira/browse/SLING-4819">SLING-4819</a>)</p>
+<h1>Remote test execution</h1>
+<p>The testing tools support two types of remote test execution.</p>
+<h2>SlingRemoteTestRunner</h2>
+<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/testrunner/SlingRemoteTestRunner.java">SlingRemoteTestRunner</a> is used to run tests using the <code>JUnitServlet</code> described above. In this case, the client-side JUnit test only defines which tests to run and some optional assertions. Checking the number of tests executed, for example, can be useful to make sure all test bundles have been activated as expected, to avoid ignoring missing test bundles.</p>
+<p>See the <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests/src/test/java/org/apache/sling/testing/samples/integrationtests/serverside/ServerSideSampleTest.java">ServerSideSampleTest</a> class for an example.</p>
+<p>It's a good idea to check that the JUnit servlet is ready before running those tests, see the <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/samples/integration-tests/src/test/java/org/apache/sling/testing/samples/integrationtests/serverside/sling/SlingServerSideTestsBase.java">ServerSideTestsBase</a> for an example of how to do that.</p>
+<h2>SlingRemoteExecutionRule</h2>
+<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/ide/SlingRemoteExecutionRule.java">SlingRemoteExecutionRule</a> is a JUnit Rule that allows tests to be executed remotely in a Sling instance from an IDE, assuming the test is available on both sides.</p>
+<p>The <a href="https://svn.apache.org/repos/asf/sling/trunk/testing/junit/remote/src/main/java/org/apache/sling/junit/remote/exported/ExampleRemoteTest.java">ExampleRemoteTest</a> class demonstrates this. To run it from your IDE, set the <code>sling.remote.test.url</code> in the IDE to the URL of the JUnitServlet, like http://localhost:8080/system/sling/junit for example.</p>
+<h1>Debugging ITs</h1>
+<p>The JVM is usually forked twice during the execution of integration tests. The first time by the <code>maven-surefire-plugin</code> which executes the client-side (i.e. Maven-side) part of the tests. To debug this side the option <code>-Dmaven.surefire.debug</code> can be used which waits for a debugger to be attached on port 5005 before the (client-side) test is executed. More information is available in the <a href="http://maven.apache.org/surefire/maven-surefire-plugin/examples/debugging.html">documentation of the maven-surefire-plugin</a>.</p>
+<p>Then the <code>JarExecutor</code> is forking the VM a second time to start the server (this does not happen if connecting to an already running instance). The system environment variable <code>jar.executor.vm.options</code> can be used to start that VM with debug options. All debug options are described at the <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html#Invocation">JPDA documentation</a>. If running</p>
+<p>mvn test -Djar.executor.vm.options="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000"</p>
+<p>the server start is interrupted until a debugger is connected on port 8000.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/sling.html
----------------------------------------------------------------------
diff --git a/documentation/development/sling.html b/documentation/development/sling.html
new file mode 100644
index 0000000..aa70a55
--- /dev/null
+++ b/documentation/development/sling.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Maven Sling Plugin</h1></header><p>See <a href="http://sling.apache.org/components/maven-sling-plugin/">Apache Maven Sling Plugin documentation</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/slingstart.html
----------------------------------------------------------------------
diff --git a/documentation/development/slingstart.html b/documentation/development/slingstart.html
new file mode 100644
index 0000000..5fb0684
--- /dev/null
+++ b/documentation/development/slingstart.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>The Apache Sling Provisioning Model and Apache SlingStart</h1></header><p>[TOC]</p>
+<p>The Apache Sling provisioning model is a model to describe OSGi based application. It can also be used to define a partial application aka feature (or subsystem in OSGi terms).</p>
+<p>The model is describing an instance, it is not directly related to any particular tooling or packaging/provisioning vehicle.</p>
+<p>For Apache Maven users, the <code>slingstart-maven-plugin</code> uses the model to create an executable application and/or a web application based on the model. Sling's Launchpad is defined using the model and built by this Maven plugin. See <a href="http://sling.apache.org/components/slingstart-maven-plugin/">SlingStart Maven Plugin</a> for a documentation of the supported goals and parameters.</p>
+<h2>The Model</h2>
+<p>The model is a simple API consisting of data objects:</p>
+<ul>
+  <li>Model: This is the central object. It consists of features.</li>
+  <li>Feature : this is the central object describing a (partial) system. A feature consists of variables and run modes.</li>
+  <li>Variables: These can be used to define artifact versions, settings values or configuration property values.</li>
+  <li>Run Mode : A run mode contains artifacts, configurations, and settings. The artifacts are divided into artifact groups.</li>
+  <li>Artifact Group: A group of artifacts with an associated start level (the artifacts are usually bundles)</li>
+  <li>Artifact: A deployable artifact described by Maven coordinates.</li>
+  <li>Configuration: A OSGi configuration</li>
+  <li>Settings : Framework settings for the OSGi framework</li>
+</ul>
+<h3>Run Modes</h3>
+<p>The default run mode is always active, and all information provided there will be used/started. Custom run modes can be used to configure for different situations. Depending on which run mode is used to start the instance a different set of artifacts or configurations is used. Each run mode is associated with a set of run mode names. Only if all listed run modes are active, the definition is used.</p>
+<p>The model also supports special run modes, which have special meaning. By default, these pre defined special run modes are available:</p>
+<ul>
+  <li>:standalone Artifacts for the standalone application - in contrast to a war.</li>
+  <li>:webapp Artifacts for the webapp only</li>
+</ul>
+<p>Other special run modes can be defined by using a single run mode name which starts with a colon, like :test. These run modes can be used by special tooling.</p>
+<h3>Start Levels</h3>
+<p>Each run mode has start levels. These start levels correspond to OSGi start levels. The default start level has the level 0 and should be used for all non bundle artifacts. If a non bundle artifact is configured with a start level, it's still provisioned, however the start level information might not have any meaning. As usually the provisioned artifacts are bundles and as start levels are pretty handy, this was conscious design decision in order to keep the model files small.</p>
+<h3>Artifacts</h3>
+<p>An artifact is defined by Maven coordinates, that is group id, artifact id and version. Type and classifier can be specified, too. Type defaults to "jar". Although the maven way of referring to an artifact is used, the model is in no way tied to Maven and can be used with any tooling. For a plain jar the text definition for an artifact is:</p>
+<p>groupId/artifactId/version org.apache.sling/api/2.8.0</p>
+<p>If you want to specify the type, it's appended after the version:</p>
+<p>groupId/artifactId/version/type org.apache.sling/api/2.8.0/jar</p>
+<p>If you want to specify the classifier, it gets appended after the type:</p>
+<p>groupId/artifactId/version/type/classifier org.apache.sling/api/2.8.0/jar/test</p>
+<h3>Configurations</h3>
+<p>A configuration has a pid, or a factory pid and an alias and of course the properties of the configuration object.</p>
+<p>Special configurations can be marked with a leading ":" of the pid. Special configurations are not added to the OSGi config admin. There are some predefined special configurations</p>
+<ul>
+  <li>:web.xml This configuration must be part of the :webapp runmode and contains a complete web.xml for the web application</li>
+  <li>:bootstrap This configuration must be part of either the :boot, :base, :standalone, or :webapp run mode and define the contents for the bootstrap command file executed by Launchpad.</li>
+</ul>
+<h4>Bootstrap Command File</h4>
+<p>The bootstrap configuration is a text block consisting of uninstall directives. This block is only executed on the first startup.</p>
+<p>[feature name=:launchpad]</p>
+<p>[configurations]</p>
+<h1>uninstall obsolete bundles which are neither not required anymore or are</h1>
+<h1>replaced with new bundles</h1>
+<p>:bootstrap uninstall org.apache.sling.fragment.activation 1.2 uninstall org.apache.sling.installer.api [1.0,2.0) uninstall org.apache.sling.tests</p>
+<p>Each uninstall directive starts with the text "uninstall" followed by the bundle symbolic name. A version range can be specified as well. If no version information is specified, the bundle with that symbolic name is uninstalled on startup. If a version is specified, the bundle is only uninstalled if it's installed with the exact same version. If a range is specified, the bundle is only uninstalled, if the version is within that range.</p>
+<h3>Settings</h3>
+<p>Settings are key value pairs that are added to the framework properties. For now, only settings for the run modes :boot, :base, :standalone, or :webapp are supported.</p>
+<h3>Features</h3>
+<p>Features group run modes and define a special functionality. The model also defines two special features:</p>
+<ul>
+  <li>:launchpad This feature contains the dependency to Sling's launchpad artifact to be used. This mode is required if Apache Sling Launchpad should be used to start the application.</li>
+  <li>:boot The artifacts that are installed before the framework is started. They're used to bootstrap the system.</li>
+</ul>
+<h2>Model Files</h2>
+<p>The model comes also with a textual description language:</p>
+<p>[feature name=my-feature]
+[variables] eventadmin.version=1.0.0 metatype.version=1.2.0</p>
+<p>[artifacts] org.apache.sling/eventadmin/${eventadmin.version} org.apache.sling/metatype/${metatype.version} org.apache.sling/coordinator/3.0.0</p>
+<p>[configurations] org.apache.sling.eventadmin useQueue=true ignoreTopics=["myTopic"]</p>
+<p>A configuration for a run mode looks like this:</p>
+<p>[feature name=my-feature]
+[variables] eventadmin.version=1.0.0 metatype.version=1.2.0</p>
+<p>[artifacts runModes=mymode] org.apache.sling/metatype/${metatype.version}</p>
+<p>[artifacts startLevel=5 runModes=mymode] org.apache.sling/eventadmin/${eventadmin.version}</p>
+<p>[configurations runModes=mymode] org.apache.sling.eventadmin useQueue=true ignoreTopics=["myTopic"]</p>
+<h3>Comments</h3>
+<p>Each object in the model can be annotated with comments. A comment is a line starting with a '#'. Leading spaces are ignored.</p>
+<h3>Configurations in the Model file</h3>
+<p>Configuration names are related to the PID and factory PID. The structure of the name is as follows:</p>
+<p>name ::= <pid> ( '-' <subname> )</p>
+<p>If the form is just <code>&lt;pid&gt;</code>, the configuration contains the properties for a Managed Service. The <code>&lt;pid&gt;</code> is then the PID of the Managed Service. See the Configuration Admin service for details.</p>
+<p>When a Managed Service Factory is used, the situation is different. The <code>&lt;pid&gt;</code> part then describes the PID of the Managed Service Factory. You can pick any <code>&lt;subname&gt;</code> which is used as a unique alias. For example:</p>
+<h1>Configuration for Managed Service com.acme.xyz</h1>
+<p>com.acme.xyz //</p>
+<h1>Managed Service Factory, creates an instance for com.acme.abc</h1>
+<p>com.acme.abc-default</p>
+<h3>Default Configuration Format</h3>
+<p>Configurations use by default the format of the Apache Felix ConfigAdmin implementation. It allows to specify the type and cardinality of a configuration property and is not limited to string values.</p>
+<p>The first line of such a file might start with a comment line (a line starting with a #). Comments within the file are not allowed.</p>
+<p>The format is:</p>
+<p>file ::= (comment) (header) * comment ::= '#' <any> header ::= prop '=' value prop ::= symbolic-name // 1.4.2 of OSGi Core Specification symbolic-name ::= token { '.' token } token ::= { [ 0..9 ] | [ a..z ] | [ A..Z ] | '_' | '-' } value ::= [ type ] ( '[' values ']' | '(' values ')' | simple ) values ::= simple { ',' simple } simple ::= '"' stringsimple '"' type ::= <1-char type code> stringsimple ::= <quoted string representation of the value> (see below)</p>
+<p>The 1 character type code is one of:</p>
+<ul>
+  <li>'T' : simple string</li>
+  <li>'I' : Integer</li>
+  <li>'L' : Long</li>
+  <li>'F' : Float</li>
+  <li>'D' : Double</li>
+  <li>'X' : Byte</li>
+  <li>'S' : Short</li>
+  <li>'C' : Character</li>
+  <li>'B' : Boolean</li>
+</ul>
+<p>Apart from the escaping of the usual characters like the quotes, double quotes, backslash etc. the equals sign and spaces need to be escaped as well!</p>
+<h3>Configurations Defined through Properties</h3>
+<p>While the default configuration form is very powerful, it might also sometimes be a little bit too heavy to specify a configuration. For these usage cases, the configuration can be described as properties:</p>
+<p>com.acme.xyz [format=properties] ftp.port = 21</p>
+<p>Notice that this definition only supports string properties. Therefore the service consuming the configuration needs to be able to adapt a string value to the correct type.</p>
+<h2>Slingstart and Slingfeature projects</h2>
+<p>The <code>slingstart-maven-plugin</code> introduces two new packaging types:</p>
+<ul>
+  <li><code>slingstart</code> : This type requires a model at src/main/provisioning. It reads all text files in that directory and merges them in alphabetical order. The resulting artifact is a runnable jar. The assembled model is also attached to the project artifacts.</li>
+  <li><code>slingfeature</code> : This type requires a model at src/main/provisioning. It reads all text files in that directory and merges them in alphabetical order and creates a merged model which is the final artifact of this project.</li>
+</ul>
+<p>A model can reference other slingstart or slingfeature artifacts. When such an artifact is reference, the type needs to be specified, for example:</p>
+<p>[artifacts] org.apache.sling/org.apache.sling.launchpad/8-SNAPSHOT/slingstart org.apache.sling/org.apache.sling.launchpad.test-bundles/0.0.1-SNAPSHOT/slingfeature</p>
+<p>The resulting model is a merged model, starting with the dependencies and then merging in the current model.</p>
+<p>By default the Maven classpath is extended by the dependencies of the merged model. This behaviour can be disabled though via setting the parameter <code>disableExtendingMavenClasspath</code> to <code>true</code> (<a href="https://issues.apache.org/jira/browse/SLING-6541">SLING-6541</a>).</p>
+<h2>Model Merging</h2>
+<p>If two or more models are supplied, they are merged feature by feature, each feature being treated as a separate unit.</p>
+<p>Within a feature each run mode is treated separately as well.</p>
+<p>Within a run mode, a model can overwrite definitions from the base model. For example, it can define a different configuration or a different version and/or start level for an artifact.</p>
+<p>The supplied models are ordered alphanumercally by their filenames for merging.</p>
+<h3>Removing and Changing of Artifacts</h3>
+<p>In addition, it can also remove artifacts and configurations. For this the special runmode :remove needs to be used together with all run modes the artifact or configuration is currently in.</p>
+<p>Let's look at an example base model</p>
+<p>[artifacts] my/special/artifact/1.0.0 commons/library/1.0.0</p>
+<p>[artifacts runModes=test] another/one/2.1.0</p>
+<p>Another model wants to use the above model as it's base but:</p>
+<ul>
+  <li>Change the version of the commons library to 1.1.0 and move it to a different start level.</li>
+  <li>Remove the "special artifact"</li>
+  <li>Remove the "another one"</li>
+</ul>
+<p>The changing model would mention the above as one artifact and in addition have: [artifacts startLevel=5] commons/library/1.1.0</p>
+<p>[artifacts runModes=:remove] my/special/artifact/0.0.0</p>
+<p>[artifacts runModes=:remove,test] another/one/0.0.0</p>
+<p>Note that the version for removal does not play a role, it's not compared for an exact match. But please keep in mind that the remove directive needs to be specified in the same feature and run mode as the original.</p>
+<h3>Removing and Changing of Configurations</h3>
+<p>Configurations can be removed in the same way by just specifying their PID in the :remove run mode. This is the base model:</p>
+<p>[configurations] my.special.configuration.b foo="bar" another.special.configuration.a x="y"</p>
+<p>When this model is merged with the following model, the resulting model has a different configuration for my.special.configuration.b and no configuration for another.special.configuration.a:</p>
+<p>[configurations] my.special.configuration.b a="b"</p>
+<p>[configurations runModes=:remove] another.special.configuration.a</p>
+<p>By default if a model inherits from another and uses the same configuration pid, the configuration is overwritten! In the above example, the configuration my.special.configuration.b contains a single property named "a".</p>
+<p>It is also possible to merge configurations:</p>
+<p>[configurations] my.special.configuration.b [mode=merge] a="b"</p>
+<p>When the merge directive is used, the configurations are merged and the properties are applied as a delta to the base configuration. Therefore the configuration my.special.configuration.b will have two properties "a" and "foo".</p>
+<p>If a merged configuration redefines a property that already exists, it overwrites it, so the last configuration supplied in a merge wins.</p>
+<h2>Starting a server</h2>
+<p>Use the goal with name <code>start</code> to start one or multiple servers. The goal is bound by default to the <a href="https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference"><code>pre-integration-test</code> lifecycle phase</a>. The launchpad JAR used to start the server is being looked up from the following locations:</p>
+<ol>
+  <li>the file path given in the configuration field <code>launchpadJar</code> or parameter <code>launchpad.jar</code></li>
+  <li>the slingstart artifact being referenced in the configuration element <code>launchpadDependency</code></li>
+  <li>the artifact being created through the Maven project itself (through model definitions found below <code>src/main/provisioning</code> or <code>src/test/provisioning</code> which are consumed by the goals <code>prepare-package</code> and <code>package</code> (<a href="https://issues.apache.org/jira/browse/SLING-6068">SLING-6068</a>) ).</li>
+  <li>the first dependency of type <code>slingstart</code></li>
+</ol>
+<p>The server itself is configured within an element <code>server</code> below the configuration element <code>servers</code>. It supports the following configuration settings</p>
+<table>
+  <thead>
+    <tr>
+      <th>Name </th>
+      <th>Type </th>
+      <th>Description </th>
+      <th>Default Value </th>
+      <th>Mandatory</th>
+    </tr>
+  </thead>
+</table>
+<p>port | String | The port on which the server is listening for HTTP requests. Arbitrary if not set. | - | no id | String | The instance id for this server. If not set the id is automatically generated from the run modes and the port. | - | no runmode | String | The comma-separated list of <a href="/documentation/bundles/sling-settings-org-apache-sling-settings.html#run-modes">run modes</a> to be set for this server. Those will be set in addition to the ones being defined by the underlying model. | - | no contextPath | String | The context path. If not set then Sling is deployed in the root context. | - | no controlPort | String | The TCP <a href="/documentation/the-sling-engine/the-sling-launchpad.html#control-port">control port</a> on which the server is listening for control commands. Arbitrary if not set. | - | no instances | int | The number of instances which should be created from this server element. In this case the configuration acts as template. The port and controlPort 
 for all servers being generated from this configuration are random (except for the first server). | 1 | no folder | String | The folder from where to start Sling. If not set is a folder in the project's build directory named like the <code>id</code>. | - | no vmOpts | String | The JVM options to use. | <code>-Xmx1024m -XX:MaxPermSize=256m -Djava.awt.headless=true</code> | no opts | String | Additional application options. | - | no debug | String | See below for an explanation. | - | no stdOutFile | String | The relative filename of the file which receives both the standard output (stdout) and standard error (stderr) of the server processes. If null or empty string the server process inherits stdout from the parent process (i.e. the Maven process). The given filename must be relative to the working directory of the according server. This was added with <a href="https://issues.apache.org/jira/browse/SLING-6545">SLING-6545</a>. | null | no</p>
+<h3>Debugging</h3>
+<p>Since version 1.2.0 of this plugin it is possible to easily start a Sling server in debug mode (<a href="https://issues.apache.org/jira/browse/SLING-4677">SLING-4677</a>). For that you either configure the property <code>debug</code> inside you server configuration in the pom.xml accordingly or by using the parameter <code>Dlaunchpad.debug</code>. Both values can either be <code>true</code> (in which case the <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html#Invocation">JDWP options</a> <code>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000</code> are appended to the VM options) or just some arbitrary string defining debugging options. In case both are used the parameter <code>Dlaunchpad.debug</code> takes precedence.</p>
+<h2>Stopping a server</h2>
+<p>Use the goal with name <code>stop</code> to stop one or multiple servers. The goal is bound by default to the <a href="https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference"><code>post-integration-test</code> lifecycle phase</a>.</p>
+<h2>Known Issues</h2>
+<h3>Support of configuration formats</h3>
+<p>The provisioning model supports two formats to define configurations, properties and the format of the Apache Felix ConfigAdmin implementation.</p>
+<p>Starting with version 1.2.0 of the provisioning model and version 1.2.0 of the slingstart-maven-plugin, the implementation uses the latest format from Apache Felix, version 1.8.6 (or higher) of the ConfigAdmin. This requires you to use version 3.6.6 (or higher) of the OSGi installer core bundle to handle these configurations.</p>
+<p>If you want to stick with the old format from config admin, you can configure the maven plugin as follows:</p>
+<p><plugin> <groupId>org.apache.sling</groupId> <artifactId>slingstart-maven-plugin</artifactId> <extensions>true</extensions> <version>1.3.4</version> <dependencies> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.configadmin</artifactId> <version>1.8.4</version> </dependency> </dependencies> </plugin></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/development/version-policy.html
----------------------------------------------------------------------
diff --git a/documentation/development/version-policy.html b/documentation/development/version-policy.html
new file mode 100644
index 0000000..f6c7b55
--- /dev/null
+++ b/documentation/development/version-policy.html
@@ -0,0 +1,232 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Version Policy</h1></header><p>Excerpt: This page is about how we assign versions to exported packages and bundles and defines when to increase which part of the version number.</p>
+<p>This page is about how we assign versions to exported packages and bundles and defines when to increase which part of the version number.</p>
+<div class="info">
+Please note that this page is currently in draft stage and still being discussed.
+</div>
+<p>[TOC]</p>
+<h2>Introduction</h2>
+<p>In comments to <a href="https://issues.apache.org/jira/browse/SLING-2944">SLING-1176</a> Ian Boston wrote:</p>
+<blockquote>
+  <p>The exports in bundle/api/pom.xml look like they might become problematic from a support point of view, although we probably can't avoid this. [...] [The problem is the] manual maintenance of the version numbers. (not a big problem but needs to be done)</p>
+</blockquote>
+<p>I agree, that this is a problem. So let me reasonate on this a bit ;-)</p>
+<p>As a reference you might want to read <a href="http://blog.meschberger.ch/2009/10/on-version-numbers.html">my blog post on version numbers</a> and also what the <a href="http://wiki.eclipse.org/index.php/Version_Numbering">Eclipse guys have to say</a> (great read, btw). The OSGi Alliance has come up with a good definition for <a href="http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf">Semantic Versioning</a> to which the definitions described below perfectly match.</p>
+<p>For Sling we have three kinds of version numbers:</p>
+<ol>
+  <li>Big Sling Releases</li>
+  <li>Sling Bundles</li>
+  <li>Package Exports</li>
+</ol>
+<h3>Big Sling Releases</h3>
+<p>For <em>Big Sling Releases</em> we already have an ample solution in that we just use a single number increased from release to release. Just remember that a <em>Big Sling Release</em> is a convenience release of existing released Sling bundles.</p>
+<h3>Sling Bundles</h3>
+<p>For <em>Sling Bundles</em> version numbers are just defined as the <code>&lt;version&gt;</code> element of the bundle's POM. The only restriction here is, that we decided to use even numbers for releases and odd numbers for SNAPSHOTs. Whether and when which version part is increased is not explicitly defined yet.</p>
+<h3>Package Exports</h3>
+<p>For <em>Package Exports</em> the situation is more problematic since there are a number of places to set exported package version number:</p>
+<ul>
+  <li>In a <code>packageinfo</code> file inside the package (picked up by the Maven Bundle Plugin to set the export version)</li>
+  <li>Explicitly in the <code>&lt;Export-Package&gt;</code> element of the Maven Bundle Plugin configuration</li>
+  <li>By reference to the bundle version number using the <code>${pom.version}</code> variable.</li>
+</ul>
+<p>Up to now, we mostly used the <code>${pom.version}</code> notation linking the exported package version to the bundle version. Over time this mechanism leads to a number of problems:</p>
+<ul>
+  <li>For bundles with more than one package exported, the exported packages will evolve independently. As a consequence their versioning should also evolve independently. An example of such a bundle is the Sling API bundle of course.</li>
+  <li>Linking the package export version number to the bundle version number confuses the actual semantics of both version numbers. The package export version number only indicates the version of the actual package while the bundle version number indicates a development state of the overall bundle. This will generally not be the same.</li>
+  <li>The version of the exported package is increased on each bundle release, even though nothing may have changed on the export. In such a situation the version of the export should stay the same.</li>
+</ul>
+<p>That said, the reuse of the bundle version as the package export version still is probably the correct thing to do for legacy library wrappers.</p>
+<p>Consider for example the Sling API bundle, which exports 9 packages. Each of which may evolve independently. Now the <code>resource</code> package is extended causing a minor version increase. Should the version numbers of the other exports also be increased ? Thus acting as if there was some API change ?</p>
+<p>I would say, no. Particularly if some API implementation bundle is restricting the import version of the API implemented. Such an implementation would immediately stop working because the version has been increased. But since there has been no change, the implementation would still be correct.</p>
+<p>So, I think, we should evolve the exported package versions independently from each other and even independently from the bundle version.</p>
+<p>This places more burden on the developer when deciding on the exported package version - in fact this requires such a decision as compared to have Maven take the decision by just setting the bundle version.</p>
+<p>The only problem is: Where shall this be noted ? In the POM or in the <code>packageinfo</code> file ? If we would place the <code>packageinfo</code> file just beneath the class source files, I would say, in the <code>packageinfo</code> file.</p>
+<p>But this would require defining the class source locations as resource location in the POM (at least for <code>packageinfo</code>) files.</p>
+<p>I am not sure ....</p>
+<p>This has not been discussed at large, but I would assume, that the POM is still the correct place to take note of the version of the exported packages.</p>
+<h3>Future</h3>
+<p>The newest versions of the bnd library also support an <code>@Export</code> annotation in the <code>package-info.java</code> pseudo class file. This pseudo class is supported starting with Java 5 to take package level annotations (like the <code>@Export</code> annotation) and as a replacement of the <code>package-info.html</code> file.</p>
+<p>Using this syntax something like the following would be easily possible:</p>
+<p>/** * This is the Package Level JavaDoc */ @Export(version = "1.0") package org.apache.sling.api.auth; import aQute.bnd.annotation.Export;</p>
+<p>See <a href="http://bnd.bndtools.org/chapters/170-versioning.html">bnd Versioning</a> for details.</p>
+<h2>Version Number Syntax</h2>
+<p>As a small reminder, this is how a version number is constructed: In OSGi version numbers are composed of four (4) segments: three integers and one string named <em>major</em>._minor_._micro_._qualifier_.</p>
+<p>Each segment captures a different intent:</p>
+<ul>
+  <li>the major segment indicates breakage in the API</li>
+  <li>the minor segment indicates <em>externally visible</em> changes</li>
+  <li>the micro segment indicates bug fixes</li>
+  <li>the qualifier segment is not generally used but may be used to convey more information about a particular build, such as a build time or a SVN revision number.</li>
+</ul>
+<h2>Evolution of Exported Package Versions</h2>
+<p>Version numbers of exported packages evolve independently from each other. Depending on the changes applied, the micro, minor, or major segement is increased. Whenever the major segment is increased, the minor and micro segments are reset to zero. Whenever the minor segment is increased, the micro segment is reset to zero.</p>
+<p>Segments are increased according to the above listing.</p>
+<p>This requires committers to think well about changes they apply to exported packages:</p>
+<ul>
+  <li>Removing interfaces, methods or constants is likely an API breakage and thus requires a major version increase. In Sling we try to prevent this from happening.</li>
+  <li>Adding new methods to interfaces is likely just an <em>externally visible</em> change and thus requires a minor version increase</li>
+  <li>Fixing a bug in an exported class just requires a minor version increase.</li>
+</ul>
+<p>JavaDoc updates generally do not constitute a reason to evolve the version number. The exception is that if the JavaDoc update is caused by a API limitation, it might be conceivable to increase the version number of the exported package. A decision on this will have to be taken on a case-by-case basis.</p>
+<h2>Evolution of Bundle Versions</h2>
+<p>Version numbers of bundles evolve depending on the evolution of the exported packages but also depending on the evolution of the private code, which is not exported.</p>
+<p>As a rule of thumb, the following reasons apply for increasing the segments of bundle version numbers:</p>
+<ul>
+  <li>Increasing the major version number of any of the exported packages or restructuring the bundle such that major parts are removed from the bundle (and either completely removed or moved to other bundle(s)).</li>
+  <li>Increasing the minor version number of any of the exported packages or refactoring the internal code or implementing a package exported by another bundle whose minor (or even major) version number has increased. Also functional extensions of the internal bundle classes consitutes a reason to increase the minor version number.</li>
+  <li>Increasing the micro version number of any of the exported packages or bug fixes.</li>
+</ul>
+<p>Note, that this definition does not require the bundle and epxorted package version numbers to be synchronized in any way. While doing so might help in a first or second step, over time it will become close to impossible to keep the versions in sync. So rather than trying to keep the versions in sync, we should make sure, we increase the versions correctly.</p>
+<h2>Examples</h2>
+<h3>Pure API Bundle</h3>
+<p>An example of an almost <em>Pure API Bundle</em> is the Sling API bundle. This bundle exports 9 packages. Some are really stable -- e.g. the <code>org.apache.sling.api</code> package or the <code>org.apache.sling.wrappers</code> package -- and some are being worked on at the moment -- e.g. the <code>org.apache.sling.resource</code> package.</p>
+<p>To not break existing users of the unmodified packages, the exported versions of these packages must not be increased.</p>
+<p>To signal to users of evolving packages, that there might be new and interesting functionality, the version number must be increased according to above definition. This also conveys to the implementor(s) of the API, that they have to take some action.</p>
+<p>A hypothetical evolution of version numbers shown on two packages and the bundle version might be as follows</p>
+<table>
+  <thead>
+    <tr>
+      <th>Description </th>
+      <th><code>api</code> package </th>
+      <th><code>resource</code> package </th>
+      <th>bundle </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Initial Release </td>
+      <td>1.0.0 </td>
+      <td>1.0.0 </td>
+      <td>1.0.0 </td>
+    </tr>
+    <tr>
+      <td>Bug fix in a <code>resource</code> class </td>
+      <td>1.0.0 </td>
+      <td>1.0.2 </td>
+      <td>1.0.2 </td>
+    </tr>
+    <tr>
+      <td>New API in the <code>resource</code> package </td>
+      <td>1.0.0 </td>
+      <td>1.1.0 </td>
+      <td>1.1.0 </td>
+    </tr>
+    <tr>
+      <td>New API in the <code>api</code> package </td>
+      <td>1.1.0 </td>
+      <td>1.1.0 </td>
+      <td>1.2.0 </td>
+    </tr>
+    <tr>
+      <td>API breakage in the <code>api</code> package </td>
+      <td>2.0.0 </td>
+      <td>1.1.0 </td>
+      <td>2.0.0 </td>
+    </tr>
+  </tbody>
+</table>
+<h3>Implementation Bundle providing API</h3>
+<p>An example of such a hybrid bundle is the Sling Engine bundle. This bundle exports two packages themselves defining API and contains a number of internal packages which actually implement parts of the Sling API.</p>
+<p>A hypothetical evolution of version numbers shown on one exported package and the bundle version might be as follows</p>
+<table>
+  <thead>
+    <tr>
+      <th>Description </th>
+      <th><code>engine</code> package </th>
+      <th>bundle </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Initial Release </td>
+      <td>1.0.0 </td>
+      <td>1.0.0 </td>
+    </tr>
+    <tr>
+      <td>Bug fix in a <code>engine</code> class </td>
+      <td>1.0.2 </td>
+      <td>1.0.2 </td>
+    </tr>
+    <tr>
+      <td>Bug fix in an internal calss </td>
+      <td>1.0.2 </td>
+      <td>1.0.4 </td>
+    </tr>
+    <tr>
+      <td>New API in the <code>engine</code> package </td>
+      <td>1.1.0 </td>
+      <td>1.1.0 </td>
+    </tr>
+    <tr>
+      <td>Implement new API from <code>api</code> 1.1.0 </td>
+      <td>1.1.0 </td>
+      <td>1.2.0 </td>
+    </tr>
+    <tr>
+      <td>Refactor internal classes </td>
+      <td>1.1.0 </td>
+      <td>1.3.0 </td>
+    </tr>
+    <tr>
+      <td>Implement API from <code>api</code> 2.0.0 </td>
+      <td>1.1.0 </td>
+      <td>2.0.0 </td>
+    </tr>
+  </tbody>
+</table>
+<h3>Pure Implementation Bundle</h3>
+<p>For Pure Implementation Bundles only the bundle version numbers are maintained because there is no exported package whose version number needs to be managed. This makes the decision process of version number evolution very simple.</p>
+<h2>Importing Packages</h2>
+<p>When importing packages a version number will automatically be generated by the Maven Bundle Plugin as follows:</p>
+<ul>
+  <li>If the providing package exports a package with an explicit version number, that exact version number will be used as the lower bound</li>
+  <li>If such a lower bound exists, the upper bound is exclusive the next major version number.</li>
+</ul>
+<p>For example if importing the <code>api</code> package exported at version 1.2.3, the <code>Import-Package</code> statement is generated as</p>
+<p>Import-Package: api;version=[1.2.3,2.0.0)</p>
+<p>This default works well for consumers of the API, since according to above definitions an API is guaranteed to not contain breakages if the major version number is not increased.</p>
+<p>For bundles implementing the API, this default does not work well, since from their point of view an <em>externally visible</em> change in fact constitutes a breakage, because the implementation is not complete. So if a bundle implements a package a manually crafted import version should be defined which includes the export version of the defining bundle but excludes the next minor version.</p>
+<p>For example implementing the <code>api</code> package exported at version 1.2.3, would require the following manually created <code>Import-Package</code> statement:</p>
+<p>Import-Package: api;version=[1.2.3,1.3.0)</p>
+<p>This allows for the implementation to work correctly with bug fixed package exports but as soon as there are any <em>externally visible</em> changes, the implementation bundle has to be adapted -- even if this just means increasing the upper version bound in the <code>Import-Package</code> statement thus guaranteeing compliance (again).</p>
+<h3>Future</h3>
+<p>Recent versions of the bnd library support automatic differentiation between <em>use</em> and <em>implementation</em> of API and to set the import version ranges accordingly. See <a href="http://bnd.bndtools.org/chapters/170-versioning.html">bnd Versioning</a> for details.</p>
+<h2>References</h2>
+<ul>
+  <li><a href="http://markmail.org/thread/zshobgjwtqrncajt">Version Numbers</a> -- The mail thread discussing version numbering</li>
+  <li><a href="http://blog.meschberger.ch/2009/10/on-version-numbers.html">On Version Numbers</a> -- Blog about version numbers</li>
+  <li><a href="http://wiki.eclipse.org/index.php/Version_Numbering">Version Numbering</a> -- An Eclipse paper on assigning version numbers. Very good read.</li>
+  <li><a href="http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf">Semantic Versioning</a> -- An OSGi Alliance paper on semantic versioning.</li>
+  <li><a href="http://bnd.bndtools.org/chapters/170-versioning.html">bnd Versioning</a> -- Describes how the bnd library used by the Maven Bundle plugin supports package versioning</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[36/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/resources.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/resources.html b/documentation/the-sling-engine/resources.html
new file mode 100644
index 0000000..425124b
--- /dev/null
+++ b/documentation/the-sling-engine/resources.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Resources</h1></header><p>[TOC]</p>
+<h2>What is a Resource</h2>
+<p>The Resource is one of the central parts of Sling. Extending from JCR's <em>Everything is Content</em>, Sling assumes <em>Everthing is a Resource</em>. Thus Sling is maintaining a virtual tree of resources, which is a merger of the actual contents in the JCR Repository and resources provided by so called resource providers. By doing this Sling fits very well in the paradigma of the REST architecture.</p>
+<h3>Resource Properties</h3>
+<p>Resources have a number of essentiall properties:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Path </td>
+      <td>Resources are part of a Resource Tree. As such each Resource has a path which is formed by concatenating the names of all Resources along the root to the Resource separated by a slash. Ok, really, this is much like a URL path or a file system path where the slash (<code>/</code>) is the separator character. </td>
+    </tr>
+    <tr>
+      <td>Name </td>
+      <td>The name of the Resource is the last element (or segment) in the path. </td>
+    </tr>
+    <tr>
+      <td>Resource Type </td>
+      <td>Each resource has a resource type which is used by the Servlet and Script resolver to find the appropriate Servlet or Script to handle the request for the Resource. </td>
+    </tr>
+    <tr>
+      <td>Resource Super Type </td>
+      <td>The (optional explicit) super type of the Resource. See the section <em>Resource Types</em> below for more details. </td>
+    </tr>
+    <tr>
+      <td>Adapters </td>
+      <td>Resources are always <code>Adaptable</code> and therefore can be adapted to a different view. See the section <em>Resource Adapters</em> below for more details. </td>
+    </tr>
+    <tr>
+      <td>Metadata </td>
+      <td>Resources in general support <a href="http://sling.apache.org/apidocs/sling8/org/apache/sling/api/resource/ResourceMetadata.html" title="ResourceMetadata">link text</a> providing access to values such as the length of a binary resource (which can be streamed) or the Resource's content type. </td>
+    </tr>
+  </tbody>
+</table>
+<p>For a complete description of the <code>Resource</code> interface, please refer to the <a href="http://sling.apache.org/apidocs/sling8/org/apache/sling/api/resource/Resource.html" title="Resource">link text</a> JavaDoc.</p>
+<h3>Resource Types</h3>
+<p>The exact method of setting the resource type for a Resource depends on the actual Resource Provider. For the four main Resource Provider implementations provided by Sling, the assignments are as follows:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Provider </th>
+      <th>Resource Type </th>
+      <th>Resource Super Type </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>JCR </td>
+      <td>The value of the <code>sling:resourceType</code> property or the primary node type if the property is not set (a namespace separator colon is replaced by a slash, e.g. the <code>nt:file</code> primary node type is mapped to the <code>nt/file</code> resource type </td>
+      <td>The value of the <code>sling:resourceSuperType</code> of the Resource node or resource super type of the resource pointed to by the resource type (when accessed with <code>ResourceResolver.getResource(String)</code> </td>
+    </tr>
+    <tr>
+      <td>File System </td>
+      <td>File based resources are of type <code>nt/file</code>; folder based resources are of type <code>nt/folder</code> corresponding to the respective JCR primary node type </td>
+      <td>none </td>
+    </tr>
+    <tr>
+      <td>Bundle </td>
+      <td>File based resources are of type <code>nt/file</code>; folder based resources are of type <code>nt/folder</code> corresponding to the respective JCR primary node type </td>
+      <td>none </td>
+    </tr>
+    <tr>
+      <td>Servlet </td>
+      <td>The absolute path of the resource appended with the suffix <code>.servlet</code> </td>
+      <td><code>sling/bundle/resource</code> </td>
+    </tr>
+  </tbody>
+</table>
+<p>Resource Types form a type hierarchy much like Java classes form a type hierarchy. Each resource type has a resource super type, either explicitly defined as for example for JCR or Servlet Resources or implicitly. The implicit Resource Super Type is at the same time the root Resource Type much like the <code>java.lang.Object</code> class is called <code>sling/servlet/default</code> (for historical reasons). The <code>sling/servlet/default</code> Resource Type is the only type without a super type.</p>
+<h3>Adapters</h3>
+<p>The object types to which Resources may be adapted depend mostly depends on the Resource Provider providing the resource. For example all JCR node based resources always adapt to <code>javax.jcr.Node</code> objects.</p>
+<p>If the actual Resource object class implementation extends from the <code>SlingAdaptable</code> class, then in addition all <code>AdapterFactory</code> services adapting <code>Resource</code> objects are considered when trying to adapt the Resource. In general Resource Providers are recommended to have their Resource implementation extend from <a href="http://sling.apache.org/apidocs/sling8/org/apache/sling/api/resource/AbstractResource.html" title="AbstractResource">link text</a> which guarantees the Resource implementation to extend from <code>SlingAdaptable</code> and thus supporting Adapter Factories.</p>
+<h2>How to get a Resource</h2>
+<p>To get at Resources, you need a <code>ResourceResolver</code>. This interface defines four kinds of methods to access resources:</p>
+<ul>
+  <li>Absolute Path Mapping Resource Resolution: The <code>resolve(HttpServletRequest, String)</code> and <code>resolve(String)</code> methods are called to apply some implementation specific path matching algorithm to find a Resource. These methods are mainly used to map external paths - such as path components of request URLs - to Resources. To support creating external paths usable in an URL a third method <code>map(String)</code> is defined, which allows for round-tripping.</li>
+  <li>Absolute or Relative Path Resolution (including search path): The <code>getResource(String path)</code> and <code>getResource(Resource base, String path)</code> methods may be used to access a resource with an absolute path directly. If it can't be found the path is assumed to be relative and the search path retrieved from <code>getSearchPath()</code> is used to retrieve the resource. This mechanism is similar to resolving a programm with the <code>PATH</code> environment variable in your favourite operating system.</li>
+  <li>Resource Enumeration: To enumerate resources and thus iterate the resource tree, the <code>listChildren(Resource)</code> method may be used. This method returns an <code>Iterator&lt;Resource&gt;</code> listing all resources whose path prefix is the path of the given Resource. This method will of course also cross boundaries of registered <code>ResourceProvider</code> instances to enable iterating the complete resource tree.</li>
+  <li>Resource Querying: Querying resources is currently only supported for JCR Resources through the <code>findResources(String query, String language)</code> and <code>queryResources(String query, String language)</code> methods. For more information see the section on <a href="#querying-resources">Querying Resources</a> below.</li>
+</ul>
+<h3>Absolute Path Mapping</h3>
+<p>As has been said, the absolute path mapping methods <code>resolve(HttpServletRequest, String)</code> and <code>resolve(String)</code> apply some implementation specific path matching algorithm to find a Resource. The difference between the two methods is that the former may take more properties of the <code>HttpServletRequest</code> into account when resolving the Resoure, while the latter just has an absolute path to work on.</p>
+<p>The general algorithm of the two methods is as follows:</p>
+<ol>
+  <li>Call <code>HttpServletRequest.getScheme(), .getServerName(), getServerPort</code> to get an absolute path out of the request URL: [scheme]({{ refs.scheme.path }})/[host].[port][path] (<code>resolve(HttpServletRequest, String)</code> method only, which)</li>
+  <li>Check whether any virtual path matches the absolute path. If such a match exists, the next step is entered with the match.</li>
+  <li>Apply a list of mappings in order to create a mapped path. The first mapped path resolving to a Resource is assumed success and the Resource found is returned.</li>
+  <li>If no mapping created a mapped path addressing an existing Resource, the method fails and returns a <code>NonExistingResource</code> (for the <code>resolve(String)</code> and <code>resolve(HttpServletRequest,String)</code>) or null (for the <code>getResource(String path)</code> and <code>getResource(Resource base, String path)</code> methods).</li>
+</ol>
+<p>The virtual path mapping may be used to create shortcut URLs for otherwise long and complicated URLs. An example of such an URL might be the main administrative page of a CMS system. So, administrators may access the root of the web application and directed to the main administrative page.</p>
+<p>The path mapping functionality may be used to hide internal resource organization from the request URL space. For example to better control the structure of your repository, you might decide to store all accessible data inside a <code>/content</code> subtree. To hide this fact from the users, a mapping may be defined to prefix all incoming paths with <code>/content</code> to get at the actual Resource.</p>
+<p>The <code>map(String)</code> applies the path mapping algorithm in the reverse order. That is, first the path mappings are reversed and then any virtual mappings are checked. So, a path <code>/content/sample</code> might be mapped <code>/sample</code> to revers the <code>/content</code> prefixing. Or the main administrative page - say <code>/system/admin/main.html</code> - may be mapped to the virtual URL <code>/</code>.</p>
+<p>More details on mappings can be found at <a href="/documentation/the-sling-engine/mappings-for-resource-resolution.html">Mappings for Resource Resolution</a>.</p>
+<h3>Relative Path Resolution</h3>
+<p>Sometimes it is required to resolve relative paths to Resources. An example of such a use case is Script and Servlet resolution which starts with a relative path consisting of the Resource type, optional selectors and the request extension or method name. By scanning a search path for these relative paths a system provided Resource may be overwritten with some user defined implementation.</p>
+<p>Consider for example, the system would provide a Servlet to render Resources of type <code>nt:file</code>. This Servlet would be registered under the path <code>/libs/nt/file/html</code>. For a certain web application, this default HTML rendering might not be appropriate, so a Script is created as <code>/apps/nt/file/html.jsp</code> with a customized HTML rendering. By defining the search path to be <code>[/apps,/libs]</code> the Servlet resolver would call the <code>ResourceResolver.getResource(String)</code> method with the relative path <code>nt/file/html</code> and be provided with the first matching resource - <code>/apps/nt/file/html.jsp</code> in this example.</p>
+<p>Of course the search path is not used for absolute path arguments.</p>
+<h3>Querying Resources</h3>
+<p>For convenience the <code>ResourceResolver</code> provides two Resource querying methods <code>findResources</code> and <code>queryResources</code> both methods take as arguments a JCR query string and a query language name. These parameters match the parameter definition of the <code>QueryManager.createQuery(String statement, String language)</code> method of the JCR API.</p>
+<p>The return value of these two methods differ in the use case:</p>
+<ul>
+  <li><code>findResources</code> returns an <code>Iteratory&lt;Resource&gt;</code> of all Resources matching the query. This method is comparable to calling <code>getNodes()</code> on the <code>QueryResult</code> returned from executing the JCR query.</li>
+  <li><code>queryResources</code> returns an <code>Iterator&lt;Map&lt;String, Object&gt;&gt;</code>. Each entry in the iterator is a <code>Map&lt;String, Object</code> representing a JCR result <code>Row</code> in the <code>RowIterator</code> returned from executing the JCR query. The map is indexed by the column name and the value of each entry is the value of the named column as a Java Object.</li>
+</ul>
+<p>These methods are convenience methods to more easily post queries to the repository and to handle results in very straight forward way using only standard Java functionality.</p>
+<p>Please note, that Resource querying is currently only supported for repository based Resources. These query methods are not reflected in the <code>ResourceProvider</code> interface used to inject non-repository Resources into the Resource tree.</p>
+<h2>Providing Resources</h2>
+<p>The virtual Resource tree to which the the Resource accessor methods <code>resolve</code> and <code>getResource</code> provide access is implemented by a collection of registered <code>ResourceProvider</code> instances. The main Resource provider is of course the repository based <code>JcrResourceProvider</code> which supports Node and Property based resources. This Resource provider is always available in Sling. Further Resource providers may or may not exist.</p>
+<p>Each Resource provider is registered as an OSGi service with a required service registration property <code>provider.roots</code>. This is a multi-value String property listing the absolute paths Resource tree entries serving as roots to provided subtrees. For example, if a Resource provider is registered with the service registration property <code>provider.roots</code> set to <em>/some/root</em>, all paths starting with <code>/some/root</code> are first looked up in the given Resource Provider.</p>
+<p>When looking up a Resource in the registered Resource providers, the <code>ResourceResolver</code> applies a longest prefix matching algorithm to find the best match. For example consider three Resource provider registered as follows:</p>
+<ul>
+  <li>JCR Resource provider as <code>/</code></li>
+  <li>Resource provider R1 as <code>/some</code></li>
+  <li>Resource provider R2 as <code>/some/path</code></li>
+</ul>
+<p>When accessing a Resource with path <code>/some/path/resource</code> the Resource provider <em>R2</em> is first asked. If that cannot provide the resource, Resource provider <em>R1</em> is asked and finally the JCR Resource provider is asked. The first Resource provider having a Resource with the requested path will be used.</p>
+<h3>JCR-based Resources</h3>
+<p>JCR-based Resources are provided with the default <code>JcrResourceProvider</code>. This Resource provider is always available and is always asked last. That is Resources provided by other Resource providers may never be overruled by repository based Resources.</p>
+<h3>Bundle-based Resources</h3>
+<p>Resources may by provided by OSGi bundles. Providing bundles have a Bundle manifest header <code>Sling-Bundle-Resources</code> containing a list of absolute paths provided by the bundle. The path are separated by comma or whitespace (SP, TAB, VTAB, CR, LF).</p>
+<p>The <code>BundleResourceProvider</code> supporting bundle-based Resources provides directories as Resources of type <code>nt:folder</code> and files as Resources of type <code>nt:file</code>. This matches the default primary node types intended to be used for directories and files in JCR repositories.</p>
+<p>For details see <a href="/documentation/bundles/bundle-resources-extensions-bundleresource.html">Bundle Resource.</a></p>
+<h3>Servlet Resources</h3>
+<p>Servlet Resources are registered by the Servlet Resolver bundle for Servlets registered as OSGi services. See <a href="/documentation/the-sling-engine/servlets.html">Servlet Resolution</a> for information on how Servlet Resources are provided.</p>
+<h3>File System Resources</h3>
+<p>The Filesystem Resource Provider provides access to the operating system's filesystem through the Sling ResourceResolver. Multiple locations may be mapped into the resource tree by configuring the filesystem location and the resource tree root path for each location to be mapped.</p>
+<p>For details see <a href="/documentation/bundles/accessing-filesystem-resources-extensions-fsresource.html">File System Resources</a>.</p>
+<h3>Merged Resources</h3>
+<p>The merged resource provider exposes a view on merged resources from multiple locations.</p>
+<p>For details see <a href="/documentation/bundles/resource-merger.html">Resource Merger</a>.</p>
+<h3>Custom Resource providers</h3>
+<p>Custom ResourceProvider services can be used to integrate your own custom resources in the Sling resource tree.</p>
+<p>For a simple example of that, see the <a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/">PlanetResourceProvider</a> used in our integration tests.</p>
+<h2>Writeable Resources</h2>
+<p>Sling now supports full CRUD functionality on Resources, without necessarily having to go through the JCR API.</p>
+<p>The advantage is that this works for any ResourceProvider that supports the required operations.</p>
+<p>See the testSimpleCRUD method in <a href="https://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/serversidetests/WriteableResourcesTest.java">WriteableResourcesTest</a> for a basic example of how that works. More details can be found at <a href="/documentation/the-sling-engine/sling-api-crud-support.html">Sling API CRUD Support</a>.</p>
+<h2>Resource Observation</h2>
+<p>To be notified whenever certain resources or their properties have been modified/added/removed there are different possibilities</p>
+<h3>Resource Observation API (ResourceChangeListener)</h3>
+<p><em>This API is only available since Sling API 2.11.0 (<a href="https://issues.apache.org/jira/browse/SLING-4751">SLING-4751</a>).</em></p>
+<p>Register an OSGi service for <a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ResourceChangeListener.java"><code>org.apache.sling.api.resource.observation.ResourceChangeListener</code></a> or <a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/observation/ExternalResourceChangeListener.java"><code>org.apache.sling.api.resource.observation.ExternalResourceChangeListener</code></a> to be notified about changes. Certain properties can be used to restrict subscription to only a subset of events.</p>
+<h3>OSGi Event Admin</h3>
+<p>Resource events are sent out via the OSGi Event Admin. You can subscribe to those event by registering an OSGi service for <a href="https://osgi.org/javadoc/r6/cmpn/org/osgi/service/event/EventHandler.html"><code>org.osgi.service.event.EventHandler</code></a>. Several properties should be used to restrict the subscription to only the relevant event. The event topics which are used for resources are listed as constants in <a href="http://sling.apache.org/apidocs/sling8/org/apache/sling/api/SlingConstants.html"><code>org.apache.sling.api.SlingConstants</code></a> starting with the prefix <code>TOPIC_</code>.</p>
+<h2>Wrap/Decorate Resources</h2>
+<p>The Sling API provides an easy way to wrap or decorate a resource before returning. Details see <a href="/documentation/the-sling-engine/wrap-or-decorate-resources.html">Wrap or Decorate Resources</a>.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/service-authentication.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/service-authentication.html b/documentation/the-sling-engine/service-authentication.html
new file mode 100644
index 0000000..5e8b503
--- /dev/null
+++ b/documentation/the-sling-engine/service-authentication.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Service Authentication</h1></header><p>Excerpt: Introduce new service level authentication to replace <code>loginAdministrative</code></p>
+<p>[TOC]</p>
+<h2>Problem</h2>
+<p>To access the data storage in the Resource Tree and/or the JCR Repository authentication is required to properly setup access control and guard sensitive data from unauthorized access. For regular request processing this authentication step is handled by the Sling <a href="/documentation/the-sling-engine/authentication.html">{{ refs.authentication.headers.title }}</a> subsystem.</p>
+<p>On the other hand there are also some background tasks to be executed with access to the resources. Such tasks cannot in general be configured with user names and passwords: Neither hard coding the passwords in the code nor having the passwords in &ndash; more or less &ndash; plain text in some configuration is considered good practice.</p>
+<p>To solve this problem for services to identify themselves and authenticate with special users properly configured to support those services.</p>
+<p>The solution presented here serves the following goals:</p>
+<ul>
+  <li>Prevent over-use and abuse of administrative ResourceResolvers and/ro JCR Sessions</li>
+  <li>Allow services access to ResourceResolvers and/or JCR Sessions without requiring to hard-code or configure passwords</li>
+  <li>Allow services to use <em>service users</em> which have been specially configured for service level access (as is usually done on unixish systems)</li>
+  <li>Allow administrators to configure the assignment of service users to services</li>
+</ul>
+<h2>Concept</h2>
+<p>A <em>Service</em> is a piece or collection of functionality. Examples of services are the Sling queuing system, Tenant Administration, or some Message Transfer System. Each service is identified by a unique <em>Service Name</em>. Since a service will be implemented in an OSGi bundle (or a collection of OSGi bundles), services are named by the bundles providing them.</p>
+<p>A Service may be comprised of multiple parts, so each part of the service may be further identified by a <em>Subservice Name</em>. This Subservice Name is optional, though. Examples of <em>Subservice Name</em> are names for subsystems in a Message Transfer System such as accepting messages, queueing messages, delivering messages.</p>
+<p>Ultimately, the combination of the <em>Service Name</em> and <em>Subservice Name</em> defines the <em>Service ID</em>. It is the <em>Service ID</em> which is finally mapped to a Resource Resolver and/or JCR Repository user ID for authentication.</p>
+<p>Thus the actual service identification (service ID) is defined as:</p>
+<h1>!text</h1>
+<p>service-id = service-name [ ":" subservice-name ] .</p>
+<p>The <code>service-name</code> is the symbolic name of the bundle providing the service.</p>
+<h3>Example: Tenant Administration</h3>
+<p>Tenant Administration mostly deals with creating and managing groups and some other user administration tasks. Instead of just using an administrative session for Tenant administration this feature could define itself as being the <code>tenant-admin</code> service and leverage a properly configured Tenant Administration account.</p>
+<h3>Example: Mail Transfer System</h3>
+<p>Consider a Mail Transfer System which may be comprised of the following sub systems:</p>
+<ul>
+  <li>Accepting mail for processing &mdash; for example the SMTP server daemon</li>
+  <li>Queing and processing the messages</li>
+  <li>Delivering messages to mailboxes</li>
+</ul>
+<p>You could conceive that all these functions serve different purposes and thus should have different access rights to the repository to persist messages while they are being processed.</p>
+<p>Using the Service Authentication framework, the Mail Transfer System would be consituting the <code>mta</code> service. The sub systems would be called <code>smtp</code>, <code>queue</code>, and <code>deliver</code>.</p>
+<p>Thus the SMTP server daemon would be represented by a user for the <code>mta:smtp</code> Service. queueing with <code>mta:queue</code>, and delivery with <code>mta:deliver</code>.</p>
+<h2>Implementation</h2>
+<p>The implementation in Sling of the <em>Service Authentication</em> concept described above consists of three parts:</p>
+<h3><code>ServiceUserMapper</code></h3>
+<p>The first part is a new OSGi Service <code>ServiceUserMapper</code>. The <code>ServiceUserMapper</code> service allows for mapping <em>Service IDs</em> comprised of the <em>Service Names</em> defined by the providing bundles and optional <em>Subservice Name</em> to ResourceResolver and/or JCR Repository user IDs. This mapping is configurable such that system administrators are in full control of assigning users to services.</p>
+<p>The <code>ServiceUserMapper</code> defines the following API:</p>
+<h1>!java</h1>
+<p>String getServiceUserID(Bundle bundle, String subServiceName);</p>
+<p>The implementation uses two fallbacks in case no mapping can be found for the given subServiceName</p>
+<ol>
+  <li>Use user mapping for the serviceName only (not considering subServiceName)</li>
+  <li>Use default user (if one is configured).</li>
+</ol>
+<p>In addition a service named <code>ServiceUserMapped</code> is registered for each bundle and subservice name for which a service user mapping is configured (<a href="https://issues.apache.org/jira/browse/SLING-4312">SLING-4312</a>). By explicitly defining a (static) reference towards <code>ServiceUserMapped</code> one can defer starting the service until that service user mapping is available.</p>
+<h3><code>ResourceResolverFactory</code></h3>
+<p>The second part is support for service access to the Resource Tree. To this avail, the <code>ResourceResolverFactory</code> service is enhanced with a new factory method</p>
+<h1>!java</h1>
+<p>ResourceResolver getServiceResourceResolver(Map&lt;String, Object&gt; authenticationInfo) throws LoginException;</p>
+<p>This method allows for access to the resource tree for services where the service bundle is the bundle actually using the <code>ResourceResolverFactory</code> service. The optional Subservice Name may be provided as an entry in the <code>authenticationInfo</code> map.</p>
+<p>In addition to having new API on the <code>ResourceResolverFactory</code> service to be used by services, the <code>ResourceProviderFactory</code> service is updated with support for Service Authentication: Now new API is required, though but additional properties are defined to convey the service to authenticate for.</p>
+<p>The default implementation leverages <code>ServiceUserMapper.getServiceUserID()</code> to resolve the right user id and throws a <code>LoginException</code> in case no mapping has been setup (and none of the fallbacks returned a user id != <code>null</code> either).</p>
+<h3><code>SlingRepository</code></h3>
+<p>The third part is an extension to the <code>SlingRepository</code>service interface to support JCR Repository access for services:</p>
+<h1>!java</h1>
+<p>Session loginService(String subServiceName, String workspace) throws LoginException, RepositoryException;</p>
+<p>This method allows for access to the JCR Repository for services where the service bundle is the bundle actually using the <code>SlingRepository</code> service. The additional Subservice Name may be provided with the <code>subServiceName</code> parameter.</p>
+<h2>Configuration</h2>
+<h3>Service User Mappings</h3>
+<p>For each service/subservice name combination an according mapping needs to be provided. The mapping binds a service name/subservice name to a JCR system user. This is configured through an OSGi configuration for the factory configuration with PID <code>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended</code> <a href="https://issues.apache.org/jira/browse/SLING-3578">SLING-3578</a>. There you can set one configuration property named <code>user.mapping</code> getting a String array as value where each entry must stick to the following format:</p>
+<p><service-name>[:<subservice-name>]=<authorizable id of a JCR system user>]</p>
+<p>The according user must exist at the point in time where <code>ResourceResolverFactory.getServiceResourceResolver(...)</code> or <code>SlingRepository.loginService(...)</code> is called. If you rely on one of those methods in your <code>activate</code> method of an OSGi component you should make sure that you defer starting your OSGi component until the according service user mapping is in place. For that you can reference the OSGi service <code>ServiceUserMapped</code> (<a href="https://issues.apache.org/jira/browse/SLING-4312">SLING-4312</a>), optionally with a target filter on property <code>subServiceName</code> (in case such a subservice name is used). The service <code>ServiceUserMapped</code> does not expose any methods but is only a marker interface exclusively used to defer starting of other OSGi components. However this waits only for the mapping configuration to be available, it does not wait for the service user itself to be available.</p>
+<p>Example OSGi DS Component</p>
+<p>:::java @Component( reference = { // this waits with the activation of this component until a service user mapping with the service name = current bundle's id and the sub service name 'my-subservice-name' is available. // you can leave out "target" if the sub service name is not used. // Please note that this only waits for the mapping to be available, it does not wait for the service user itself to be available! @Reference(name ="scriptsServiceUser", target="(subServiceName=my-subservice-name)", service=ServiceUserMapped.class) } ) class MyComponent { }</p>
+<p>There is a default mapping applied if no OSGi configuration is available for the mapping. The default is: "serviceuser--" + bundleId [ + "--" + subservice-name]. Please note, that these default mappings are not represented as a ServiceUserMapped service and therefore the above mentioned reference does not work.</p>
+<h2>Deprecation of administrative authentication</h2>
+<p>Originally the <code>ResourceResolverFactory.getAdministrativeResourceResolver</code> and <code>SlingRepository.loginAdministrative</code> methods have been defined to provide access to the resource tree and JCR Repository. These methods proved to be inappropriate because they allow for much too broad access.</p>
+<p>Consequently these methods are being deprecated and will be removed in future releases of the service implementations.</p>
+<p>The following methods are deprecated:</p>
+<ul>
+  <li><code>ResourceResolverFactory.getAdministrativeResourceResolver</code></li>
+  <li><code>ResourceProviderFactory.getAdministrativeResourceProvider</code></li>
+  <li><code>SlingRepository.loginAdministrative</code></li>
+</ul>
+<p>The implementations we have in Sling's bundle will remain implemented in the near future. But there will be a configuration switch to disable support for these methods: If the method is disabled, a <code>LoginException</code> is always thrown from these methods. The JavaDoc of the methods is extended with this information.</p>
+<h3>Whitelisting bundles for administrative login</h3>
+<p>In order to be able to manage few (hopefully legit) uses of the above deprecated methods, a whitelisting mechanism was introduced with <a href="https://issues.apache.org/jira/browse/SLING-5135">SLING-5153</a> (*JCR Base 2.4.2*).</p>
+<p>The recommended way to whitelist a bundle for administrative login is via a <em>whitelist fragment configuration</em>. It can be created as an OSGi factory configuration with the factoryPID <code>org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment</code>. E.g. a typical configuration file might be called <code>org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-myapp.config</code> and could look as follows:</p>
+<p>whitelist.name="myapp" whitelist.bundles=[ "com.myapp.core", "com.myapp.commons" ]</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Type </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>whitelist.name</code> </td>
+      <td>String </td>
+      <td><code>[unnamed]</code> </td>
+      <td>Purely informational property that allows easy identification of different fragments. </td>
+    </tr>
+    <tr>
+      <td><code>whitelist.bundles</code> </td>
+      <td>String[] </td>
+      <td>[] </td>
+      <td>An array of bundle symbolic names that should be allowed to make use of the administrative login functionality. </td>
+    </tr>
+  </tbody>
+</table>
+<p>All configured whitelist fragments are taken into account. This makes it easy to separate whitelists for different application layers and purposes.</p>
+<p>For example, some Sling bundles need to be whitelisted, which could be done in a whitelist fragment named <code>sling</code>. In addition <code>myapp</code> adds a whitelist fragment called <code>myapp</code>. For integration tests and additional whitelist fragment <code>myapp-integration-testing</code> may be added.</p>
+<p>Furthermore, there is a global configuration with PID <code>org.apache.sling.jcr.base.internal.LoginAdminWhitelist</code>, which should only be used in exceptional cases. It has a switch to turn administrative login on globally (<code>whitelist.bypass</code>) and it allows supplying a regular expression to whitelist matching bundle symbolic names (<code>whitelist.bundles.regexp</code>).</p>
+<p>The regular expression is most useful for running PaxExam based tests, where bundle symbolic names follow a set pattern but have randomly generated parts.</p>
+<p>Example: to whitelist all bundles generated by PaxExam a configuration file named <code>org.apache.sling.jcr.base.internal.LoginAdminWhitelist.config</code> might look as follows:</p>
+<p>whitelist.bypass=B"false" whitelist.bundles.regexp="^PAXEXAM.*$"</p>
+<p>The configuration PID is <code>org.apache.sling.jcr.base.internal.LoginAdminWhitelist</code>. It supports the following configuration properties.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Type </th>
+      <th>Default </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>whitelist.bypass</code> </td>
+      <td>Boolean </td>
+      <td>false </td>
+      <td>Allow all bundles to use administrative login. This is <strong>NOT</strong> recommended for production and warnings will be logged. </td>
+    </tr>
+    <tr>
+      <td><code>whitelist.bundles.regexp</code> </td>
+      <td>String </td>
+      <td>"" </td>
+      <td>A regular expression that whitelists all matching bundle symbolic names. This is <strong>NOT</strong> recommended for production and warnings will be logged. </td>
+    </tr>
+  </tbody>
+</table></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/servlets.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/servlets.html b/documentation/the-sling-engine/servlets.html
new file mode 100644
index 0000000..0e50baf
--- /dev/null
+++ b/documentation/the-sling-engine/servlets.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Servlets and Scripts</h1></header><p>[TOC]</p>
+<p>See also <a href="/documentation/the-sling-engine/url-to-script-resolution.html">URL to Script Resolution</a> which explains how Sling maps URLs to a script or and servlet.</p>
+<h2>Servlet Registration</h2>
+<p>Servlets can be registered as OSGi services. The following service reference properties are evaluated for Servlets defined as OSGi services of type <code>javax.servlet.Servlet</code> (all those property names are defined in <code>org.apache.sling.api.servlets.ServletResolverConstants</code> (since API 2.15.2) or <code>org.apache.sling.servlets.resolver.internal.ServletResolverConstants</code> (before API 2.15.2)):</p>
+<table>
+  <thead>
+    <tr>
+      <th>Name </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>sling.servlet.paths</code> </td>
+      <td>A list of absolute paths under which the servlet is accessible as a Resource. The property value must either be a single String, an array of Strings or a Vector of Strings.<br>A servlet using this property might be ignored unless its path is included in the <em>Execution Paths</em> (<code>servletresolver.paths</code>) configuration setting of the <code>SlingServletResolver</code> service. Either this property or the <code>sling.servlet.resourceTypes</code> property must be set, or the servlet is ignored. If both are set, the servlet is registered using both ways.<br>Binding resources by paths is discouraged, see <a href="#caveats-when-binding-servlets-by-path">caveats when binding servlets by path</a> below. </td>
+    </tr>
+    <tr>
+      <td><code>sling.servlet.resourceTypes</code> </td>
+      <td>The resource type(s) supported by the servlet. The property value must either be a single String, an array of Strings or a Vector of Strings. Either this property or the <code>sling.servlet.paths</code> property must be set, or the servlet is ignored. If both are set, the servlet is registered using both ways. </td>
+    </tr>
+    <tr>
+      <td><code>sling.servlet.selectors</code> </td>
+      <td>The request URL selectors supported by the servlet. The selectors must be configured as they would be specified in the URL that is as a list of dot-separated strings such as <em>print.a4</em>. The property value must either be a single String, an array of Strings or a Vector of Strings. This property is only considered for the registration with <code>sling.servlet.resourceTypes</code>. </td>
+    </tr>
+    <tr>
+      <td><code>sling.servlet.extensions</code> </td>
+      <td>The request URL extensions supported by the servlet for requests. The property value must either be a single String, an array of Strings or a Vector of Strings. This property is only considered for the registration with <code>sling.servlet.resourceTypes</code>. </td>
+    </tr>
+    <tr>
+      <td><code>sling.servlet.methods</code> </td>
+      <td>The request methods supported by the servlet. The property value must either be a single String, an array of Strings or a Vector of Strings. This property is only considered for the registration with <code>sling.servlet.resourceTypes</code>. If this property is missing, the value defaults to GET and HEAD, regardless of which methods are actually implemented/handled by the servlet.</td>
+    </tr>
+    <tr>
+      <td><code>sling.servlet.prefix</code> </td>
+      <td>The prefix or numeric index to make relative paths absolute. If the value of this property is a number (int), it defines the index of the search path entries from the resource resolver to be used as the prefix. The defined search path is used as a prefix to mount this servlet. The number can be -1 which always points to the last search entry. If the specified value is higher than than the highest index of the search paths, the last entry is used. The index starts with 0. If the value of this property is a string and parseable as a number, the value is treated as if it would be a number. If the value of this property is a string starting with "/", this value is applied as a prefix, regardless of the configured search paths! If the value is anything else, it is ignored. If this property is not specified, it defaults to the default configuration of the sling servlet resolver. </td>
+    </tr>
+  </tbody>
+</table>
+<p>A <code>SlingServletResolver</code> listens for <code>Servlet</code> services and - given the correct service registration properties - provides the servlets as resources in the (virtual) resource tree. Such servlets are provided as <code>ServletResource</code> instances which adapt to the <code>javax.servlet.Servlet</code> class.</p>
+<p>For a Servlet registered as an OSGi service to be used by the Sling Servlet Resolver, either one or both of the <code>sling.servlet.paths</code> or the <code>sling.servlet.resourceTypes</code> service reference properties must be set. If neither is set, the Servlet service is ignored.</p>
+<p>Each path to be used for registration - either from the <code>sling.servlet.paths</code> property or constructed from the other <code>sling.servlet.*</code> properties - must be absolute. Any relative path is made absolute by prefixing it with a root path. This prefix may be set with the <code>sling.servlet.prefix</code> service registration property. If this property is not set, the first entry in the <code>ResourceResolver</code> search path for the <code>ResourceResolver.getResource(String)</code> method is used as the prefix. If this entry cannot be derived, a simpe slash - <code>/</code> - is used as the prefix.</p>
+<p>If <code>sling.servlet.methods</code> is not specified, the servlet is only registered for handling GET and HEAD requests. Make sure to list all methods you want to be handled by this servlet.</p>
+<h3>Caveats when binding servlets by path</h3>
+<p>Binding servlets by paths has several disadvantages when compared to binding by resource types, namely:</p>
+<ul>
+  <li>path-bound servlets cannot be access controlled using the default JCR repository ACLs</li>
+  <li>path-bound servlets can only be registered to a path and not a resource type (i.e. no suffix handling)</li>
+  <li>if a path-bound servlet is not active, e.g. if the bundle is missing or not started, a POST might result in unexpected results. usually creating a node at /bin/xyz which subsequently overlays the servlets path binding</li>
+  <li>the mapping is not transparent to a developer looking just at the repository</li>
+</ul>
+<p>Given these drawbacks it is strongly recommended to bind servlets to resource types rather than paths.</p>
+<h3>Registering a Servlet using Java Annotations</h3>
+<p>If you are working with the default Apache Sling development stack you can either use</p>
+<ul>
+  <li><a href="https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/annotations/package-summary.html">OSGi DS annotations</a> (introduced with DS 1.2/OSGi 5, properly supported since <a href="https://github.com/bndtools/bndtools/wiki/Changes-in-3.0.0">bnd 3.0</a>, being used in <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html">maven-bundle-plugin 3.0.0</a>) or</li>
+  <li>Generic Felix SCR or Sling-specific <code>@SlingServlet</code> annotations from <a href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin.html">Apache Felix Maven SCR Plugin</a> to register your Sling servlets:</li>
+</ul>
+<p>The following examples show example code how you can register Servlets with Sling</p>
+<ol>
+  <li>OSGi DS annotations (recommended)</li>
+</ol>
+<p>:::java @Component( service = { Servlet.class }, property = { SLING_SERVLET_RESOURCE_TYPES + "=/apps/my/type" SLING_SERVLET_METHODS + "=GET", SLING_SERVLET_EXTENSIONS + "=html", SLING_SERVLET_SELECTORS + "=hello", } ) public class MyServlet extends SlingSafeMethodsServlet {</p>
+<p>@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { ... } }</p>
+<p>Custom OSGi DS annotations (e.g. for Sling servlets) are not yet supported by the OSGi spec (and therefore by bnd), but this is supposed to be fixed with DS 1.4 (OSGi 7), see also <a href="https://issues.apache.org/jira/browse/FELIX-5396">FELIX-5396</a>.</p>
+<ol>
+  <li>The <code>@SlingServlet</code> annotation (evaluated by maven-scr-plugin)</li>
+</ol>
+<p>:::java @SlingServlet( resourceTypes = "/apps/my/type", selectors = "hello", extensions = "html", methods = "GET") public class MyServlet extends SlingSafeMethodsServlet {</p>
+<p>@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { ... } }</p>
+<h3>Automated tests</h3>
+<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/">launchpad/test-services</a> module contains test servlets that use various combinations of the above properties.</p>
+<p>The <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/">launchpad/integration-tests</a> module contains a number of tests (like the [ExtensionServletTest|http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolution/ExtensionServletTest.java] for example) that verify the results.</p>
+<p>Such tests run as part of our continuous integration process, to demonstrate and verify the behavior of the various servlet registration mechanisms, in a way that's guaranteed to be in sync with the actual Sling core code. If you have an idea for additional tests, make sure to let us know!</p>
+<h3>Example: Registration by Path</h3>
+<p>sling.servlet.paths = [ "/libs/sling/sample/html", "/libs/sling/sample/txt" ] sling.servlet.selectors = [ "img" ] sling.servlet.extensions = [ "html", "txt", "json" ]</p>
+<p>A Servlet service registered with these properties is registered under the following paths:</p>
+<ul>
+  <li><code>/libs/sling/sample/html</code></li>
+  <li><code>/libs/sling/sample/txt</code></li>
+</ul>
+<p>The registration properties <code>sling.servlet.selectors</code> and <code>sling.servlet.extensions</code> <em>are ignored</em> because the servlet is registered only by path (only <code>sling.servlet.paths</code> property is set).</p>
+<h3>Example: Registration by Resource Type etc.</h3>
+<p>sling.servlet.resourceTypes = [ "sling/unused" ] sling.servlet.selectors = [ "img", "tab" ] sling.servlet.extensions = [ "html", "txt", "json" ]</p>
+<p>A Servlet service registered with these properties is registered for the following resource types:</p>
+<ul>
+  <li><code>&lt;prefix&gt;/sling/unused/img/html</code></li>
+  <li><code>&lt;prefix&gt;/sling/unused/img/txt</code></li>
+  <li><code>&lt;prefix&gt;/sling/unused/img/json</code></li>
+  <li><code>&lt;prefix&gt;/sling/unused/tab/html</code></li>
+  <li><code>&lt;prefix&gt;/sling/unused/tab/txt</code></li>
+  <li><code>&lt;prefix&gt;/sling/unused/tab/json</code></li>
+</ul>
+<p>As explained the Servlet is registered for each permutation of the resource types, selectors and extension. See above at the explanation of <code>sling.servlet.prefix</code> how <code>&lt;prefix&gt;</code> is defined.</p>
+<p>It is more common to register for absolute resource types or at least explicitly define <code>sling.servlet.prefix</code> as well, because otherwise you are in most cases not sure under which absolute path the Servlet is registered (and therefore by which other paths it might get overwritten).</p>
+<h3>Servlet Lifecycle Issues</h3>
+<p>The Servlet API specification states the following with respect to the life cycle of Servlets:</p>
+<blockquote>
+  <p>The servlet container calls the init method exactly once after  instantiating the servlet.</p>
+</blockquote>
+<p>This works perfectly in a regular servlet container which both instantiates and initializes the servlets. With Sling the tasks of instantiation and initialization are split:</p>
+<ul>
+  <li>The provider of the Servlet service takes care of creating the servlet instance</li>
+  <li>The Sling Servlet Resolver picks up the Servlet services and initializes and destroys them as needed</li>
+</ul>
+<p>So Sling has not way of making sure a Servlet is only initialized and destroyed once in the life time of the Servlet object instance.</p>
+<p>The provider of the Servlet service on the other can cope with this situation by making sure to drop the servlet instance once it is destroyed. The mechanism helping the provider here is the OSGi Service Factory.</p>
+<h2>Scripts are Servlets</h2>
+<p>The Sling API defines a <code>SlingScript</code> interface which is used to represent (executable) scripts inside of Sling. This interface is implemented in the <code>scripting/core</code> bundle in the <code>DefaultSlingScript</code> class which also implements the <code>javax.servlet.Servlet</code>.</p>
+<p>To further simplify the access to scripts from the Resource tree, the <code>scripting/core</code> bundle registers an <code>AdapterFactory</code> to adapt Resources to Scripts and Servlets (the <code>SlingScriptAdapterFactory</code>). In fact the adapter factory returns instances of the <code>DefaultSlingScript</code> class for both Scripts and Servlets.</p>
+<p>From the perspective of the Servlet resolver, scripts and servlets are handled exactly the same. In fact, internally, Sling only handles with Servlets, whereas scripts are packed inside a Servlet wrapping and representing the script.</p>
+<h2>Default Servlet(s)</h2>
+<p>As explained in the Resolution Process section above, a default Servlet is selected if no servlet (or script) for the current resource type can be found. To make the provisioning of a default Servlet as versatile as provisioning per resource type Servlets (or scripts), the default Servlet is selected with just a special resource type <code>sling/servlet/default</code>.</p>
+<p>The actual Servlet or Script called as the default Servlet is resolved exactly the same way as for any resource type. That is, also for the default Servlet selection, the request selectors and extension or method are considered. Also, the Servlet may be a Servlet registered as an OSGi service or it may be a Script stored in the repository or provided by any bundle.</p>
+<p>Finally, if not even a registered default Servlet may be resolved for the request, because none has been registered, the <code>servlets/resolver</code> bundle provides a fall back the <code>DefaultServlet</code> with the following functionality:</p>
+<ul>
+  <li>If an <code>NonExistingResource</code> was created for the request the <code>DefaultServlet</code> sends a 404 (Not Found)</li>
+  <li>Otherwise the <code>DefaultServlet</code> sends a 500 (Internal Server Error), because normally at least a <code>NonExistingResource</code> should be created</li>
+</ul>
+<h2>OptingServlet interface</h2>
+<p>If a registered servlet implements the OptingServlet interface, Sling uses that servlet's <code>accepts(SlingHttpServletRequest request)</code> method to refine the servlet resolution process.</p>
+<p>In this case, the servlet is only selected for processing the current request if its <code>accept</code> method returns true.</p>
+<p>While an opting servlet seems to be a nice way of picking the right servlet to process the request, the use of an opting servlet is not recommended: the main reason is that it complicates the request processing, makes it less transparent what is going on during a request and prevents optimizations like caching the script resolution in an optimal manner. The other static options are usually sufficient for all use cases.</p>
+<h2>Error Handler Servlet(s) or Scripts</h2>
+<p>Error handling support is described on the <a href="/documentation/the-sling-engine/errorhandling.html">Errorhandling</a> page.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/sling-api-crud-support.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/sling-api-crud-support.html b/documentation/the-sling-engine/sling-api-crud-support.html
new file mode 100644
index 0000000..d86f34e
--- /dev/null
+++ b/documentation/the-sling-engine/sling-api-crud-support.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling API CRUD Support</h1></header><p>[TOC]</p>
+<h2>Apache Sling API Support</h2>
+<p>As of version 2.3.0, the Sling API provides full Create Read Update Delete (CRUD) features. CRUD support is provided by the addition of the following methods to the ResourceResolver:</p>
+<ul>
+  <li><a href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#delete-org.apache.sling.api.resource.Resource-">void delete(Resource resource) throws PersistenceException</a></li>
+  <li><a href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#create-org.apache.sling.api.resource.Resource-java.lang.String-java.util.Map-">Resource create(Resource parent, String name, Map&lt;String, Object&gt; properties) throws PersistenceException</a></li>
+  <li><a href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#revert--">void revert()</a></li>
+  <li><a href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#commit--">void commit() throws PersistenceException</a></li>
+  <li><a href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#hasChanges--">boolean hasChanges()</a></li>
+  <li><a href="https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolver.html#refresh--">void refresh()</a></li>
+</ul>
+<p>Which provide the ability to create and delete resources as well as the addition of the ModifiableValueMap interface which is similar to the ValueMap interface, but allows for updating properties on a resource.</p>
+<h2>Comparing Sling API CRUD to Sling Post Servlet</h2>
+<p>Here are some examples of common operations performed using the Sling Post Servlet and Sling API CRUD support. Note, the examples are derived from the <a href="http://dev.day.com/content/ddc/blog/2008/07/cheatsheet/_jcr_content/images/cheatsheet/back.png">SlingPostServlet Cheatsheet</a>.</p>
+<h3>Updating a Property</h3>
+<p>Update /myresource, setting the title and body:</p>
+<p><strong>Sling Post Servlet</strong></p>
+<form action="/myresource" method="POST">
+<input type="text" name="title">
+<textarea name="body">
+</form>
+<p><strong>Sling API CRUD</strong></p>
+<p>Resource myResource = resourceResolver.getResource("/myresource"); ModifiableValueMap properties = myNode.adaptTo(ModifiableValueMap.class); properties.put("title", {TITLE}); properties.put("body", {BODY}); resourceResolver.commit();</p>
+<h3>Create New Resource</h3>
+<p>Create a new resource below /myresource</p>
+<p><strong>Sling Post Servlet</strong></p>
+<form action="/myresource/" method="POST">
+<input type="text" name="dummy">
+</form>
+<p><strong>Sling API CRUD</strong></p>
+<p>Resource myResource = resourceResolver.getResource("/myresource"); Map&lt;String,Object&gt; properties = new HashMap&lt;String,Object&gt;(); properties.put("jcr:primaryType", "nt:unstructured"); properties.put("sling:resourceType", "myapp/components/mytype"); Resource dummy = resourceResolver.create(myResource, "dummy", properties); resourceResolver.commit();</p>
+<h3>Remove a Property</h3>
+<p>Remove the property title</p>
+<p><strong>Sling Post Servlet</strong></p>
+<form action="/myresource" method="POST">
+<input type="hidden" name="title@Delete">
+</form>
+<p><strong>Sling API CRUD</strong></p>
+<p>Resource myResource = resourceResolver.getResource("/myresource"); ModifiableValueMap properties = myResource.adaptTo(ModifiableValueMap.class); properties.remove("title"); resourceResolver.commit();</p>
+<h3>Copy a Resource</h3>
+<p>Copy the resource /myresource to /myresource2</p>
+<p><strong>Sling Post Servlet</strong></p>
+<form action="/myresource" method="POST">
+<input type="hidden" name=":operation" value="copy">
+<input type="hidden" name=":dest" value="/myresource2">
+<input type="hidden" name=":replace" value="true">
+</form>
+<p><strong>Sling API CRUD</strong></p>
+<p>Map&lt;String,Object&gt; properties = myResource.adaptTo(ValueMap.class); Resource myResource2 = resourceResolver.create(null, "myresource2", properties); resourceResolver.commit();</p>
+<h3>Move a Resource</h3>
+<p>Move the resource /myresource2 to /myresource3</p>
+<p><strong>Sling Post Servlet</strong></p>
+<form action="/myresource2" method="POST">
+<input type="hidden" name=":operation" value="move">
+<input type="hidden" name=":dest" value="/myresource3">
+</form>
+<p><strong>Sling API CRUD</strong></p>
+<p>Resource myResource2 = resourceResolver.getResource("/myresource2"); Map&lt;String,Object&gt; properties = myResource2.adaptTo(ValueMap.class); Resource myResource3 = resourceResolver.create(null, "myresource3", properties); resourceResolver.delete(myResource2); resourceResolver.commit();</p>
+<h3>Setting non-String Value</h3>
+<p>Set the property date to a particular date</p>
+<p><strong>Sling Post Servlet</strong></p>
+<form action="/myresource3" method="POST">
+<input type="text" name="date" value="2008-06-13T18:55:00">
+<input type="hidden" name="date@TypeHint" value="Date">
+</form>
+<p><strong>Sling API CRUD</strong></p>
+<p>Resource myResource3 = resourceResolver.getResource("/myresource3"); Calendar calendar = [SOME_DATE]; ModifiableValueMap properties = myResource3.adaptTo(ModifiableValueMap.class); properties.put("date", calendar); resourceResolver.commit();</p>
+<h3>Delete a Resource</h3>
+<p>Delete the resource /myresource</p>
+<p><strong>Sling Post Servlet</strong></p>
+<form action="/myresource" method="POST">
+<input type="hidden" name=":operation" value="delete">
+</form>
+<p><strong>Sling API CRUD</strong></p>
+<p>Resource myResource = resourceResolver.getResource("/myresource"); resourceResolver.delete(myResource); resourceResolver.commit();</p>
+<h2>Value Class Support</h2>
+<div class="info">
+Please note, this information is specific to the Sling JCR Resource implementation provided by the Apache Sling project.  Other implementations may have different value class support.
+</div>
+<p>The Classes implementing the following types are supported directly when setting properties:</p>
+<ul>
+  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html">Calendar</a></li>
+  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html">InputStream</a></li>
+  <li><a href="http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/javax/jcr/Node.html">Node</a></li>
+  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html">BigDecimal</a></li>
+  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html">Long</a></li>
+  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Short.html">Short</a></li>
+  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</a></li>
+  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Number.html">Number</a></li>
+  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html">Boolean</a></li>
+  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html">String</a></li>
+</ul>
+<p>As well as the corresponding primitive types. Any object which implements the Serializable interface will be serialized and the result of the serialization will be saved as a binary value for the property.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/the-sling-engine/sling-properties.html
----------------------------------------------------------------------
diff --git a/documentation/the-sling-engine/sling-properties.html b/documentation/the-sling-engine/sling-properties.html
new file mode 100644
index 0000000..0ac338a
--- /dev/null
+++ b/documentation/the-sling-engine/sling-properties.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Well-known Sling Properties</h1></header><p>This table lists properties which have known functionality in the OSGi and Sling frameworks.</p>
+<p>With the exception of the Sling setup properties (<code>sling.home</code>, <code>sling.launchpad</code>, and <code>sling.properties</code>) all properties can be set on the command line using the <code>-D</code> command line option or in the <code>sling.properties</code> file. Properties defined on the command line or in the <code>web.xml</code> file always overwrite properties in the <code>sling.properties</code> file.</p>
+<p>[TOC]</p>
+<h2>Sling Setup Properties</h2>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Default Value </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>sling.home</code> </td>
+      <td><code>sling</code> </td>
+      <td>Path to the main Sling Directory; relative path is resolved against current working directory as defined in the <code>user.dir</code> system property. Can also be set with the <code>-c</code> command line option. </td>
+      <td>Launchpad </td>
+    </tr>
+    <tr>
+      <td><code>sling.launchpad</code> </td>
+      <td><code>${sling.home}</code> </td>
+      <td>Location for the Sling launchpad JAR file and the startup folder containing bundles to be installed by the Bootstrap Installer. Can also be set with the <code>-i</code> command line option. </td>
+      <td>Launchpad </td>
+    </tr>
+    <tr>
+      <td><code>sling.properties</code> </td>
+      <td><code>${sling.home}/sling.properties</code> </td>
+      <td>Path to the <code>sling.properties</code> file; relative path is resolved against <code>${sling.home}</code> </td>
+      <td>Launchpad </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Server Control Port Properties</h2>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Default Value </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>sling.control.socket</code> </td>
+      <td><code>127.0.0.1:0</code> </td>
+      <td>Specification of the control port. Can also be set with the <code>-j</code> command line option. This property is only used by the Standalone Sling Application. </td>
+      <td>Launchpad </td>
+    </tr>
+  </tbody>
+</table>
+<p>| <code>sling.control.action</code> | -- | Action to execute. This is the same as specifying <code>start</code>, <code>status</code>, or <code>stop</code> on the command line. This property is only used by the Standalone Sling Application. | Launchpad |</p>
+<h2>Logging Configuration</h2>
+<p>Logging configuration defined by these properties sets up initial configuration for the Sling Commons Log bundle. This configuration is used as long as there is no configuration from the Configuration Admin Service for the service PID <code>org.apache.sling.commons.log.LogManager</code>.</p>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Default Value </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>org.apache.sling.commons.log.level</code> </td>
+      <td><code>INFO</code> </td>
+      <td>Sets the initial logging level of the root logger. This may be any of the defined logging levels <code>DEBUG</code>, <code>INFO</code>, <code>WARN</code>, or <code>ERROR</code>. This property can also be set with the <code>-l</code> command line option. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file</code> </td>
+      <td><code>${sling.home}/logs/error.log</code> </td>
+      <td>Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to System.out. This property can also be set with the <code>-f</code> command line option. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file.number</code> </td>
+      <td><code>5</code> </td>
+      <td>The number of rotated files to keep. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.file.size</code> </td>
+      <td><code>&#39;.&#39;yyyy-MM-dd</code> </td>
+      <td>Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section <a href="http://sling.apache.org/site/logging.html#Logging-LogFileRotation">Log File Rotation</a> for full details on log file rotation. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.sling.commons.log.pattern</code> </td>
+      <td><code>{0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}] {3} {5}</code> </td>
+      <td>The MessageFormat pattern to use for formatting log messages with the root logger. </td>
+    </tr>
+    <tr>
+      <td>org.apache.sling.commons.log.julenabled </td>
+      <td><code>false</code> </td>
+      <td>Enables the java.util.logging support. </td>
+    </tr>
+  </tbody>
+</table>
+<p>See <a href="http://sling.apache.org/site/logging.html">Logging</a> for full information on configuring the Sling Logging system.</p>
+<h2>Http Service Properties</h2>
+<table>
+  <thead>
+    <tr>
+      <th>Property </th>
+      <th>Default Value </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>org.apache.felix.http.context_path</code> </td>
+      <td><code>/</code> </td>
+      <td>The servlet context path for the Http Service of the embedded servlet container. This property requires support by the Http Service bundle. </td>
+    </tr>
+    <tr>
+      <td><code>org.apache.felix.http.host</code> </td>
+      <td><code>0.0.0.0</code> </td>
+      <td>The host interface to bind the HTTP Server to. This property requires support by the Http Service bundle. </td>
+    </tr>
+    <tr>
+      <td><code>org.osgi.service.http.port</code> </td>
+      <td>8080 </td>
+      <td>The port to listen on for HTTP requests. This property requires support by the Http Service bundle. </td>
+    </tr>
+  </tbody>
+</table></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[11/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/obr/sling.xml
----------------------------------------------------------------------
diff --git a/content/obr/sling.xml b/content/obr/sling.xml
deleted file mode 100644
index e190e59..0000000
--- a/content/obr/sling.xml
+++ /dev/null
@@ -1,18233 +0,0 @@
-<repository name='Apache Sling Release Repository' lastmodified='20161031034538.509'>
-  <resource id='org.apache.sling.extensions.classloader-leak-detector/1.0.0' symbolicname='org.apache.sling.extensions.classloader-leak-detector' presentationname='Adobe Sling ClassLoader Leak Detector' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.extensions.classloader-leak-detector/1.0.0/org.apache.sling.extensions.classloader-leak-detector-1.0.0.jar' version='1.0.0'>
-    <description>Provides a web console configuration printer to provide details around classloader leaks</description>
-    <size>18203</size>
-    <documentation>http://sling.apache.org</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.extensions.classloader-leak-detector'/>
-      <p n='presentationname' v='Adobe Sling ClassLoader Leak Detector'/>
-      <p n='version' t='version' v='1.0.0'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=org.osgi.framework)(version&gt;=1.6.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.framework;version="[1.6,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.framework.wiring)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.framework.wiring;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.util.tracker)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.util.tracker;version="[1.5,2)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=J2SE-1.5))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=J2SE-1.5))</require>
-  </resource>
-  <resource id='org.apache.sling.adapter/2.1.6' symbolicname='org.apache.sling.adapter' presentationname='Apache Sling Adapter Manager Implementation' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.adapter-2.1.6.jar' version='2.1.6'>
-    <description>Bundle implementing the AdapterManager and provides a convenience        implementation of the Adaptable interface to make use of this        AdapterManager.</description>
-    <size>29894</size>
-    <documentation>http://sling.apache.org</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.adapter'/>
-      <p n='presentationname' v='Apache Sling Adapter Manager Implementation'/>
-      <p n='version' t='version' v='2.1.6'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.adapter'/>
-      <p n='version' t='version' v='2.1.0'/>
-      <p n='uses:' v='org.apache.sling.api.adapter'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.adapter)(version&gt;=2.2.0)(!(version&gt;=2.3.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.adapter;version="[2.2,2.3)"</require>
-    <require name='package' filter='(&amp;(package=javax.servlet))' extend='false' multiple='false' optional='false'>Import package javax.servlet</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.io)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.io;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.lang.builder)(version&gt;=2.5.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.lang.builder;version="[2.5,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.adapter)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.adapter;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.commons.json)(version&gt;=2.0.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.commons.json;version="[2.0,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.commons.osgi)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.commons.osgi;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.framework)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.framework;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.component)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.component;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.event)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.event;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.packageadmin)(version&gt;=1.2.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.packageadmin;version="[1.2,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.util.tracker)(version&gt;=1.3.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.util.tracker;version="[1.3,2)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=JavaSE-1.6))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=JavaSE-1.6))</require>
-  </resource>
-  <resource id='org.apache.sling.adapter/2.1.2' symbolicname='org.apache.sling.adapter' presentationname='Apache Sling Adapter Manager Implementation' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.adapter/2.1.2/org.apache.sling.adapter-2.1.2.jar' version='2.1.2'>
-    <description>Bundle implementing the AdapterManager and provides a convenience        implementation of the Adaptable interface to make use of this        AdapterManager.</description>
-    <size>26558</size>
-    <documentation>http://sling.apache.org</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.adapter'/>
-      <p n='presentationname' v='Apache Sling Adapter Manager Implementation'/>
-      <p n='version' t='version' v='2.1.2'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.adapter'/>
-      <p n='version' t='version' v='2.0.6'/>
-      <p n='uses:' v='org.apache.sling.api.adapter'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.adapter)(version&gt;=2.2.0)(!(version&gt;=2.3.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.adapter;version="[2.2,2.3)"</require>
-    <require name='package' filter='(&amp;(package=javax.servlet))' extend='false' multiple='false' optional='false'>Import package javax.servlet</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.io)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.io;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.lang.builder)(version&gt;=2.5.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.lang.builder;version="[2.5,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.commons.json)(version&gt;=2.0.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.commons.json;version="[2.0,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.commons.osgi)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.commons.osgi;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.framework)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.framework;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.component)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.component;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.event)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.event;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.util.tracker)(version&gt;=1.3.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.util.tracker;version="[1.3,2)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=J2SE-1.5))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=J2SE-1.5))</require>
-  </resource>
-  <resource id='org.apache.sling.adapter/2.1.4' symbolicname='org.apache.sling.adapter' presentationname='Apache Sling Adapter Manager Implementation' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.adapter/2.1.4/org.apache.sling.adapter-2.1.4.jar' version='2.1.4'>
-    <description>Bundle implementing the AdapterManager and provides a convenience        implementation of the Adaptable interface to make use of this        AdapterManager.</description>
-    <size>29037</size>
-    <documentation>http://sling.apache.org</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.adapter'/>
-      <p n='presentationname' v='Apache Sling Adapter Manager Implementation'/>
-      <p n='version' t='version' v='2.1.4'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.adapter'/>
-      <p n='version' t='version' v='2.1.0'/>
-      <p n='uses:' v='org.apache.sling.api.adapter'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.adapter)(version&gt;=2.2.0)(!(version&gt;=2.3.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.adapter;version="[2.2,2.3)"</require>
-    <require name='package' filter='(&amp;(package=javax.servlet))' extend='false' multiple='false' optional='false'>Import package javax.servlet</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.io)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.io;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.lang.builder)(version&gt;=2.5.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.lang.builder;version="[2.5,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.adapter)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.adapter;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.commons.json)(version&gt;=2.0.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.commons.json;version="[2.0,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.commons.osgi)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.commons.osgi;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.framework)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.framework;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.component)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.component;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.event)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.event;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.packageadmin)(version&gt;=1.2.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.packageadmin;version="[1.2,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.util.tracker)(version&gt;=1.3.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.util.tracker;version="[1.3,2)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=J2SE-1.5))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=J2SE-1.5))</require>
-  </resource>
-  <resource id='org.apache.sling.adapter/2.1.8' symbolicname='org.apache.sling.adapter' presentationname='Apache Sling Adapter Manager Implementation' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.adapter/2.1.8/org.apache.sling.adapter-2.1.8.jar' version='2.1.8'>
-    <description>Bundle implementing the AdapterManager and provides a convenience        implementation of the Adaptable interface to make use of this        AdapterManager.</description>
-    <size>30211</size>
-    <documentation>http://sling.apache.org</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.adapter'/>
-      <p n='presentationname' v='Apache Sling Adapter Manager Implementation'/>
-      <p n='version' t='version' v='2.1.8'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.adapter'/>
-      <p n='version' t='version' v='2.1.0'/>
-      <p n='uses:' v='org.apache.sling.api.adapter'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.adapter)(version&gt;=2.2.0)(!(version&gt;=2.3.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.adapter;version="[2.2,2.3)"</require>
-    <require name='package' filter='(&amp;(package=javax.servlet))' extend='false' multiple='false' optional='false'>Import package javax.servlet</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.io)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.io;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.lang.builder)(version&gt;=2.5.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.lang.builder;version="[2.5,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.adapter)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.adapter;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.commons.json)(version&gt;=2.0.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.commons.json;version="[2.0,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.commons.osgi)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.commons.osgi;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.framework)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.framework;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.component)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.component;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.event)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.event;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.packageadmin)(version&gt;=1.2.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.packageadmin;version="[1.2,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.util.tracker)(version&gt;=1.3.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.util.tracker;version="[1.3,2)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=JavaSE-1.6))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=JavaSE-1.6))</require>
-  </resource>
-  <resource id='org.apache.sling.api/2.9.0' symbolicname='org.apache.sling.api' presentationname='Apache Sling API' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.api/2.9.0/org.apache.sling.api-2.9.0.jar' version='2.9.0'>
-    <description>The Apache Sling API defines an extension to the Servlet        API 2.4 to provide access to content and unified access        to request parameters hiding the differences between the        different methods of transferring parameters from client        to server. Note that the Apache Sling API bundle does not        include the Servlet API but instead requires the API to        be provided by the Servlet container in which the Apache        Sling framework is running or by another bundle.</description>
-    <size>92496</size>
-    <documentation>http://sling.apache.org/site/sling-api.html</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.api'/>
-      <p n='presentationname' v='Apache Sling API'/>
-      <p n='version' t='version' v='2.9.0'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.adapter'/>
-      <p n='version' t='version' v='2.2.1'/>
-      <p n='uses:' v='javax.annotation'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.auth'/>
-      <p n='version' t='version' v='1.0.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet.http,org.apache.sling.api'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api'/>
-      <p n='version' t='version' v='2.3.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api.adapter,org.apache.sling.api.request,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.request'/>
-      <p n='version' t='version' v='2.4.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource'/>
-      <p n='version' t='version' v='2.8.0'/>
-      <p n='uses:' v='javax.annotation,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.adapter'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.scripting'/>
-      <p n='version' t='version' v='2.1.1'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api,org.apache.sling.api.request,org.apache.sling.api.resource,org.slf4j'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.security'/>
-      <p n='version' t='version' v='1.0.1'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.servlets'/>
-      <p n='version' t='version' v='2.1.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.wrappers'/>
-      <p n='version' t='version' v='2.5.0'/>
-      <p n='uses:' v='javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.request,org.apache.sling.api.resource'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=javax.servlet)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet;version=2.4</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http;version=2.4</require>
-    <require name='package' filter='(&amp;(package=javax.annotation))' extend='false' multiple='false' optional='false'>Import package javax.annotation</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=JavaSE-1.6))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=JavaSE-1.6))</require>
-  </resource>
-  <resource id='org.apache.sling.api/2.14.0' symbolicname='org.apache.sling.api' presentationname='Apache Sling API' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.api-2.14.0.jar' version='2.14.0'>
-    <description>The Apache Sling API defines an extension to the Servlet        API 2.4 to provide access to content and unified access        to request parameters hiding the differences between the        different methods of transferring parameters from client        to server. Note that the Apache Sling API bundle does not        include the Servlet API but instead requires the API to        be provided by the Servlet container in which the Apache        Sling framework is running or by another bundle.</description>
-    <size>115248</size>
-    <documentation>http://sling.apache.org/site/sling-api.html</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.api'/>
-      <p n='presentationname' v='Apache Sling API'/>
-      <p n='version' t='version' v='2.14.0'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.adapter'/>
-      <p n='version' t='version' v='2.2.1'/>
-      <p n='uses:' v='javax.annotation'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.auth'/>
-      <p n='version' t='version' v='1.0.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet.http,org.apache.sling.api'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api'/>
-      <p n='version' t='version' v='2.3.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api.adapter,org.apache.sling.api.request,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.request'/>
-      <p n='version' t='version' v='2.4.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource'/>
-      <p n='version' t='version' v='2.9.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.adapter'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.observation'/>
-      <p n='version' t='version' v='1.1.0'/>
-      <p n='uses:' v='javax.annotation'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.path'/>
-      <p n='version' t='version' v='1.1.0'/>
-      <p n='uses:' v='javax.annotation'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.runtime.dto'/>
-      <p n='version' t='version' v='1.0.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.runtime'/>
-      <p n='version' t='version' v='1.0.0'/>
-      <p n='uses:' v='org.apache.sling.api.resource.runtime.dto'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.scripting'/>
-      <p n='version' t='version' v='2.3.0'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api,org.apache.sling.api.request,org.apache.sling.api.resource,org.slf4j'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.security'/>
-      <p n='version' t='version' v='1.0.1'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.servlets'/>
-      <p n='version' t='version' v='2.1.2'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.wrappers'/>
-      <p n='version' t='version' v='2.5.0'/>
-      <p n='uses:' v='javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.request,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.spi.resource.provider'/>
-      <p n='version' t='version' v='1.0.1'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api.resource,org.apache.sling.api.resource.observation,org.apache.sling.api.resource.path'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=javax.servlet)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet;version=2.4</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http;version=2.4</require>
-    <require name='package' filter='(&amp;(package=javax.annotation))' extend='false' multiple='false' optional='false'>Import package javax.annotation</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api)(version&gt;=2.3.0)(!(version&gt;=2.4.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api;version="[2.3,2.4)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.adapter)(version&gt;=2.2.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.adapter;version="[2.2,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.request)(version&gt;=2.4.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.request;version="[2.4,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.9.0)(!(version&gt;=2.10.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource;version="[2.9,2.10)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource.observation)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource.observation;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource.path)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource.path;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource.runtime.dto)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource.runtime.dto;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.wrappers)(version&gt;=2.5.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.wrappers;version="[2.5,3)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=JavaSE-1.7))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=JavaSE-1.7))</require>
-  </resource>
-  <resource id='org.apache.sling.api/2.12.0' symbolicname='org.apache.sling.api' presentationname='Apache Sling API' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.api/2.12.0/org.apache.sling.api-2.12.0.jar' version='2.12.0'>
-    <description>The Apache Sling API defines an extension to the Servlet        API 2.4 to provide access to content and unified access        to request parameters hiding the differences between the        different methods of transferring parameters from client        to server. Note that the Apache Sling API bundle does not        include the Servlet API but instead requires the API to        be provided by the Servlet container in which the Apache        Sling framework is running or by another bundle.</description>
-    <size>114330</size>
-    <documentation>http://sling.apache.org/site/sling-api.html</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.api'/>
-      <p n='presentationname' v='Apache Sling API'/>
-      <p n='version' t='version' v='2.12.0'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api'/>
-      <p n='version' t='version' v='2.3.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api.adapter,org.apache.sling.api.request,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.adapter'/>
-      <p n='version' t='version' v='2.2.1'/>
-      <p n='uses:' v='javax.annotation'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.auth'/>
-      <p n='version' t='version' v='1.0.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet.http,org.apache.sling.api'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.request'/>
-      <p n='version' t='version' v='2.4.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource'/>
-      <p n='version' t='version' v='2.9.1'/>
-      <p n='uses:' v='javax.annotation,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.adapter'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.observation'/>
-      <p n='version' t='version' v='1.0.0'/>
-      <p n='uses:' v='javax.annotation'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.path'/>
-      <p n='version' t='version' v='1.0.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.runtime'/>
-      <p n='version' t='version' v='1.0.0'/>
-      <p n='uses:' v='org.apache.sling.api.resource.runtime.dto'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.runtime.dto'/>
-      <p n='version' t='version' v='1.0.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.scripting'/>
-      <p n='version' t='version' v='2.3.0'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api,org.apache.sling.api.request,org.apache.sling.api.resource,org.slf4j'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.security'/>
-      <p n='version' t='version' v='1.0.1'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.servlets'/>
-      <p n='version' t='version' v='2.1.2'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.wrappers'/>
-      <p n='version' t='version' v='2.5.0'/>
-      <p n='uses:' v='javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.request,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.spi.resource.provider'/>
-      <p n='version' t='version' v='1.0.1'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api.resource,org.apache.sling.api.resource.observation,org.apache.sling.api.resource.path'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=javax.servlet)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet;version=2.4</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http;version=2.4</require>
-    <require name='package' filter='(&amp;(package=javax.annotation))' extend='false' multiple='false' optional='false'>Import package javax.annotation</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api)(version&gt;=2.3.0)(!(version&gt;=2.4.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api;version="[2.3,2.4)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.adapter)(version&gt;=2.2.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.adapter;version="[2.2,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.request)(version&gt;=2.4.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.request;version="[2.4,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.9.0)(!(version&gt;=2.10.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource;version="[2.9,2.10)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource.observation)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource.observation;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource.path)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource.path;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource.runtime.dto)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource.runtime.dto;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.wrappers)(version&gt;=2.5.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.wrappers;version="[2.5,3)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=JavaSE-1.6))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=JavaSE-1.6))</require>
-  </resource>
-  <resource id='org.apache.sling.api/2.1.0' symbolicname='org.apache.sling.api' presentationname='Apache Sling API' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.api/2.1.0/org.apache.sling.api-2.1.0.jar' version='2.1.0'>
-    <description>The Apache Sling API defines an extension to the Servlet        API 2.4 to provide access to content and unified access        to request parameters hiding the differences between the        different methods of transferring parameters from client        to server. Note that the Apache Sling API bundle does not        include the Servlet API but instead requires the API to        be provided by the Servlet container in which the Apache        Sling framework is running or by another bundle.</description>
-    <size>66050</size>
-    <documentation>http://sling.apache.org/site/sling-api.html</documentation>
-    <source>org/apache/sling/org.apache.sling.api/2.1.0/org.apache.sling.api-2.1.0-sources.jar</source>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='org.apache.sling'/>
-    <capability name='bundle'>
-      <p n='manifestversion' v='2'/>
-      <p n='presentationname' v='Apache Sling API'/>
-      <p n='symbolicname' v='org.apache.sling.api'/>
-      <p n='version' t='version' v='2.1.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api'/>
-      <p n='uses:' v='javax.servlet,org.apache.sling.api.request,org.apache.sling.api.adapter,org.apache.sling.api.resource,javax.servlet.http'/>
-      <p n='version' t='version' v='2.1.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.adapter'/>
-      <p n='version' t='version' v='2.1.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.auth'/>
-      <p n='uses:' v='javax.servlet.http,org.apache.sling.api'/>
-      <p n='version' t='version' v='1.0.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.request'/>
-      <p n='uses:' v='org.apache.sling.api,javax.servlet,javax.servlet.http'/>
-      <p n='version' t='version' v='2.1.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource'/>
-      <p n='uses:' v='org.apache.sling.api.adapter,org.apache.sling.api,javax.servlet.http,org.apache.sling.api.wrappers'/>
-      <p n='version' t='version' v='2.1.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.scripting'/>
-      <p n='uses:' v='org.apache.sling.api,org.slf4j,org.apache.sling.api.resource,org.apache.sling.api.request'/>
-      <p n='version' t='version' v='2.1.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.servlets'/>
-      <p n='uses:' v='javax.servlet.http,javax.servlet,org.apache.sling.api,org.apache.sling.api.resource,org.apache.sling.api.wrappers'/>
-      <p n='version' t='version' v='2.1.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.wrappers'/>
-      <p n='uses:' v='javax.servlet,org.apache.sling.api.request,org.apache.sling.api,org.apache.sling.api.resource,javax.servlet.http'/>
-      <p n='version' t='version' v='2.1.0'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=javax.servlet)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet ;version=2.4.0</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http ;version=2.4.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api)(version&gt;=2.1.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api ;version=2.1.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.adapter)(version&gt;=2.1.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.adapter ;version=2.1.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.auth)(version&gt;=1.0.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.auth ;version=1.0.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.request)(version&gt;=2.1.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.request ;version=2.1.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.1.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource ;version=2.1.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.scripting)(version&gt;=2.1.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.scripting ;version=2.1.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.servlets)(version&gt;=2.1.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.servlets ;version=2.1.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.wrappers)(version&gt;=2.1.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.wrappers ;version=2.1.0</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0))' extend='false' multiple='false' optional='false'>Import package org.slf4j ;version=1.5.0</require>
-  </resource>
-  <resource id='org.apache.sling.api/2.0.4.incubator' symbolicname='org.apache.sling.api' presentationname='Apache Sling API' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.api/2.0.4.incubator/org.apache.sling.api-2.0.4.incubator.jar' version='2.0.4.incubator'>
-    <description>The Apache Sling API defines an extension to the Servlet        API 2.4 to provide access to content and unified access        to request parameters hiding the differences between the        different methods of transferring parameters from client        to server. Note that the Apache Sling API bundle does not        include the Servlet API but instead requires the API to        be provided by the Servlet container in which the Apache        Sling framework is running or by another bundle.</description>
-    <size>52065</size>
-    <documentation>http://incubator.apache.org/sling/site/sling-api.html</documentation>
-    <source>org/apache/sling/org.apache.sling.api/2.0.4-incubator/org.apache.sling.api-2.0.4-incubator-sources.jar</source>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='org.apache.sling'/>
-    <capability name='bundle'>
-      <p n='manifestversion' v='2'/>
-      <p n='presentationname' v='Apache Sling API'/>
-      <p n='symbolicname' v='org.apache.sling.api'/>
-      <p n='version' t='version' v='2.0.4.incubator'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.servlets'/>
-      <p n='uses:' v='javax.servlet,org.apache.sling.api,org.apache.sling.api.wrappers,javax.servlet.http'/>
-      <p n='version' t='version' v='2.0.4.incubator'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.request'/>
-      <p n='uses:' v='org.apache.sling.api'/>
-      <p n='version' t='version' v='2.0.4.incubator'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.scripting'/>
-      <p n='uses:' v='org.apache.sling.api.request,org.apache.sling.api,org.slf4j,org.apache.sling.api.resource'/>
-      <p n='version' t='version' v='2.0.4.incubator'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api'/>
-      <p n='uses:' v='javax.servlet,org.apache.sling.api.request,javax.servlet.http,org.apache.sling.api.resource'/>
-      <p n='version' t='version' v='2.0.4.incubator'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.adapter'/>
-      <p n='version' t='version' v='2.0.4.incubator'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.wrappers'/>
-      <p n='uses:' v='javax.servlet,org.apache.sling.api.request,org.apache.sling.api,javax.servlet.http,org.apache.sling.api.resource'/>
-      <p n='version' t='version' v='2.0.4.incubator'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource'/>
-      <p n='uses:' v='org.apache.sling.api,org.apache.sling.api.adapter,org.apache.sling.api.wrappers,javax.servlet.http'/>
-      <p n='version' t='version' v='2.0.4.incubator'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=javax.servlet)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet ;version=2.4.0</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http ;version=2.4.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api)(version&gt;=2.0.4.incubator))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api ;version=2.0.4.incubator</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.adapter)(version&gt;=2.0.4.incubator))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.adapter ;version=2.0.4.incubator</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.request)(version&gt;=2.0.4.incubator))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.request ;version=2.0.4.incubator</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.0.4.incubator))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource ;version=2.0.4.incubator</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.scripting)(version&gt;=2.0.4.incubator))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.scripting ;version=2.0.4.incubator</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.servlets)(version&gt;=2.0.4.incubator))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.servlets ;version=2.0.4.incubator</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.wrappers)(version&gt;=2.0.4.incubator))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.wrappers ;version=2.0.4.incubator</require>
-    <require name='package' filter='(&amp;(package=org.slf4j))' extend='false' multiple='false' optional='false'>Import package org.slf4j</require>
-  </resource>
-  <resource id='org.apache.sling.api/2.14.2' symbolicname='org.apache.sling.api' presentationname='Apache Sling API' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.api-2.14.2.jar' version='2.14.2'>
-    <description>The Apache Sling API defines an extension to the Servlet        API 2.4 to provide access to content and unified access        to request parameters hiding the differences between the        different methods of transferring parameters from client        to server. Note that the Apache Sling API bundle does not        include the Servlet API but instead requires the API to        be provided by the Servlet container in which the Apache        Sling framework is running or by another bundle.</description>
-    <size>115538</size>
-    <documentation>http://sling.apache.org/site/sling-api.html</documentation>
-    <license>https://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.api'/>
-      <p n='presentationname' v='Apache Sling API'/>
-      <p n='version' t='version' v='2.14.2'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.adapter'/>
-      <p n='version' t='version' v='2.2.2'/>
-      <p n='uses:' v='javax.annotation'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.auth'/>
-      <p n='version' t='version' v='1.0.2'/>
-      <p n='uses:' v='javax.annotation,javax.servlet.http,org.apache.sling.api'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api'/>
-      <p n='version' t='version' v='2.3.2'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api.adapter,org.apache.sling.api.request,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.request'/>
-      <p n='version' t='version' v='2.4.2'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource'/>
-      <p n='version' t='version' v='2.9.2'/>
-      <p n='uses:' v='javax.annotation,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.adapter'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.observation'/>
-      <p n='version' t='version' v='1.1.1'/>
-      <p n='uses:' v='javax.annotation'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.path'/>
-      <p n='version' t='version' v='1.1.1'/>
-      <p n='uses:' v='javax.annotation'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.runtime.dto'/>
-      <p n='version' t='version' v='1.0.0'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource.runtime'/>
-      <p n='version' t='version' v='1.0.1'/>
-      <p n='uses:' v='org.apache.sling.api.resource.runtime.dto'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.scripting'/>
-      <p n='version' t='version' v='2.3.1'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api,org.apache.sling.api.request,org.apache.sling.api.resource,org.slf4j'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.security'/>
-      <p n='version' t='version' v='1.0.2'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.servlets'/>
-      <p n='version' t='version' v='2.1.3'/>
-      <p n='uses:' v='javax.annotation,javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.wrappers'/>
-      <p n='version' t='version' v='2.5.0'/>
-      <p n='uses:' v='javax.servlet,javax.servlet.http,org.apache.sling.api,org.apache.sling.api.request,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.spi.resource.provider'/>
-      <p n='version' t='version' v='1.0.2'/>
-      <p n='uses:' v='javax.annotation,org.apache.sling.api.resource,org.apache.sling.api.resource.observation,org.apache.sling.api.resource.path'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=javax.annotation))' extend='false' multiple='false' optional='false'>Import package javax.annotation</require>
-    <require name='package' filter='(&amp;(package=javax.servlet)(version&gt;=3.1.0)(!(version&gt;=4.0.0)))' extend='false' multiple='false' optional='false'>Import package javax.servlet;version="[3.1,4)"</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http)(version&gt;=3.1.0)(!(version&gt;=4.0.0)))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http;version="[3.1,4)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api)(version&gt;=2.3.0)(!(version&gt;=2.4.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api;version="[2.3,2.4)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.adapter)(version&gt;=2.2.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.adapter;version="[2.2,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.request)(version&gt;=2.4.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.request;version="[2.4,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.9.0)(!(version&gt;=2.10.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource;version="[2.9,2.10)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource.observation)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource.observation;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource.path)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource.path;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource.runtime.dto)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource.runtime.dto;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.wrappers)(version&gt;=2.5.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.wrappers;version="[2.5,3)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.7.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.7,2)"</require>
-    <require name='ee' filter='(|(ee=JavaSE-1.7))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=JavaSE-1.7))</require>
-  </resource>
-  <resource id='org.apache.sling.api/2.0.6' symbolicname='org.apache.sling.api' presentationname='Apache Sling API' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.api/2.0.6/org.apache.sling.api-2.0.6.jar' version='2.0.6'>
-    <description>The Apache Sling API defines an extension to the Servlet        API 2.4 to provide access to content and unified access        to request parameters hiding the differences between the        different methods of transferring parameters from client        to server. Note that the Apache Sling API bundle does not        include the Servlet API but instead requires the API to        be provided by the Servlet container in which the Apache        Sling framework is running or by another bundle.</description>
-    <size>55472</size>
-    <documentation>http://sling.apache.org/site/sling-api.html</documentation>
-    <source>org/apache/sling/org.apache.sling.api/2.0.6/org.apache.sling.api-2.0.6-sources.jar</source>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='org.apache.sling'/>
-    <capability name='bundle'>
-      <p n='manifestversion' v='2'/>
-      <p n='presentationname' v='Apache Sling API'/>
-      <p n='symbolicname' v='org.apache.sling.api'/>
-      <p n='version' t='version' v='2.0.6'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.servlets'/>
-      <p n='uses' v='javax.servlet.http,javax.servlet,org.apache.sling.api,org.apache.sling.api.wrappers'/>
-      <p n='version' t='version' v='2.0.6'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.adapter'/>
-      <p n='version' t='version' v='2.0.6'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.resource'/>
-      <p n='uses' v='org.apache.sling.api,org.apache.sling.api.adapter,javax.servlet.http,org.apache.sling.api.wrappers'/>
-      <p n='version' t='version' v='2.0.6'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.wrappers'/>
-      <p n='uses' v='javax.servlet.http,javax.servlet,org.apache.sling.api.resource,org.apache.sling.api.request,org.apache.sling.api'/>
-      <p n='version' t='version' v='2.0.6'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.request'/>
-      <p n='uses' v='org.apache.sling.api'/>
-      <p n='version' t='version' v='2.0.6'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api.scripting'/>
-      <p n='uses' v='org.apache.sling.api,org.apache.sling.api.resource,org.slf4j,org.apache.sling.api.request'/>
-      <p n='version' t='version' v='2.0.6'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.api'/>
-      <p n='uses' v='javax.servlet.http,javax.servlet,org.apache.sling.api.adapter,org.apache.sling.api.resource,org.apache.sling.api.request'/>
-      <p n='version' t='version' v='2.0.6'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=javax.servlet)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet ;version=2.4.0</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http)(version&gt;=2.4.0))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http ;version=2.4.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api)(version&gt;=2.0.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api ;version=2.0.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.adapter)(version&gt;=2.0.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.adapter ;version=2.0.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.request)(version&gt;=2.0.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.request ;version=2.0.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.0.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource ;version=2.0.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.scripting)(version&gt;=2.0.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.scripting ;version=2.0.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.servlets)(version&gt;=2.0.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.servlets ;version=2.0.0</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.wrappers)(version&gt;=2.0.0))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.wrappers ;version=2.0.0</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0))' extend='false' multiple='false' optional='false'>Import package org.slf4j ;version=1.5.0</require>
-  </resource>
-  <resource id='org.apache.sling.auth.selector/1.0.6' symbolicname='org.apache.sling.auth.selector' presentationname='Apache Sling Authentication Selector' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.auth.selector/1.0.6/org.apache.sling.auth.selector-1.0.6.jar' version='1.0.6'>
-    <description>Bundle implementing a Sling Authentication Handler which        allows for choosing which actual authentication handler        is to be used delegating the actual credential handling        to concrete handlers. The selector handler only presents        HTML forms to provide credential data such as username        and password for the Formbased Authentication Handler        or an OpenID identifier for the OpenID Authentication        Handler.</description>
-    <size>19122</size>
-    <documentation>http://sling.apache.org/site/openid-authenticationhandler.html</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.auth.selector'/>
-      <p n='presentationname' v='Apache Sling Authentication Selector'/>
-      <p n='version' t='version' v='1.0.6'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.auth.selector'/>
-      <p n='version' t='version' v='1.0.6'/>
-      <p n='uses:' v='javax.servlet.http,org.apache.sling.auth.core.spi'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=javax.servlet.http))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.lang))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.lang</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.auth.core)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.auth.core;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.auth.core.spi)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.auth.core.spi;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.auth.form)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.auth.form;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.auth.openid)(version&gt;=1.0.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.auth.openid;version="[1.0,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.framework))' extend='false' multiple='false' optional='false'>Import package org.osgi.framework</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.event))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.event</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=J2SE-1.5))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=J2SE-1.5))</require>
-  </resource>
-  <resource id='org.apache.sling.auth.core/1.3.6' symbolicname='org.apache.sling.auth.core' presentationname='Apache Sling Authentication Service' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.auth.core/1.3.6/org.apache.sling.auth.core-1.3.6.jar' version='1.3.6'>
-    <description>The Sling Authentication Service bundle provides the basic        mechanisms to authenticate HTTP requests with a JCR repository.        The algorithms for extracting authentication details from the        requests is extensible by implementing an AuthenticationHandler        interface.</description>
-    <size>88398</size>
-    <documentation>http://sling.apache.org/site/authentication.html</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.auth.core'/>
-      <p n='presentationname' v='Apache Sling Authentication Service'/>
-      <p n='version' t='version' v='1.3.6'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.auth.core'/>
-      <p n='version' t='version' v='1.2.0'/>
-      <p n='uses:' v='javax.servlet.http'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.auth.core.spi'/>
-      <p n='version' t='version' v='1.1.0'/>
-      <p n='uses:' v='javax.servlet.http,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.engine.auth'/>
-      <p n='version' t='version' v='2.0.6'/>
-      <p n='uses:' v='javax.servlet.http,org.apache.sling.api'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.auth)(version&gt;=1.0.0)(!(version&gt;=1.1.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.auth;version="[1.0,1.1)"</require>
-    <require name='package' filter='(&amp;(package=javax.security.auth.login))' extend='false' multiple='false' optional='false'>Import package javax.security.auth.login</require>
-    <require name='package' filter='(&amp;(package=javax.servlet))' extend='false' multiple='false' optional='false'>Import package javax.servlet</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.request)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.request;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.servlets)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.servlets;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.auth.core)(version&gt;=1.2.0)(!(version&gt;=1.3.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.auth.core;version="[1.2,1.3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.auth.core.spi)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.auth.core.spi;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.engine.auth)(version&gt;=2.0.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.engine.auth;version="[2.0,3)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.framework)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.framework;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.event)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.event;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.util.tracker)(version&gt;=1.3.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.util.tracker;version="[1.3,2)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=J2SE-1.5))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=J2SE-1.5))</require>
-  </resource>
-  <resource id='org.apache.sling.auth.core/1.3.10' symbolicname='org.apache.sling.auth.core' presentationname='Apache Sling Authentication Service' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.auth.core/1.3.10/org.apache.sling.auth.core-1.3.10.jar' version='1.3.10'>
-    <description>The Sling Authentication Service bundle provides the basic        mechanisms to authenticate HTTP requests with a JCR repository.        The algorithms for extracting authentication details from the        requests is extensible by implementing an AuthenticationHandler        interface.</description>
-    <size>90860</size>
-    <documentation>http://sling.apache.org/site/authentication.html</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.auth.core'/>
-      <p n='presentationname' v='Apache Sling Authentication Service'/>
-      <p n='version' t='version' v='1.3.10'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.auth.core'/>
-      <p n='version' t='version' v='1.2.0'/>
-      <p n='uses:' v='javax.servlet.http'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.auth.core.spi'/>
-      <p n='version' t='version' v='1.1.0'/>
-      <p n='uses:' v='javax.servlet.http,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.engine.auth'/>
-      <p n='version' t='version' v='2.0.6'/>
-      <p n='uses:' v='javax.servlet.http,org.apache.sling.api'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.auth)(version&gt;=1.0.0)(!(version&gt;=1.1.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.auth;version="[1.0,1.1)"</require>
-    <require name='package' filter='(&amp;(package=javax.security.auth.login))' extend='false' multiple='false' optional='false'>Import package javax.security.auth.login</require>
-    <require name='package' filter='(&amp;(package=javax.servlet))' extend='false' multiple='false' optional='false'>Import package javax.servlet</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.request)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.request;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.servlets)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.servlets;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.auth.core)(version&gt;=1.2.0)(!(version&gt;=1.3.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.auth.core;version="[1.2,1.3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.auth.core.spi)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.auth.core.spi;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.engine.auth)(version&gt;=2.0.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.engine.auth;version="[2.0,3)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.framework)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.framework;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.event)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.event;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.util.tracker)(version&gt;=1.3.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.util.tracker;version="[1.3,2)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=JavaSE-1.6))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=JavaSE-1.6))</require>
-  </resource>
-  <resource id='org.apache.sling.auth.core/1.3.16' symbolicname='org.apache.sling.auth.core' presentationname='Apache Sling Authentication Service' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.auth.core/1.3.16/org.apache.sling.auth.core-1.3.16.jar' version='1.3.16'>
-    <description>The Sling Authentication Service bundle provides the basic        mechanisms to authenticate HTTP requests with a JCR repository.        The algorithms for extracting authentication details from the        requests is extensible by implementing an AuthenticationHandler        interface.</description>
-    <size>91544</size>
-    <documentation>http://sling.apache.org/site/authentication.html</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.auth.core'/>
-      <p n='presentationname' v='Apache Sling Authentication Service'/>
-      <p n='version' t='version' v='1.3.16'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.auth.core'/>
-      <p n='version' t='version' v='1.2.0'/>
-      <p n='uses:' v='javax.servlet.http'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.auth.core.spi'/>
-      <p n='version' t='version' v='1.2.0'/>
-      <p n='uses:' v='javax.servlet.http,org.apache.sling.api.resource'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.engine.auth'/>
-      <p n='version' t='version' v='2.0.6'/>
-      <p n='uses:' v='javax.servlet.http,org.apache.sling.api'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.auth)(version&gt;=1.0.0)(!(version&gt;=1.1.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.auth;version="[1.0,1.1)"</require>
-    <require name='package' filter='(&amp;(package=javax.security.auth.login))' extend='false' multiple='false' optional='false'>Import package javax.security.auth.login</require>
-    <require name='package' filter='(&amp;(package=javax.servlet))' extend='false' multiple='false' optional='false'>Import package javax.servlet</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.request)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.request;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.resource)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.resource;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.api.servlets)(version&gt;=2.1.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.api.servlets;version="[2.1,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.auth.core)(version&gt;=1.2.0)(!(version&gt;=1.3.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.auth.core;version="[1.2,1.3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.auth.core.spi)(version&gt;=1.2.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.auth.core.spi;version="[1.2,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.engine.auth)(version&gt;=2.0.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.engine.auth;version="[2.0,3)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.framework)(version&gt;=1.4.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.framework;version="[1.4,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.service.event)(version&gt;=1.1.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.service.event;version="[1.1,2)"</require>
-    <require name='package' filter='(&amp;(package=org.osgi.util.tracker)(version&gt;=1.3.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.osgi.util.tracker;version="[1.3,2)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.5.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.5,2)"</require>
-    <require name='ee' filter='(|(ee=JavaSE-1.6))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=JavaSE-1.6))</require>
-  </resource>
-  <resource id='org.apache.sling.auth.xing.api/0.0.2' symbolicname='org.apache.sling.auth.xing.api' presentationname='Apache Sling Authentication XING API' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.auth.xing.api/0.0.2/org.apache.sling.auth.xing.api-0.0.2.jar' version='0.0.2'>
-    <description>Apache Sling Authentication XING API</description>
-    <size>12826</size>
-    <documentation>http://sling.apache.org</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.auth.xing.api'/>
-      <p n='presentationname' v='Apache Sling Authentication XING API'/>
-      <p n='version' t='version' v='0.0.2'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.auth.xing.api'/>
-      <p n='version' t='version' v='0.0.2'/>
-      <p n='uses:' v='javax.jcr,org.apache.jackrabbit.api.security.user,org.apache.sling.jcr.api'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.auth.xing.api.users'/>
-      <p n='version' t='version' v='0.0.2'/>
-      <p n='uses:' v='org.apache.sling.auth.xing.api'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=javax.jcr))' extend='false' multiple='false' optional='false'>Import package javax.jcr</require>
-    <require name='package' filter='(&amp;(package=org.apache.jackrabbit.api)(version&gt;=2.0.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.jackrabbit.api;version="[2.0,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.jackrabbit.api.security.user)(version&gt;=2.0.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.jackrabbit.api.security.user;version="[2.0,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.sling.jcr.api)(version&gt;=2.2.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.sling.jcr.api;version="[2.2,3)"</require>
-    <require name='package' filter='(&amp;(package=org.slf4j)(version&gt;=1.7.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.slf4j;version="[1.7,2)"</require>
-    <require name='ee' filter='(|(ee=JavaSE-1.6))' extend='false' multiple='false' optional='false'>Execution Environment (|(ee=JavaSE-1.6))</require>
-  </resource>
-  <resource id='org.apache.sling.auth.xing.login/0.0.2' symbolicname='org.apache.sling.auth.xing.login' presentationname='Apache Sling Authentication XING Login' uri='http://repo1.maven.org/maven2/org/apache/sling/org.apache.sling.auth.xing.login/0.0.2/org.apache.sling.auth.xing.login-0.0.2.jar' version='0.0.2'>
-    <description>The parent project for Apache Sling</description>
-    <size>225586</size>
-    <documentation>http://sling.apache.org</documentation>
-    <license>http://www.apache.org/licenses/LICENSE-2.0.txt</license>
-    <category id='sling'/>
-    <capability name='bundle'>
-      <p n='symbolicname' v='org.apache.sling.auth.xing.login'/>
-      <p n='presentationname' v='Apache Sling Authentication XING Login'/>
-      <p n='version' t='version' v='0.0.2'/>
-      <p n='manifestversion' v='2'/>
-    </capability>
-    <capability name='package'>
-      <p n='package' v='org.apache.sling.auth.xing.login'/>
-      <p n='version' t='version' v='0.0.2'/>
-      <p n='uses:' v='javax.jcr,org.apache.jackrabbit.api.security.user,org.apache.sling.auth.xing.api'/>
-    </capability>
-    <require name='package' filter='(&amp;(package=javax.crypto))' extend='false' multiple='false' optional='false'>Import package javax.crypto</require>
-    <require name='package' filter='(&amp;(package=javax.crypto.spec))' extend='false' multiple='false' optional='false'>Import package javax.crypto.spec</require>
-    <require name='package' filter='(&amp;(package=javax.jcr))' extend='false' multiple='false' optional='false'>Import package javax.jcr</require>
-    <require name='package' filter='(&amp;(package=javax.security.auth.callback))' extend='false' multiple='false' optional='false'>Import package javax.security.auth.callback</require>
-    <require name='package' filter='(&amp;(package=javax.security.auth.login))' extend='false' multiple='false' optional='false'>Import package javax.security.auth.login</require>
-    <require name='package' filter='(&amp;(package=javax.servlet.http))' extend='false' multiple='false' optional='false'>Import package javax.servlet.http</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.codec.binary)(version&gt;=1.9.0)(!(version&gt;=2.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.codec.binary;version="[1.9,2)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.commons.lang)(version&gt;=2.6.0)(!(version&gt;=3.0.0)))' extend='false' multiple='false' optional='false'>Import package org.apache.commons.lang;version="[2.6,3)"</require>
-    <require name='package' filter='(&amp;(package=org.apache.jackrabbit.api

<TRUNCATED>

[18/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/jsr-305.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/jsr-305.md b/content/documentation/development/jsr-305.md
deleted file mode 100644
index 8080d91..0000000
--- a/content/documentation/development/jsr-305.md
+++ /dev/null
@@ -1,115 +0,0 @@
-title=Leveraging JSR-305 null annotations to prevent NullPointerExceptions		
-type=page
-status=published
-~~~~~~
-
-[TOC]
-
-# Introduction
-The Sling API forces developers to sometimes check for `null` return values. Most prominently this is the case for [`Adaptable.adaptTo`](https://sling.apache.org/apidocs/sling8/org/apache/sling/api/adapter/Adaptable.html#adaptTo-java.lang.Class-) and [`ResourceResolver.getResource`](https://sling.apache.org/apidocs/sling8/org/apache/sling/api/resource/ResourceResolver.html#getResource-java.lang.String-). This is often forgotten, which may lead to `NullPointerException`s. Sling API 2.9.0 introduced the JSR-305 annotations ([SLING-4377](https://issues.apache.org/jira/browse/SLING-4377)) which allow tools to check automatically for missing null checks in the code.
-
-# Annotations
-The annotations used within Sling are based on the [JSR-305](https://jcp.org/en/jsr/detail?id=305) which is dormant since 2012. Nevertheless those annotations are understood by most of the tools and used by other Apache Projects like Apache Oak [OAK-37](https://issues.apache.org/jira/browse/OAK-37).
-
-Due to the fact that Eclipse and FindBugs are interpreting annotations differently ([Findbugs-1355](https://sourceforge.net/p/findbugs/bugs/1355/)). Sling only uses the following two different annotations which are supported by both tools:
-
-1. `javax.annotation.CheckForNull`
-1. `javax.annotation.Nonnull`
-
-Annotations which support setting the default null semantics of return values and or parameters on a package level cannot be leveraged for that reason.
-
-The annotations have a retention policy of `runtime`, therefore bundles using these automatically have a `Import-Package` header listing `javax.annotation`. That package is by default exported by the system bundle (as this package is also part of the [JRE](https://docs.oracle.com/javase/7/docs/api/javax/annotation/package-summary.html)). To be able to resolve the bundle through this exported package from the system bundle you should use the `com.google.code.findbugs:jsr305` artifact in version 3.0.0 as that exports the package `javax.annotation` in no specific version. Newer versions use version directives which automatically restrict the version range for the generated `Import-Package` header to `[3,4)` [which usually cannot be resolved at run time](https://github.com/amaembo/jsr-305/issues/31).
-
-# Use With Eclipse
-Eclipse since Juno supports [null analysis based on any annotations](http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler%2Fref-preferences-errors-warnings.htm&anchor=null_analysis). Those need to be enabled in
-*Preferences->Java->Compiler->Errors/Warnings* via **Enable annoation-based null analysis**.
-Also the annotations need to be configured. For Sling/JSR 305 those are
-
-* `javax.annotation.CheckForNull` as **'Nullable' annotation** (primary annotation)
-* `javax.annotation.Nonnull` as **'NonNull' annotation** (primary annotation)
-
-![Eclipse Settings for Null analysis](eclipse-settings-null-analysis.png)
-
-Unfortunately Eclipse cannot infer information about fields which are for sure either null or not null (reasoning is available in [https://wiki.eclipse.org/JDT_Core/Null_Analysis/Options#Risks_of_flow_analysis_for_fields](https://wiki.eclipse.org/JDT_Core/Null_Analysis/Options#Risks_of_flow_analysis_for_fields) and [Eclipse Bug 247564](https://bugs.eclipse.org/bugs/show_bug.cgi?id=247564)). This also affecs constants (static final fields) or enums which are known to be non null, but still Eclipse will emit a warning like *The expression of type 'String' needs unchecked conversion to conform to '@Nonnull String'*. The only known workaround is to disable the **"Unchecked conversion from non-annotated type to @NonNull type"** or to annotate also the field with `@Nonnull`.
-
-More information are available at [https://wiki.eclipse.org/JDT_Core/Null_Analysis](https://wiki.eclipse.org/JDT_Core/Null_Analysis).
-
-Since Eclipse 4.5 (Mars) **external annotations** are supported as well (i.e. annotations maintained outside of the source code of the libraries, e.g. for the JRE, Apache Commons Lang). There are some external annotations being mainted at [lastnpe.org](http://www.lastnpe.org/) and [TraceCompass](https://github.com/tracecompass/tracecompass/tree/master/common/org.eclipse.tracecompass.common.core/annotations). There is no official repository yet though ([Eclipse Bug 449653](https://bugs.eclipse.org/bugs/show_bug.cgi?id=449653)).
-[Lastnpe.org](http://www.lastnpe.org/) provides also an m2e extension to ease setting up the classpaths with external annotations from within your pom.xml.
-
-# Use With Maven
-
-## Leveraging Eclipse JDT Compiler (recommended)
-
-You can use Eclipse JDT also in Maven (with null analysis enabled) for the regular compilation. That way it will give out the same warnings/errors as Eclipse and will also consider external annotations.
-JDT in its most recent version is provided by the `tycho-compiler-plugin` which can be hooked up with the `maven-compiler-plugin`.
-The full list of options for JDT is described in [here](http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-using_batch_compiler.htm).
-This method was presented by Michael Vorburger in his presentation [The end of the world as we know it](https://www.slideshare.net/mikervorburger/the-end-of-the-world-as-we-know-it-aka-your-last-nullpointerexception-1b-bugs/14).
-
-::xml
-<plugin>
-<artifactId>maven-compiler-plugin</artifactId>
-<version>3.5.1</version>
-<configuration>
-<source>1.8</source>
-<target>1.8</target>
-<showWarnings>true</showWarnings>
-<compilerId>jdt</compilerId>
-<compilerArguments>
-<!-- just take the full Maven classpath as external annotations -->
-<annotationpath>CLASSPATH</annotationpath>
-</compilerArguments>
-<!-- maintain the org.eclipse.jdt.core.prefs properties to options listed on
-http://help.eclipse.org/neon/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/task-using_batch_compiler.htm -->
-<compilerArgument>-err:nullAnnot,null,-missingNullDefault</compilerArgument>
-</configuration>
-<dependencies>
-<dependency>
-<groupId>org.eclipse.tycho</groupId>
-<artifactId>tycho-compiler-jdt</artifactId>
-<version>1.0.0</version>
-</dependency>
-</dependencies>
-</plugin>
-
-## Leveraging FindBugs
-You can also let Maven automatically run FindBugs to execute those checks via the **findbugs-maven-plugin**. For that just add the following plugin to your `pom.xml`
-
-::xml
-<plugin>
-<groupId>org.codehaus.mojo</groupId>
-<artifactId>findbugs-maven-plugin</artifactId>
-<version>3.0.0</version>
-<configuration>
-<visitors>InconsistentAnnotations,NoteUnconditionalParamDerefs,FindNullDeref,FindNullDerefsInvolvingNonShortCircuitEvaluation</visitors>
-</configuration>
-<executions>
-<execution>
-<id>run-findbugs-fornullchecks</id>
-<goals>
-<goal>check</goal>
-</goals>
-</execution>
-</executions>
-</plugin>
-
-
-The results are often very imprecise ([MFINDBUGS-208](http://jira.codehaus.org/browse/MFINDBUGS-208)), especially when it comes to line numbers, therefore it is best to start the Findbugs GUI in case of errors found by this plugin via `mvn findbugs:gui`.
-
-
-# Use With FindBugs
-FindBugs evaluates the JSR-305 annotations by default. You can restrict the rules to only the ones which check for those annotations, which are
-
-* InconsistentAnnotations
-* NoteUnconditionalParamDerefs
-* FindNullDeref
-* FindNullDerefsInvolvingNonShortCircuitEvaluation
-
-A complete list of visitors class names in Findbugs can be found in the [sourcecode](https://code.google.com/p/findbugs/source/browse/#git%2Ffindbugs%2Fsrc%2Fjava%2Fedu%2Fumd%2Fcs%2Ffindbugs%2Fdetect%253Fstate%253Dclosed). The according [bug patterns](http://findbugs.sourceforge.net/bugDescriptions.html) have an identifier (in parenthesis) for which you can search in the according Java classes, in case you want to extend the checks.
-
-Findbugs is also integrated in [SonarQube](http://docs.sonarqube.org/display/SONAR/Findbugs+Plugin) but for SonarQube you should now rather use the native Java plugin
-(look at [Use with SonarQube](#use-with-sonarqube)).
-
-# Use with SonarQube
-
-At least rule [squid:S2259](https://sonarqube.com/coding_rules#rule_key=squid%3AS2259) in SonarQube supports JSR-305 annotations as well for null checks.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/logging.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/logging.md b/content/documentation/development/logging.md
deleted file mode 100644
index 53bcd91..0000000
--- a/content/documentation/development/logging.md
+++ /dev/null
@@ -1,566 +0,0 @@
-title=Logging		
-type=page
-status=published
-~~~~~~
-
-<div class="note">
-This document is for the new (November 2013) 4.x release of the Sling Commons Log components. Refer to
-<a href="http://sling.apache.org/documentation/legacy/logging.html">Logging 3.x</a> for older versions.
-</div>
-
-[TOC]
-
-## Introduction
-
-Logging in Sling is supported by the `org.apache.sling.commons.log` bundle, which is one of the first bundles installed
-and started by the Sling Launcher. This bundle along with other bundles manages the Sling Logging and provides the
-following features:
-
-* Implements the OSGi Log Service Specification and registers the `LogService` and `LogReader` services
-* Exports three commonly used logging APIs:
-* [Simple Logging Facade for Java (SLF4J)](http://www.slf4j.org)
-* [Apache Commons Logging](http://jakarta.apache.org/commons/logging)
-* [log4j](http://logging.apache.org/log4j/index.html)
-* [java.util.logging](http://download.oracle.com/javase/6/docs/api/java/util/logging/package-summary.html)
-* Configures logging through Logback which is integrated with the OSGi environment
-* Allows logging to be configured both via editing Logback xml or via OSGi Configurations
-
-### v5.0.0 release
-
-With Sling Log 5.0.0. release the webconsole support has been moved to a
-different bundle named Sling Commons Log WebConsole (org.apache.sling.commons.log.webconsole:1.0.0)
-
-Also with this release Logback 1.1.7 version is embedded and thus it requires
-slf4j-api:1.7.15. See [SLING-6144][SLING-6144] for details
-
-## WebConsole Plugin
-
-The Web Console Plugin supports the following features:
-
-* Display the list of loggers which have levels or appenders configured.
-* List the file appenders with the location of current active log files.
-* Show the contents of LogBack config files.
-* Show the contents of various Logback config fragments.
-* Show Logback Status logs.
-* Inline edit the Logger setting
-* Configure Logger with content assist for logger names
-* Provides links to log file content allows log file content to be viewed from Web UI
-
-<img src="sling-log-support.png" />
-
-## WebTail
-
-The Web Console Plugin also supports tailing of the current active log files.
-It generates link to all active log files which can be used to see there content
-from within the browser. The url used is like
-
-```
-http://localhost:8080/system/console/slinglog/tailer.txt?tail=1000&grep=lucene&name=%2Flogs%2Ferror.log
-```
-
-It supports following parameters
-
-* `name` - Appender name like _/logs/error.log_
-* `tail` - Number of lines to include in dump. -1 to include whole file
-* `grep` - Filter the log lines based on `grep` value which can be
-* Simple string phrase - In this case search is done in case insensitive way via String.contains
-* regex - In this case the search would be done via regex pattern matching
-
-## Initial Configuration
-
-The `org.apache.sling.commons.log` bundle gets its initial configuration from the following `BundleContext` properties:
-
-
-| Property | Default | Description |
-|--|--|--|
-| `org.apache.sling.commons.log.level` | `INFO` | Sets the initial logging level of the root logger. This may be any of the defined logging levels `DEBUG`, `INFO`, `WARN`, `ERROR` and `FATAL`. |
-| `org.apache.sling.commons.log.file` | undefined | Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to `System.out`. |
-| `org.apache.sling.commons.log.file.number` | 5 | The number of rotated files to keep. |
-| `org.apache.sling.commons.log.file.size` | '.'yyyy-MM-dd | Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section *Log File Rotation* below for full details on log file rotation. |
-| `org.apache.sling.commons.log.pattern` | {0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}]({{ refs.-2.path }}) {3} {5} | The `MessageFormat` pattern to use for formatting log messages with the root logger. |
-| `org.apache.sling.commons.log.julenabled` | n/a | Enables the `java.util.logging` support. |
-| `org.apache.sling.commons.log.configurationFile` | n/a | Path for the Logback config file which would be used to configure logging. If the path is not absolute then it would be resolved against Sling Home |
-| `org.apache.sling.commons.log.packagingDataEnabled` | true | Boolean property to control packaging data support of Logback. See [Packaging Data][11] section of Logback for more details |
-| `org.apache.sling.commons.log.numOfLines` | 1000 | Number of lines from each log files to include while generating the dump in 'txt' mode. If set to -1 then whole file would be included |
-| `org.apache.sling.commons.log.maxOldFileCountInDump` | 3 | Maximum number of old rolled over files for each active file to be included while generating the dump as part of Status zip support |
-| `sling.log.root` | Sling Home | The directory, which is used to resolve relative path names against. If not specified it would map to sling.home. Since [4.0.2](https://issues.apache.org/jira/browse/SLING-4225)|
-
-## User Configuration - OSGi Based
-
-User Configuration after initial configuration is provided by the Configuration Admin Service. To this avail two
-`org.osgi.services.cm.ManagedServiceFactory` services are registered under the PIDs `org.apache.sling.commons.log.LogManager.factory.writer`
-and `org.apache.sling.commons.log.LogManager.factory.config` to receive configurations.
-
-
-### Logger Configuration
-
-Loggers (or Categories) can be configured to log to specific files at specific levels using configurable patterns.
-To this avail factory configuration instances with factory PID `org.apache.sling.commons.log.LogManager.factory.config`
-may be created and configured with the Configuration Admin Service.
-
-The following properties may be set:
-
-| Property | Type | Default | Description |
-|--|--|--|--|
-| `org.apache.sling.commons.log.level` | `String` | `INFO` | Sets the logging level of the loggers. This may be any of the defined logging levels `DEBUG`, `INFO`, `WARN`, `ERROR` and `FATAL`. |
-| `org.apache.sling.commons.log.file` | `String` | undefined | Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to `System.out`. This property should refer to the file name of a configured Log Writer (see below). If no Log Writer is configured with the same file name an implicit Log Writer configuration with default configuration is created. |
-| `org.apache.sling.commons.log.pattern` | `String` | {0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}]({{ refs.-2.path }}) {3} {5} | The `java.util.MessageFormat` pattern to use for formatting log messages with the root logger. This is a `java.util.MessageFormat` pattern supporting up to six arguments: {0} The timestamp of type `java.util.Date`, {1} the log marker, {2} the name of the current thread, {3} the name of the logger, {4} the log level and {5} the actual log message. If the log call includes a Throwable, the stacktrace is just appended to the message regardless of the pattern. |
-| `org.apache.sling.commons.log.names` | `String[]` | -- | A list of logger names to which this configuration applies. |
-| `org.apache.sling.commons.log.additiv` | `Boolean` | false | If set to false then logs from these loggers would not be sent to any appender attached higher in the hierarchy |
-
-
-Note that multiple Logger Configurations may refer to the same Log Writer Configuration. If no Log Writer Configuration
-exists whose file name matches the file name set on the Logger Configuration an implicit Log Writer Configuration
-with default setup (daily log rotation) is internally created. While the log level configuration is case insensitive, it
-is suggested to always use upper case letters.
-
-
-### Log Writer Configuration
-
-Log Writer Configuration is used to setup file output and log file rotation characteristics for log writers used by the Loggers.
-
-The following properties may be set:
-
-| Property | Default | Description |
-|--|--|--|
-| `org.apache.sling.commons.log.file` | undefined | Sets the log file to which log messages are written. If this property is empty or missing, log messages are written to `System.out`. |
-| `org.apache.sling.commons.log.file.number` | 5 | The number of rotated files to keep. |
-| `org.apache.sling.commons.log.file.size` | '.'yyyy-MM-dd | Defines how the log file is rotated (by schedule or by size) and when to rotate. See the section *Log File Rotation* below for full details on log file rotation. |
-
-See the section *Log File Rotation* below for full details on the `org.apache.sling.commons.log.file.size` and
-`org.apache.sling.commons.log.file.number` properties.
-
-#### Log File Rotation
-
-Log files can grow rather quickly and fill up available disk space. To cope with this growth log files may be rotated in
-two ways: At specific times or when the log file reaches a configurable size. The first method is called *Scheduled Rotation*
-and is used by specifying a `SimpleDateFormat` pattern as the log file "size". The second method is called *Size Rotation*
-and is used by setting a maximum file size as the log file size.
-
-As of version 2.0.6 of the Sling Commons Log bundle, the default value for log file scheduling is `'.'yyyy-MM-dd`
-causing daily log rotation. In previous version, log rotation defaults to a 10MB file size limit.
-
-##### Scheduled Rotation
-
-The rolling schedule is specified by setting the `org.apache.sling.commons.log.file.size` property to a
-`java.text.SimpleDateFormat` pattern. Literal text (such as a leading dot) to be included must be *enclosed* within a
-pair of single quotes. A formatted version of the date pattern is used as the suffix for the rolled file name. Internally
-the Log bundle configures a `TimeBasedRollingPolicy` for the appender. Refer to [TimeBasedRollingPolicy][10] for
-more details around the pattern format
-
-For example, if the log file is configured as `/foo/bar.log` and the pattern set to `'.'yyyy-MM-dd`, on
-2001-02-16 at midnight, the logging file `/foo/bar.log` will be renamed to `/foo/bar.log.2001-02-16` and logging for
-2001-02-17 will continue in a new `/foo/bar.log` file until it rolls over the next day.
-
-It is possible to specify monthly, weekly, half-daily, daily, hourly, or minutely rollover schedules.
-
-| DatePattern | Rollover schedule | Example |
-|--|--|--|
-| `'.'yyyy-MM` | Rollover at the beginning of each month | At midnight of May 31st, 2002 `/foo/bar.log` will be copied to `/foo/bar.log.2002-05`. Logging for the month of June will be output to `/foo/bar.log` until it is also rolled over the next month. |
-| `'.'yyyy-ww` | Rollover at the first day of each week. The first day of the week depends on the locale. | Assuming the first day of the week is Sunday, on Saturday midnight, June 9th 2002, the file `/foo/bar.log` will be copied to `/foo/bar.log.2002-23`. Logging for the 24th week of 2002 will be output to `/foo/bar.log` until it is rolled over the next week. |
-| `'.'yyyy-MM-dd` | Rollover at midnight each day.| At midnight, on March 8th, 2002, `/foo/bar.log` will be copied to `/foo/bar.log.2002-03-08`. Logging for the 9th day of March will be output to `/foo/bar.log` until it is rolled over the next day.|
-| `'.'yyyy-MM-dd-a` | Rollover at midnight and midday of each day.| at noon, on March 9th, 2002, `/foo/bar.log` will be copied to  `/foo/bar.log.2002-03-09-AM`. Logging for the afternoon of the 9th will be output to `/foo/bar.log` until it is rolled over at midnight.|
-| `'.'yyyy-MM-dd-HH` | Rollover at the top of every hour.| At approximately 11:00.000 o'clock on March 9th, 2002, `/foo/bar.log` will be copied to `/foo/bar.log.2002-03-09-10`. Logging for the 11th hour of the 9th of March will be output to `/foo/bar.log` until it is rolled over at the beginning of the next hour.|
-| `'.'yyyy-MM-dd-HH-mm` | Rollover at the beginning of every minute.| At approximately 11:23,000, on March 9th, 2001, `/foo/bar.log` will be copied to `/foo/bar.log.2001-03-09-10-22`. Logging for the minute of 11:23 (9th of March) will be output to `/foo/bar.log` until it is rolled over the next minute.|
-
-Do not use the colon ":" character in anywhere in the pattern option. The text before the colon is interpreted as the
-protocol specification of a URL which is probably not what you want.
-
-Note that Scheduled Rotation ignores the `org.apache.sling.commons.log.file.number` property since the old log files are
-not numbered but "dated".
-
-##### Size Rotation
-
-Log file rotation by size is specified by setting the `org.apache.sling.commons.log.file.size` property to a plain number
-or a number plus a size multiplier. The size multiplier may be any of `K`, `KB`, `M`, `MB`, `G`, or `GB` where the case
-is ignored and the meaning is probably obvious.
-
-When using Size Rotation, the `org.apache.sling.commons.log.file.number` defines the number of old log file generations
-to keep. For example to keep 5 old log files indexed by 0 through 4, set the `org.apache.sling.commons.log.file.number`
-to `5` (which happens to be the default).
-
-## Logback Integration
-
-Logback integration provides following features
-
-* LogBack configuration can be provided via Logback config xml
-* Supports Appenders registered as OSGi Services
-* Supports Filters and TurboFilters registered as OSGi Services
-* Support providing Logback configuration as fragments through OSGi Service Registry
-* Support for referring to Appenders registered as OSGi services from with Logback config
-* Exposes Logback runtime state through the Felix WebConsole Plugin
-
-The following sections provide more details.
-
-### TurboFilters as OSGi Services
-
-[Logback TurboFilters][3] operate globally and are invoked for every Logback call. To register an OSGi `TurboFilter`,
-just to register an service that implements the `ch.qos.logback.classic.turbo.TurboFilter` interface.
-
-:::java
-import import ch.qos.logback.classic.turbo.MatchingFilter;
-
-SimpleTurboFilter stf = new SimpleTurboFilter();
-ServiceRegistration sr  = bundleContext.registerService(TurboFilter.class.getName(), stf, null);
-
-private static class SimpleTurboFilter extends MatchingFilter {
-@Override
-public FilterReply decide(Marker marker, Logger logger, Level level, String format,
-Object[] params, Throwable t) {
-if(logger.getName().equals("turbofilter.foo.bar")){
-return FilterReply.DENY;
-}
-return FilterReply.NEUTRAL;
-}
-}
-
-As these filters are invoked for every call they must execute quickly.
-
-### Filters as OSGi services
-
-[Logback Filters][1] are attached to appenders and are used to determine if any LoggingEvent needs to
-be passed to the appender. When registering a filter the bundle needs to configure a service property
-`appenders` which refers to list of appender names to which the Filter must be attached
-
-
-:::java
-import ch.qos.logback.core.filter.Filter;
-
-SimpleFilter stf = new SimpleFilter();
-Dictionary<String, Object> props = new Hashtable<String, Object>();
-props.put("appenders", "TestAppender");
-ServiceRegistration sr  = bundleContext.registerService(Filter.class.getName(), stf, props);
-
-private static class SimpleFilter extends Filter<ILoggingEvent> {
-
-@Override
-public FilterReply decide(ILoggingEvent event) {
-if(event.getLoggerName().equals("filter.foo.bar")){
-return FilterReply.DENY;
-}
-return FilterReply.NEUTRAL;
-}
-}
-
-If the `appenders` value is set to `*` then the filter would be registered with all the appenders (`Since 4.0.4`)
-
-### Appenders as OSGi services
-
-[Logback Appenders][2] handle the logging events produced by Logback. To register an OSGi `Appender`,
-just register a service that implements the `ch.qos.logback.core.Appender` interface.  Such a service must
-have a `loggers` service property, which refers to list of logger names to which the Appender must be attached.
-
-:::java
-Dictionary<String,Object> props = new Hashtable<String, Object>();
-
-String[] loggers = {
-"foo.bar:DEBUG",
-"foo.bar.zoo:INFO",
-};
-
-props.put("loggers",loggers);
-sr = bundleContext.registerService(Appender.class.getName(),this,props);
-
-### Logback Config Fragment Support
-
-Logback supports including parts of a configuration file from another file (See [File Inclusion][4]). This module
-extends that support by allowing other bundles to provide config fragments. There are two ways to achieve that,
-described below.
-
-#### Logback config fragments as String objects
-
-If you have the config as string then you can register that String instance as a service with property `logbackConfig`
-set to true. The Sling Logback Extension monitors such objects and passes them to logback.
-
-
-:::java
-Properties props = new Properties();
-props.setProperty("logbackConfig","true");
-
-String config = "<included>n" +
-"  <appender name="FOOFILE" class="ch.qos.logback.core.FileAppender">n" +
-"    <file>${sling.home}/logs/foo.log</file>n" +
-"    <encoder>n" +
-"      <pattern>%d %-5level %logger{35} - %msg %n</pattern>n" +
-"    </encoder>n" +
-"  </appender>n" +
-"n" +
-"  <logger name="foo.bar.include" level="INFO">n" +
-"       <appender-ref ref="FOOFILE" />n" +
-"  </logger>n" +
-"n" +
-"</included>";
-
-registration = context.registerService(String.class.getName(),config,props);
-
-
-If the config needs to be updated just re-register the service so that changes are picked up.
-
-#### Logback config fragments as ConfigProvider instances
-
-Another way to provide config fragments is with services that implement the
-`org.apache.sling.commons.log.logback.ConfigProvider` interface.
-
-:::java
-@Component
-@Service
-public class ConfigProviderExample implements ConfigProvider {
-public InputSource getConfigSource() {
-return new InputSource(getClass().getClassLoader().getResourceAsStream("foo-config.xml"));
-}
-}
-
-If the config changes then sending an OSGi event with the `org/apache/sling/commons/log/RESET` topic
-resets the Logback runtime.
-
-:::java
-eventAdmin.sendEvent(new Event("org/apache/sling/commons/log/RESET",new Properties()));
-
-### External Config File
-
-Logback can be configured with an external file. The file name can be specified through
-
-1. OSGi config - Look for a config with name `Apache Sling Logging Configuration` and specify the config file path.
-2. OSGi Framework Properties - Logback support also looks for a file named according to the OSGi framwork `org.apache.sling.commons.log.configurationFile` property.
-
-If you are providing an external config file then to support OSGi integration you need to add following
-action entry:
-
-:::xml
-<newRule pattern="*/configuration/osgi"
-actionClass="org.apache.sling.commons.log.logback.OsgiAction"/>
-<newRule pattern="*/configuration/appender-ref-osgi"
-actionClass="org.apache.sling.commons.log.logback.OsgiAppenderRefAction"/>
-<osgi/>
-
-The `osgi` element enables the OSGi integration support
-
-### Java Util Logging (JUL) Integration
-
-The bundle also support [SLF4JBridgeHandler][9]. The two steps listed below enable the JUL integration.
-This allows for routing logging messages from JUL to the Logbback appenders.
-
-1. Set the `org.apache.sling.commons.log.julenabled` framework property to true.
-
-
-If `org.apache.sling.commons.log.julenabled` is found to be true then [LevelChangePropagator][8] would be
-registered automatically with Logback
-
-### <a name="config-override"></a>Configuring OSGi appenders in the Logback Config
-
-So far Sling used to configure the appenders based on OSGi config. This provides a very limited
-set of configuration options. To make use of other Logback features you can override the OSGi config
-from within the Logback config file. OSGi config based appenders are named based on the file name.
-
-For example, for the following OSGi config
-
-org.apache.sling.commons.log.file="logs/error.log"
-org.apache.sling.commons.log.level="INFO"
-org.apache.sling.commons.log.file.size="'.'yyyy-MM-dd"
-org.apache.sling.commons.log.file.number=I"7"
-org.apache.sling.commons.log.pattern="{0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}] {3} {5}"
-
-The Logback appender would be named `logs/error.log`. To extend/override the config in a Logback config
-create an appender with the name `logs/error.log`:
-
-:::xml
-<appender name="/logs/error.log" class="ch.qos.logback.core.FileAppender">
-<file>${sling.home}/logs/error.log</file>
-<encoder>
-<pattern>%d %-5level %X{sling.userId:-NA} [%thread] %logger{30} %marker- %msg %n</pattern>
-<immediateFlush>true</immediateFlush>
-</encoder>
-</appender>
-
-In this case the logging module creates an appender based on the Logback config instead of the OSGi config.
-This can be used to move the application from OSGi based configs to Logback based configs.
-
-## Using Slf4j API 1.7
-
-With Slf4j API 1.7 onwards its possible to use logger methods with varargs i.e. log n arguments without
-constructing an object array e.g. `log.info("This is a test {} , {}, {}, {}",1,2,3,4)`. Without var args
-you need to construct an object array `log.info("This is a test {} , {}, {}, {}",new Object[] {1,2,3,4})`.
-To make use of this API and still be able to use your bundle on Sling systems which package older version
-of the API jar, follow the below steps. (See [SLING-3243][SLING-3243]) for more details.
-
-1. Update the api version in the pom:
-
-:::xml
-<dependencies>
-<dependency>
-<groupId>org.slf4j</groupId>
-<artifactId>slf4j-api</artifactId>
-<version>1.7.5</version>
-<scope>provided</scope>
-</dependency>
-...
-</dependency>
-
-2. Add an `Import-Package` instruction with a custom version range:
-
-:::xml
-<build>
-<plugins>
-<plugin>
-<groupId>org.apache.felix</groupId>
-<artifactId>maven-bundle-plugin</artifactId>
-<extensions>true</extensions>
-<configuration>
-<instructions>
-...
-<Import-Package>
-org.slf4j;version="[1.5,2)",
-*
-</Import-Package>
-</instructions>
-</configuration>
-</plugin>
-...
-</plugins>
-</build>
-
-The Slf4j API bundle 1.7.x is binary compatible with 1.6.x.
-
-This setup allows your bundles to make use of the var args feature while making logging calls, but the bundles
-can still be deployed on older systems which provide only the 1.6.4 version of the slf4j api.
-
-## Log Tracer
-
-Log Tracer provides support for enabling the logs for specific category at specific
-level and only for specific request. It provides a very fine level of control via config provided
-as part of HTTP request around how the logging should be performed for given category.
-
-Refer to [Log Tracer Doc](/documentation/bundles/log-tracers.html) for more details
-
-## Slf4j MDC
-
-Sling MDC Inserting Filter exposes various request details as part of [MDC][11].
-
-Currently it exposes following variables:
-
-1. `req.remoteHost` - Request remote host
-2. `req.userAgent` - User Agent Header
-3. `req.requestURI` - Request URI
-4. `req.queryString` - Query String from request
-5. `req.requestURL` -
-6. `req.xForwardedFor` -
-7. `sling.userId` - UserID associated with the request. Obtained from ResourceResolver
-8. `jcr.sessionId` - Session ID of the JCR Session associated with current request.
-
-The filter also allow configuration to extract data from request cookie, header and parameters.
-Look for configuration with name 'Apache Sling Logging MDC Inserting Filter' for details on
-specifying header, cookie, param names.
-
-![MDC Filter Config](/documentation/bundles/mdc-filter-config.png)
-
-<a name="mdc-pattern">
-### Including MDC in Log Message
-
-To include the MDC value in log message you MUST use the [Logback pattern][15] based on Logback
-and not the old MessageFormat based pattern.
-
-%d{dd.MM.yyyy HH:mm:ss.SSS} *%p* [%X{req.remoteHost}] [%t] %c %msg%n
-
-### Installation
-
-Download the bundle from [here][12] or use following Maven dependency
-
-::xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.extensions.slf4j.mdc</artifactId>
-<version>1.0.0</version>
-</dependency>
-
-## Logback Groovy Fragment
-
-This fragment is required to make use of Groovy based event evaluation support
-provided by Logback. This enables programatic filtering of the log messages and
-is useful to get desired logs without flooding the system. For example Oak
-logs the JCR operations being performed via a particular session. if this lo is
-enabled it would flood the log with messages from all the active session. However
-if you need logging only from session created in a particular thread then that
-can be done in following way
-
-::xml
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration scan="true" scanPeriod="1 second">
-<jmxConfigurator/>
-<newRule pattern="*/configuration/osgi" actionClass="org.apache.sling.commons.log.logback.OsgiAction"/>
-<newRule pattern="*/configuration/appender-ref-osgi" actionClass="org.apache.sling.commons.log.logback.OsgiAppenderRefAction"/>
-<osgi/>
-
-<appender name="OAK" class="ch.qos.logback.core.FileAppender">
-<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-<evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
-<expression><![CDATA[
-return e.getThreadName().contains("JobHandler");
-]]></expression>
-</evaluator>
-<OnMismatch>DENY</OnMismatch>
-<OnMatch>ACCEPT</OnMatch>
-</filter>
-<file>${sling.home}/logs/oak.log</file>
-<encoder>
-<pattern>%d %-5level [%thread] %marker- %msg %n</pattern>
-<immediateFlush>true</immediateFlush>
-</encoder>
-</appender>
-
-<logger name="org.apache.jackrabbit.oak.jcr.operations" level="DEBUG" additivity="false">
-<appender-ref ref="OAK"/>
-</logger>
-</configuration>
-
-Logback exposes a variable `e` which is of type [ILoggingEvent][13]. It provides access to current logging
-event. Above logback config would route all log messages from `org.apache.jackrabbit.oak.jcr.operations`
-category to `${sling.home}/logs/oak.log`. Further only those log messages would be logged
-where the `threadName` contains `JobHandler`. Depending on the requirement the expression can
-be customised.
-
-### Installation
-
-Currently the bundle is not released and has to be build from [here][14]
-
-::xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.extensions.logback-groovy-fragment</artifactId>
-<version>1.0.0-SNAPSHOT</version>
-</dependency>
-
-## FAQ
-
-##### Q. Can Sling Commons Log bundle be used in non Sling environments
-
-This bundle does not depend on any other Sling bundle and can be easily used in any OSGi framework.
-To get complete log support working you need to deploy following bundles
-
-* Slf4j-Api - org.slf4j:slf4j-api
-* Jcl over Slf4j - org.slf4j:jcl-over-slf4j
-* Log4j over Slf4j - org.slf4j:log4j-over-slf4j
-* Sling Log Service - org.apache.sling:org.apache.sling.commons.logservice:1.0.2
-* Sling Commons Log - org.apache.sling:org.apache.sling.commons.log:4.0.0 or above
-* Sling Log WebConsole - org.apache.sling.commons.log.webconsole:1.0.0 or above
-
-##### Q. How to start Sling with an external logback.xml file
-
-You need to specify the location of logback.xml via `org.apache.sling.commons.log.configurationFile`
-
-java -jar org.apache.sling.launchpad-XXX-standalone.jar -Dorg.apache.sling.commons.log.configurationFile=/path/to/logback
-
-
-[1]: http://logback.qos.ch/manual/filters.html
-[2]: http://logback.qos.ch/manual/appenders.html
-[3]: http://logback.qos.ch/manual/filters.html#TurboFilter
-[4]: http://logback.qos.ch/manual/configuration.html#fileInclusion
-[8]: http://logback.qos.ch/manual/configuration.html#LevelChangePropagator
-[9]: http://www.slf4j.org/api/org/slf4j/bridge/SLF4JBridgeHandler.html
-[10]: http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy
-[SLING-3243]: https://issues.apache.org/jira/browse/SLING-3243
-[11]: http://www.slf4j.org/manual.html#mdc
-[12]: http://sling.apache.org/downloads.cgi
-[13]: http://logback.qos.ch/apidocs/ch/qos/logback/classic/spi/ILoggingEvent.html
-[14]: http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/logback-groovy-fragment/
-[15]: http://logback.qos.ch/manual/layouts.html#conversionWord
-[SLING-6144]: https://issues.apache.org/jira/browse/SLING-6144

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/maven-archetypes.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/maven-archetypes.md b/content/documentation/development/maven-archetypes.md
deleted file mode 100644
index 81346ad..0000000
--- a/content/documentation/development/maven-archetypes.md
+++ /dev/null
@@ -1,32 +0,0 @@
-title=Maven Archetypes		
-type=page
-status=published
-~~~~~~
-translation_pending: true
-
-Sling includes four Maven archetypes to quick start development. See [http://maven.apache.org/archetype/maven-archetype-plugin/](http://maven.apache.org/archetype/maven-archetype-plugin/) for general information on using Maven archetypes. The Maven groupId for all Sling archetypes is `org.apache.sling`.
-
-### sling-launchpad-standalone-archetype
-
-This archetype generates a Maven project which will build a standalone Launchpad JAR file using the default bundle set. For demonstration purposes, the generated project includes an extra bundle list file (`src/main/bundles/list`) which includes Apache Felix FileInstall as well as a test configuration file (`src/test/config/sling.properties`).
-
-### sling-launchpad-webapp-archetype
-
-This archetype generates a Maven project which will build a Launchpad WAR file using the default bundle set. For demonstration purposes, the generated project includes an extra bundle list file (`src/main/bundles/list`) which includes Apache Felix FileInstall as well as a test configuration file (`src/test/config/sling.properties`).
-
-### sling-intitial-content-archetype
-
-This archetype generates a Maven project which will build an OSGi bundle that supports JCR NodeType registration (in `SLING-INF/nodetypes/nodetypes.cnd`) and initial content loading (in `SLING-INF/scripts` and `SLING-INF/content`).
-
-### sling-servlet-archetype
-
-This archetype generates a Maven project which will build an OSGi bundle containing two Servlets registered with Sling, one registered by path and one registered by resource type.
-
-### sling-bundle-archetype
-
-This archetype generates a Maven project which will build a basic OSGi bundle including support for the Felix SCR Annotations. It is pre-configured to install using the Felix Web Console when the profile `autoInstallBundle` is activated.
-
-
-### sling-jcrinstall-bundle-archetype
-
-This archetype generates a Maven project which will build a basic OSGi bundle including support for the Felix SCR Annotations. It is pre-configured to install using a WebDAV PUT into the JCR when the profile `autoInstallBundle` is activated.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/maven-launchpad-plugin.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/maven-launchpad-plugin.md b/content/documentation/development/maven-launchpad-plugin.md
deleted file mode 100644
index 59b09a6..0000000
--- a/content/documentation/development/maven-launchpad-plugin.md
+++ /dev/null
@@ -1,161 +0,0 @@
-title=Maven Launchpad Plugin		
-type=page
-status=published
-~~~~~~
-translation_pending: true
-
-<div class="note">
-This page is out of sync with the latest maven-launchpad-plugin features and settings. For now,
-refer to the source code and the launchpad/builder and launchpad/testing modules for more information.
-</div>
-
-The Maven Launchpad Plugin provides goals which facilitate the creation of OSGi applications. It supports the following runtime scenarios:
-
-* A WAR file suitable for running in a JavaEE servlet container.
-* A standalone Java application, with HTTP support from the Felix HttpService implementation
-* Inside Apache Karaf
-
-In addition, the Maven Launchpad Plugin supports the publishing of an application descriptor, in the form of a *bundle list*, as a Maven artifact. This descriptor can then be used by downstream application builders as the basis for other applications. In Sling, this is embodied by two Maven projects:
-
-* [org.apache.sling.launchpad](http://svn.apache.org/repos/asf/sling/trunk/launchpad/builder) - produces an application descriptor.
-* [org.apache.sling.launchpad.testing](http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/) - uses the application descriptor from `org.apache.sling.launchpad` and adds two bundles.
-
-Maven Launchpad Plugin provides the following goals:
-
-| Goals | Description |
-|--|--|
-| launchpad:prepare-package | Create the file system structure required by Sling's Launchpad framework. |
-| launchpad:attach-bundle-list | Attach the bundle list descriptor to the current project as a Maven artifact. |
-| launchpad:create-karaf-descriptor | Create an Apache Karaf Feature descriptor. |
-| launchpad:create-bundle-jar | Create a JAR file containing the bundles in a Launchpad-structured JAR file. |
-| launchpad:check-bundle-list-for-snapshots | Validate that the bundle list does not contain any SNAPSHOT versions. |
-| launchpad:run | Run a Launchpad application. |
-| launchpad:start | Start a Launchpad application. |
-| launchpad:stop | Stop a Launchpad application. |
-| launchpad:output-bundle-list | Output the bundle list to the console as XML. (added in version 2.0.8) |
-
-### General Configuration
-
-In general, the bulk of the configuration of the Maven Launchpad Plugin is concerned with setting up the bundle list which all of the goals will use. This bundle list is created using the following steps:
-
-1. If `includeDefaultBundles` is `true` (the default), the default bundle list is loaded. By default, this is `org.apache.sling.launchpad:org.apache.sling.launchpad:RELEASE:xml:bundlelist`, but can be overridden by setting the `defaultBundleList` plugin parameter.
-1. If `includeDefaultBundles` is `false`, an empty list is created.
-1. If the bundle list file exists (by default, at `src/main/bundles/list.xml`), the bundles defined in it are added to the bundle list.
-1. If the `additionalBundles` plugin parameter is defined, those bundles are added to the bundle list.
-1. If the `bundleExclusions` plugin parameter is defined, those bundles are removed from the bundle list.
-
-When a bundle is added to the bundle list, if a bundle with the same groupId, artifactId, type, and classifier is already in the bundle list, the version of the existing bundle is modified. However, the start level of a bundle is never changed once that bundle is added to the bundle list.
-
-The plugin may also contribute bundles to (or remove bundles from) the bundle list as it sees fit.
-
-### Framework Configuration
-
-For the `run` and `start` goals, the plugin will look for a file named `src/test/config/sling.properties`. If this file is present, it will be filtered using standard Maven filtering and used to populate the OSGi framework properties. This can be used, for example, to specify a `repository.xml` file to be used during development:
-
-sling.repository.config.file.url=${basedir}/src/test/config/repository.xml
-
-
-## Bundle List Files
-
-The bundle list file uses a simple XML syntax representing a list of bundles organized into start levels:
-
-
-<?xml version="1.0"?>
-<bundles>
-<startLevel level="0">
-<bundle>
-<groupId>commons-io</groupId>
-<artifactId>commons-io</artifactId>
-<version>1.4</version>
-</bundle>
-<bundle>
-<groupId>commons-collections</groupId>
-<artifactId>commons-collections</artifactId>
-<version>3.2.1</version>
-</bundle>
-</startLevel>
-
-<startLevel level="10">
-<bundle>
-<groupId>org.apache.felix</groupId>
-<artifactId>org.apache.felix.eventadmin</artifactId>
-<version>1.0.0</version>
-</bundle>
-</startLevel>
-
-<startLevel level="15">
-<bundle>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.jcr.api</artifactId>
-<version>2.0.2-incubator</version>
-</bundle>
-</startLevel>
-</bundles>
-
-
-Within each `bundle` element, `type` and `classifier` are also supported.
-
-The Http Service support can not be configured using the bundle list, but only using the `jarWebSupport` parameter, since it is specific to whether the Sling Launchpad is built as a java application (in which case the Jetty-based Http Service is used) or a web application (in which case the Http Service bridge is used).
-
-## Artifact Definition
-
-The `defaultBundleList`, `jarWebSupport`, `additionalBundles`, and `bundleExclusions` parameters are configured with artifact definitions. This is done using a syntax similar to Maven dependency elements:
-
-
-<configuration>
-...
-<jarWebSupport>
-<groupId>GROUP_ID</groupId>
-<artifactId>ARTIFACT_ID</artifactId>
-<version>VERSION</version>
-<!-- type and classifier can also be specified if needed -->
-</jarWebSupport>
-...
-</configuration>
-
-
-For example, to use Pax Web instead of Felix HttpService as the HttpService provider, use the following:
-
-<configuration>
-...
-<jarWebSupport>
-<groupId>org.ops4j.pax.web</groupId>
-<artifactId>pax-web-service</artifactId>
-<version>RELEASE</version>
-<!-- type and classifier can also be specified if needed -->
-</jarWebSupport>
-...
-</configuration>
-
-
-In the case of `additionalBundles` and `bundleExclusions`, these are arrays of definitions, so an intermediate `bundle` element is necessary:
-
-
-<configuration>
-...
-<additionalBundles>
-<bundle>
-<groupId>GROUP_ID</groupId>
-<artifactId>ARTIFACT_ID</artifactId>
-<version>VERSION</version>
-<!-- type and classifier can also be specified if needed -->
-</bundle>
-</additionalBundles>
-...
-</configuration>
-
-
-By default, bundles are added to start level 0. To change, this use the `startLevel` element within each additional bundle definition.
-
-## Integration Testing
-
-For integration testing examples, see `/samples/inplace-integration-test` and `launchpad/testing` in the Sling source tree.
-
-## Bundle List Rewriting
-
-The Maven Launchpad Plugin supports the use of rules to rewrite the bundle list. These rules are executed by the [Drools](http://www.jboss.org/drools) rule engine. Typically, this is used along with Maven profiles. For example, Sling's testing project includes a profile called `test-reactor-sling-bundles`. When activated, this profile runs a Drools rule file which scans the project list from the Maven reactor and modifies the version number for bundles which were contained within the reactor.
-
-In order for rules to interact with the Maven build, the following global variables are made available:
-
-* `mavenSession` - an instance of `org.apache.maven.execution.MavenSession`.
-* `mavenProject` - an instance of `org.apache.maven.project.MavenProject`.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/maven-usage.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/maven-usage.md b/content/documentation/development/maven-usage.md
deleted file mode 100644
index 44757c7..0000000
--- a/content/documentation/development/maven-usage.md
+++ /dev/null
@@ -1,34 +0,0 @@
-title=Maven Usage		
-type=page
-status=published
-~~~~~~
-
-Apache Sling uses Maven as a build tool. This page documents some of the choices that we made when using Maven.
-
-## Parent POM
-
-We separate the reactor POM from the parent POM. While the reactor POM functions as a simple aggregator, the parent POM, currently located at [parent/pom.xml](http://svn.apache.org/repos/asf/sling/trunk/parent/pom.xml), holds the common build configuration for all modules.
-
-The reference to the parent POM is usually set to a released version since we don't deploy it as a SNAPSHOT during the build process. That reference must also contain an empty parentPath element, otherwise recent version of Maven will try to find it in the local filesystem, disregarding the version if the groupId and artifactId match. An example of how to reference the parent POM is
-
-#!xml
-<parent>
-<groupId>org.apache.sling</groupId>
-<artifactId>sling</artifactId>
-<version>$VERSION</version>
-<relativePath/>
-</parent>
-
-Where `$VERSION` is replaced by the latest parent POM version.
-
-## Java version
-
-The version of Java targeted by a module can be declared by setting a property in the pom.xml named `sling.java.version`. Configuration inherited from the parent POM will ensure that all the plugins will be correctly configured, including
-
-* maven-compiler-plugin: source and target arguments to use when compiling code
-* animal-sniffer-maven-plugin: signatures to use when validating compliance with a given Java version
-* maven-bundle-plugin: value of the Bundle-RequiredExecutionEnvironment header
-
-## Dependency management
-
-See [Dependency Management](/documentation/development/dependency-management.html)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/maventipsandtricks.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/maventipsandtricks.md b/content/documentation/development/maventipsandtricks.md
deleted file mode 100644
index 53f4fc4..0000000
--- a/content/documentation/development/maventipsandtricks.md
+++ /dev/null
@@ -1,61 +0,0 @@
-title=MavenTipsAndTricks		
-type=page
-status=published
-~~~~~~
-translation_pending: true
-
-Here's our collection of tips and tricks for building Sling with [Maven](http://maven.apache.org).
-
-# Maven local repository
-
-The first time you run a Maven build, or when Maven needs additional build components, it downloads plugins and dependencies under its *local repository* folder on your computer. By default, this folder is named *.m2/repository* in your home directory.
-
-Maven uses this repository as a cache for artifacts that it might need for future builds, which means that the first Sling build usually takes much longer than usual, as Maven needs to download many tools and dependencies into its local repository while the build progresses.
-
-The build might fail if one of those downloads fails, in that case it might be worth retrying the build, to check if that was just a temporary connection problem, or if there's a more serious error.
-
-In some cases, the local Maven repository might get corrupted - if your build fails on a computer and works on another one, clearing the local repository before restarting the build might be worth trying.
-
-# Maven settings
-
-## Ignore your local settings
-To make sure you're getting the same results as we are when building Sling, it is recommend to ignore any local settings.
-
-On unixish platforms, using
-
-
-mvn -s /dev/null ...
-
-
-does the trick.
-
-<div class="note">
-Does anyone have a similar command-line option that works under Windows?
-</div>
-
-#
-# MAVEN_OPTS
-The MAVEN_OPTS environment variable defines options for the JVM that executes Maven.
-
-Set it according to your platform, i.e. `export MAVEN*OPTS=...` on unixish systems or `set MAVEN*OPTS=...` on Windows.
-
-## Increase JVM memory if needed
-If getting an OutOfMemoryException when running mvn, try setting
-
-
-MAVEN_OPTS="-Xmx256M -XX:MaxPermSize=256m"
-
-
-to allocate 256MB of RAM to Maven.
-
-## Debugging code launched by Maven
-To run the Sling launchpad webapp in debug mode from Maven, for example, use something like
-
-
-MAVEN_OPTS="-agentlib:jdwp=transport=dt_socket,address=30303,server=y,suspend=n"
-
-
-And then connect to port 30303 with a remote JVM debugger (most IDEs do this).
-
-## Avoid spaces in Maven repository and workspace paths
-Some Maven plugins do not like spaces in paths. It is better to avoid putting your Maven repository, or your code, under paths like *Documents and Settings*, for example.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/monitoring-requests.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/monitoring-requests.md b/content/documentation/development/monitoring-requests.md
deleted file mode 100644
index f2b1cbf..0000000
--- a/content/documentation/development/monitoring-requests.md
+++ /dev/null
@@ -1,14 +0,0 @@
-title=Monitoring Requests		
-type=page
-status=published
-~~~~~~
-
-Sling provides a simple OSGi console plugin to monitor recent requests. This is quite useful when debugging and to understand how things work, though it's obviously not a replacement for full-blown HTTP trafic monitoring tools.
-
-The console plugin is available at /system/console/requests, listed as *Recent Requests* in the console menu.
-
-The plugin keeps track of the latest 20 requests processed by Sling, and displays the information provided by the RequestProgressTracker, for the selected request. The screenshot below shows an example.
-
-Any information that's added to the RequestProgressTracker (which is available from the SlingHttpServletRequest object) during request processing will be displayed by this plugin.
-
-![](sling-requests-plugin.jpg)

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/osgi-mock.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/osgi-mock.md b/content/documentation/development/osgi-mock.md
deleted file mode 100644
index bf76a83..0000000
--- a/content/documentation/development/osgi-mock.md
+++ /dev/null
@@ -1,189 +0,0 @@
-title=OSGi Mocks		
-type=page
-status=published
-~~~~~~
-
-Mock implementation of selected OSGi APIs for easier testing.
-
-[TOC]
-
-
-## Maven Dependency
-
-#!xml
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.testing.osgi-mock</artifactId>
-</dependency>
-
-See latest version on the [downloads page](/downloads.cgi).
-
-There are two major version ranges available:
-
-* osgi-mock 1.x: compatible with OSGi R4 and above
-* osgi-mock 2.x: compatible with OSGi R6 and above
-
-
-## Implemented mock features
-
-The mock implementation supports:
-
-* Instantiating OSGi `Bundle`, `BundleContext` and `ComponentContext` objects and navigate between them.
-* Register OSGi SCR services and get references to service instances
-* Supports reading OSGi SCR metadata from `/OSGI-INF/<pid>.xml` and from `/OSGI-INF/serviceComponents.xml`
-* Apply service properties/component configuration provided in unit test and from SCR metadata
-* Inject SCR dependencies - static and dynamic
-* Call lifecycle methods for activating, deactivating or modifying SCR components
-* Service and bundle listener implementation
-* Mock implementation of `LogService` which logs to SLF4J in JUnit context
-* Mock implementation of `EventAdmin` which supports `EventHandler` services
-* Mock implementation of `ConfigAdmin`
-* Context Plugins
-
-Since osgi-mock 2.0.0:
-
-* Support OSGi R6 and Declarative Services 1.3: Field-based reference bindings and component property types
-
-
-## Usage
-
-### OSGi Context JUnit Rule
-
-The OSGi mock context can be injected into a JUnit test using a custom JUnit rule named `OsgiContext`.
-This rules takes care of all initialization and cleanup tasks required to make sure all unit tests can run
-independently (and in parallel, if required).
-
-Example:
-
-#!java
-public class ExampleTest {
-
-@Rule
-public final OsgiContext context = new OsgiContext();
-
-@Test
-public void testSomething() {
-
-// register and activate service with configuration
-MyService service1 = context.registerInjectActivateService(new MyService(),
-"prop1", "value1");
-
-// get service instance
-OtherService service2 = context.getService(OtherService.class);
-
-}
-
-}
-
-It is possible to combine such a unit test with a `@RunWith` annotation e.g. for
-[Mockito JUnit Runner][mockito-testrunner].
-
-The `OsgiContext` object provides access to mock implementations of:
-
-* OSGi Component Context
-* OSGi Bundle Context
-
-Additionally it supports:
-
-* Registering and activating OSGi services and inject dependencies
-
-
-### Getting OSGi mock objects
-
-The factory class `MockOsgi` allows to instantiate the different mock implementations.
-
-Example:
-
-#!java
-// get bundle context
-BundleContext bundleContext = MockOsgi.newBundleContext();
-
-// get component context with configuration
-BundleContext bundleContext = MockOsgi.newComponentContext(properties,
-"prop1", "value1");
-
-It is possible to simulate registering of OSGi services (backed by a simple hash map internally):
-
-#!java
-// register service
-bundleContext.registerService(MyClass.class, myService, properties);
-
-// get service instance
-ServiceReference ref = bundleContext.getServiceReference(MyClass.class.getName());
-MyClass service = bundleContext.getService(ref);
-
-
-### Activation and Dependency Injection
-
-It is possible to simulate OSGi service activation, deactivation and dependency injection and the mock implementation
-tries to to its best to execute all as expected for an OSGi environment.
-
-Example:
-
-#!java
-// get bundle context
-BundleContext bundleContext = MockOsgi.newBundleContext();
-
-// create service instance manually
-MyService service = new MyService();
-
-// inject dependencies
-MockOsgi.injectServices(service, bundleContext);
-
-// activate service
-MockOsgi.activate(service, props);
-
-// operate with service...
-
-// deactivate service
-MockOsgi.deactivate(service);
-
-Please note:
-
-* You should ensure that you register you services in the correct order of their dependency chain.
-Only dynamic references will be handled automatically independent of registration order.
-* The injectServices, activate and deactivate Methods can only work properly when the SCR XML metadata files
-are preset in the classpath at `/OSGI-INF`. They are generated automatically by the Maven SCR plugin, but might be
-missing if your clean and build the project within your IDE (e.g. Eclipse). In this case you have to compile the
-project again with maven and can run the tests - or use a Maven IDE Integration like m2eclipse.
-
-
-### Provide your own configuration via ConfigAdmin
-
-If you want to provide your own configuration to an OSGi service that you do not register and activate itself in the mock context you can provide your own custom OSGi configuration via the mock implementation of the `ConfigAdmin` service.
-
-Example:
-
-#!java
-
-ConfigurationAdmin configAdmin = context.getService(ConfigurationAdmin.class);
-Configuration myServiceConfig = configAdmin.getConfiguration(MY_SERVICE_PID);
-Dictionary<String, Object> props = new Hashtable<String, Object>();
-props.put("prop1", "value1");
-myServiceConfig.update(props);
-
-
-### Context Plugins
-
-OSGi Mocks supports "Context Plugins" that hook into the lifecycle of each test run and can prepare test setup before or after the other setUp actions, and execute test tear down code before or after the other tearDown action.
-
-To define a plugin implement the `org.apache.sling.testing.mock.osgi.context.ContextPlugin<OsgiContextImpl>` interface. For convenience it is recommended to extend the abstract class `org.apache.sling.testing.mock.osgi.context.AbstractContextPlugin<OsgiContextImpl>`. These plugins can be used with OSGi Mock context, but also with context instances deriving from it like Sling Mocks and AEM Mocks. In most cases you would just override the `afterSetUp` method. In this method you can register additional OSGi services or do other preparation work. It is recommended to define a constant pointing to a singleton of a plugin instance for using it.
-
-To use a plugin in your unit test class, use the `OsgiContextBuilder` class instead of directly instantiating the `OsgiContext`class. This allows you in a fluent style to configure more options, with the `plugin(...)` method you can add one or more plugins.
-
-Example:
-
-#!java
-@Rule
-public OsgiContext context = new OsgiContextBuilder().plugin(MY_PLUGIN).build();
-
-More examples:
-
-* [Apache Sling Context-Aware Configuration Mock Plugin][caconfig-mock-plugin]
-* [Apache Sling Context-Aware Configuration Mock Plugin Test][caconfig-mock-plugin-test]
-
-
-
-[mockito-testrunner]: http://mockito.github.io/mockito/docs/current/org/mockito/runners/MockitoJUnitRunner.html
-[caconfig-mock-plugin]: https://github.com/apache/sling/blob/trunk/contrib/extensions/contextaware-config/testing/mocks/caconfig-mock-plugin/src/main/java/org/apache/sling/testing/mock/caconfig/ContextPlugins.java
-[caconfig-mock-plugin-test]: https://github.com/apache/sling/blob/trunk/contrib/extensions/contextaware-config/testing/mocks/caconfig-mock-plugin/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java

http://git-wip-us.apache.org/repos/asf/sling-site/blob/7b703652/content/documentation/development/release-management.md
----------------------------------------------------------------------
diff --git a/content/documentation/development/release-management.md b/content/documentation/development/release-management.md
deleted file mode 100644
index 29c2b65..0000000
--- a/content/documentation/development/release-management.md
+++ /dev/null
@@ -1,461 +0,0 @@
-title=Release Management		
-type=page
-status=published
-~~~~~~
-
-Sling releases (and SNAPSHOTS) are deployed to the [Nexus repository](http://repository.apache.org) instead of the traditional deployment via the Maven 2 mirrors source on `people.apache.org`. This makes the release process much leaner and simpler. In addtion we can benefit from the Apache Parent POM 6, which has most of the release profile setup built-in.
-
-Most of the hard work of preparing and deploying the release is done by Maven.
-
-[TOC]
-
-
-
-## Prerequisites
-
-* To prepare or perform a release you *MUST BE* at least be an Apache Sling Committer.
-* Each and every release must be signed; therefore the public key should be cross signed by other Apache committers (not required but suggested) and this public key should be added to [https://people.apache.org/keys/group/sling.asc](https://people.apache.org/keys/group/sling.asc) and either on pool.sks-keyservers.net or pgp.mit.edu (See Appendix A)
-* Make sure you have all [Apache servers](http://maven.apache.org/developers/committer-settings.html) defined in your `settings.xml`
-* See Appendix B for Maven and SCM credentials
-
-*Note*: Listing the Apache servers in the `settings.xml` file also requires adding the password to that file. Starting with Maven 2.1 this password may be encrypted and needs not be give in plaintext. Please refer to [Password Encryption](http://maven.apache.org/guides/mini/guide-encryption.html) for more information.
-
-In the past we staged release candidates on our local machines using a semi-manual process. Now that we inherit from the Apache parent POM version 6, a repository manager will automatically handle staging for you. This means you now only need to specify your GPG passphrase in the release profile of your `${user.home}/.m2/settings.xml`:
-
-
-<settings>
-...
-<profiles>
-<profile>
-<id>apache-release</id>
-<properties>
-<gpg.passphrase> <!-- YOUR KEY PASSPHRASE --> </gpg.passphrase>
-</properties>
-</profile>
-</profiles>
-...
-</settings>
-
-
-Everything else has been configured in the latest Sling Parent POM:
-
-
-<parent>
-<groupId>org.apache.sling</groupId>
-<artifactId>sling</artifactId>
-<version>6</version>
-</parent>
-
-
-
-
-## Staging the Release Candidates
-
-First prepare your POMs for release:
-
-1. Make sure there are no snapshots in the POMs to be released. In case you rely on a release version which is not yet promoted, you have to temporarily switch that dependency version to the release version. This might break the Jenkins CI build though, as the staged version is not yet visible to Jenkins, so revert this change after you have staged the release candidate.
-1. Check that your POMs will not lose content when they are rewritten during the release process
-
-$ mvn release:prepare -DdryRun=true
-
-Compare the original `pom.xml` with the one called `pom.xml.tag` to see if the license or any other info has been removed. This has been known to happen if the starting `<project>` tag is not on a single line. The only things that should be different between these files are the `<version>` and `<scm>` elements. If there are any other changes, you must fix the original `pom.xml` file and commit before proceeding with the release.
-
-1. Publish a snapshot
-
-$ mvn deploy
-...
-[INFO] [deploy:deploy]
-[INFO] Retrieving previous build number from apache.snapshots.https
-...
-
-* If you experience an error during deployment like a HTTP 401 check your settings for the required server entries as outlined in the *Prerequisites*
-* Make sure the generated artifacts respect the Apache release [rules](http://www.apache.org/dev/release.html): NOTICE and LICENSE files should be present in the META-INF directory within the jar. For -sources artifacts, be sure that your POM does not use the maven-source-plugin:2.0.3 which is broken. The recommended version at this time is 2.0.4
-* You should verify the deployment under the [snapshot](https://repository.apache.org/content/groups/snapshots/org/apache/sling) repository on Apache
-
-1. Prepare the release
-
-$ mvn release:clean
-$ mvn release:prepare
-
-* Preparing the release will create the new tag in SVN, automatically checking in on your behalf
-* If you get a build failure because of an SVN commit problem (namely *The specified baseline is not the latest baseline, so it may not be checked out.*), just repeat the `mvn release:prepare` command until SVN is happy. This is based on a known timing issue when using the European SVN mirror.
-
-1. Stage the release for a vote
-
-$ mvn release:perform
-
-* The release will automatically be inserted into a temporary staging repository for you, see the Nexus [staging documentation](http://www.sonatype.com/books/nexus-book/reference/staging.html) for full details
-* You can continue to use `mvn release:prepare` and `mvn release:perform` on other sub-projects as necessary on the same machine and they will be combined in the same staging repository - this is useful when making a release of multiple Sling modules.
-
-1. Close the staging repository:
-* Login to [https://repository.apache.org](https://repository.apache.org) using your Apache SVN credentials. Click on *Staging* on the left. Then click on *org.apache.sling* in the list of repositories. In the panel below you should see an open repository that is linked to your username and IP. Right click on this repository and select *Close*. This will close the repository from future deployments and make it available for others to view. If you are staging multiple releases together, skip this step until you have staged everything
-
-1. Verify the staged artifacts
-* If you click on your repository, a tree view will appear below. You can then browse the contents to ensure the artifacts are as you expect them. Pay particular attention to the existence of *.asc (signature) files. If you don't like the content of the repository, right click your repository and choose *Drop*. You can then rollback your release (see *Canceling the Release*) and repeat the process
-* Note the staging repository URL, especially the number at the end of the URL. You will need this in your vote email
-
-## Starting the Vote
-
-Propose a vote on the dev list with the closed issues, the issues left, and the staging repository - for example:
-
-
-To: "Sling Developers List" <de...@sling.apache.org>
-Subject: [VOTE] Release Apache Sling ABC version X.Y.Z
-
-Hi,
-
-We solved N issues in this release:
-https://issues.apache.org/jira/browse/SLING/fixforversion/...
-
-There are still some outstanding issues:
-https://issues.apache.org/jira/browse/SLING/component/...
-
-Staging repository:
-https://repository.apache.org/content/repositories/orgapachesling-[YOUR REPOSITORY ID]/
-
-You can use this UNIX script to download the release and verify the signatures:
-http://svn.apache.org/repos/asf/sling/trunk/check_staged_release.sh
-
-Usage:
-sh check_staged_release.sh [YOUR REPOSITORY ID] /tmp/sling-staging
-
-Please vote to approve this release:
-
-[ ] +1 Approve the release
-[ ]  0 Don't care
-[ ] -1 Don't release, because ...
-
-This majority vote is open for at least 72 hours.
-
-## Wait for the Results
-
-From [Votes on Package Releases](http://www.apache.org/foundation/voting.html):
-
-> Votes on whether a package is ready to be released follow a format similar to majority
-> approval -- except that the decision is officially determined solely by whether at least
-> three +1 votes were registered. Releases may not be vetoed. Generally the community
-> will table the vote to release if anyone identifies serious problems, but in most cases
-> the ultimate decision, once three or more positive votes have been garnered, lies with
-> the individual serving as release manager. The specifics of the process may vary from
-> project to project, but the 'minimum of three +1 votes' rule is universal.
-
-The list of binding voters is available on the [Project Team](/project-information/project-team.html) page.
-
-
-If the vote is successful, post the result to the dev list - for example:
-
-
-
-To: "Sling Developers List" <de...@sling.apache.org>
-Subject: [RESULT] [VOTE] Release Apache Sling ABC version X.Y.Z
-
-Hi,
-
-The vote has passed with the following result :
-
-+1 (binding): <<list of names>>
-+1 (non binding): <<list of names>>
-
-I will copy this release to the Sling dist directory and
-promote the artifacts to the central Maven repository.
-
-
-Be sure to include all votes in the list and indicate which votes were binding. Consider -1 votes very carefully. While there is technically no veto on release votes, there may be reasons for people to vote -1. So sometimes it may be better to cancel a release when someone, especially a member of the PMC, votes -1.
-
-If the vote is unsuccessful, you need to fix the issues and restart the process - see *Canceling the Release*. Note that any changes to the artifacts under vote require a restart of the process, no matter how trivial. When restarting a vote version numbers must not be reused, since binaries might have already been copied around.
-
-If the vote is successful, you need to promote and distribute the release - see *Promoting the Release*.
-
-
-
-## Canceling the Release
-
-If the vote fails, or you decide to redo the release:
-
-1. Remove the release tag from Subversion (`svn del ...`)
-1. Login to [https://repository.apache.org](https://repository.apache.org) using your Apache SVN credentials. Click on *Staging* on the left. Then click on *org.apache.sling* in the list of repositories. In the panel below you should see a closed repository that is linked to your username and IP (if it's not yet closed you need to right click and select *Close*). Right click on this repository and select *Drop*.
-1. Remove the old version from Jira
-1. Create a new version in Jira with a version number following the one of the cancelled release
-1. Move all issues with the fix version set to the cancelled release to the next version
-1. Delete the old version from Jira
-1. Commit any fixes you need to make and start a vote for a new release.
-
-## Promoting the Release
-
-If the vote passes:
-
-
-1. Push the release to [https://dist.apache.org/repos/dist/release/sling/](https://dist.apache.org/repos/dist/release/sling/). This is only possible for PMC members (for a reasoning look at [http://www.apache.org/dev/release.html#upload-ci](http://www.apache.org/dev/release.html#upload-ci)). If you are not a PMC member, please ask one to do the upload for you.
-1. Commit the released artifacts to [https://dist.apache.org/repos/dist/release/sling/](https://dist.apache.org/repos/dist/release/sling/) which is replicated to [http://www.apache.org/dist/sling/](http://www.apache.org/dist/sling/) quickly via svnpubsub. Hint: use svn import to avoid having to checkout the whole folder first. The easiest to do this is to get the released artifact using the check script (check&#95;staged&#95;release.sh) and then simply copy the artifacts from the downloaded folder to your local checkout folder. Make sure to not add the checksum files for the signature file *.asc.*).
-* Make sure to *not* change the end-of-line encoding of the .pom when uploaded via svn import! Eg when a windows style eol encoded file is uploaded with the setting '*.pom = svn:eol-style=native' this would later fail the signature checks!
-1. Delete the old release artifacts from that same dist.apache.org svn folder (the dist directory is archived)
-1. Push the release to Maven Central
-1. Login to [https://repository.apache.org](https://repository.apache.org) with your Apache SVN credentials. Click on *Staging*. Find your closed staging repository and select it by checking the select box. Select the *Releases* repository from the drop-down list and click *Release* from the menu above.
-1. Once the release is promoted click on *Repositories*, select the *Releases* repository and validate that your artifacts are all there.
-1. Update the news section on the website at [news](/news.html).
-1. Update the download page on the website at [downloads](/downloads.cgi) to point to the new release.
-
-For the last two tasks, it's better to give the mirrors some time to distribute the uploaded artifacts (one day should be fine). This ensures that once the website (news and download page) is updated, people can actually download the artifacts.
-
-## Update JIRA
-
-Go to [Manage Versions](https://issues.apache.org/jira/plugins/servlet/project-config/SLING/versions) section on the SLING JIRA and mark the X.Y.Z version as released setting the release date to the date the vote has been closed.
-
-Also create a new version X.Y.Z+2, if that hasn't already been done.
-
-And keep the versions sorted, so when adding a new version moved it down to just above the previous versions.
-
-Close all issues associated with the released version.
-
-
-## Create an Announcement
-
-We usually do such announcements only for "important" releases, as opposed to small individual module
-releases which are just announced on our [news](/news.html) page.
-
-To: "Sling Developers List" <de...@sling.apache.org>, "Apache Announcements" <an...@apache.org>
-Subject: [ANN] Apache Sling ABC version X.Y.Z Released
-
-The Apache Sling team is pleased to announce the release of Apache Sling ABC version X.Y.Z
-
-Apache Sling is a web framework that uses a Java Content Repository, such as Apache Jackrabbit, to store and manage content. Sling applications use either scripts or Java servlets, selected based on simple name conventions, to process HTTP requests in a RESTful way.
-
-<<insert short description of the sub-project>>
-
-http://sling.apache.org/site/apache-sling-ABC.html
-
-This release is available from http://sling.apache.org/site/downloads.cgi
-
-Building from verified sources is recommended, but convenience binaries are
-also available via Maven:
-
-<dependency>
-<groupId>org.apache.sling</groupId>
-<artifactId>org.apache.sling.ABC</artifactId>
-<version>X.Y.Z</version>
-</dependency>
-
-Release Notes:
-
-<<insert release notes in text format from JIRA>>
-
-Enjoy!
-
--The Sling team
-
-*Important*: Add the release to the Software section of the next board report below [Reports](https://cwiki.apache.org/confluence/display/SLING/Reports).
-
-## Related Links
-
-1. [http://www.apache.org/dev/release-signing.html](http://www.apache.org/dev/release-signing.html)
-1. [http://wiki.apache.org/incubator/SigningReleases](http://wiki.apache.org/incubator/SigningReleases)
-
-## Releasing the Sling IDE Tooling
-
-While the Sling IDE tooling is built using Maven, the toolchain that it is based around does not cooperate well with the maven-release-plugin. As such, the release preparation and execution are slightly different. The whole process is outlined below, assuming that we start with a development version of 1.0.1-SNAPSHOT.
-
-1. set the fix version as released: `mvn tycho-versions:set-version -DnewVersion=1.0.2`
-1. update the version of the source-bundle project to 1.0.2
-1. commit the change to svn
-1. manually tag in svn using `svn copy https://svn.apache.org/repos/asf/sling/trunk/tooling/ide https://svn.apache.org/repos/asf/sling/tags/sling-ide-tooling-1.0.2`
-1. update to next version: `mvn tycho-versions:set-version -DnewVersion=1.0.3-SNAPSHOT` and also update the version of the source-bundle project
-1. commit the change to svn
-1. Checkout the version from the tag and proceed with the build from there `https://svn.apache.org/repos/asf/sling/tags/sling-ide-tooling-1.0.2`
-1. build the project with p2/gpg signing enabled: `mvn clean package -Psign`
-1. build the source bundle from the source-bundle directory: `mvn clean package`
-1. copy the following artifacts to https://dist.apache.org/repos/dist/dev/sling/ide-tooling-1.0.2
-1. source bundle ( org.apache.sling.ide.source-bundle-1.0.2.zip )
-1. zipped p2 repository ( org.apache.sling.ide.p2update-1.0.2.zip )
-1. ensure the artifacts are checksummed and gpg-signed by using the `tooling/ide/sign.sh` script
-1. call the vote
-
-The format of the release vote should be
-
-To: "Sling Developers List" <de...@sling.apache.org>
-Subject: [VOTE] Release Apache Sling IDE Tooling version X.Y.Z
-
-Hi,
-
-We solved N issues in this release:
-https://issues.apache.org/jira/browse/SLING/fixforversion/
-
-There are still some outstanding issues:
-https://issues.apache.org/jira/browse/SLING/component/12320908
-
-The release candidate has been uploaded at
-https://dist.apache.org/repos/dist/dev/sling, The release artifact is
-the source bundle - org.apache.sling.ide.source-bundle-X.Y.Z.zip -
-which can be used to build the project using
-
-mvn clean package
-
-The resulting binaries can be installed into an Eclipse instance from
-the update site which is found at p2update/target/repository after
-building the project.
-
-You can use this UNIX script to download the release and verify the signatures:
-http://svn.apache.org/repos/asf/sling/trunk/tooling/ide/check_staged_release.sh
-
-Usage:
-sh check_staged_release.sh X.Y.Z /tmp/sling-staging
-
-Please vote to approve this release:
-
-[ ] +1 Approve the release
-[ ]  0 Don't care
-[ ] -1 Don't release, because ...
-
-This majority vote is open for at least 72 hours
-
-
-Once the release has passed, the following must be done:
-
-1. announce the result of the vote, see [Wait for the results](#wait-for-the-results)
-1. update versions in jira, see [Update JIRA](#update-jira)
-1. upload p2update.zip* to https://dist.apache.org/repos/dist/release/sling/
-1. upload unzipped update site to https://dist.apache.org/repos/dist/release/sling/eclipse/1.0.2
-1. upload the source bundle to https://dist.apache.org/repos/dist/release/sling/eclipse/1.0.2
-1. create GPG signatures and checksums for all uploaded jars using the `tooling/ide/sign.sh` script
-1. update https://dist.apache.org/repos/dist/release/sling/eclipse/composite{Content,Artifacts}.xml to point version 1.0.2
-1. archive the old artifact versions but leave pointers to archive.apache.org, using compositeArtifacts.xml/compositeContent.xml , with a single child entry pointing to https://archive.apache.org/dist/sling/eclipse/1.0.0/
-1. remove the staged artifacts from https://dist.apache.org/repos/dist/dev/sling/ide-tooling-1.0.2
-1. update the news page and the download pages
-1. update the Eclipse Marketplace listing
-
-## Appendix A: Create and Add your key to [https://people.apache.org/keys/group/sling.asc](https://people.apache.org/keys/group/sling.asc)
-
-Considering that you are using a *nix system with a working OpenSSH, GnuPG, and bash you can create and add your own key with the following commands:
-
-1. Create a public/private pair key:
-
-$ gpg --gen-key
-
-When gpg asks for e-mail linked the key you *MUST USE* the &lt;committer&gt;@apache.org one. When gpg asks for comment linked the key you *SHOULD USE* "CODE SIGNING KEY"
-
-1. Add the key to [https://people.apache.org/keys/group/sling.asc](https://people.apache.org/keys/group/sling.asc)
-
-1. Type the following command replacing the word `<e-mail>` with your Apache's one (&lt;committer&gt;@apache.org) to get the key signature
-
-$ gpg --fingerprint <e-mail>
-
-The key signature is in the output following the `Key fingerprint = ` part.
-
-1. Add the key signature into the field 'OpenPGP Public Key Primary Fingerprint' in your profile at [https://id.apache.org](https://id.apache.org).
-
-1. You are *DONE*, but to see the changes on [https://people.apache.org/keys/group/sling.asc](https://people.apache.org/keys/group/sling.asc) you may need to wait a few hours;
-
-1. You also have to add your public key either on `pool.sks-keyservers.net` or `pgp.mit.edu` (for the staging repository). To do so you can follow these steps:
-1. Extract the key id from all the secret keys stored in the system:
-
-$ gpg --list-secret-keys.
-
-The output is something like this
-
-gpg --list-secret-keys
-/Users/konradwindszus/.gnupg/secring.gpg
-----------------------------------------
-
-sec   2048R/455ECC7C 2016-01-21
-uid                  Konrad Windszus <kw...@apache.org>
-ssb   2048R/226BCE00 2016-01-21
-
-The key id in this case is `455ECC7C`.
-
-1. Send the key towards e.g. `pool.sks-keyservers.net` via
-
-$ gpg --keyserver pool.sks-keyservers.net --send-key <key-id>
-
-
-
-## Appendix B: Maven and SCM credentials
-
-For running the `mvn release:prepare` command without giving credentials on command line add `svn.apache.org` to your `settings.xml`:
-
-<server>
-<id>svn.apache.org</id>
-<username>USERNAME</username>
-<password>ENCRYPTED_PASSWORD</password>
-</server>
-
-## Appendix C: Deploy bundles on the Sling OBR (obsolete)
-
-*Update November 2016: We do now longer maintain the Sling OBR for new releases.*
-
-We are mainting an OSGi Bundle Repository providing all release of the Sling Bundles. This repository is maintained as part of the Apache Sling site and is available at [http://sling.apache.org/obr/sling.xml](http://sling.apache.org/obr/sling.xml). The source for this page is maintained in the SVN repository below the _site_, that is at [http://svn.apache.org/repos/asf/sling/site/](http://svn.apache.org/repos/asf/sling/site/). To update the Sling OBR repository you must be an Apache Sling Committer since this requires SVN write access.
-
-To update the OBR you may use the Apache Felix Maven Bundle Plugin which prepares the bundle descriptor to be added to the OBR file. Follow these steps to update the OBR:
-
-1. Checkout or update the Site Source
-
-$ svn checkout https://svn.apache.org/repos/asf/sling/site
-
-Note, that you have to checkout the site using the `https` URL, otherwise you will not be able to commit the changes later.
-
-2. Deploy the Descriptor
-
-To deploy the project descriptor, checkout the tag of the bundle to deploy and run maven
-
-$ svn checkout http://svn.apache.org/repos/asf/sling/tags/the_module_tag
-$ cd the_module_tag
-$ mvn clean install             org.apache.felix:maven-bundle-plugin:deploy             -DprefixUrl=http://repo1.maven.org/maven2             -DremoteOBR=sling.xml             -DaltDeploymentRepository=apache.releases::default::file:///path_to_site_checkout/trunk/content/obr
-
-This generates the bundle descriptor and adds it to the sling.xml file of your site checkout.
-As it also installs a fresh compiled version of the artifacts, it's better to remove that version from your local repository again (A new binary has new checksums etc.).
-
-2. Variant: Refer to Maven Repository
-
-Instead of checking out and building the project locally, you may also use the `deploy-file` goal of the Maven Bundle Plugin:
-
-$ wget http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.jar
-$ wget http://repo1.maven.org/maven2/org/apache/sling/the_moduleversion/the_module-version.pom
-$ mvn org.apache.felix:maven-bundle-plugin:deploy-file             -Dfile=the_module-version.jar -DpomFile=the_module-version.pom             -DbundleUrl=http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.jar             -Durl=file:///path_to_site_checkout/obr             -DprefixUrl=http://repo1.maven.org/maven2             -DremoteOBR=sling.xml
-$ rm the_module-version.jar the_module-version.pom
-
-3. Commit the Site Changes
-
-In the Site checkout folder commit the changes to the `trunk/content/obr/sling.xml` files (you may also review the changes using the `svn diff` command).
-
-$ svn commit -m"Add Bundle ABC Version X.Y.Z" trunk/content/obr/sling.xml
-
-4. Update the Site
-
-Wait for the buildbot to update the staging area with your site update (see dev list for an email).
-Then go to the CMS at [https://cms.apache.org/redirect?uri=http://sling.apache.org/obr](https://cms.apache.org/redirect?uri=http://sling.apache.org/obr) ,
-update your checkout and then publish the site.
-
-
-## Appendix D: Deploy Maven plugin documentation (if applicable)
-
-When releasing a Maven plugin, the Maven-generated documentation published under [http://sling.apache.org/components/](http://sling.apache.org/components/) needs
-to be updated.
-
-This is currently supported for:
-
-* `maven-sling-plugin`
-* `htl-maven-plugin`
-* `slingstart-maven-plugin`
-* `jspc-maven-plugin`
-
-To publish the plugin documentation execute the following steps after the release:
-
-1. Checkout the release tag of the released plugin (or reset your workspace)
-
-2. Build and stage the maven site of the plugin. Note that this *commits* the generated content to the components folder mentioned below.
-
-$ mvn clean site:site site:stage scm-publish:publish-scm
-
-3. Checkout the 'components' subtree of the Sling website
-
-$ svn checkout https://svn.apache.org/repos/asf/sling/site/trunk/content/components
-
-4. SVN-rename the generated documenation that the site plugin commited to `<plugin-name>-archives/<plugin-name>-LATEST` to `<plugin-name>-archives/<plugin-name>-<version>`
-
-5. SVN-remove the existing folder `<plugin-name>` and SVN-copy the folder `<plugin-name>-archives/<plugin-name>-<version>` to `<plugin-name>`
-
-6. Commit the changes.
-
-7. Publish the Sling site to production
-
-8. Check the results at [http://sling.apache.org/components/](http://sling.apache.org/components/)
-
-For background information about this process see the [Maven components reference documentation](http://maven.apache.org/developers/website/deploy-component-reference-documentation.html).


[52/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/bundle-resources-extensions-bundleresource.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/bundle-resources-extensions-bundleresource.html b/documentation/bundles/bundle-resources-extensions-bundleresource.html
new file mode 100644
index 0000000..94a57d3
--- /dev/null
+++ b/documentation/bundles/bundle-resources-extensions-bundleresource.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Bundle Resources (extensions.bundleresource)</h1></header><p>[TOC]</p>
+<h2>Introduction</h2>
+<p>The Bundle Resource Provider provides access to files/directories included in an OSGi bundle through the Sling <code>ResourceResolver</code>.</p>
+<h2>Resource Types</h2>
+<p>Files and directories are mapped into the resource tree as regular <code>Resource</code> instances whose resource type depends on the actual nature of the mapped resource:</p>
+<ul>
+  <li>Regular files are assigned the <code>nt:file</code> resource type</li>
+  <li>Directories are assigned the <code>nt:folder</code> resource type</li>
+</ul>
+<h2>Adapters</h2>
+<p>Filesystem resources extend from Sling's <code>AbstractResource</code> class and thus are adaptable to any type for which an <code>AdapterFactory</code> is registered supporting bundle resources. In addition <code>BundleResource</code> support the following adapters natively:</p>
+<ul>
+  <li><code>java.net.URL</code> -- A valid <code>bundle://</code> URL to the resource in the bundle.</li>
+  <li><code>java.io.InputStream</code> -- An <code>InputStream</code> to read file contents. Doesn't apply to folders.</li>
+</ul>
+<h2>Configuration</h2>
+<p>Providing bundles have a Bundle manifest header <code>Sling-Bundle-Resources</code> containing a list of absolute paths provided by the bundle. The paths are separated by comma or whitespace (SP, TAB, VTAB, CR, LF).</p>
+<p>Example (manifest.mf):</p>
+<p>... Sling-Bundle-Resources: /libs/sling/explorer, /libs/sling/servlet/default/explorer ...</p>
+<p>It's also possible to map resources from the bundle to a different location in the resource tree. In this case the path has to be extended with a path attrribute to declare where the resources are in the bundle:</p>
+<p>... Sling-Bundle-Resources: /somepath/inthe/resourcetree;path:=/path/inthe/bundle ...</p>
+<p>The Bundle Resource Provider also has a web console plugin through which the currently installed bundles can be seen.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/caching-services.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/caching-services.html b/documentation/bundles/caching-services.html
new file mode 100644
index 0000000..8e7a487
--- /dev/null
+++ b/documentation/bundles/caching-services.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Sling Caching Services</h1></header><p>Caching services are available as a contribution at <a href="https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/cache">https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/cache</a></p>
+<p>Both EhCache and Infinispan implementations are provided, with good unit and integration tests coverage.</p>
+<p>A portal cache provider API implementation is provided, that depends on the whiteboard portal modules found under <a href="https://svn.apache.org/repos/asf/sling/whiteboard/portal">https://svn.apache.org/repos/asf/sling/whiteboard/portal</a></p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/commons-html-utilities.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/commons-html-utilities.html b/documentation/bundles/commons-html-utilities.html
new file mode 100644
index 0000000..72c2d97
--- /dev/null
+++ b/documentation/bundles/commons-html-utilities.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Commons HTML Utilities (org.apache.sling.commons.html)</h1></header><p>The Apache Sling Commons HTML Utilities bundle provides an HTML parser which can be used to parse HTML and either generate a DOM or SAX events out of the HTML. Therefore the parser transforms the HTML into proper XHTML.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/configuration-installer-factory.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/configuration-installer-factory.html b/documentation/bundles/configuration-installer-factory.html
new file mode 100644
index 0000000..67aa156
--- /dev/null
+++ b/documentation/bundles/configuration-installer-factory.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Configuration Installer Factory</h1></header><p>The configuration installer factory provides support for configurations to the <a href="/documentation/bundles/osgi-installer.html">OSGI installer</a>. The provisioning of artifacts is handled by installer providers like the file installer or the JCR installer.</p>
+<h2>Configurations</h2>
+<p>Configuration file names are related to the PID and factory PID. The structure of the file name is as follows:</p>
+<p>filename ::= <pid> ( '-' <subname> )? ('.cfg'|'.config')</p>
+<p>If the form is <code>&lt;pid&gt;(&#39;.cfg&#39;|&#39;.config&#39;)</code>, the file contains the properties for a Managed Service. The <code>&lt;pid&gt;</code> is then the PID of the Managed Service. See the Configuration Admin service for details.</p>
+<p>When a Managed Service Factory is used, the situation is different. The <code>&lt;pid&gt;</code> part then describes the PID of the Managed Service Factory. You can pick any <code>&lt;subname&gt;</code>, the installer will then create an instance for the factory for each unique name. For example:</p>
+<p>com.acme.xyz.cfg // configuration for Managed Service // com.acme.xyz com.acme.abc-default.cfg // Managed Service Factory, // creates an instance for com.acme.abc</p>
+<p>If a configuration is modified, the file installer will write the configuration back to a file to ensure peristence across restarts (if <code>sling.fileinstall.writeback</code> is enabled).</p>
+<h3>Property Files (.cfg)</h3>
+<p>Configuration files ending in '.cfg' are plain property files (<code>java.util.Property</code>). The format is simple:</p>
+<p>file ::= ( header | comment ) * header ::= <header> ( ':' | '=' ) <value> ( '<nl> <value> ) * comment ::= '#' <any></p>
+<p>Notice that this model only supports string properties. For example:</p>
+<h1>default port</h1>
+<p>ftp.port = 21</p>
+<h3>Configuration Files (.config)</h3>
+<p>Configuration files ending in '.config' use the format of the Apache Felix ConfigAdmin implementation. It allows to specify the type and cardinality of a configuration property and is not limited to string values.</p>
+<p>The first line of such a file might start with a comment line (a line starting with a #). Comments within the file are not allowed.</p>
+<p>The format is:</p>
+<p>file ::= (comment) (header) * comment ::= '#' <any> header ::= prop '=' value prop ::= symbolic-name // 1.4.2 of OSGi Core Specification symbolic-name ::= token { '.' token } token ::= { [ 0..9 ] | [ a..z ] | [ A..Z ] | '_' | '-' } value ::= [ type ] ( '[' values ']' | '(' values ')' | simple ) values ::= simple { ',' simple } simple ::= '"' stringsimple '"' type ::= <1-char type code> stringsimple ::= &lt;quoted string representation of the value where both '"' and '=' need to be escaped&gt;</p>
+<p>The quoted string format is equal to the definition from HTTP 1.1 (<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html">RFC2616</a>), except that both '"' and '=' need to be escaped.</p>
+<p>The 1 character type code is one of:</p>
+<ul>
+  <li>'T' : simple string</li>
+  <li>'I' : Integer</li>
+  <li>'L' : Long</li>
+  <li>'F' : Float</li>
+  <li>'D' : Double</li>
+  <li>'X' : Byte</li>
+  <li>'S' : Short</li>
+  <li>'C' : Character</li>
+  <li>'B' : Boolean</li>
+</ul>
+<p>A number of such .config files exist in the Sling codebase and can be used as examples.</p>
+<h1>Project Info</h1>
+<ul>
+  <li>Configuration installer factory (<a href="http://svn.apache.org/repos/asf/sling/trunk/installer/factories/configuration">org.apache.sling.installer.factory.configuration</a>)</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/content-distribution.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/content-distribution.html b/documentation/bundles/content-distribution.html
new file mode 100644
index 0000000..2b490b0
--- /dev/null
+++ b/documentation/bundles/content-distribution.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Content Distribution (org.apache.sling.distribution)</h1></header><p>[TOC]</p>
+<h2>Introduction</h2>
+<p>The Sling Content Distribution (SCD) module allows one to distribute Sling resources between different Sling instances. The API works at path level and the distribution agents basically enable distribution of specific paths between instances. There are several main usecases in which SCD can help. Typically the distribution is done from one or more source instances to one or more target instances.</p>
+<h2>Distribution usecases</h2>
+<p>Some of the usecases have sample configuration in <a href="https://github.com/apache/sling/tree/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution">Distribution Sample Module</a> and are tested in <a href="https://github.com/apache/sling/tree/trunk/contrib/extensions/distribution/it">Distribution ITs Module</a>.</p>
+<h3>Forward distribution</h3>
+<p>A forward distribution setup allows one to transfer content from a source instance to a farm of target instances. That is done by pushing the content from source to target.</p>
+<h4>Setup overview</h4>
+<ul>
+  <li>one source instance</li>
+  <li>one distribution agent connected to importer endpoints for all target instances.</li>
+  <li>N target instances</li>
+  <li>one distribution importer on each target instance used to import packages into the local instance.</li>
+</ul>
+<h4>Sample configuration</h4>
+<ul>
+  <li>on source instance: one forward agent</li>
+</ul>
+<p>org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish.json name="publish" packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default"]</p>
+<ul>
+  <li>on target instance: one local importer</li>
+</ul>
+<p>org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory-default name="default"</p>
+<h3>Reverse distribution</h3>
+<p>A reverse distribution setup allows one to transfer content from a farm of source instances to a target instance. That is done by pulling the content from source instances into the target instance.</p>
+<h4>Setup overview</h4>
+<ul>
+  <li>one target instance</li>
+  <li>one distribution agent connected to exporter endpoints for all target instances.</li>
+  <li>N source instances</li>
+  <li>one distribution (queue) agent on each source instance; changes from the source instances are placed in the queues of these agents.</li>
+  <li>one distribution exporter on each source instance that exports packages from the queue agent.</li>
+</ul>
+<h4>Sample configuration</h4>
+<ul>
+  <li>on target instance: one reverse agent</li>
+</ul>
+<p>org.apache.sling.distribution.agent.impl.ReverseDistributionAgentFactory-reverse.json name="reverse" packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse"]</p>
+<ul>
+  <li>on source instance: one queue agent and one exporter for that agent</li>
+</ul>
+<p>org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json name="reverse"</p>
+<p>org.apache.sling.distribution.packaging.impl.exporter.AgentDistributionPackageExporterFactory-reverse name="reverse" agent.target="(name=reverse)"</p>
+<h3>Sync distribution</h3>
+<p>A sync distribution setup allows one to synchronize content in a farm of instances. That is done by using a coordinator instance (typically an author instance) that pulls content from all instances in a farm and pushes it back to all.</p>
+<h4>Setup overview:</h4>
+<ul>
+  <li>one coordinator instance</li>
+  <li>one distribution agent connected to exporter/importer endpoints for all farm instances.</li>
+  <li>N farm instances</li>
+  <li>one distribution (queue) agent on each farm instance; changes from these instances are placed in the queues of the queue agents.</li>
+  <li>one distribution exporter on each farm instance that exports packages from the queue agent.</li>
+  <li>one distribution importer on each farm instance used to import packages into the local instance.</li>
+</ul>
+<h4>Sample configuration</h4>
+<ul>
+  <li>on coordinator instance: one sync agent</li>
+</ul>
+<p>org.apache.sling.distribution.agent.impl.SyncDistributionAgentFactory-sync.json name="sync" packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse", "http://localhost:4504/libs/sling/distribution/services/exporters/reverse"] packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]</p>
+<ul>
+  <li>on each farm instance: one local exporter and one local importer</li>
+</ul>
+<p>org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json name="reverse"</p>
+<p>org.apache.sling.distribution.packaging.impl.exporter.AgentDistributionPackageExporterFactory-reverse name="reverse" agent.target="(name=reverse)"</p>
+<p>org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory-default name="reverse" agent.target="(name=reverse)"</p>
+<h3>Multidatacenter sync distribution</h3>
+<p>A multidatacenter sync distribution setup allows one to synchronize content in a farm of publish instances across datacenters. This a variation of sync distribution but using a coordinator in each datacenter.</p>
+<h4>Setup overview</h4>
+<ul>
+  <li>one coordinator instance in each datacenter</li>
+  <li>one distribution agent for intra-datacenter synchronization. Like a regular sync agent it connects to all farm instances in its datacenter and syncronizes them. In addition to a regular sync agent it keeps the packages also in dedicated queues for the other DCs, so that the coordinators from the other DCs can pull the updates.</li>
+  <li>one distribution exporter for each queue dedicated for the remote DCs. The inter-dc coordinators from the other DCs will connect to these exporter endpoints.</li>
+  <li>one distribution agent for inter-datacenter synchronization; it conntects to the dedicated queues exposed by intra-dc coordinators from the other datacenters.</li>
+  <li>N farm instances in each datacenter</li>
+  <li>one distribution (queue) agent on each farm instance; changes from these instances are placed in the queues of the queue agents.</li>
+  <li>one distribution exporter on each farm instance that exports packages from the queue agent.</li>
+  <li>one distribution importer on each farm instance used to import packages into the local instance.</li>
+</ul>
+<h4>Sample configuration</h4>
+<ul>
+  <li>on coordinator instance: one intradcsync agent with two exporters for the other dcs, and one interdcsync agent that connects to remote exporters.</li>
+</ul>
+<p>org.apache.sling.distribution.agent.impl.SyncDistributionAgentFactory-intradcsync name="intradcsync" packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse", "http://localhost:4504/libs/sling/distribution/services/exporters/reverse"] packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"] passiveQueues=["dc2queue", "dc3queue"]</p>
+<p>org.apache.sling.distribution.packaging.impl.exporter.AgentDistributionPackageExporterFactory-dc2queue name="dc2queue" agent.target="(name=intradcsync)" queue="dc2queue"</p>
+<p>org.apache.sling.distribution.packaging.impl.exporter.AgentDistributionPackageExporterFactory-dc3queue name="dc3queue" agent.target="(name=intradcsync)" queue="dc3queue"</p>
+<p>org.apache.sling.distribution.agent.impl.SyncDistributionAgentFactory-interdcsync name="interdcsync" packageExporter.endpoints=["http://localhost:5502/libs/sling/distribution/services/exporters/dc1queue", "http://localhost:6502/libs/sling/distribution/services/exporters/dc1queue"] packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]</p>
+<ul>
+  <li>on each farm instance: one local exporter and one local importer</li>
+</ul>
+<p>org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json name="reverse"</p>
+<p>org.apache.sling.distribution.packaging.impl.exporter.AgentDistributionPackageExporterFactory-reverse name="reverse" agent.target="(name=reverse)"</p>
+<p>org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory-default name="default"</p>
+<h2>Additional options</h2>
+<h3>How to trigger distribution over HTTP?</h3>
+<h3>How to configure binary-less distribution?</h3>
+<h3>How to configure priority paths?</h3>
+<h3>How to configure error queues?</h3></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/content-loading-jcr-contentloader.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/content-loading-jcr-contentloader.html b/documentation/bundles/content-loading-jcr-contentloader.html
new file mode 100644
index 0000000..f9f5b5a
--- /dev/null
+++ b/documentation/bundles/content-loading-jcr-contentloader.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Content Loading and Nodetype Support (jcr.contentloader)</h1></header><p>Apache Sling provides support for initial content loading into a repository and for registering node types. The <code>sling-jcr-contentloader</code> bundle provides loading of content from a bundle into the repository and the <code>sling-jcr-base</code> bundle provides node type registration.</p>
+<h2>Initial Content Loading</h2>
+<p>Bundles can provide initial content, which is loaded into the repository when the bundle has entered the <em>started</em> state. Such content is expected to be contained in the bundles accessible through the Bundle entry API methods. Content to be loaded is declared in the <code>Sling-Initial-Content</code> bundle manifest header. This header takes a comma-separated list of bundle entry paths. Each entry and all its child entries are accessed and entered into starting with the child entries of the listed entries.</p>
+<p>Adding this content preserves the paths of the entries as shown in this table, which assumes a <code>Sling-Initial-Content</code> header entry of <code>SLING-INF/content</code> (with no further directives):</p>
+<table>
+  <thead>
+    <tr>
+      <th>Source Entry Paths in Bundle </th>
+      <th>Target Repository Path </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>SLING-INF/content/home</code> </td>
+      <td><code>/home</code> </td>
+    </tr>
+    <tr>
+      <td><code>SLING-INF/content/content/playground/en/home</code> </td>
+      <td><code>/content/playground/en/home</code> </td>
+    </tr>
+    <tr>
+      <td><code>SLING-INF/someothercontent/playground/en/home</code> </td>
+      <td>not installed at all, because not below the <code>Sling-Initial-Content</code> header entry </td>
+    </tr>
+  </tbody>
+</table>
+<p>Bundle entries are installed as follows:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Entry Type </th>
+      <th>Installation method </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Directory </td>
+      <td>Created as a node of type <code>sling:Folder</code> unless a content definition file of the same name exists in the same directory as the directory to be installed. Example: A directory <code>SLING-INF/content/dir</code> is installed as node <code>/dir</code> of type <code>nt:folder</code> unless a <code>SLING-INF/content/dir.xml</code> or <code>SLING-INF/content/dir.json</code> file exists which defines the content for the <code>/dir</code> node. </td>
+    </tr>
+    <tr>
+      <td>File </td>
+      <td>Unless the file is a content definition file (see below) an <code>nt:file</code> node is created for the file and an <code>nt:resource</code> node is created as its <code>jcr:content</code> child node to take the contents of the bundle file. The properties of the <code>nt:resource</code> node are set from file information as available. If a content definition file exists with the same name as the file plus <code>.json</code> or <code>.xml</code> these properties are set additionally on the imported file. See below for the content definition file specification. </td>
+    </tr>
+  </tbody>
+</table>
+<p>It is possible to modify the intial content loading default behaviour by using certain optional directives. Directives should be specified separated by semicolon. They are defined as follows:</p>
+<table>
+  <thead>
+    <tr>
+      <th>Directive </th>
+      <th>Definition </th>
+      <th>Default value </th>
+      <th>Description </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>overwrite</code> </td>
+      <td><code>overwrite:=(true&#124;false)<code> </td>
+      <td><code>false</code> </td>
+      <td>The overwrite directive specifies if content nodes should be overwritten (at the target repository path, which is "/" by default) or just initially added. If this is true, existing nodes are deleted and a new node is created in the same place. This directive should be used together with the <code>path</code> directive to limit overwriting. </td>
+    </tr>
+    <tr>
+      <td><code>overwriteProperties</code> </td>
+      <td><code>overwriteProperties:=(true&#124;false)</code> </td>
+      <td><code>false</code> </td>
+      <td>The overwriteProperties directive specifying if content properties should be overwritten or just initially added (at the target repository path, which is "/" by default). This directive should be used together with the <code>path</code> directive to limit overwriting. </td>
+    </tr>
+    <tr>
+      <td><code>uninstall</code> </td>
+      <td><code>uninstall:=(true&#124;false)</code> </td>
+      <td>value from <code>overwrite</code> </td>
+      <td>The uninstall directive specifies if content should be uninstalled when bundle is unregistered. This value defaults to the value of the <code>overwrite</code> directive. </td>
+    </tr>
+    <tr>
+      <td><code>path</code> </td>
+      <td><code>path:=*/target/location*</code> </td>
+      <td><code>/</code> </td>
+      <td>The path directive specifies the target node where initial content will be loaded. If the path does not exist yet in the repository, it is created by the content loader. The intermediate nodes are of type <code>sling:Folder</code>. </td>
+    </tr>
+    <tr>
+      <td><code>checkin</code> </td>
+      <td><code>checkin:=(true&#124;false)</code> </td>
+      <td><code>false</code> </td>
+      <td>The checkin directive specifies whether versionable nodes should be checked in. </td>
+    </tr>
+    <tr>
+      <td><code>ignoreImportProviders</code> </td>
+      <td><code>ignoreImportProviders:=list of extensions</code> </td>
+      <td><code>empty</code> </td>
+      <td>This directive can be used to not run one of the configured extractors (see below). </td>
+    </tr>
+  </tbody>
+</table>
+<p>Examples of these directives within <code>Sling-Initial-Content</code> header entries:</p>
+<table>
+  <thead>
+    <tr>
+      <th><code>Sling-Initial-Content</code> header entry </th>
+      <th>Behaviour </th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td><code>SLING-INF/content/home;overwrite:=true;path:=/home</code> </td>
+      <td>Overwrites already existing content in <em>/home</em> and uninstalls the content when the bundle is unregistered. </td>
+    </tr>
+    <tr>
+      <td><code>SLING-INF/content/home;overwriteProperties:=true;path:=/home</code> </td>
+      <td>Overwrites properties of existing content in <em>/home</em>. </td>
+    </tr>
+    <tr>
+      <td><code>SLING-INF/content/home;path:=/sites/sling_website</code> </td>
+      <td>This loads the content given in <em>SLING-INF/content/home</em> into <em>/sites/sling_website</em>. </td>
+    </tr>
+    <tr>
+      <td><code>SLING-INF/content/home;checkin:=true</code> </td>
+      <td>After content loading, versionable nodes are checked in. </td>
+    </tr>
+  </tbody>
+</table>
+<h2>Loading initial content from bundles</h2>
+<p>Repository items to be loaded into the repository, when the bundle is first installed, may be defined in four ways:</p>
+<ol>
+  <li>Directories</li>
+  <li>Files</li>
+  <li>XML descriptor files</li>
+  <li>JSON descriptor files</li>
+</ol>
+<p>Depending on the bundle entry found in the location indicated by the Sling-Initial-Content bundle manifest header, nodes are created (and/or updated) as follows:</p>
+<h3>Directories</h3>
+<p>Unless a node with the name of the directory already exists or has been defined in an XML or JSON descriptor file (see below) a directory is created as a node with the primary node type "nt:folder" in the repository.</p>
+<h3>Files</h3>
+<p>Unless a node with the name of the file already exists or has been defined in an XML or JSON descriptor file (see below) a file is created as two nodes in the repository. The node bearing the name of the file itself is created with the primary node type "nt:file". Underneath this file node, a resource node with the primary node type "nt:resource" is created, which is set to the contents of the file.</p>
+<p>The MIME type is derived from the file name extension by first trying to resolve it from the Bundle entry URL. If this does not resolve to a MIME type, the Sling MIME type resolution service is used to try to find a mime type. If all fals, the MIME type is defaulted to "application/octet-stream".&nbsp;&nbsp;</p>
+<h3>XML Descriptor Files</h3>
+<p>Nodes, Properties and in fact complete subtrees may be described in XML files using either the JCR SystemView format, or the format described below. In either case, the file must have the .xml extension.</p>
+<p><node> <!--
+optional on top level, defaults to XML file name without .xml extension
+required for child nodes
+--> <name>xyz</name></p>
+<!--
+optional, defaults to nt:unstructured
+-->
+<p><primaryNodeType>nt:file</primaryNodeType></p>
+<!--
+optional mixin node type
+may be repeated for multiple mixin node types
+-->
+<p><mixinNodeType>mix:versionable</mixinNodeType> <mixinNodeType>mix:lockable</mixinNodeType></p>
+<!--
+Optional properties for the node. Each <property> element defines
+a single property of the node. The element may be repeated.
+-->
+<p><property> <!--
+required property name
+--> <name>prop</name></p>
+<!--
+value of the property.
+For multi-value properties, the values are defined by multiple
+<value> elements nested inside a <values> element instead of a
+single <value> element
+-->
+<p><value>property value as string</value></p>
+<!--
+Optional type of the property value, defaults to String.
+This must be one of the property type strings defined in the
+JCR PropertyType interface.
+-->
+<p><type>String</type> </property></p>
+<!--
+Additional child nodes. May be further nested.
+-->
+<p><node> .... </node> </node></p>
+<h4>Using a custom XML format</h4>
+<p>By writing an XSLT stylesheet file, you can use whatever XML format you prefer. The XML file references an XSLT stylesheet by using the xml-stylesheet processing instruction:</p>
+<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;?xml-stylesheet href="my-transform.xsl" type="text/xsl"?&gt; <!-- The path to my-transform.xsl is relative to this file --></p>
+<p><your_custom_root_node> <your_custom_element> ... </your_custom_element> ... </your_custom_root_node></p>
+<p>The my-transform.xsl file is then responsible for translating your format into one of the supported XML formats:</p>
+<p>&lt;xsl:stylesheet version="1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:rep="internal" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</p>
+<p>&lt;xsl:template match="your_custom_element"&gt; <node> ... </node> &lt;/xsl:template&gt; ... &lt;/xsl:stylesheet&gt;</p>
+<h3>JSON Descriptor Files</h3>
+<p>Nodes, Properties and in fact complete subtrees may be described in JSON files using the following skeleton structure (see <a href="http://www.json.org">http://www.json.org</a> or information on the syntax of JSON) :</p>
+<p>{ // child node name "nodename" : {</p>
+<p>// optional primary node type, default "nt:unstructured" "jcr:primaryType": "sling:ScriptedComponent",</p>
+<p>// optional mixin node types as array "jcr:mixinTypes": [ ],</p>
+<p>// additional properties as name value pairs. // Multi-value properties are defined as JSON array. // Property type is derived from the value</p>
+<p>// String value (default) "sling:contentClass": "com.day.sling.jcr.test.Test",</p>
+<p>// Multi-value String "sampleMulti": [ "v1", "v2" ],</p>
+<p>// Long value, single and multi "sampleStruct": 1, "sampleStructMulti": [ 1, 2, 3 ],</p>
+<p>// Date follows pattern yyyy-mm-ddTHH:MM:SS.sss±HH:MM "sampleDate": "2014-11-27T13:26:00.000+01:00",</p>
+<p>// JCR Node Reference with name prefix (removed to derive node name) "jcr:reference:sampleRef": "386b0f48-49c3-4c58-8735-ceee6bfc1933",</p>
+<p>// JCR Path with name prefix (removed to derive node name) "jcr:path:samplePath": "/content/data",</p>
+<p>// JCR Name with name prefix (removed to derive node name) "jcr:name:sampleName": "data",</p>
+<p>// URI with name prefix (removed to derive node name) "jcr:uri:sampleUri": "http://sling.apache.org/",</p>
+<p>// Child nodes are simple JSON objects "sling:scripts": { "jcr:primaryType": "sling:ScriptList", "sling:Script": { "jcr:primaryType": "sling:Script", "sling:name": "/test/content/jsp/start.jsp", "sling:type": "jsp", "sling:glob": "*" } } }</p>
+<h3>Extractors</h3>
+<p>By default, the <code>sling-jcr-contentloader</code> bundle tries to extract certain file types during content loading. These include <code>json</code>, <code>xml</code>, <code>zip</code>, and <code>jar</code> files. Therefore all available extractors are used for content processing. However if some files should be put into the repository unextracted, the <code>ignoreImportProviders</code> directive can be used with a comma separated list of extensions that should not be extracted, like <code>ignoreImportProviders:=&quot;jar,zip&quot;</code>. Please note that the value needs to be put into quotation marks if more than one value is used like in the example.</p>
+<h3>Workspace Targetting</h3>
+<p>By default, initial content will be loaded into the default workspace. To override this, add a <code>Sling-Initial-Content-Workspace</code> bundle manifest header to specify the workspace. Note that <em>all</em> content from a bundle will be loaded into the same workspace.</p>
+<h3>Example: Load i18n JSON files</h3>
+<p>The Sling Internationalization Support (i18n) supports providing JSON-filed based i18n files (see <a href="https://sling.apache.org/documentation/bundles/internationalization-support-i18n.html#json-file-based">i18n documentation</a>). In this case the JSON file is not interpreted as content definition file, but is stored as binary file in the repository. Additionally a mixin <code>mix:language</code> and a property <code>jcr:language</code> with the language code has to be set on the file node.</p>
+<p>This is an example how such an i18n file can be loaded from an OSGi bundle with the Sling Content Loader.</p>
+<p>Within your bundle header you have to define a separate path for the i18n files where you have to explicitly disable the JSON provider:</p>
+<p><Sling-Initial-Content> SLING-INF/i18n;overwrite:=true;ignoreImportProviders:=json;path:=/apps/myapp/i18n </Sling-Initial-Content></p>
+<p>The folder <code>SLING-INF/i18n</code> from your bundles contains a pair of files for each language, e.g.:</p>
+<ul>
+  <li><code>en.json</code> - The JSON file containing the i18n keys</li>
+  <li><code>en.json.xml</code> - Additional content descriptor file setting the mixing and language property</li>
+</ul>
+<p>Example for the content descriptor:</p>
+<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt; <node> <name>en.json</name> <mixinNodeType>mix:language</mixinNodeType> <property> <name>jcr:language</name> <value>en</value> <type>String</type> </property> </node></p>
+<h2>Declared Node Type Registration</h2>
+<p>The <code>sling-jcr-base</code> bundle provides low-level repository operations which are at the heart of the functionality of Sling: * <em>Node Type Definitions</em> - The class <code>org.apache.sling.content.jcr.base.NodeTypeLoader</code> provides methods to register custom node types with a repository given a repository session and a node type definition file in CND format. This class is also used by this bundle to register node types on behalf of other bundles.</p>
+<p>Bundles may list node type definition files in CND format in the <code>Sling-Nodetypes</code> bundle header. This header is a comma-separated list of resources in the respective bundle. Each resource is taken and fed to the <code>NodeTypeLoader</code> to define the node types.</p>
+<p>After a bundle has entered the <em>resolved</em> state, the node types listed in the <code>Sling-Nodetypes</code> bundle header are registered with the repository.</p>
+<p>Node types installed by this mechanism will never be removed again by the <code>sling-jcr-base</code> bundle.</p>
+<p>Starting with revision 911430, re-registration of existing node types is enabled by default. To disable this, add <code>;rereigster:=false</code> to the resource names for which re-registration should be disabled.</p>
+<div class="warning">
+Support for re-registration of node types is relatively limited. In Jackrabbit, for example, only "trivial" changes are allowed.
+</div>
+<h3>Automated tests</h3>
+<p>The initial content found in the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/content/src/main/resources/content/sling-test">sling-test folder of the launchpad initial content</a> is verified by the <a href="http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java">InitialContentTest</a> when running the <em>launchpad/testing</em> integration tests.</p>
+<p>Those tests can be used as verified examples of initial content loading. Contributions are welcome to improve the coverage of those tests.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html b/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html
new file mode 100644
index 0000000..417d7de
--- /dev/null
+++ b/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling Context-Aware Configuration - Default Implementation</h1></header><p>[TOC]</p>
+<h1>About</h1>
+<p>By default the 'default implementation' us used by the Context-Aware Configuration concerning lookup and persistence of configuration data, resource and property inheritance and context path detection. Using the <a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html">SPI</a> it is possible to overlay, extend or replace this functionality.</p>
+<p>This page documents the details of the default implementation.</p>
+<h1>Repository paths</h1>
+<p>By default all configuration data is stored in <code>/conf</code>. Fallback paths are <code>/conf/global</code>, <code>/apps/conf</code>and <code>/libs/conf</code>.</p>
+<p>The paths are configurable in the service configuration.</p>
+<h1>Context paths</h1>
+<p>The content resource hierarchy is defined by setting <code>sling:configRef</code> properties. Each resource that has a <code>sling:configRef</code> property set defines the root resource of a context, the whole subtree is the context. Within the subtree further nested contexts can be defined.</p>
+<h1>Configuration resource resolving</h1>
+<p>This illustration shows an example for configuration resource lookup:</p>
+<p><img src="config-resource-lookup.png" alt="Configuration resource lookup" /></p>
+<p>If you get the context-aware configuration via the API for any resource below <code>/content/tenant1/region1/site1</code> it is looked up in this path in this order:</p>
+<ol>
+  <li><code>/conf/brand1/tenant1/region1/site1</code> - because referenced by <code>/content/tenant1/region1/site1</code></li>
+  <li><code>/conf/brand1/tenant1/region1</code> - because referenced by <code>/content/tenant1/region1</code> (parent context)</li>
+  <li><code>/conf/brand1/tenant1</code> - because referenced by <code>/content/tenant1</code> (parent context)</li>
+  <li><code>/conf/brand1</code> - because it is a parent of by <code>/conf/brand1/tenant1</code></li>
+  <li><code>/conf/global</code> - because it is configured as fallback path</li>
+  <li><code>/apps/conf</code> - because it is configured as fallback path</li>
+  <li><code>/libs/conf</code> - because it is configured as fallback path</li>
+</ol>
+<p>So the basic rules are:</p>
+<ul>
+  <li>Go up in the content resource tree until a resource with <code>sling:configRef</code> is found. This is the 'inner-most' context. Check if a configuration resource exists at the path the property points to.</li>
+  <li>Check for parent resources of the references configuration resource (below <code>/conf</code>)</li>
+  <li>Go further up in the content resource tree for parent contexts, and check their configuration resources as well (they may reference completely different location below <code>/conf</code>)</li>
+  <li>Check the fallback paths</li>
+</ul>
+<h1>Configuration persistence</h1>
+<p>Example for the resource structure for a configuration resource at <code>/conf/mysite</code>:</p>
+<p>/conf /mysite /sling:configs /x.y.z.MyConfig @prop1 = 'value1' @prop2 = 123 @prop3= true</p>
+<p>Explanation:</p>
+<ul>
+  <li><code>sling:configs</code> is the bucket named which is used by the ConfigurationResolver by default for context-aware configurations. May be another name if you use the ConfigurationResourceResolver directly.</li>
+  <li><code>x.y.z.MyConfig</code> is the configuration name, in this case derived from an annotation class. May be any other custom name as well.</li>
+  <li><code>prop1..3</code>are example for configuration properties</li>
+  <li>It is possible to use deeper hierarchies below <code>sling:configs</code> as well.</li>
+  <li>Nested configurations are supported as well. This can be mapped to annotation classes referencing other annotation classes.</li>
+</ul>
+<h1>Resource inheritance</h1>
+<p>We distinguish between:</p>
+<ul>
+  <li>Singleton resources: Configuration resources looked up by the <code>get</code>/<code>as</code> method variants</li>
+  <li>Collection resources: Configuration resources lists looked up by the <code>getCollection</code>/<code>asCollection</code> method variants</li>
+</ul>
+<p>For singleton resources, there is not resource inheritance. The first resource that is found in the configuration resource resolving lookup order is returned.</p>
+<p>For collection resources there is no resource inheritance enabled by default. The children of the first resource that is found in the configuration resource resolving lookup order are returned.</p>
+<p>By defining a property <code>sling:configCollectionInherit</code> on the configuration resource, the children of the next resource that is found in the configuration resource resolving lookup order are combined with the children of the current configuration resource, returned a merged list. If both configuration resources contain child resources with the same name, duplicates are eliminated and only the children of the first resource are included.</p>
+<p>By setting the property <code>sling:configCollectionInherit</code> on multiple configuration resources that are part of the lookup order it is possible to form deeper inheritance chains following the same rules.</p>
+<p>Example for resource inheritance:</p>
+<p><img src="resource-inheritance.png" alt="Resource inheritance" /></p>
+<p>The result of this example is: <strong>C, A, B</strong>. It would by just <strong>C</strong> if the <code>sling:configCollectionInherit</code> is not set.</p>
+<h1>Property inheritance</h1>
+<p>By default, no property inheritance takes place. That means only the properties that are stored in the configuration resource are mapped to the annotation class or returned as value map, regardless whether singleton or collection resources are returned, or if resource collection inheritance is enabled or not.</p>
+<p>By defining a property <code>sling:configPropertyInherit</code> on the configuration resource, property merging is enabled between the current configuration resource and the next resource with the same name (singleton or resource collection item) in the configuration resource lookup order. That means that all properties that are not defined on the current configuration resource are inherited from the next resources and a merged value map is used for the configuration mapping.</p>
+<p>By setting the property <code>sling:configPropertyInherit</code> on multiple configuration resources that are part of the lookup order it is possible to form deeper inheritance chains following the same rules.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html b/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html
new file mode 100644
index 0000000..4e6f765
--- /dev/null
+++ b/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling Context-Aware Configuration - Override</h1></header><p>[TOC]</p>
+<h1>About</h1>
+<p>Using overrides it is possible to override context-aware configuration values globally or for specific content paths (and their subtrees) within an instance. If an override is active the Configuration API returns the overridden values instead of the values from the configuration resources.</p>
+<p>An example use case is to overwrite the Site URLs on your staging system which has a copy of the configuration content of the production system installed.</p>
+<p>Via the <a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html">SPI</a> you can add your own override providers - but in most cases the built-in ones described in this page are sufficient. All override providers use the same override syntax.</p>
+<h1>Override syntax</h1>
+<p>Generally an override consists of one single line. Syntax examples:</p>
+<p>{configName}/{propertyName}={propertyJsonValue} {configName}={propertyJsonObject} [{contextPath}]{configName}/{propertyName}={propertyJsonValue} [{contextPath}]{configName}={propertyJsonObject}</p>
+<p>The different parts:</p>
+<ul>
+  <li><code>{configName}</code> - Configuration name - can be a relative path with sub-resources</li>
+  <li><code>{propertyName}</code> - Property name</li>
+  <li><code>{propertyJsonValue}</code> - Property value in JSON value syntax.</li>
+  <li><code>{propertyJsonObject}</code> - If the property name is missing a JSON object can be defined containing all properties as key-value pairs.</li>
+  <li><code>{contextPath}</code> - If the context path is missing, the override is applied to all context path. If it is defined (enclosed in brackets), the override is applied only to this content path and it's subtree.</li>
+</ul>
+<p>When the syntax <code>{configName}/{propertyName}={propertyJsonValue}</code> is used, only this specific property is overwritten leaving all other properties in the configuration resource untouched. When the syntax <code>{configName}={propertyJsonObject}</code> is used, all configuration properties in the configuration resources are replaced with the set from the JSON object.</p>
+<p>Override string examples with real values:</p>
+<p>my-config/property1="value 1" my-config/sub1/property1="value 1" my-config/property1=["value 1","value 2"] my-config/property1=123 x.y.z.MyConfig={"prop1"="value1","prop2"=[1,2,3],"prop3"=true,"prop4"=1.23} [/content/region1]my-config/property1="value 1" [/content/region1]my-config/sub1={"prop1":"value 1"}</p>
+<p>If multiple statements are defined affecting the same content path, configuration name and property name, they overwrite each other. That means the override string defined last wins.</p>
+<h1>Built-in override providers</h1>
+<h2>Override via system properties</h2>
+<p>Allows to define configuration property overrides from system environment properties.</p>
+<p>The parameters are defined when starting the JVM using the -D command line parameter. Each parameter contains an override string. All parameter names have to be prefixed with the string <code>sling.caconfig.override.</code>.</p>
+<p>Example:</p>
+<p>-Dsling.caconfig.override.my-config/sub1/property1=123 -D"sling.caconfig.override.my-config/property1=["value 1","value 2"]" -D"sling.caconfig.override.[/content/region1]x.y.z.MyConfig={"prop1"="value1","prop2"=[1,2,3],"prop3"=true,"prop4"=1.23}"</p>
+<p>This provider is not active by default, it has to be activated via OSGi configuration ("Apache Sling Context-Aware System Property Configuration Override Provider").</p>
+<h2>Override via OSGi configuration</h2>
+<p>Allows to define configuration property overrides from OSGi configuration.</p>
+<p>You can provide multiple providers using a factory configuration ("Apache Sling Context-Aware OSGi Configuration Override Provider"), each of them provides list of override strings.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html b/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html
new file mode 100644
index 0000000..b179274
--- /dev/null
+++ b/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Apache Sling Context-Aware Configuration - SPI</h1></header><p>[TOC]</p>
+<h1>About</h1>
+<p>The Context-Aware Configuration implementation provides a set of Service Provider Interfaces (SPI) that allows you to overlay, enhance or replace the default implementation and adapt it to your needs.</p>
+<p>Please use the SPI with care, and first check if the <a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html">Default Implementation</a> does not already fulfill your needs.</p>
+<h1>General principles</h1>
+<p>All SPIs share a common principle:</p>
+<ul>
+  <li>Support multiple strategies at the same time</li>
+  <li>No need to switch off or „copy“ the initial strategy</li>
+  <li>Apply additional strategies only for those places where needed (“minimally invasive”)</li>
+</ul>
+<p>All existing implementations are iterated in order of their service ranking.</p>
+<h1>Context Path Strategy</h1>
+<p>By providing an implementation of <code>org.apache.sling.caconfig.resource.spi.ContextPathStrategy</code> you can provide additional ways how context paths and their configuration references are detected in your content resource hierarchy.</p>
+<p>E.g. you could implement detecting context paths by project-specific conventions.</p>
+<h1>Configuration Resource Resolver Strategy</h1>
+<p>By providing an implementation of <code>org.apache.sling.caconfig.resource.spi.ConfigurationResourceResolvingStrategy</code> you can define where configuration data is looked up, and how resource and property inheritance is handled.</p>
+<h1>Configuration Inheritance Strategy</h1>
+<p>By providing an implementation of <code>org.apache.sling.caconfig.spi.ConfigurationInheritanceStrategy</code> you can define if and how resources are inherited across the inheritance chain.</p>
+<h1>Configuration Persistence Strategy</h1>
+<p>By providing an implementation of <code>org.apache.sling.caconfig.spi.ConfigurationPersistenceStrategy2</code> you can define the persistence structure of the configuration within the configuration resources.</p>
+<p>E.g. you could use a specific JCR node type or slightly different content structure to store the configuration data.</p>
+<h1>Configuration Metadata Provider</h1>
+<p>By providing an implementation of <code>org.apache.sling.caconfig.spi.ConfigurationMetadataProvider</code> you can provide information about configuration metadata from other sources than annotation classes.</p>
+<h1>Configuration Override Provider</h1>
+<p>By providing an implementation of <code>org.apache.sling.caconfig.spi.ConfigurationOverrideProvider</code> you can provide your own overrides - if the built-in override providers do not fit your needs.</p>
+<p>See <a href="http://sling.apache.org/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html">Override</a> for the list of built-in providers and the override syntax.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>


[47/53] sling-site git commit: asf-site branch created for published content

Posted by bd...@apache.org.
http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/osgi-installer.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/osgi-installer.html b/documentation/bundles/osgi-installer.html
new file mode 100644
index 0000000..cffd0da
--- /dev/null
+++ b/documentation/bundles/osgi-installer.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>OSGi Installer</h1></header><h1>Overview</h1>
+<p>The OSGi installer is a central service for handling installs, updates and uninstall of "artifacts". By default, the installer supports bundles and has an extension for handling configurations for the OSGi configuration admin.</p>
+<p><img src="/documentation/bundles/Slide14.jpg" alt="Apache Sling OSGI Installer Diagram" /></p>
+<p>The OSGi installer itself is "just" the central service managing the tasks and states of the artifacts. The artifacts can be provided through various providers, e.g. through a file system provider reading artifacts from configured directories or the jcr provider reading artifacts from a JCR repository.</p>
+<p>A provider is just scanning for artifacts and their removal. It informs the OSGi installer about new artifacts and removed artifacts. The provider itself has usually no knowledge about the contents of an artifact. It does not know about bundles, configurations etc.</p>
+<p>As the OSGi installer itself is not performing the actual install, update or removal of an artifact, its possible to install transformers and installer factories. A transformer inspects the artifacts and tries to detect its type. By default, detecting of bundles and configurations is supported. The final service is an installer factory creating the actual task, like install this bundle, update that bundle etc.</p>
+<p>It's possible to add own providers, transformers and installer factories to support custom scenarios.</p>
+<h2>API</h2>
+<p>The installer API is defined by the <code>org.apache.sling.installer.api</code> package of the <a href="http://svn.apache.org/repos/asf/sling/trunk/installer/core/">org.apache.sling.installer.core</a> module. The main interface is the <code>OsgiInstaller</code> with which installable resources can be registered.</p>
+<p>The [installer integration tests][1] module can be useful to understand the details of how the installer works.</p>
+<h2>Artifact Handling</h2>
+<p>Once an artifact is detected by a transformer, it gets a unique id. By default a bundle gets the symbolic name as the unique identifier and a configuration the PID. In addition to this id, an artifact gets a priority information from the provider. The priority is used if an artifact with the same id is provided several times from different locations. For example if a file system provider is scanning two directories and an artifact with the same id (like a configuration) is added to both directories, one should have precedence over the other. This is handled by the priority.</p>
+<p>Artifacts with the same unique id are grouped and then sorted by priority and maybe other artifact dependent metadata like the bundle version. Only the first artifact in this sorted group is tried to be applied!</p>
+<h2>Bundle Handling</h2>
+<p>In general, the OSGi installer always tries to install the highest version of a bundle if several bundles with the same symbolic name are provided. In this case higher version wins over priority. If an installed bundle is removed by a provider, for example deleted in the repository, the OSGi installer uninstall the bundle. If a bundle is removed from a provider which is currently not installed, this has no effect at all. If an installed bundle is removed and another version of this bundle is provided (a lower version), than this one is installed instead. This is basically a downgrade of the bundle. If a bundle is installed and a higher version is provided, an upgrade is performed. If an installed bundle is managed via any other OSGi tooling, like uninstalling it through the web console, the OSGi installer does no action at all!</p>
+<p>If a failure occurs during bundle installation or update, the OSGi installer will retry this as soon as another bundle has been installed. The common use case is an application installation with several bundles where one bundle depends on another. As they are installed in arbitrary order, this mechanism ensures that in the end all bundles are properly wired and installed.</p>
+<p>When all artifacts have been processed (either install, update or delete), a package refresh is automatically called.</p>
+<h3>Versions and Snapshots</h3>
+<p>The OSGi installer asumes that a symbolic name and version (not a snapshot version) uniquely identifies a bundle. Obviously this is a common development requirement that a released version of an artifact never changes over time. Therefore, once a bundle with a specific version is installed, it will not be reinstalled if the corresponding artifact changes. For example, if bundle A with version 1.0 is put into the JCR repository, it gets installed. If now this jar in the repository is overwritten either with the same contents or with a different one, and this new artifact has again A as the symbolic name and version set to 1.0, nothing will happen as this exact bundle is already installed.</p>
+<p>During development, SNAPSHOT versions should be used, like 1.0.0-SNAPSHOT (using the Maven convention). If a bundle with a snapshot version is changed, it gets updated by the OSGI installer.</p>
+<h2>Start Level Handling</h2>
+<p>The OSGi installer supports handling of start levels for bundles. If the provided bundle artifacts contain a start level information the bundle is installed with that start level, otherwise the default start level is used. Therefore, for initial provisioning to make use of start levels, the OSGi installer and the corresponding provider (see below) should run at a very low start level, probably at 1. This ensure that the bundles with a start level are started with respect to the start level.</p>
+<p>When an update of bundles is performed through the installer, by default the installer stays in the current start level and updates the bundles. However, if bundles at low start levels are affected, this might result in a lot of churn going on. Therefore, the OSGi installer can be configured to use a more intelligent start level handling:</p>
+<ul>
+  <li>If the framework property "sling.installer.switchstartlevel" is set to "true" and</li>
+  <li>there is no asynchronous install task in the list of tasks to perform, then</li>
+  <li>the start level is set to (the lowest level of the bundles to be updated - 1) - if the start level is lower than the level of the installer itself, the start level of the installer is used.</li>
+  <li>the bundles are updated/installed</li>
+  <li>the start level is increased to the previous level</li>
+</ul>
+<h2>Plugins</h2>
+<h3>Factories</h3>
+<p>An installer factory provides support for a specific artifact type, like a configuration or a deployment package etc.</p>
+<ul>
+  <li><a href="/documentation/bundles/configuration-installer-factory.html">Configuration Installer Factory</a></li>
+  <li><a href="/documentation/bundles/subsystem-installer-factory.html">Subsystem Installer Factory</a></li>
+</ul>
+<h3>Providers</h3>
+<p>A provider provides artifacts, e.g. by scanning a directory or a database etc.</p>
+<ul>
+  <li><a href="/documentation/bundles/file-installer-provider.html">File Installer Provider</a></li>
+  <li><a href="/documentation/bundles/jcr-installer-provider.html">JCR Installer Provider</a></li>
+</ul>
+<h2>Health Check</h2>
+<p>The OSGi installer provides a <a href="/documentation/bundles/sling-health-check-tool.html">Sling Health Check</a> which validates that the processed OSGi installer resources have the correct state (<a href="https://issues.apache.org/jira/browse/SLING-5888">SLING-5888</a>). By default it will only check resources with a URL prefix <code>jcrinstall:/apps/</code>, so only the resources being provided through the <a href="/documentation/bundles/jcr-installer-provider.html">JCR Installer Provider</a> initially located below the repository resource <code>/apps/</code> are considered. The health check will fail in the following cases:</p>
+<h3>Bundles Installation Failure</h3>
+<p>The checked bundle was not installed because it has been installed in a newer version through some other means (e.g. manually through the Felix Web Console or by another provider. For further details please review the OSGi Installer console at <code>/system/console/osgi-installer</code> and check for all bundles with the given symbolic name (=OSGi installers resource id) and the according URL.</p>
+<h3>Configuration Installation Failure</h3>
+<p>The checked configuration was not installed because it has either been overwritten manually in the Felix Web Console or is installed by some non-checked provider (which has a higher priority). To revert manually overwritten configurations just go to <code>/system/console/configMgr</code> and delete the according configuration. That way the OSGi installer should automatically create a new configuration for the same PID based on the configuration provided by some provider with the highest prio. In case another non-checked provider has provided already a configuration you can see from where it has been installed by looking at the OSGi Installer console at <code>/system/console/osgi-installer</code> and look for all configurations with the given PID.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.html b/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.html
new file mode 100644
index 0000000..169db1f
--- /dev/null
+++ b/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Output Rewriting Pipelines (org.apache.sling.rewriter)</h1></header><p>The Apache Sling Rewriter is a module for rewriting the output generated by a usual Sling rendering process. Some possible use cases include rewriting or checking all links in an HTML page, manipulating the HTML page, or using the generated output as the base for further transformation. An example of further transformation is to use XSLT to transform rendered XML to some output format like HTML or XSL:FO for generating PDF.</p>
+<p>For supporting these use cases, the rewriter uses the concept for a processor. The processor is a component that is injected through a servlet filter into the response. By implementing the <em>Processor</em> interface one is able to rewrite the whole response in one go. A more convenient way of processing the output is by using a so called pipeline; the Apache Sling rewriter basically uses the same concept as the famous Apache Cocoon: an XML based pipeline for further post processing of the output. The pipeline is based on SAX events.</p>
+<h2>SAX Pipelines</h2>
+<p>The rewriter allows to configure a pipeline for post processing of the generated response. Depending on how the pipeline is assembled the rewriting process might buffer the whole output in order to do proper post processing - for example this is required if an HTML response is "transformed" to XHTML or if XSLT is used to process the response.</p>
+<p>As the pipeline is based on SAX events, there needs to be a component that generates these events and sends them through the pipeline. By default the Sling rendering scripts write to an output stream, so there is a need to parse this output and generate the SAX events.</p>
+<p>The first component in the pipeline generating the initial SAX events is called a generator. The generator gets the output from Sling, generates SAX events (XML), and streams these events into the pipeline. The counterpart of the generator is the serializer which builds the end of the pipeline. The serializer collects all incomming SAX events, transforms them into the required response by writing into output stream of the response.</p>
+<p>Between the generator and the serializer so called transformers can be placed in a chain. A transformer receives SAX events from the previous component in the pipeline and sends SAX events to the next component in the pipeline. A transformer can remove events, change events, add events or just pass on the events.</p>
+<p>Sling contains a default pipeline which is executed for all HTML responses: it starts with an HTML generator, parsing the HTML output and sending events into the pipeline. An HTML serializer collects all events and serializes the output.</p>
+<p>The pipelines can be configured in the repository as a child node of <em>/apps/APPNAME/config/rewriter</em> (or <em>/libs/APPNAME/config/rewriter</em>). (In fact the configured search paths of the resource resolver are observed.) Each node can have the following properties:</p>
+<ul>
+  <li>generatorType - the type of the generator (required)</li>
+  <li>transformerTypes (multi value string) - the types of the transformers (optional)</li>
+  <li>serializerType - the type of the serializer (required)</li>
+  <li>paths (multi value string) - the paths this pipeline should run on (content paths)</li>
+  <li>contentTypes (multi value string) - the content types this pipeline should be used for (optional)</li>
+  <li>extensions (multi value string) - the extensions this pipeline should be used for (optional)</li>
+  <li>resourceTypes (multi value string) - the resource types this pipeline should be used for (optional)</li>
+  <li>unwrapResources (boolean) - check resource types of unwrapped resources as well (optional, since 1.1.0)</li>
+  <li>selectors (multi value string) - a set of selectors the pipeline should be used for (optional, since 1.1.0)</li>
+  <li>order (long) - the configurations are sorted by this order, order must be higher or equal to 0. The configuration with the highest order is tried first.</li>
+  <li>enabled (boolean) - Is this configuration active? (default yes)</li>
+</ul>
+<p>As you can see from the configuration there are several possibilities to define when a pipeline should be used for a response, like paths, extensions, content types, or resource types. It is possible to specify several of them at once. In this case all conditions must be met.</p>
+<p>If a component needs a configuration, the configuration is stored in a child node which name is <em>{componentType}-{name}</em>, e.g. to configure the HTML generator (named <em>html-generator</em>), the node should have the name <em>generator-html-generator</em>. In the case that the pipeline contains the same transformer several times, the configuration child node should have the formant <em>{componentType}-{index}</em> where index is the index of the transformer starting with 1. For example if you have a pipeline with the following transformers, xslt, html-cleaner, xslt, link-checker, then the configuration nodes should be named <em>transformer-1</em> (for the first xslt), <em>transformer-html-cleaner</em>, <em>transformer-3</em> (for the second xslt), and <em>transformer-link-checker</em>.</p>
+<h3>Default Pipeline</h3>
+<p>The default pipeline is configured for the <em>text/html</em> mime type and the <em>html</em> extensions and consists of the <em>html-generator</em> as the generator, and the <em>html-serializer</em> for generating the final response. As the HTML generated by Sling is not required to be valid XHTML, the HTML parser is using an HTML parser to create valid SAX events. In order to perform this, the generator needs to buffer the whole response first.</p>
+<h2>Implementing Pipeline Components</h2>
+<p>Each pipeline component type has a corresponding Java interface (Generator, Transformer, and Serializer) together with a factory interface (GeneratorFactory, TransformerFactory, and SerializerFactory). When implementing such a component, both interfaces need to be implemented. The factory has only one method which creates a new instance of that type for the current request. The factory has to be registered as a service. For example if you're using the Maven SCR plugin, it looks like this:</p>
+<p>::java @scr.component metatype="no" @scr.service interface="TransformerFactory" @scr.property value="pipeline.type" value="validator"</p>
+<p>The factory needs to implement the according interface and should be registered as a service for this factory interface (this is a plain service and not a factory service in the OSGi sense). Each factory gets a unique name through the <em>pipeline.type</em> property. The pipeline configuration in the repository just references this unique name (like validator).</p>
+<h2>Extending the Pipeline</h2>
+<p>With the possibilities from above, it is possible to define new pipelines and add custom components to the pipeline. However, in some cases it is required to just add a custom transformer to the existing pipeline. Therefore the rewriting can be configured with pre and post transformers that are simply added to each configured pipeline. This allows a more flexible way of customizing the pipeline without changing/adding a configuration in the repository.</p>
+<p>The approach here is nearly the same. A transformer factory needs to be implemented, but instead of giving this factory a unique name, this factory is marked as a global factory:</p>
+<p>::java @scr.component metatype="no" @scr.service interface="TransformerFactory" @scr.property name="pipeline.mode" value="global" @scr.property name="service.ranking" value="RANKING" type="Integer"</p>
+<p><em>RANKING</em> is an integer value (don't forget the type attribute otherwise the ranking is interpreted as zero!) specifying where to add the transformer in the pipeline. If the value is less than zero the transformer is added at the beginning of the pipeline right after the generator. If the ranking is equal or higher as zero, the transformer is added at the end of the pipeline before the serializer.</p>
+<p>The <em>TransformerFactory</em> interface has just one method which returns a new transformer instance. If you plan to use other services in your transformer you might declare the references on the factory and pass in the instances into the newly created transformer.</p>
+<p>Since the transformer carries information about the current response it is not advisable to reuse the same transformer instance among multiple calls of <code>TransformerFactory.createTransformer</code>.</p>
+<h2>Implementing a Processor</h2>
+<p>A processor must conform to the Java interface <em>org.apache.sling.rewriter.Processor</em>. It gets initializd (method <em>init</em>) with the <em>ProcessingContext</em>. This context contains all necessary information for the current request (especially the output writer to write the rewritten content to). The <em>getWriter</em> method should return a writer where the output is written to. When the output is written or an error occured <em>finished</em> is called.</p>
+<p>Like the pipeline components a processor is generated by a factory which has to be registered as a service factory, like this:</p>
+<p>::java @scr.component metatype="no" @scr.service interface="ProcessorFactory" @scr.property value="pipeline.type" value="uniqueName"</p>
+<h2>Configuring a Processor</h2>
+<p>The processors can be configured in the repository as a child node of <em>/apps/APPNAME/config/rewriter</em> (or libs or any configured search path). Each node can have the following properties:</p>
+<ul>
+  <li>processorType - the type of the processor (required) - this is the part from the scr factory information after the slash (in the example above this is <em>uniqueName</em>)</li>
+  <li>paths (multi value string) - the paths this processor should run on (content paths)</li>
+  <li>contentTypes (multi value string) - the content types this processor should be used for (optional)</li>
+  <li>extensions (multi value string) - the extensions this processor should be used for (optional)</li>
+  <li>resourceTypes (multi value string) - the resource types this processor should be used for (optional)</li>
+  <li>unwrapResources (boolean) - check resource types of unwrapped resources as well (optional, since 1.1.0)</li>
+  <li>selectors (multi value string) - a set of selectors the pipeline should be used for (optional, since 1.1.0)</li>
+  <li>order (long) - the configurations are sorted by this order, order must be higher or equal to 0. The configuration with the highest order is tried first.</li>
+  <li>enabled (boolean) - Is this configuration active? (default yes)</li>
+</ul></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/rendering-content-default-get-servlets.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/rendering-content-default-get-servlets.html b/documentation/bundles/rendering-content-default-get-servlets.html
new file mode 100644
index 0000000..644c84f
--- /dev/null
+++ b/documentation/bundles/rendering-content-default-get-servlets.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Rendering Content - Default GET Servlets</h1></header><p>[TOC]</p>
+<div class="note">
+Not all features of the <b>org.apache.sling.servlets.get</b> bundle are described below - this
+page needs more work.
+</div>
+<h1>Default GET and HEAD servlets</h1>
+<p>Sling provides a number of default GET and HEAD servlets, in the <code>org.apache.sling.servlets.get</code> bundle.</p>
+<p>This provides useful functionality out of the box: JSON rendering of content for example, usually does not require custom code.</p>
+<p>This page provides an overview of these default servlets.</p>
+<p>Currently, only the <code>DefaultGetServlet</code> has configuration parameters. Those are found at <code>/system/console/configMgr/org.apache.sling.servlets.get.DefaultGetServlet</code> on a standard Sling setup, and should be self-explaining. One common use is to disable some of the default renderings listed below, as they might not be useful or desired on production systems.</p>
+<h1>Default renderings</h1>
+<h2>Default JSON rendering</h2>
+<p>Adding a .json extension to a request triggers the default Sling GET servlet in JSON mode, unless a more specific servlet or script is provided for the current resource.</p>
+<p>This servlet currently supports the following selectors:</p>
+<ul>
+  <li><code>.tidy</code> causes the JSON output to be formatted</li>
+  <li><code>.harray</code> causes child nodes to be output as arrays instead of objects, to preserve their order (requires <code>org.apache.sling.servlets.get</code> V2.1.10)</li>
+  <li>A numeric value or <code>.infinity</code> as the last selector selects the desired recursion level</li>
+</ul>
+<p>Note that the number of elements is limited by a configurable value, see the <code>DefaultGetServlet</code> configuration for more info.</p>
+<h2>Default HTML rendering</h2>
+<p>In a similar way, adding a <code>.html</code> extension to a request triggers the default Sling GET servlet in HTML mode. That rendering just dumps the current node values in a readable way, but it's only really useful for troubleshooting.</p>
+<h2>Default text rendering</h2>
+<p>A basic text rendering is also provided if the request has a <code>.txt</code> extension, unless more specific servlets or scripts are provided.</p>
+<h2>Default XML rendering</h2>
+<p>Adding a <code>.xml</code> extension triggers the default XML rendering, once again unless a more specific script or servlet is registered for the current resource.</p>
+<p>That XML rendering currently uses the JCR "document view" export functionality directly, so it only supports rendering resources that are backed by JCR nodes.</p>
+<h2>StreamRendererServlet</h2>
+<p>Whenever the request carries the extension <code>.res</code> or no extension at all, the resource's input stream is spooled to the servlet response (leveraging <code>Resource.adaptTo(InputStream.class)</code>). This servlet supports conditional requests (<a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>) evaluating the resource's modification date from <code>Resource.getResourceMetadata().getModificationTime()</code> and range requests (<a href="https://tools.ietf.org/html/rfc7233">RFC 7233</a>).</p>
+<h2>RedirectServlet</h2>
+<p>The <code>RedirectServlet</code> handles the <code>sling:redirect</code> resource type, using the <code>sling:target</code> property of the resource to define the redirect target, and the <code>sling:status</code> property to define the HTTP status to use (default is 302).</p>
+<p>This is not to be confused with the <code>sling:redirect</code> property used under <code>/etc/map</code>, which is described in <a href="/documentation/the-sling-engine/mappings-for-resource-resolution.html">Mappings for Resource Resolution</a></p>
+<h2>SlingInfoServlet</h2>
+<p>The <code>SlingInfoServlet</code> provides info on the current JCR session, for requests that map to JCR nodes.</p>
+<p>It is available at <code>/system/sling/info.sessionInfo</code> by default, and supports <code>.json</code> and <code>.txt</code> extensions.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/repository-initialization.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/repository-initialization.html b/documentation/bundles/repository-initialization.html
new file mode 100644
index 0000000..b39ef69
--- /dev/null
+++ b/documentation/bundles/repository-initialization.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1></h1></header><p>The <code>SlingRepositoryInitializer</code> mechanism allows for running code before the <code>SlingRepository</code> service is registered.</p>
+<p>This is useful for initialization and content migration purposes.</p>
+<p>Please be aware of potential clustering and coordination issues when using this mechanism, if your environment lets several Sling instances access the same content repository you'll need to implement a synchronization mechanism for such operations.</p>
+<h2>SlingRepositoryInitializer</h2>
+<p>The <code>SlingRepositoryInitializer</code> is a very simple service interface, available from version 2.4.0 of the <code>org.apache.sling.jcr.api</code> and <code>org.apache.sling.jcr.base</code> bundles.</p>
+<p>public interface SlingRepositoryInitializer { public void processRepository(SlingRepository repo) throws Exception; }</p>
+<p>Services that implement this interface are called when setting up the JCR-based <code>SlingRepository</code> service, before registering it as an OSGi service.</p>
+<p>They are called in increasing order of their <code>service.ranking</code> service property, which needs to be an <code>Integer</code> as usual.</p>
+<p>If any of them throws an Exception, the <code>SlingRepository</code> service is not registered.</p>
+<h2>The 'repoinit' Repository Initialization Language</h2>
+<p>The <code>org.apache.sling.repoinit.parser</code> implements a mini-language meant to create paths, service users and Access Control Lists in a content repository, as well as registering JCR namespaces and node types.</p>
+<p>The language grammar is defined (using the JavaCC compiler-compiler, which has no runtime dependencies) in the <code>RepoInitGrammar.jjt</code> file in that module, and the automated tests provide a number of <a href="https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases">test cases</a> which demonstrate various features.</p>
+<p>The companion <code>org.apache.sling.jcr.repoinit</code> module implements those operations on an Oak JCR repository, using a <code>SlingRepositoryInitializer</code> registered by default with a service ranking of 100. It also provides a <code>JcrRepoInitOpsProcessor</code> service to explicitly apply the output of the repoinit parser to a JCR repository.</p>
+<p>Here's a current example from the test cases mentioned above, that uses all language features as of version 1.0.2 of the parser module.</p>
+<p>The language is self-explaining but please refer to the actual test cases for details that are guaranteed to be up to date, assuming the tests pass.</p>
+<p>create service user user1, u-ser_2 set ACL on /libs,/apps allow jcr:read for user1,u-ser_2</p>
+<p>deny jcr:write for u-ser_2 deny jcr:lockManagement for user1 remove jcr:understand,some:other for u3 end</p>
+<p>create service user bob_the_service</p>
+<p>set ACL on /tmp allow some:otherPrivilege for bob_the_service end</p>
+<h1>Nodetypes inside the path apply to just that path element</h1>
+<p>create path /content/example.com(sling:Folder)</p>
+<h1>A nodetype in front is used as the default for all path elements</h1>
+<p>create path (nt:unstructured) /var</p>
+<p>set ACL for alice, bob,fred</p>
+<h1>remove is currently not supported by the jcr.repoinit module</h1>
+<p>remove * on / allow jcr:read on /content,/var deny jcr:write on /content/example.com deny jcr:all on / nodetypes example:Page end</p>
+<p>set ACL for restrictions_examples deny jcr:modifyProperties on /apps, /content nodetypes sling:Folder, nt:unstructured restriction(rep:itemNames,prop1,prop2) allow jcr:addChildNodes on /apps restriction(rep:ntNames,sling:Folder,nt:unstructured) allow jcr:modifyProperties on /apps restriction(rep:ntNames,sling:Folder,nt:unstructured) restriction(rep:itemNames,prop1,prop2) allow jcr:addChildNodes on /apps,/content restriction(rep:glob,/cat/*,*/cat,*cat/*) end</p>
+<h1>register namespace requires</h1>
+<h1>o.a.s.repoinit.parser 1.0.4</h1>
+<h1>and o.a.s.jcr.repoinit 1.0.2</h1>
+<p>register namespace ( NSprefix ) uri:someURI/v1.42</p>
+<h1>register nodetypes in CND format</h1>
+<h1>(same bundle requirements as register namespaces)</h1>
+<p>#</p>
+<h1>The optional &lt;&lt; markers are used when embedding</h1>
+<h1>this in a Sling provisioning model, to avoid syntax errors</h1>
+<p>#</p>
+<h1>The CND instructions are passed as is to the JCR</h1>
+<h1>modules, so the full CND syntax is supported.</h1>
+<p># register nodetypes &lt;&lt;=== &lt;&lt; &lt;slingevent='http://sling.apache.org/jcr/event/1.0'&gt; &lt;&lt; &lt;&lt; [slingevent:Event] &gt; nt:unstructured, nt:hierarchyNode &lt;&lt; - slingevent:topic (string) &lt;&lt; - slingevent:properties (binary) ===&gt;&gt;</p>
+<p>create user demoUser with password {SHA-256} dc460da4ad72c482231e28e688e01f2778a88ce31a08826899d54ef7183998b5</p>
+<p>create service user the-last-one</p>
+<h2>Providing repoinit statements from the Sling provisioning model or other URLs</h2>
+<p>All bundles required for this feature need to be active before the <code>SlingRepository</code> service starts.</p>
+<p>From version 1.0.2 of the <code>org.apache.sling.jcr.repoinit</code> bundle, the <code>o.a.s.jcr.repoinit.RepositoryInitializer</code> component uses an OSGi configuration as shown in this example to define where to read repoinit statements:</p>
+<p>org.apache.sling.jcr.repoinit.impl.RepositoryInitializer references=["model:context:/resources/provisioning/model.txt","model@repoinitTwo:context:/resources/provisioning/model.txt"]</p>
+<p>This example defines two <em>references</em> to URLs that supply repoinit statements. Their syntax is described below.</p>
+<p>By default the <code>RepositoryInitializer</code> uses the first URL shown in the above example, which points to the provisioning model that's embedded by default in the Sling Launchpad runnable jar.</p>
+<p>Note that previous versions of the <code>org.apache.sling.jcr.repoinit</code> bundle used different configuration parameters. From version 1.0.2 on, warnings are logged if those old parameters (_text.url,text.format,model.section.name_) are used.</p>
+<h3>References to Sling Provisioning Model additional sections</h3>
+<p>The <code>slingstart-maven-plugin</code>, from V1.4.2 on, allows for embedding so-called "additional sections" in the Sling provisioning model by starting their name with a colon.</p>
+<p>At runtime this requires the <code>org.apache.sling.provisioning.model</code> bundle, version 1.4.2 or later.</p>
+<p>The <code>o.a.s.jcr.repoinit</code> bundle can use this feature to execute <code>repoinit</code> statements provided by Sling provisioning models, as in this provisioning model example fragment:</p>
+<p>[:repoinit] create path /repoinit/provisioningModelTest</p>
+<p>create service user provisioningModelUser</p>
+<p>To read repoinit statements from such an additional provisioning model section, the <code>RepositoryInitializer</code> configuration shown above uses references like</p>
+<p>model@repoinitTwo:context:/resources/provisioning/model.txt</p>
+<p>Where <em>model</em> means "use the provisioning model format", <em>repoinitTwo</em> is the name of the additional section to read statements from in the provisioning model (without the leading colon) and <em>context:/resources/...</em> is the URL to use to retrieve the provisioning model.</p>
+<p>In this example the URL uses the <em>context</em> scheme defined by the Sling Launchpad, but any scheme can be used provided a suitable URL handler is active.</p>
+<p>The section name in that reference is optional and defaults to <em>repoinit</em>. If it's not specified the <code>@</code> should be omitted as well.</p>
+<h3>References to URLs providing raw repoinit statements</h3>
+<p>Using a <code>RepositoryInitializer</code> reference like in this example, with the <em>raw</em> prefix, means that its content is passed as is to the repoinit parser:</p>
+<p>raw:classpath://some-repoinit-file.txt</p>
+<p>Which points to a <code>classpath:</code> URL to provide the raw repoinit statements in this example, but again any valid URL scheme can be used.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/request-analysis.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/request-analysis.html b/documentation/bundles/request-analysis.html
new file mode 100644
index 0000000..75287b2
--- /dev/null
+++ b/documentation/bundles/request-analysis.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Request Processing Analyzer (reqanalyzer)</h1></header><p>[TOC]</p>
+<h2>Introduction</h2>
+<p>Sling provides a helpful functionality to track progress of requests being processed: The <a href="http://sling.apache.org/apidocs/sling6/org/apache/sling/api/request/RequestProgressTracker.html">RequestProgressTracker</a> which is available through the <a href="http://sling.apache.org/apidocs/sling6/org/apache/sling/api/SlingHttpServletRequest.html#getRequestProgressTracker%28%29">SlingHttpServletRequest</a>.</p>
+<p>This tool provides mechanims to record states of request processing and a simple mechanism to time periods of processing. By default Sling itself uses this tool to track progress through Sling like script resolution and calling scripts.</p>
+<p>Scripts and servlets called during Sling's request processing may themselves use the <code>RequestProgressTracker</code> to log their own processing.</p>
+<p>Usually the data collected by the <code>RequestProgressTracker</code> is just dropped or it may be visible for a certain number of recent requests on the <em>Recent Requests</em> page of the Web Console. When doing load tests, though, this Web Console page is of limited use because a lot more requests are handled than can be displayed in the Web Console.</p>
+<p>This is where the <a href="http://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/reqanalyzer">Request Processing Analyzer</a> comes in handy. When deployed as a bundle it registers as a request level servlet Filter with the Sling Main Servlet. Each request is logged in a special file (currently fixed at <code>${sling.home}/logs/requesttracker.txt</code>) with a header line provding core information on the request:</p>
+<ul>
+  <li>Start time stamp in ms since the Epoch</li>
+  <li>Request processing time in ms</li>
+  <li>Request Method</li>
+  <li>Request URL</li>
+  <li>Response content type (plus character encoding if available)</li>
+  <li>Response Status</li>
+</ul>
+<p>After that first line the complete data from the requests <code>RequestProgressTracker</code> is dumped.</p>
+<h2>Web Console Integration</h2>
+<p>The Request Processing Analyzer is available through the Web Console in the <em>Sling</em> category to</p>
+<ul>
+  <li>Download the <code>requesttracker.txt</code> file as a plain text or ZIP-ed file</li>
+  <li>Launch the Swing-based GUI to analyze the file</li>
+</ul>
+<p>The option to launch the Swing-based GUI is only available if the Sling application is not running in headless mode and if the Web Console is accessed on <em>localhost</em>, that is on the same host as the Sling instance is running.</p>
+<h2>Analyzing the <code>requesttracker.txt</code> file</h2>
+<p>To analyze the <code>requesttracker.txt</code> file the <em>Request Processing Analyzer</em> module can also be used as a standalone Java application. Just start the module using the <code>java</code> command:</p>
+<p>$ java -jar org.apache.sling.reqanalyzer-0.0.1-SNAPSHOT.jar requesttracker.txt</p>
+<p>The command supports two command line arguments:</p>
+<ol>
+  <li>The tracker file (required)</li>
+  <li>The number of requests to load and display from the file. This second option is optional and may be used to limit the request information loaded to the first requests in the file</li>
+</ol>
+<p>After starting and parsing the file, a window is opened showing the core request information in simple table. This table can be sorted by any of the columns by clicking on the column title.</p>
+<p><img src="requesttracker.png" alt="Recorded Requests" /></p>
+<p>Clicking on any row opens a second window displaying the detail request progress information as recorded before with the <code>RequestProgressTracker</code>.</p>
+<p><img src="requesttracker-details.png" alt="Details of a recorded Request" /></p>
+<p>The size, location, and the widths of the table columns are persisted with the Java Preferences API and thus when starting the application again, these settings are preserved.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/resource-access-security.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/resource-access-security.html b/documentation/bundles/resource-access-security.html
new file mode 100644
index 0000000..076eedf
--- /dev/null
+++ b/documentation/bundles/resource-access-security.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Resource Access Security</h1></header><p>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.</p>
+<h2>Summary</h2>
+<p>The ResourceAccessSecurity service allows it to restrict access to resources. The access can be granted or denied for read, create, update and delete actions.</p>
+<p>The ResourceAccessSecurity defines a service API which is used in two different context: for securing resource providers which have no own access control and on the application level to further restrict the access to resources in general.</p>
+<p>A resource access security service is registered with the service property “context”. Allowed values are “application” and “provider”. If the value is missing or invalid, the service will be ignored.</p>
+<p>In the context of resource providers, this service might be used for implementations of resource providers where the underlying persistence layer does not implement access control. The goal is to make it easy to implement a lightweight access control for such providers. For example, a JCR resource providers should not use the provider context resource access security - in a JCR context, security is fully delegated to the underlying repository, and mixing security models would be a bad idea.</p>
+<p>In the context of the application, this service might be used to add additional or temporary constraints across the whole resource tree.</p>
+<h2>How to use ResourceAccessSecurity</h2>
+<p>To use the ResourceAccessSecurity service you don’t have to implement the interface ResourceAccessSecurity. Simply add the resourceaccesssecurity bundle to your sling instance. This adds an implementation of the ResourceAccessSecurity service for the provider context (“provider”) and also the application context (“application”).</p>
+<p>Furthermore the implementation of ResourceAccessSecurity defines a service provider interface named ResourceAccessGate. This is the service interface which you can implement and register to control the access to the resources.</p>
+<p>The ResourceAccessGate defines a service API which can be used to make some restrictions to accessing resources. Implementations of this service interface must be registered like ResourceProvider with a path (like provider.roots but with the property name “path”). If different ResourceAccessGate services match a path, not only the ResourceAccessGate with the longest path will be called, but all of them, that's in contrast to the ResourceProvider, but in this case more logical (and secure!). The access gates also must be registered with a context (“application” or “provider”), without a given context, the service will be ignored by ResourceAccessSecurity. The gates will be called in the order of the service ranking. If one of the gates grants access for a given operation access will be granted. An exception are the gates which are registered for “finaloperations”. If such a gate denies resource access no further gate will be asked and access denied (except a gate w
 ith higher service ranking has granted access).</p>
+<h3>Service properties</h3>
+<table>
+  <thead>
+    <tr>
+      <th>Property name </th>
+      <th>description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Path </td>
+      <td>regexp to define on which paths the service should be called (default .*)</td>
+    </tr>
+    <tr>
+      <td>operations </td>
+      <td>set of operations on which the service should be called ("read,create,update,delete,execute", default all of them)</td>
+    </tr>
+    <tr>
+      <td>finaloperations </td>
+      <td>set of operations on which the service answer is final and no further service should be called (default none of them), except the GateResult is GateResult.CANT_DECIDE</td>
+    </tr>
+    <tr>
+      <td>context </td>
+      <td>“provider” or “application”. The resource access gate can either have the context “provider”, in this case the gate is only applied to resource providers requesting the security checks. Or the context can be “application”. In this case the access gate is invoked for the whole resource tree. This is indicated by the required service property “context”. If the property is missing or invalid, the service is ignored.</td>
+    </tr>
+  </tbody>
+</table>
+<h3>How to implement ResourceAccessGate</h3>
+<p>The implementation is straightforward. The easiest way is to extend <code>AllowingResourceAccessGate</code> which is exported by the resourceaccesssecurity bundle and does not deny any access. So if you wan’t restrict access on resources for read operations you have to implement to following two methods:</p>
+<p>::java @Override public boolean hasReadRestrictions(final ResourceResolver resourceResolver) { return true; }</p>
+<p>@Override public GateResult canRead(final Resource resource) { GateResult returnValue = GateResult.CANT_DECIDE; if( whatever-condition ) { returnValue = GateResult.GRANTED; } else { returnValue = GateResult.DENIED; }</p>
+<p>return returnValue; }</p>
+<p>And you have to register the ResourceAccessGate with the path where you wan’t to restrict access and the operation property set to “read”. Furthermore you have to decide if the ResourceAccessGate should operate on all resource providers (context=”application”) or only on the resourceproviders flagged with the property useResourceAccessSecurity=true (context=”provider”).</p>
+<p>Tip: We do not recommend to mix up application and provider context in the same application. This can lead to confusing configurations in the ResourceAccessGate implementations.</p>
+<h3>GateResult</h3>
+<p>GateResult does have three states:</p>
+<ul>
+  <li>GateResult.GRANTED</li>
+  <li>GateResult.DENIED</li>
+  <li>GateResult.CANT_DECIDE</li>
+</ul>
+<p>The first two of them are self-explanatory. CANT_DECIDE means that the actual gate neither can grant nor deny the access. If no other gate does return GRANTED or DENIED the access to the resource will be denied for security reasons. CANT-DECIDE comes handy if you declare finaloperations (where no other gate will be called after this gate). If such a gate returns CANT_DECIDE, further gates will be called regardless of the setted finaloperations property.</p>
+<h2>Actual state of ResourceAccessSecurity</h2>
+<p>By now the implementation is complete for securing access on resource level for CRUD operations. It is not yet ready to allow fine granular access rights on values of a resource. So at the moment the <code>canReadValue, canUpdateValue, canDeleteValue</code> and <code>canCreateValue</code> on <code>ResourceAccessGate</code> methods are ignored.</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/resource-editor.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/resource-editor.html b/documentation/bundles/resource-editor.html
new file mode 100644
index 0000000..abcaacd
--- /dev/null
+++ b/documentation/bundles/resource-editor.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>The Apache Sling Resource Editor</h1></header><p>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.</p>
+<p><img src="http://sling.apache.org/documentation/bundles/resource-editor-screenshot.png" alt="alt text" /></p>
+<h1>Features</h1>
+<p>Currently it allows to display the node properties and edit nodes.</p>
+<ul>
+  <li>Node editing includes adding, renaming and deleting nodes.</li>
+  <li>Multi selection of nodes, Keyboard controls for navigation and shortcuts are provided. Click on the info icon in the tree to get detailed information.</li>
+  <li>The node names are HTML and URL encoded.</li>
+  <li>The add node dialog provides you with the allowed node name / node type / resource type options and its combinations to prevent errors soon. Click on the info icon in the dialog to discover more.</li>
+  <li>The nodes are bookmarkable.</li>
+</ul>
+<h1>Status</h1>
+<p>The features for the node tree are finished so far. Now the work on making properties editable begins.</p>
+<h1>Installation</h1>
+<ol>
+  <li>Follow the <a href="http://sling.apache.org/documentation/development/getting-and-building-sling.html">instructions for Getting and Building Sling</a>.</li>
+  <li>The <code>contrib/explorers/resourceeditor/README</code> file in SVN tells you how to install the Resource Editor.</li>
+  <li>Open <code>http://localhost:8080/reseditor/.html</code> in your browser.</li>
+  <li>Enjoy!</li>
+</ol></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/sling-site/blob/a6129baf/documentation/bundles/resource-merger.html
----------------------------------------------------------------------
diff --git a/documentation/bundles/resource-merger.html b/documentation/bundles/resource-merger.html
new file mode 100644
index 0000000..9d50e7b
--- /dev/null
+++ b/documentation/bundles/resource-merger.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html><html lang="en">
+    <head>
+<meta charset="utf-8"/>
+        <title>Apache Sling on JBake</title>
+        <link rel="stylesheet" href="/res/css/site.css"/>
+        <link rel="stylesheet" href="/res/css/codehilite.css"/>
+        <div class="title">
+            <div class="logo">
+                <a href="http://sling.apache.org">
+                    <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/>
+                </a>
+            </div><div class="header">
+                <a href="http://www.apache.org">
+                    <img border="0" alt="Apache" src="/res/logos/apache.png"/>
+                </a>
+            </div>
+        </div>        
+    </head><body>
+<div class="menu">
+            <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h
 ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun
 dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong>
+        </div>        <div class="main">
+<div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Resource Merger (org.apache.sling.resourcemerger)</h1></header><p>[TOC]</p>
+<h1>Introduction</h1>
+<p><strong>This documentation only applies to versions &gt;= 1.2 (due to major changes done in <a href="https://issues.apache.org/jira/browse/SLING-3423">SLING-3423</a>)</strong></p>
+<p>The Resource Merger bundle provides two resource provider factories</p>
+<ul>
+  <li><code>MergingResourceProvider</code> (only for reading)</li>
+  <li><code>CRUDMergingResourceProvider</code> (for reading and writing)</li>
+</ul>
+<p>Those providers give access to virtual resources which provide a merged view on multiple other resources.</p>
+<p>Each <code>MergedResourcePicker</code> service implementation in the system provides one unique mount point/root path (usually starting with <code>/mnt</code>) exposing a view on merged resources from at least two different locations.</p>
+<p>The exact merging mechanism depends on the resource picker implementation (see below). The order of the merging is important as the overlying resource may overwrite properties/child resources from the underlying resource (but not vice-versa). It is possible to</p>
+<ul>
+  <li>remove existing resource/properties from the underlying resources,</li>
+  <li>modify existing properties/child resources of the underlying resources and</li>
+  <li>add new properties/child resources</li>
+</ul>
+<p>You may use any of the merge properties described below to influence the merging behaviour. All those special properties are not exposed below the mount point.</p>
+<p>The <code>CRUDMergingResourceProvider</code> not only gives read-access to the merged resources but even allows to write. This provider always writes inside the topmost resource path (being returned as last item by the resource picker). Currently both resource pickers shipped with the Sling Resource Merger bundle do not allow to write though. Further details can be found in the description of <a href="https://issues.apache.org/jira/browse/SLING-3909">SLING-3909</a>.</p>
+<h1>Merge Properties</h1>
+<table>
+  <thead>
+    <tr>
+      <th>Property Name </th>
+      <th>Type </th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>sling:hideProperties </td>
+      <td>String[] </td>
+      <td>Hides the properties with the given names. <code>*</code> hides all properties (since version 1.3.2 the wildcard only affects underlying properties and no longer local ones, see also <a href="https://issues.apache.org/jira/browse/SLING-5468">SLING-5468</a>).</td>
+    </tr>
+    <tr>
+      <td>sling:hideChildren</td>
+      <td>String[] </td>
+      <td>Hides the child resources with the given names. <code>*</code> hides all child resources (since version 1.3.2 the wildcard only affects underlying child resources and no longer local ones, see also <a href="https://issues.apache.org/jira/browse/SLING-5468">SLING-5468</a>). If one value starts with <code>!</code> this is a negation (which means the property with the given value should not be hidden). Since by default nothing is hidden the negation is only useful if you specify multiple values for this property. E.g. giving the values <code>[!child1,*]</code> hides all children except for the one with the name <code>child1</code>. If you have a resource name starting with <code>!</code> you must escape it with an additional <code>!</code> in front if you want to reference it in <code>sling:hideChildren</code>, e.g. <code>!!child1</code> means that the resource with the name <code>!child1</code> should be hidden.</td>
+    </tr>
+    <tr>
+      <td>sling:hideResource </td>
+      <td>Boolean </td>
+      <td>If <code>true</code> then the resource with the name which contains this property should not be exposed!</td>
+    </tr>
+    <tr>
+      <td>sling:orderBefore </td>
+      <td>String </td>
+      <td>Contains the name of the preceeding sibling resource. This is influencing the order of resources when calling e.g. <code>Resource.listChildren()</code> or <code>Resource.getChildren()</code> on the merged resource. This is only necessary if the default resource order is not sufficient (see below).</td>
+    </tr>
+  </tbody>
+</table>
+<h1>Child Resource Order</h1>
+<p>For a merged resource the order of its child resources is the following: First the ones from the base resource, then the ones from the overlaying resources. The children only defined by the topmost resource come last.</p>
+<p>In case the same child is defined in more than one resource, its position is taken from the highest overlaying resource (since version 1.3.2, see also <a href="https://issues.apache.org/jira/browse/SLING-4915">SLING-4915</a>). For example:</p>
+<p>base/ +--child1 +--child2 +--child3</p>
+<p>overlay/ +--child4 +--child2 +--child3</p>
+<p>resulting order: child1, child4, child2, child3</p>
+<p>You can overwrite that behaviour by leveraging the <code>sling:orderBefore</code> property.</p>
+<h1>Resource Pickers</h1>
+<h2>Merging Resource Picker (Overlay approach)</h2>
+<table>
+  <thead>
+    <tr>
+      <th>Description </th>
+      <th>Merged Resource Path </th>
+      <th>Merging Order </th>
+      <th>Read-Only </th>
+      <th>Related Ticket</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Merging based on the resource resolver's search path </td>
+      <td><code>/mnt/overlay/&lt;relative resource path&gt;</code> </td>
+      <td>Last resource resolver search path first (Order = Descending search paths). </td>
+      <td><code>true</code> </td>
+      <td><a href="http://issues.apache.org/jira/browse/SLING-2986">SLING-2986</a></td>
+    </tr>
+  </tbody>
+</table>
+<p>This picker is thought for globally overlaying content by placing the diff-resource in "/apps" without actually touching anything in "/libs" (since this is only thought for Sling itself). This should be used whenever some deviation of content is desired which is initially shipped with Sling. The client (i.e. the code using the merged resource) does not have to know if there is an overlay in place.</p>
+<h3>Example</h3>
+<p>/libs/sling/example (nt:folder) +-- sling:resourceType = "some/resource/type" +-- child1 (nt:folder) | +-- property1 = "property from /libs/sling/example/child1" +-- child2 (nt:folder) | +-- property1 = "property from /libs/sling/example/child2" +-- child3 (nt:folder) | +-- property1 = "property from /libs/sling/example/child3"</p>
+<p>/apps/sling/example (sling:Folder) +-- property1 = "property added in apps" +-- child1 (nt:folder) | +-- sling:hideResource = true +-- child2 (nt:folder) | +-- property1 = "property from /apps/sling/example/child2" +-- child3 (nt:folder) | +-- property2 = "property from /apps/sling/example/child3"</p>
+<p>/mnt/overlay/sling/example (sling:Folder) +-- sling:resourceType = "some/resource/type" +-- property1 = "property added in apps" +-- child2 (nt:folder) | +-- property1 = "property from /apps/sling/example/child2" +-- child3 (nt:folder) | +-- property1 = "property from /libs/sling/example/child3" | +-- property2 = "property from /apps/sling/example/child3"</p>
+<h2>Overriding Resource Picker (Override approach)</h2>
+<table>
+  <thead>
+    <tr>
+      <th>Description </th>
+      <th>Merged Resource Path </th>
+      <th>Merging Order </th>
+      <th>Read-Only </th>
+      <th>Related Ticket</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Merging based on the <code>sling:resourceSuperType</code> </td>
+      <td><code>/mnt/override/&lt;absolute resource type&gt;</code> </td>
+      <td>The topmost resource type (having itself no <code>sling:resourceSuperType</code> defined) is the base. The resources are overlaid in the order from the most generic one to the most specific one (which is the one having the most inheritance levels). </td>
+      <td><code>true</code> </td>
+      <td><a href="https://issues.apache.org/jira/browse/SLING-3657">SLING-3675</a></td>
+    </tr>
+  </tbody>
+</table>
+<p>This picker is thought for extending content of another already existing resource (which should not be modified). The client (i.e. the code using the merged resource) must directly reference the most specific resource type (i.e. it must be aware of the sub resource type).</p>
+<h3>Example</h3>
+<p>/apps/sling/base (nt:folder) +-- child1 (nt:folder) | +-- property1 = "property from /libs/sling/example/child1" +-- child2 (nt:folder) | +-- property1 = "property from /libs/sling/example/child2" +-- child3 (nt:folder) | +-- property1 = "property from /libs/sling/example/child3"</p>
+<p>/apps/sling/example (sling:Folder) +-- sling:resourceSuperType = "/apps/sling/base" +-- property1 = "property added in /apps/sling/example" +-- child1 (nt:folder) | +-- sling:hideResource = true +-- child2 (nt:folder) | +-- property1 = "property from /apps/sling/example/child2" +-- child3 (nt:folder) | +-- property2 = "property from /apps/sling/example/child3"</p>
+<p>/mnt/override/apps/sling/example (sling:Folder) +-- sling:resourceSuperType = "/apps/sling/base" +-- property1 = "property added in /apps/sling/example" +-- child2 (nt:folder) | +-- property1 = "property from /apps/sling/example/child2" +-- child3 (nt:folder) | +-- property1 = "property from /libs/sling/example/child3" | +-- property2 = "property from /apps/sling/example/child3"</p></section></div></div>            
+<div class="footer">
+                <div class="timestamp">
+                    TODO display revision number here
+                </div><div class="trademarkFooter">
+                    Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                </div>
+            </div>            
+            
+        </div>
+    </body>
+</html>