Return-Path: X-Original-To: apmail-jackrabbit-commits-archive@www.apache.org Delivered-To: apmail-jackrabbit-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 43DB695CC for ; Fri, 24 Feb 2012 16:25:49 +0000 (UTC) Received: (qmail 33512 invoked by uid 500); 24 Feb 2012 16:25:49 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 33466 invoked by uid 500); 24 Feb 2012 16:25:49 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 33456 invoked by uid 99); 24 Feb 2012 16:25:49 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Feb 2012 16:25:49 +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, 24 Feb 2012 16:25:47 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id C69A123888FD; Fri, 24 Feb 2012 16:25:27 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1293323 - in /jackrabbit/sandbox/microkernel/src: main/java/org/apache/jackrabbit/mk/ main/java/org/apache/jackrabbit/mk/model/ test/java/org/apache/jackrabbit/mk/store/ Date: Fri, 24 Feb 2012 16:25:27 -0000 To: commits@jackrabbit.apache.org From: dpfister@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120224162527.C69A123888FD@eris.apache.org> Author: dpfister Date: Fri Feb 24 16:25:26 2012 New Revision: 1293323 URL: http://svn.apache.org/viewvc?rev=1293323&view=rev Log: Introduce unused revisions clean-up (WIP) - add new constructors for test-setup - remove provider in arguments (already available as instance variable) - add first test Added: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/store/ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/store/CopyHeadRevisionTest.java (with props) Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/Repository.java jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/AbstractNode.java jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/Node.java jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/StoredNode.java Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java?rev=1293323&r1=1293322&r2=1293323&view=diff ============================================================================== --- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java (original) +++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java Fri Feb 24 16:25:26 2012 @@ -53,6 +53,15 @@ public class MicroKernelImpl implements public MicroKernelImpl(String homeDir) throws MicroKernelException { init(homeDir); } + + /** + * Alternate constructor, used for testing. + * + * @param rep repository, already initialized + */ + public MicroKernelImpl(Repository rep) { + this.rep = rep; + } protected void init(String homeDir) throws MicroKernelException { try { Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/Repository.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/Repository.java?rev=1293323&r1=1293322&r2=1293323&view=diff ============================================================================== --- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/Repository.java (original) +++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/Repository.java Fri Feb 24 16:25:26 2012 @@ -34,9 +34,8 @@ import org.apache.jackrabbit.mk.util.Pat */ public class Repository { - final String homeDir; - boolean initialized; - + private final String homeDir; + private boolean initialized; private final DefaultRevisionStore rs; public Repository(String homeDir) throws Exception { @@ -47,17 +46,25 @@ public class Repository { this.homeDir = home.getCanonicalPath(); rs = new DefaultRevisionStore(); - - initialized = false; } - + + /** + * Alternate constructor, used for testing. + * + * @param rs revision store, already initialized + */ + public Repository(DefaultRevisionStore rs) { + this.homeDir = null; + this.rs = rs; + + initialized = true; + } + public void init() throws Exception { if (initialized) { return; } - - File home = new File(homeDir); - rs.initialize(home); + rs.initialize(new File(homeDir)); initialized = true; } Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/AbstractNode.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/AbstractNode.java?rev=1293323&r1=1293322&r2=1293323&view=diff ============================================================================== --- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/AbstractNode.java (original) +++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/AbstractNode.java Fri Feb 24 16:25:26 2012 @@ -88,7 +88,7 @@ public abstract class AbstractNode imple return childEntries.getEntries(offset, count); } - public Iterator getChildNodes(int offset, int count, final RevisionProvider provider) + public Iterator getChildNodes(int offset, int count) throws Exception { if (offset < 0 || count < -1) { throw new IllegalArgumentException(); @@ -117,7 +117,7 @@ public abstract class AbstractNode imple }; } - public Node getNode(String relPath, RevisionProvider provider) + public Node getNode(String relPath) throws NotFoundException, Exception { String[] names = PathUtils.split(relPath); Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/Node.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/Node.java?rev=1293323&r1=1293322&r2=1293323&view=diff ============================================================================== --- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/Node.java (original) +++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/Node.java Fri Feb 24 16:25:26 2012 @@ -17,7 +17,6 @@ package org.apache.jackrabbit.mk.model; import org.apache.jackrabbit.mk.store.Binding; -import org.apache.jackrabbit.mk.store.RevisionProvider; import org.apache.jackrabbit.mk.store.NotFoundException; import java.util.Iterator; @@ -40,8 +39,8 @@ public interface Node { */ Iterator getChildNodeEntries(int offset, int count); - Iterator getChildNodes(int offset, int count, RevisionProvider provider) throws Exception; - Node getNode(String relPath, RevisionProvider provider) throws NotFoundException, Exception; + Iterator getChildNodes(int offset, int count) throws Exception; + Node getNode(String relPath) throws NotFoundException, Exception; void diff(Node other, NodeDiffHandler handler); Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/StoredNode.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/StoredNode.java?rev=1293323&r1=1293322&r2=1293323&view=diff ============================================================================== --- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/StoredNode.java (original) +++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/StoredNode.java Fri Feb 24 16:25:26 2012 @@ -83,13 +83,13 @@ public class StoredNode extends Abstract return new UnmodifiableIterator(super.getChildNodeNames(offset, count)); } - public Iterator getChildNodes(int offset, int count, RevisionProvider provider) + public Iterator getChildNodes(int offset, int count) throws Exception { - return new UnmodifiableIterator(super.getChildNodes(offset, count, provider)); + return new UnmodifiableIterator(super.getChildNodes(offset, count)); } - public Node getNode(String relPath, RevisionProvider provider) throws NotFoundException, Exception { - Node result = super.getNode(relPath, provider); + public Node getNode(String relPath) throws NotFoundException, Exception { + Node result = super.getNode(relPath); if (!(result instanceof StoredNode)) { // todo return a StoredNode instance instead? } Added: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/store/CopyHeadRevisionTest.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/store/CopyHeadRevisionTest.java?rev=1293323&view=auto ============================================================================== --- jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/store/CopyHeadRevisionTest.java (added) +++ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/store/CopyHeadRevisionTest.java Fri Feb 24 16:25:26 2012 @@ -0,0 +1,85 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.jackrabbit.mk.store; + +import java.io.File; +import java.util.Iterator; +import java.util.Map; + +import org.apache.jackrabbit.mk.MicroKernelImpl; +import org.apache.jackrabbit.mk.Repository; +import org.apache.jackrabbit.mk.fs.FileUtils; +import org.apache.jackrabbit.mk.model.ChildNode; +import org.apache.jackrabbit.mk.model.MutableCommit; +import org.apache.jackrabbit.mk.model.Node; +import org.apache.jackrabbit.mk.model.StoredCommit; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Use-case: start off a new revision store that contains just the head revision + * and its nodes. + */ +public class CopyHeadRevisionTest { + + @Before + public void setup() throws Exception { + FileUtils.deleteRecursive("target/mk1", false); + FileUtils.deleteRecursive("target/mk2", false); + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testCopyHeadRevisionToNewStore() throws Exception { + DefaultRevisionStore rsFrom = new DefaultRevisionStore(); + rsFrom.initialize(new File("target/mk1")); + + MicroKernelImpl mkFrom = new MicroKernelImpl(new Repository(rsFrom)); + mkFrom.commit("/", "+\"a\" : { \"c\":{}, \"d\":{} }", mkFrom.getHeadRevision(), null); + mkFrom.commit("/", "+\"b\" : {}", mkFrom.getHeadRevision(), null); + mkFrom.commit("/b", "+\"e\" : {}", mkFrom.getHeadRevision(), null); + + StoredCommit commitFrom = rsFrom.getHeadCommit(); + + DefaultRevisionStore rsTo = new DefaultRevisionStore(); + rsTo.initialize(new File("target/mk2")); + + MutableCommit commitTo = new MutableCommit(); + commitTo.setCommitTS(commitFrom.getCommitTS()); + commitTo.setMsg(commitFrom.getMsg()); + commitTo.setParentId(commitTo.getParentId()); + commitTo.setRootNodeId(commitFrom.getRootNodeId()); + rsTo.putCommit(commitTo); + + MicroKernelImpl mkTo = new MicroKernelImpl(new Repository(rsTo)); +// System.out.println(mkTo.getNodes("/", mkTo.getHeadRevision(), 0, 0, -1)); + } + + private void traverse(Node node) throws Exception { + Map props = node.getProperties(); + Iterator iter = node.getChildNodes(0, -1); + while (iter.hasNext()) { + ChildNode c = iter.next(); +// System.out.println(c.getName()); + traverse(c.getNode()); + } + } +} Propchange: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/store/CopyHeadRevisionTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/store/CopyHeadRevisionTest.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Rev Url