Return-Path: X-Original-To: apmail-sling-commits-archive@www.apache.org Delivered-To: apmail-sling-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 280FF10B72 for ; Fri, 16 Aug 2013 14:49:25 +0000 (UTC) Received: (qmail 93298 invoked by uid 500); 16 Aug 2013 14:49:24 -0000 Delivered-To: apmail-sling-commits-archive@sling.apache.org Received: (qmail 93224 invoked by uid 500); 16 Aug 2013 14:49:20 -0000 Mailing-List: contact commits-help@sling.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@sling.apache.org Delivered-To: mailing list commits@sling.apache.org Received: (qmail 93212 invoked by uid 99); 16 Aug 2013 14:49:19 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Aug 2013 14:49:19 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Aug 2013 14:49:17 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 4857923889BF; Fri, 16 Aug 2013 14:48:57 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1514742 - in /sling/whiteboard/bdelacretaz: bdelacretaz-oak-server/ bdelacretaz-oak-server/src/main/java/org/apache/sling/oak/server/ it-repository/src/test/java/org/apache/sling/jcr/repository/it/ oak-launchpad/src/main/bundles/ Date: Fri, 16 Aug 2013 14:48:57 -0000 To: commits@sling.apache.org From: bdelacretaz@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130816144857.4857923889BF@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: bdelacretaz Date: Fri Aug 16 14:48:56 2013 New Revision: 1514742 URL: http://svn.apache.org/r1514742 Log: SLING-2788 - enable Oak search functionality and add a few other Oak components Modified: sling/whiteboard/bdelacretaz/bdelacretaz-oak-server/pom.xml sling/whiteboard/bdelacretaz/bdelacretaz-oak-server/src/main/java/org/apache/sling/oak/server/SlingRepositoryImpl.java sling/whiteboard/bdelacretaz/it-repository/src/test/java/org/apache/sling/jcr/repository/it/OakRepositoryIT.java sling/whiteboard/bdelacretaz/it-repository/src/test/java/org/apache/sling/jcr/repository/it/SlingRepositoryITBase.java sling/whiteboard/bdelacretaz/oak-launchpad/src/main/bundles/list.xml Modified: sling/whiteboard/bdelacretaz/bdelacretaz-oak-server/pom.xml URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/bdelacretaz-oak-server/pom.xml?rev=1514742&r1=1514741&r2=1514742&view=diff ============================================================================== --- sling/whiteboard/bdelacretaz/bdelacretaz-oak-server/pom.xml (original) +++ sling/whiteboard/bdelacretaz/bdelacretaz-oak-server/pom.xml Fri Aug 16 14:48:56 2013 @@ -95,6 +95,12 @@ ${oak.version} provided + + org.apache.jackrabbit + oak-lucene + ${oak.version} + provided + org.apache.sling Modified: sling/whiteboard/bdelacretaz/bdelacretaz-oak-server/src/main/java/org/apache/sling/oak/server/SlingRepositoryImpl.java URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/bdelacretaz-oak-server/src/main/java/org/apache/sling/oak/server/SlingRepositoryImpl.java?rev=1514742&r1=1514741&r2=1514742&view=diff ============================================================================== --- sling/whiteboard/bdelacretaz/bdelacretaz-oak-server/src/main/java/org/apache/sling/oak/server/SlingRepositoryImpl.java (original) +++ sling/whiteboard/bdelacretaz/bdelacretaz-oak-server/src/main/java/org/apache/sling/oak/server/SlingRepositoryImpl.java Fri Aug 16 14:48:56 2013 @@ -31,6 +31,20 @@ import org.apache.felix.scr.annotations. import org.apache.felix.scr.annotations.Service; import org.apache.jackrabbit.oak.Oak; import org.apache.jackrabbit.oak.jcr.Jcr; +import org.apache.jackrabbit.oak.plugins.commit.ConflictValidatorProvider; +import org.apache.jackrabbit.oak.plugins.commit.JcrConflictHandler; +import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorProvider; +import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProvider; +import org.apache.jackrabbit.oak.plugins.index.nodetype.NodeTypeIndexProvider; +import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider; +import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexProvider; +import org.apache.jackrabbit.oak.plugins.name.NameValidatorProvider; +import org.apache.jackrabbit.oak.plugins.name.NamespaceValidatorProvider; +import org.apache.jackrabbit.oak.plugins.nodetype.RegistrationEditorProvider; +import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider; +import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent; +import org.apache.jackrabbit.oak.plugins.version.VersionEditorProvider; +import org.apache.jackrabbit.oak.spi.commit.EditorHook; import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider; import org.apache.jackrabbit.oak.spi.security.SecurityProvider; import org.apache.jackrabbit.oak.spi.state.NodeStore; @@ -54,10 +68,35 @@ public class SlingRepositoryImpl extends @Activate protected void activate(ComponentContext ctx) { + // TODO OpenSecurityProvider does not check anything, should use + // at least a SecurityProviderImpl, but that doesn't work with oak 0.8 + // (LoginModule class not found) final SecurityProvider sp = new OpenSecurityProvider(); - // TODO barebones setup for now...might not provide much functionality. - // TODO for a simple config (tar persistence) we could use the SegmentNodeStoreService - oakRepository = new Jcr(new Oak(nodeStore)).with(sp).createRepository(); + + oakRepository = new Jcr(new Oak(nodeStore)) + .with(sp) + .with(new InitialContent()) + + .with(JcrConflictHandler.JCR_CONFLICT_HANDLER) + .with(new EditorHook(new VersionEditorProvider())) + + .with(new NameValidatorProvider()) + .with(new NamespaceValidatorProvider()) + .with(new TypeEditorProvider()) + .with(new RegistrationEditorProvider()) + .with(new ConflictValidatorProvider()) + + // index stuff + .with(new PropertyIndexEditorProvider()) + + .with(new PropertyIndexProvider()) + .with(new NodeTypeIndexProvider()) + + .with(new LuceneIndexEditorProvider()) + .with(new LuceneIndexProvider()) + + //.withAsyncIndexing() // TODO oak 0.9? + .createRepository(); } @Override Modified: sling/whiteboard/bdelacretaz/it-repository/src/test/java/org/apache/sling/jcr/repository/it/OakRepositoryIT.java URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/it-repository/src/test/java/org/apache/sling/jcr/repository/it/OakRepositoryIT.java?rev=1514742&r1=1514741&r2=1514742&view=diff ============================================================================== --- sling/whiteboard/bdelacretaz/it-repository/src/test/java/org/apache/sling/jcr/repository/it/OakRepositoryIT.java (original) +++ sling/whiteboard/bdelacretaz/it-repository/src/test/java/org/apache/sling/jcr/repository/it/OakRepositoryIT.java Fri Aug 16 14:48:56 2013 @@ -104,11 +104,12 @@ public class OakRepositoryIT extends Sli mavenBundle("org.apache.jackrabbit", "jackrabbit-jcr-commons", "2.7.0"), mavenBundle("org.apache.jackrabbit", "jackrabbit-jcr-rmi", "2.4.2"), mavenBundle("org.apache.jackrabbit", "oak-core", oakVersion), - //mavenBundle("org.apache.jackrabbit", "oak-jcr", oakVersion), + //embedded in server bundle for now mavenBundle("org.apache.jackrabbit", "oak-jcr", oakVersion), mavenBundle("org.apache.jackrabbit", "oak-commons", oakVersion), mavenBundle("org.apache.jackrabbit", "oak-mk", oakVersion), mavenBundle("org.apache.jackrabbit", "oak-mk-api", oakVersion), mavenBundle("org.apache.jackrabbit", "oak-mk-remote", oakVersion), + mavenBundle("org.apache.jackrabbit", "oak-lucene", oakVersion), // Testing mavenBundle("org.apache.sling", "org.apache.sling.testing.tools", "1.0.6"), Modified: sling/whiteboard/bdelacretaz/it-repository/src/test/java/org/apache/sling/jcr/repository/it/SlingRepositoryITBase.java URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/it-repository/src/test/java/org/apache/sling/jcr/repository/it/SlingRepositoryITBase.java?rev=1514742&r1=1514741&r2=1514742&view=diff ============================================================================== --- sling/whiteboard/bdelacretaz/it-repository/src/test/java/org/apache/sling/jcr/repository/it/SlingRepositoryITBase.java (original) +++ sling/whiteboard/bdelacretaz/it-repository/src/test/java/org/apache/sling/jcr/repository/it/SlingRepositoryITBase.java Fri Aug 16 14:48:56 2013 @@ -23,9 +23,11 @@ import static org.junit.Assert.assertNot import javax.inject.Inject; import javax.jcr.Credentials; import javax.jcr.Node; +import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.SimpleCredentials; +import javax.jcr.query.Query; import org.apache.sling.jcr.api.SlingRepository; import org.junit.Ignore; @@ -87,6 +89,34 @@ public abstract class SlingRepositoryITB } @Test + public void testQuery() throws RepositoryException { + final Session s = repository.loginAdministrative(null); + final String id = "ID_" + System.currentTimeMillis(); + final String propName = "PROP_" + id; + final String value = "VALUE_" + id; + try { + final int N_NODES = 100; + for(int i=0 ; i < N_NODES; i++) { + final Node root = s.getRootNode(); + root.addNode(id + i).setProperty(propName, value); + } + s.save(); + + final String stmt = "SELECT * FROM nt:base WHERE " + propName + " IS NOT NULL"; + final Query q = s.getWorkspace().getQueryManager().createQuery(stmt, Query.SQL); + final NodeIterator it = q.execute().getNodes(); + int count = 0; + while(it.hasNext()) { + it.next(); + count++; + } + assertEquals("Expected " + N_NODES + " result for query " + stmt, N_NODES, count); + } finally { + s.logout(); + } + } + + @Test public final void checkRepositoryDescriptors() { doCheckRepositoryDescriptors(); } Modified: sling/whiteboard/bdelacretaz/oak-launchpad/src/main/bundles/list.xml URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/oak-launchpad/src/main/bundles/list.xml?rev=1514742&r1=1514741&r2=1514742&view=diff ============================================================================== --- sling/whiteboard/bdelacretaz/oak-launchpad/src/main/bundles/list.xml (original) +++ sling/whiteboard/bdelacretaz/oak-launchpad/src/main/bundles/list.xml Fri Aug 16 14:48:56 2013 @@ -526,6 +526,11 @@ oak-mk-remote 0.8 + + org.apache.jackrabbit + oak-lucene + 0.8 +