You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2022/01/31 18:55:01 UTC

[jackrabbit-filevault] branch master updated: JCRVLT-601 improve documentation on namespace handling (#203)

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/jackrabbit-filevault.git


The following commit(s) were added to refs/heads/master by this push:
     new 1bd9f9f  JCRVLT-601 improve documentation on namespace handling (#203)
1bd9f9f is described below

commit 1bd9f9fa825e86133eaae222544e8c39ba7970ee
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Mon Jan 31 19:54:57 2022 +0100

    JCRVLT-601 improve documentation on namespace handling (#203)
---
 src/site/markdown/nodetypes.md  | 12 +++++++++++-
 src/site/markdown/privileges.md |  8 +++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/site/markdown/nodetypes.md b/src/site/markdown/nodetypes.md
index c7b6634..4dc2327 100644
--- a/src/site/markdown/nodetypes.md
+++ b/src/site/markdown/nodetypes.md
@@ -19,4 +19,14 @@ Node Types and Namespaces
 ===========
 
 Packages can register custom [JCR node types](https://s.apache.org/jcr-2.0-spec/8_Node_Type_Discovery.html) and [Namespaces](https://s.apache.org/jcr-2.0-spec/3_Repository_Model.html#3.2.1%20Namespaces) during import by carrying arbitrarily many `.cnd` files. All files names matching the regular expression pattern set in [package property](properties.html) `cndPattern` as well as all `*.cnd` files below `META-INF/vault` are considered. Details around the CND file format can be found at < [...]
-Node types and namespaces whose qualified name/uri are already registered are not touched. This also means that existing namespaces and node types are never modified but only once initially installed in case they are not yet there.
+Node types and namespaces whose qualified name/prefix/uri is already registered are not touched. This also means that existing namespaces and node types are never modified but only once initially installed in case they are not yet there.
+
+Namespace Prefixes
+-------
+
+As the [Standard Form of JCR Paths](https://s.apache.org/jcr-2.0-spec/3_Repository_Model.html#3.4.3.1%20Standard%20Form) only uses qualified names (i.e. leveraging prefixes instead of full URLs) it is important that the destination repository uses the same prefixes as are being used in the package.
+
+Although you can redefine a namespace URL to be mapped from another prefix in the [FileVault Document View (DocView) Format](./docview.html) this will only be used during parsing that file (i.e. once during import) but is not persisted in the destination repository. Particularly it won't affect:
+
+1. property values containing a path in the JCR standard form (for properties of type `STRING`). [Property type `PATH`](https://s.apache.org/jcr-2.0-spec//3_Repository_Model.html#3.6.1.10%20PATH) on the other hand internally always stores the full namespace URL and the local name, therefore the qualified name is calculated for each conversion to string and takes into account the current prefix mapping.
+2. the standard form of JCR paths containing namespaced items
diff --git a/src/site/markdown/privileges.md b/src/site/markdown/privileges.md
index c31f979..f828976 100644
--- a/src/site/markdown/privileges.md
+++ b/src/site/markdown/privileges.md
@@ -18,7 +18,9 @@
 Privileges
 ===========
 
-Packages can register custom [JCR privileges](https://s.apache.org/jcr-2.0-spec/16_Access_Control_Management.html#16.2%20Privilege%20Discovery) during import by carrying a `META-INF/vault/privileges.xml` file. 
+Packages can register custom [JCR privileges](https://s.apache.org/jcr-2.0-spec/16_Access_Control_Management.html#16.2%20Privilege%20Discovery) during import by carrying a `META-INF/vault/privileges.xml` file.  
+
+Its DTD is defined as
 
 ```xml
 <!DOCTYPE privileges [
@@ -31,4 +33,8 @@ Packages can register custom [JCR privileges](https://s.apache.org/jcr-2.0-spec/
 ]>
 ```
 
+The implementation is leveraging the [Jackrabbit API PrivilegeManager](https://www.javadoc.io/doc/org.apache.jackrabbit/oak-jackrabbit-api/latest/org/apache/jackrabbit/api/security/authorization/PrivilegeManager.html).
+
+The privilege **name** must be given in [qualified form](https://s.apache.org/jcr-2.0-spec/3_Repository_Model.html#3.2.5.2%20Qualified%20Form). Every element may carry [XML namespace declarations](https://www.w3.org/TR/2006/REC-xml-names11-20060816/#ns-decl) which are automatically registered in the destination repository during import as well. This should be used when the privilege is using a custom namespace URL.
+
 Aggregate privileges can be registered with the additional element `contains` which should reference an existing privilege name.