You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:23:41 UTC
[sling-org-apache-sling-testing-sling-mock-oak] 20/27: SLING-5084
sling-mock-oak: Provide a minimal index configuration for Sling-related
properties
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.testing.sling-mock-oak-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock-oak.git
commit 300fe88196dfbf1509118922c0103fbd7a3da7a7
Author: Stefan Seifert <ss...@apache.org>
AuthorDate: Thu Oct 1 17:43:53 2015 +0000
SLING-5084 sling-mock-oak: Provide a minimal index configuration for Sling-related properties
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock-oak@1706299 13f79535-47bb-0310-9956-ffa450edef68
---
.../sling/oak/OakMockResourceResolverAdapter.java | 47 +++++++++++++++++++++-
1 file changed, 46 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockResourceResolverAdapter.java b/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockResourceResolverAdapter.java
index 393fdc1..5b4cd73 100644
--- a/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockResourceResolverAdapter.java
+++ b/src/main/java/org/apache/sling/testing/mock/sling/oak/OakMockResourceResolverAdapter.java
@@ -18,7 +18,15 @@
*/
package org.apache.sling.testing.mock.sling.oak;
+import static java.util.Collections.singleton;
+import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NAME;
+import static org.apache.jackrabbit.oak.plugins.index.IndexUtils.createIndexDefinition;
+
+import javax.jcr.Repository;
+
import org.apache.jackrabbit.oak.jcr.Jcr;
+import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
+import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.jcr.api.SlingRepository;
import org.apache.sling.testing.mock.sling.spi.ResourceResolverTypeAdapter;
@@ -35,7 +43,44 @@ public class OakMockResourceResolverAdapter implements ResourceResolverTypeAdapt
@Override
public SlingRepository newSlingRepository() {
- return new RepositoryWrapper(new Jcr().createRepository());
+ Repository repository = new Jcr()
+ .with(new ExtraSlingContent())
+ .createRepository();
+ return new RepositoryWrapper(repository);
+ }
+
+ /**
+ * Adds some default indexes useful for by sling resource-jcr mapping.
+ * This is only a small subset of what is defined by default in the org.apache.sling.jcr.oak.server bundle.
+ */
+ private static final class ExtraSlingContent implements RepositoryInitializer {
+
+ @Override
+ public void initialize(NodeBuilder root) {
+ if (root.hasChildNode(INDEX_DEFINITIONS_NAME)) {
+ NodeBuilder index = root.child(INDEX_DEFINITIONS_NAME);
+
+ // jcr:
+ property(index, "jcrLanguage", "jcr:language");
+ 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");
+ }
+ }
+
+ /**
+ * A convenience method to create a non-unique property index.
+ */
+ private static void property(NodeBuilder index, String indexName, String propertyName) {
+ if (!index.hasChildNode(indexName)) {
+ createIndexDefinition(index, indexName, true, false, singleton(propertyName), null);
+ }
+ }
+
}
}
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.