You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2021/04/15 06:52:04 UTC

[sling-site] branch master updated: SLING-5531 document Sling-Namespaces bundle header for namespace registration

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

kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-site.git


The following commit(s) were added to refs/heads/master by this push:
     new 2e881f4  SLING-5531 document Sling-Namespaces bundle header for namespace registration
2e881f4 is described below

commit 2e881f47f3c57da49bd978ba161f03b25eb3440d
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Thu Apr 15 08:51:56 2021 +0200

    SLING-5531 document Sling-Namespaces bundle header for namespace
    registration
    
    fix some typos and add clarifying links
---
 .../bundles/content-loading-jcr-contentloader.md   | 24 ++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/src/main/jbake/content/documentation/bundles/content-loading-jcr-contentloader.md b/src/main/jbake/content/documentation/bundles/content-loading-jcr-contentloader.md
index aa59a23..cc7c170 100644
--- a/src/main/jbake/content/documentation/bundles/content-loading-jcr-contentloader.md
+++ b/src/main/jbake/content/documentation/bundles/content-loading-jcr-contentloader.md
@@ -1,10 +1,10 @@
-title=Content Loading and Nodetype Support (jcr.contentloader)		
+title=Content Loading and Nodetype/Namespace Support (jcr.contentloader)		
 type=page
 status=published
 tags=contentloading,nodetypes
 ~~~~~~
 
-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. See [Content-Package based development](/documentation/development/content-packages.html) for an alternative for deploying content to the repository.
+Apache Sling provides support for initial content loading into a repository and for registering node types. The [`sling-jcr-contentloader`](https://github.com/apache/sling-org-apache-sling-jcr-contentloader) bundle provides loading of content from a bundle into the repository and the [`sling-jcr-base`](https://github.com/apache/sling-org-apache-sling-jcr-base) bundle provides node type and namespace registration. See [Content-Package based development](/documentation/development/content- [...]
 
 ## Initial Content Loading
 
@@ -220,7 +220,7 @@ By default, the `sling-jcr-contentloader` bundle tries to extract certain file t
 
 ### File name escaping
 
-When the node name you want to import with the JCR ContentLoader contains characters that are not allowed in typical file systems (e.g. a ":" is not allowed on windows file systems), you can URL-encode the file name. It uses the [Java URLDecoder](https://docs.oracle.com/javase/8/docs/api/java/net/URLDecoder.html) internally.
+When the node name you want to import with the JCR ContentLoader contains characters that are not allowed in typical file systems (e.g. a ":" is not allowed on windows file systems), you can URL-encode the file name. It uses the [Java URLDecoder](https://docs.oracle.com/javase/8/docs/api/java/net/URLDecoder.html) with UTF-8 character encoding internally.
 
 Example: `jcr%3Acontent.txt` will be loaded into a node named `jcr:content.txt`.
 
@@ -261,24 +261,32 @@ Example for the content descriptor:
     </node>
     
 
-## Declared Node Type Registration
+## Declared Node Type and Namespace 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.
+### Node Type and Namespace Definitions (CND)
+
+The class `org.apache.sling.content.jcr.base.NodeTypeLoader` provides methods to register custom node types and namespace with a repository given a repository session and a node type definition file in [CND format](https://jackrabbit.apache.org/jcr/node-type-notation.html). 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 resource names 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.
+Starting with revision 911430, re-registration of existing node types is enabled by default. To disable this, add `;reregister:=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
+### Namespace Defition
+
+Instead of using a CND file for defining namespace one can use the bundle header `Sling-Namespaces` as well. It contains a comma-separated list of `<prefix>=<uri>` strings. 
+Those are processed in [`org.apache.sling.content.jcr.base.internal.loader.Loader`](https://github.com/apache/sling-org-apache-sling-jcr-base/blob/66be360910c265473799635fcac0e23895898913/src/main/java/org/apache/sling/jcr/base/internal/loader/Loader.java#L192).
+
+## Automated tests
 
 The initial content found in the [sling-test folder of the launchpad initial content](https://github.com/apache/sling-org-apache-sling-launchpad-content/tree/master/src/main/resources/content/sling-test) is verified by the [InitialContentTest](https://github.com/apache/sling-org-apache-sling-launchpad-integration-tests/blob/master/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/InitialContentTest.java) when running the *launchpad testing* integration tests.