You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2019/04/12 20:39:00 UTC

[sling-org-apache-sling-testing-sling-mock-oak] branch feature/oak-1.10.2 updated: SLING-8352 sling-mock-oak: Register "sling" namespace before adding oak index definitions

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

sseifert pushed a commit to branch feature/oak-1.10.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock-oak.git


The following commit(s) were added to refs/heads/feature/oak-1.10.2 by this push:
     new 7eb9073  SLING-8352 sling-mock-oak: Register "sling" namespace before adding oak index definitions
     new cbd1798  Merge branch 'master' into feature/oak-1.10.2
7eb9073 is described below

commit 7eb907398534f21ba97872fde98cd1bc910d6692
Author: sseifert <ss...@pro-vision.de>
AuthorDate: Fri Apr 12 22:38:20 2019 +0200

    SLING-8352 sling-mock-oak: Register "sling" namespace before adding oak index definitions
---
 .../testing/mock/sling/oak/ExtraSlingContent.java  | 25 ++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/apache/sling/testing/mock/sling/oak/ExtraSlingContent.java b/src/main/java/org/apache/sling/testing/mock/sling/oak/ExtraSlingContent.java
index fef8790..3df0254 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/oak/ExtraSlingContent.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/oak/ExtraSlingContent.java
@@ -19,9 +19,13 @@
 package org.apache.sling.testing.mock.sling.oak;
 
 import static java.util.Collections.singleton;
+import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME;
 import static org.apache.jackrabbit.oak.plugins.index.IndexUtils.createIndexDefinition;
+import static org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants.REP_NAMESPACES;
+import static org.apache.sling.jcr.resource.JcrResourceConstants.SLING_NAMESPACE_URI;
 
+import org.apache.jackrabbit.oak.plugins.name.Namespaces;
 import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.jetbrains.annotations.NotNull;
@@ -34,6 +38,19 @@ final class ExtraSlingContent implements RepositoryInitializer {
 
     @Override
     public void initialize(@NotNull NodeBuilder root) {
+
+        // register sling namespace
+        String slingNs = "sling";                
+        if (root.hasChildNode(JCR_SYSTEM)) {
+            NodeBuilder jcrSystem = root.getChildNode(JCR_SYSTEM);
+            if (jcrSystem.hasChildNode(REP_NAMESPACES)) {
+                NodeBuilder namespaces = jcrSystem.getChildNode(REP_NAMESPACES);
+                slingNs = Namespaces.addCustomMapping(namespaces, SLING_NAMESPACE_URI, slingNs);
+                Namespaces.buildIndexNode(namespaces);
+            }
+        }
+
+        // add useful index definitions
         if (root.hasChildNode(INDEX_DEFINITIONS_NAME)) {
             NodeBuilder index = root.child(INDEX_DEFINITIONS_NAME);
 
@@ -42,10 +59,10 @@ final class ExtraSlingContent implements RepositoryInitializer {
             property(index, "jcrLockOwner", "jcr:lockOwner");
 
             // sling:
-            property(index, "slingAlias", "sling:alias");
-            property(index, "slingResource", "sling:resource");
-            property(index, "slingResourceType", "sling:resourceType");
-            property(index, "slingVanityPath", "sling:vanityPath");
+            property(index, "slingAlias", slingNs + ":alias");
+            property(index, "slingResource", slingNs + ":resource");
+            property(index, "slingResourceType", slingNs + ":resourceType");
+            property(index, "slingVanityPath", slingNs + ":vanityPath");
         }
     }