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:31:09 UTC

[25/50] [abbrv] sling-site git commit: Fix front matter, using existing titles

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/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
index de929bb..e85d38e 100644
--- a/content/documentation/the-sling-engine/url-to-script-resolution.md
+++ b/content/documentation/the-sling-engine/url-to-script-resolution.md
@@ -1,111 +1,108 @@
-title=TODO title for url-to-script-resolution.md 
-date=1900-01-01
-type=post
-tags=blog
+title=URL to Script Resolution		
+type=page
 status=published
 ~~~~~~
-Title: URL to Script Resolution
 
 [TOC]
 
-This page explains how Sling maps URLs to a script or and servlet. 
+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, 
+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). 
+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`) 
+TODO: explain super types, servlet path mappings, node type resource types (`my:type -> my/type`)
 
-##  Fundamental: Scripts and Servlets are equal 
+##  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. 
+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 
+## 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. 
+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. 
+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. 
+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 
+## 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: 
+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: 
-    
+{scriptPathPrefix}/{resourceTypePath}
 
-    var type = resource.getResourceType(); 
-    while (type != null) { 
-        for (String root: resourceResolver.getSearchPath()) { 
-            String path = root + type.toPath(); 
-            findScriptsIn(path); 
-        } 
+The pseudo code for iterating the locations would be something like:
 
-        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}` 
+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: 
-    
+
+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. 
+* `{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 `sling\sample` 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 
+
+## 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 
-    
+* (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/88e80480/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
index 92a3e4c..0cc370f 100644
--- a/content/documentation/the-sling-engine/wrap-or-decorate-resources.md
+++ b/content/documentation/the-sling-engine/wrap-or-decorate-resources.md
@@ -1,10 +1,7 @@
-title=TODO title for wrap-or-decorate-resources.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Wrap or Decorate Resources		
+type=page
 status=published
 ~~~~~~
-Title: Wrap or Decorate Resources
 
 ## Introduction
 
@@ -12,31 +9,31 @@ The Sling API provides an easy way to wrap or decorate a resource before returni
 * 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)
-    } 
+:::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. 
+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);
-    }
+:::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/88e80480/content/documentation/tutorials-how-tos.md
----------------------------------------------------------------------
diff --git a/content/documentation/tutorials-how-tos.md b/content/documentation/tutorials-how-tos.md
index 6335ac3..bde31cb 100644
--- a/content/documentation/tutorials-how-tos.md
+++ b/content/documentation/tutorials-how-tos.md
@@ -1,10 +1,7 @@
-title=TODO title for tutorials-how-tos.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Tutorials & How-Tos		
+type=page
 status=published
 ~~~~~~
-Title: Tutorials & How-Tos
 
 {% for label, page in children %}* [{{ page.headers.title }}]({{ page.path }})
 {% endfor %}

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/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
index 3da7a7d..b9af697 100644
--- a/content/documentation/tutorials-how-tos/46-line-blog.md
+++ b/content/documentation/tutorials-how-tos/46-line-blog.md
@@ -1,10 +1,7 @@
-title=TODO title for 46-line-blog.md 
-date=1900-01-01
-type=post
-tags=blog
+title=46 Line Blog		
+type=page
 status=published
 ~~~~~~
-Title: 46 Line Blog
 
 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.
 
@@ -28,78 +25,77 @@ Then, login using <http://localhost:8888/?sling:authRequestLogin=1> which should
 
 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">
-            Title:<br/>
-            <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>
-
-     
+<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"
-    }
+
+
+{
+"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>
 
-     
+<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>
 
- 
+<!-- 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. 
+We can now create and edit posts; let's add some navigation, using more of the *sling.js* functionality.
 
 ## Step 3: Navigation
 
@@ -107,42 +103,42 @@ The *sling.js* library provides utilities to access and manipulate content. For
 
 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. 
-    
+<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%"/>
 
- 
+<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.
 
 

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/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
index 750a443..72f67e3 100644
--- 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
@@ -1,10 +1,7 @@
-title=TODO title for getting-resources-and-properties-in-sling.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Getting Resources and Properties in Sling		
+type=page
 status=published
 ~~~~~~
-Title: Getting Resources and Properties in Sling
 
 
 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.
@@ -13,89 +10,89 @@ In this article we will explore a few ways to programmatically map a resource pa
 
 The whole game consists in first getting a `ResourceResolver` and then getting the `Resource` itself.
 
-## Within an OSGI Service/Compoment 
+## 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
-        }
-    }
+#!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 
+
+## 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();
+#!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);
+#!java
+String resourcePath = "path/to/resource";
+// req is the SlingHttpServletRequest
+ResourceResolver resourceResolver = req.getResourceResolver();
+Resource res = resourceResolver.getResource(resourcePath);
 
 
-## Within a JSP file 
+## 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`. 
+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);
-    %>
+#!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);
+#!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 
+## 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);
+#!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);
+#!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);
+#!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).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/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
index c9c24fd..2bdc080 100644
--- 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
@@ -1,10 +1,7 @@
-title=TODO title for how-to-manage-events-in-sling.md 
-date=1900-01-01
-type=post
-tags=blog
+title=How to Manage Job in Sling		
+type=page
 status=published
 ~~~~~~
-Title: How to Manage Job in Sling
 
 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.
 
@@ -36,15 +33,15 @@ The second one, called **DropBoxEventHandler**:
 * 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 
+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 
+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)
+:::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)
@@ -54,36 +51,36 @@ class lists and explains the available event topics available in Sling.
 
 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);
+:::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 {
-        ...
-    }
+:::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;
+:::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";
+:::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:
@@ -92,28 +89,28 @@ 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 
+* 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);
-        }
-	}
+:::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).
 
@@ -123,15 +120,15 @@ Now that you have implemented a service that starts a job when a file is uploade
 
 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)
+:::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 {
+:::java
+public class DropBoxEventHandler implements JobConsumer {
 
 
 Some class fields need to be defined:
@@ -142,22 +139,22 @@ Some class fields need to be defined:
 
 For example:
 
-    :::java
-    /** Default log. */
-    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+:::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/";
 
-    @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.
@@ -167,45 +164,45 @@ Its logic is as follows:
 
 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();
-            }
-        }
-	}
-        
+:::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/88e80480/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
index b315f54..eac473c 100644
--- a/content/documentation/tutorials-how-tos/installing-and-upgrading-bundles.md
+++ b/content/documentation/tutorials-how-tos/installing-and-upgrading-bundles.md
@@ -1,10 +1,7 @@
-title=TODO title for installing-and-upgrading-bundles.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Installing and Upgrading Bundles		
+type=page
 status=published
 ~~~~~~
-Title: Installing and Upgrading Bundles
 Excerpt: Explains how to install, upgrade and uninstall Bundles using the Sling Management console.
 
 <div class="note">
@@ -73,7 +70,7 @@ There exists no GUI functionality yet to add a new repository to the list of kno
 
 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
+:::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/88e80480/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
index 6150404..c9c5d84 100644
--- a/content/documentation/tutorials-how-tos/jackrabbit-persistence.md
+++ b/content/documentation/tutorials-how-tos/jackrabbit-persistence.md
@@ -1,10 +1,7 @@
-title=TODO title for jackrabbit-persistence.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Jackrabbit Persistence		
+type=page
 status=published
 ~~~~~~
-Title: Jackrabbit Persistence
 
 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.
 
@@ -29,19 +26,19 @@ The hardest thing to do is probably getting the JDBC driver for your database. O
 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:    
+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
+:::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
+:::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.
@@ -53,7 +50,7 @@ To replace Derby in a running Sling instance follow these steps (e.g. through th
 
 1. Uninstall the Apache Derby bundle
 1. Install the JDBC bundle prepared in the first step
-1. Stop the Jackrabbit Embedded Repository bundle    
+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)
 
@@ -70,37 +67,37 @@ If the file already exists, you can modifiy this existing file and there is no n
 
 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>
+:::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.

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/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
index 1e3c992..5ec3106 100644
--- a/content/documentation/tutorials-how-tos/testing-sling-based-applications.md
+++ b/content/documentation/tutorials-how-tos/testing-sling-based-applications.md
@@ -1,10 +1,7 @@
-title=TODO title for testing-sling-based-applications.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Testing Sling-based applications		
+type=page
 status=published
 ~~~~~~
-Title: Testing Sling-based applications
 
 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.
 
@@ -14,7 +11,7 @@ This page describes the various approaches that we use to test Sling itself, and
 
 ## 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. 
+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.
 
@@ -41,15 +38,15 @@ The problem with mocks is that it can become hard to make sure you're actually t
 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);
+#!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
@@ -63,60 +60,60 @@ Such tests are obviously slower than plain unit tests and tests that use mocks.
 ## 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. 
+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 
+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 
+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 
+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>
+#!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);
-        }            
-    } 
- 
+#!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/
+[1]: https://code.google.com/p/mockito/

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/content/errors/403.md
----------------------------------------------------------------------
diff --git a/content/errors/403.md b/content/errors/403.md
index 1af2d6d..def2c05 100644
--- a/content/errors/403.md
+++ b/content/errors/403.md
@@ -1,26 +1,23 @@
-title=TODO title for 403.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Forbidden (403)		
+type=page
 status=published
 ~~~~~~
-Title:     Forbidden (403)
 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.
+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:
 

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/content/errors/404.md
----------------------------------------------------------------------
diff --git a/content/errors/404.md b/content/errors/404.md
index 31dcb2c..a35f228 100644
--- a/content/errors/404.md
+++ b/content/errors/404.md
@@ -1,26 +1,23 @@
-title=TODO title for 404.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Page Not Found		
+type=page
 status=published
 ~~~~~~
-Title:     Page Not Found
 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.
+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:
 

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/content/guides.md
----------------------------------------------------------------------
diff --git a/content/guides.md b/content/guides.md
index bcae798..30a4d95 100644
--- a/content/guides.md
+++ b/content/guides.md
@@ -1,26 +1,23 @@
-title=TODO title for guides.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Guides		
+type=page
 status=published
 ~~~~~~
 translation_pending: true
-Title: Guides
 
 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
+* [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.
+* [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.
+* [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
+* [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/88e80480/content/index.md
----------------------------------------------------------------------
diff --git a/content/index.md b/content/index.md
index dfbbc5c..392a6cb 100644
--- a/content/index.md
+++ b/content/index.md
@@ -1,16 +1,13 @@
-title=TODO title for index.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Apache Sling - Bringing Back the Fun!		
+type=page
 status=published
 ~~~~~~
-Title: Apache Sling - Bringing Back the Fun!
 
 **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.
+page for more info.
 
 # Apache Sling in five bullets points
 
@@ -29,14 +26,14 @@ 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
+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
+Java Content Repositories, Sling makes it very simple to implement simple
 applications, while providing an enterprise-level framework for more
-complex applications. 
+complex applications.
 
 ## News
 
@@ -55,17 +52,17 @@ Sling started as an internal project at [Day Software](http://www.day.com)
 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
+> [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.
+> [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.
+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
 
@@ -120,12 +117,12 @@ 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.
+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
+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
@@ -135,17 +132,17 @@ Declarative Services.
 
 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
+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);
-            });
-        });
+$(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/88e80480/content/javadoc-io.md
----------------------------------------------------------------------
diff --git a/content/javadoc-io.md b/content/javadoc-io.md
index 84f6ea1..0626628 100644
--- a/content/javadoc-io.md
+++ b/content/javadoc-io.md
@@ -1,10 +1,7 @@
-title=TODO title for javadoc-io.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Sling API docs at javadoc.io		
+type=page
 status=published
 ~~~~~~
-Title: Sling API docs at javadoc.io
 
 [javadocs.io](http://www.javadoc.io/) provides archived javadocs for all Sling modules (and actually
 for all open source software hosted at Maven Central).

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/content/links.md
----------------------------------------------------------------------
diff --git a/content/links.md b/content/links.md
index d215426..444949d 100644
--- a/content/links.md
+++ b/content/links.md
@@ -1,54 +1,51 @@
-title=TODO title for links.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Links		
+type=page
 status=published
 ~~~~~~
-Title: Links
 
 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.
+* [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.
+* [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)
+* 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) 
+* [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)
+* [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)
+* [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)
+* [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.
+* [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/88e80480/content/media.md
----------------------------------------------------------------------
diff --git a/content/media.md b/content/media.md
index 56292ac..424c423 100644
--- a/content/media.md
+++ b/content/media.md
@@ -1,11 +1,8 @@
-title=TODO title for media.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Media		
+type=page
 status=published
 ~~~~~~
 translation_pending: true
-Title: Media
 
 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).
 

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/content/news.md
----------------------------------------------------------------------
diff --git a/content/news.md b/content/news.md
index d5161ab..98dc445 100644
--- a/content/news.md
+++ b/content/news.md
@@ -1,10 +1,7 @@
-title=TODO title for news.md 
-date=1900-01-01
-type=post
-tags=blog
+title=News		
+type=page
 status=published
 ~~~~~~
-Title: News
 
 * 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)
@@ -490,4 +487,4 @@ Apache Sling Scripting Sightly JS Use Provider 1.0.6, Apache Sling Resource Merg
 * Apache Sling has graduated into a top level project! (June 17, 2009)
 
 
-  [1]: http://s.apache.org/CVE-2012-2138
+[1]: http://s.apache.org/CVE-2012-2138

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/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
index 9ba5c0c..4dad4f6 100644
--- a/content/news/sling-ide-tooling-11-released.md
+++ b/content/news/sling-ide-tooling-11-released.md
@@ -1,10 +1,7 @@
-title=TODO title for sling-ide-tooling-11-released.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Apache Sling IDE Tooling 1.1 released		
+type=page
 status=published
 ~~~~~~
-Title: Apache Sling IDE Tooling 1.1 released
 
 Here are some of the more noteworthy things available in this release.
 

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/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
index 0fa7370..b03154c 100644
--- a/content/news/sling-launchpad-8-released.md
+++ b/content/news/sling-launchpad-8-released.md
@@ -1,10 +1,7 @@
-title=TODO title for sling-launchpad-8-released.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Apache Sling Launchpad 8 released		
+type=page
 status=published
 ~~~~~~
-Title: Apache Sling Launchpad 8 released
 
 Here are some of the more noteworthy things available in this release.
 

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/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
index 212dbe1..13f203c 100644
--- a/content/news/sling-launchpad-9-released.md
+++ b/content/news/sling-launchpad-9-released.md
@@ -1,10 +1,7 @@
-title=TODO title for sling-launchpad-9-released.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Apache Sling Launchpad 9 released		
+type=page
 status=published
 ~~~~~~
-Title: Apache Sling Launchpad 9 released
 
 Here are some of the more noteworthy things available in this release.
 
@@ -61,7 +58,7 @@ 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
+Sling-UploadMode: stream
 
 Discovery: added Oak-based discovery implementation
 ---
@@ -83,7 +80,7 @@ Documentation available at [Service Authentication](/documentation/the-sling-eng
 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 
+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.
 

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/content/old-stuff.md
----------------------------------------------------------------------
diff --git a/content/old-stuff.md b/content/old-stuff.md
index c250a22..d557ddb 100644
--- a/content/old-stuff.md
+++ b/content/old-stuff.md
@@ -1,11 +1,8 @@
-title=TODO title for old-stuff.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Old Stuff		
+type=page
 status=published
 ~~~~~~
 translation_pending: true
-Title: Old Stuff
 
 Should either be deleted or reviewed and updated to match the current code:
 

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/content/plugins.md
----------------------------------------------------------------------
diff --git a/content/plugins.md b/content/plugins.md
index 0aa6b70..4a26182 100644
--- a/content/plugins.md
+++ b/content/plugins.md
@@ -1,11 +1,8 @@
-title=TODO title for plugins.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Plugins		
+type=page
 status=published
 ~~~~~~
 translation_pending: true
-Title: Plugins
 
 These pages present the various Maven Plugins of Sling:
 

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/content/project-information.md
----------------------------------------------------------------------
diff --git a/content/project-information.md b/content/project-information.md
index cb117d9..39bd1fb 100644
--- a/content/project-information.md
+++ b/content/project-information.md
@@ -1,10 +1,7 @@
-title=TODO title for project-information.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Project Information		
+type=page
 status=published
 ~~~~~~
-Title: Project Information
 
 This document provides an overview of the various documents and links that are part of this project's general information:
 
@@ -47,7 +44,7 @@ This project uses Subversion to manage its source code. Instructions on Subversi
 The following is a link to the online source repository.
 
 
-    http://svn.apache.org/viewvc/sling/trunk
+http://svn.apache.org/viewvc/sling/trunk
 
 
 ### Anonymous access
@@ -55,7 +52,7 @@ The following is a link to the online source repository.
 The source can be checked out anonymously from SVN with this command:
 
 
-    $ svn checkout http://svn.apache.org/repos/asf/sling/trunk sling
+$ svn checkout http://svn.apache.org/repos/asf/sling/trunk sling
 
 
 ### Developer access
@@ -63,13 +60,13 @@ The source can be checked out anonymously from SVN with this command:
 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
+$ 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"
+$ svn commit --username your-username -m "A message"
 
 
 ### Access from behind a firewall
@@ -77,21 +74,21 @@ To commit changes to the repository, execute the following command to commit you
 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
+$ 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.)
+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
+[global]
+http-proxy-host = your.proxy.name
+http-proxy-port = 3128
 
 
 ## Continuous Integration

http://git-wip-us.apache.org/repos/asf/sling-site/blob/88e80480/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
index 38c00b7..a3ae232 100644
--- a/content/project-information/apache-sling-community-roles-and-processes.md
+++ b/content/project-information/apache-sling-community-roles-and-processes.md
@@ -1,16 +1,13 @@
-title=TODO title for apache-sling-community-roles-and-processes.md 
-date=1900-01-01
-type=post
-tags=blog
+title=Apache Sling Community Roles and Processes		
+type=page
 status=published
 ~~~~~~
-Title: Apache Sling Community Roles and Processes
 
 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. 
+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.