You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2012/09/21 10:26:45 UTC
svn commit: r1388369 [1/3] - in /jackrabbit/oak/trunk: ./ oak-mongomk-api/
oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/
oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/
oak-mongomk-api/src/main/java/org/apach...
Author: jukka
Date: Fri Sep 21 08:26:42 2012
New Revision: 1388369
URL: http://svn.apache.org/viewvc?rev=1388369&view=rev
Log:
OAK-293: MongoDB-based MicroKernel
Move mongomk-api and -impl to mongomk. Patch by Mete Atamel.
Added:
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/BlobStore.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/BlobStore.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/NodeStore.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/NodeStore.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/command/
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/command/AbstractCommand.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/AbstractCommand.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/command/Command.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/Command.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/command/CommandExecutor.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/CommandExecutor.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/model/
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/model/Commit.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Commit.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/model/Instruction.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Instruction.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/model/InstructionVisitor.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/InstructionVisitor.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/api/model/Node.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Node.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/MongoMicroKernel.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/MongoMicroKernel.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/NodeFilter.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/NodeFilter.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/CommitBuilder.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/CommitBuilder.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/NodeBuilder.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/NodeBuilder.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/command/
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/command/CommandExecutorImpl.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/command/CommandExecutorImpl.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/json/
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/json/DefaultJsopHandler.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/DefaultJsopHandler.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/json/JsonUtil.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/JsonUtil.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/json/JsopParser.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/JsopParser.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/model/
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/model/AddNodeInstructionImpl.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/AddNodeInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/model/AddPropertyInstructionImpl.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/AddPropertyInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/model/CommitImpl.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/CommitImpl.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/model/CopyNodeInstructionImpl.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/CopyNodeInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/model/MoveNodeInstructionImpl.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/MoveNodeInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/model/NodeImpl.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/NodeImpl.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/model/RemoveNodeInstructionImpl.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/RemoveNodeInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/model/SetPropertyInstructionImpl.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/SetPropertyInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/impl/
jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/impl/InstructionAssert.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/test/java/org/apache/jackrabbit/mongomk/impl/InstructionAssert.java
jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/impl/NodeAssert.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/test/java/org/apache/jackrabbit/mongomk/impl/NodeAssert.java
jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/impl/builder/
jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/impl/builder/CommitBuilderImplTest.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/test/java/org/apache/jackrabbit/mongomk/builder/CommitBuilderImplTest.java
jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/impl/builder/NodeBuilderTest.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/test/java/org/apache/jackrabbit/mongomk/builder/NodeBuilderTest.java
jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/impl/json/
jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/impl/json/JsopParserTest.java
- copied, changed from r1388086, jackrabbit/oak/trunk/oak-mongomk-impl/src/test/java/org/apache/jackrabbit/mongomk/impl/json/JsopParserTest.java
Modified:
jackrabbit/oak/trunk/oak-mongomk-api/pom.xml
jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/BlobStore.java
jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/NodeStore.java
jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/AbstractCommand.java
jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/Command.java
jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/CommandExecutor.java
jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Commit.java
jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Instruction.java
jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/InstructionVisitor.java
jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Node.java
jackrabbit/oak/trunk/oak-mongomk-impl/pom.xml
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/MongoMicroKernel.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/NodeFilter.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/CommitBuilder.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/NodeBuilder.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/command/CommandExecutorImpl.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/DefaultJsopHandler.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/JsonUtil.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/JsopParser.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/AddNodeInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/AddPropertyInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/CommitImpl.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/CopyNodeInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/MoveNodeInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/NodeImpl.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/RemoveNodeInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/model/SetPropertyInstructionImpl.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/test/java/org/apache/jackrabbit/mongomk/builder/CommitBuilderImplTest.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/test/java/org/apache/jackrabbit/mongomk/builder/NodeBuilderTest.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/test/java/org/apache/jackrabbit/mongomk/impl/InstructionAssert.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/test/java/org/apache/jackrabbit/mongomk/impl/NodeAssert.java
jackrabbit/oak/trunk/oak-mongomk-impl/src/test/java/org/apache/jackrabbit/mongomk/impl/json/JsopParserTest.java
jackrabbit/oak/trunk/oak-mongomk/pom.xml
jackrabbit/oak/trunk/oak-mongomk/src/test/java/org/apache/jackrabbit/mongomk/command/NodeExistsCommandMongoTest.java
jackrabbit/oak/trunk/pom.xml
Modified: jackrabbit/oak/trunk/oak-mongomk-api/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-api/pom.xml?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-api/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-mongomk-api/pom.xml Fri Sep 21 08:26:42 2012
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- 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.
- -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
- http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-parent</artifactId>
- <version>0.5-SNAPSHOT</version>
- </parent>
-
- <artifactId>oak-mongomk-api</artifactId>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-mk</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
-
-</project>
Modified: jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/BlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/BlobStore.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/BlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/BlobStore.java Fri Sep 21 08:26:42 2012
@@ -1,73 +0,0 @@
-/*
- * 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.mongomk.api;
-
-import java.io.InputStream;
-
-import org.apache.jackrabbit.mk.api.MicroKernel;
-
-/**
- * The <code>BlobStore</code> interface deals with all blob related operations of the {@link MicroKernel}.
- *
- * <p>
- * Since binary storage and node storage most likely use different backend technologies two separate interfaces for
- * these operations are provided.
- * </p>
- *
- * <p>
- * This interface is not only a partly {@code MicroKernel} but also provides a different layer of abstraction by
- * converting the {@link String} parameters into higher level objects to ease the development for implementors of the
- * {@code MicroKernel}.
- * </p>
- *
- * @see NodeStore
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public interface BlobStore {
-
- /**
- * @see MicroKernel#getLength(String)
- *
- * @param blobId The id of the blob.
- * @return The length in bytes.
- * @throws Exception If an error occurred while getting the blob lenght.
- */
- long getBlobLength(String blobId) throws Exception;
-
- /**
- * @see MicroKernel#read(String, long, byte[], int, int)
- *
- * @param blobId The id of the blob.
- * @param blobOffset The offset to read from.
- * @param buffer The buffer to read the binary data into.
- * @param bufferOffset The offset to read into the buffer.
- * @param length The length of the data to read.
- * @return The actual number of bytes which were read.
- * @throws Exception If an error occurred while reading the blob data.
- */
- int readBlob(String blobId, long blobOffset, byte[] buffer, int bufferOffset, int length) throws Exception;
-
- /**
- * @see MicroKernel#write(InputStream)
- *
- * @param is The {@link InputStream} containing the data which should be written.
- * @return The id of the blob.
- * @throws Exception If an error occurred while writing the data.
- */
- String writeBlob(InputStream is) throws Exception;
-}
Modified: jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/NodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/NodeStore.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/NodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/NodeStore.java Fri Sep 21 08:26:42 2012
@@ -1,118 +0,0 @@
-/*
- * 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.mongomk.api;
-
-import org.apache.jackrabbit.mk.api.MicroKernel;
-import org.apache.jackrabbit.mongomk.api.model.Commit;
-import org.apache.jackrabbit.mongomk.api.model.Node;
-
-/**
- * The <code>NodeStore</code> interface deals with all node related operations of the {@link MicroKernel}.
- *
- * <p>
- * Since binary storage and node storage most likely use different backend technologies two separate interfaces for
- * these operations are provided.
- * </p>
- *
- * <p>
- * This interface is not only a partly {@code MicroKernel} but also provides a different layer of abstraction by
- * converting the {@link String} parameters into higher level objects to ease the development for implementors of the
- * {@code MicroKernel}.
- * </p>
- *
- * @see BlobStore
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public interface NodeStore {
-
- /**
- * @see MicroKernel#commit(String, String, String, String)
- *
- * @param commit The {@link Commit} object to store in the backend.
- * @return The revision id of this commit.
- * @throws Exception If an error occurred while committing.
- */
- String commit(Commit commit) throws Exception;
-
- /**
- * @see MicroKernel#getHeadRevision()
- *
- * @return The revision id of the head revision.
- * @throws Exception If an error occurred while retrieving the head revision.
- */
- String getHeadRevision() throws Exception;
-
- /**
- * @see MicroKernel#getJournal(String, String, String)
- *
- * @param fromRevisionId id of first revision to be returned in journal
- * @param toRevisionId id of last revision to be returned in journal,
- * if {@code null} the current head revision is assumed
- * @param path optional path filter; if {@code null} or {@code ""}
- * the default ({@code "/"}) will be assumed, i.e. no filter will be applied
- * @return a chronological list of revisions in JSON format
- */
- String getJournal(String fromRevisionId, String toRevisionId, String path);
-
- /**
- * @see MicroKernel#getRevisionHistory(long, int, String)
- *
- * @param since timestamp (ms) of earliest revision to be returned
- * @param maxEntries maximum #entries to be returned; if < 0, no limit will be applied.
- * @param path optional path filter; if {@code null} or {@code ""} the default
- * ({@code "/"}) will be assumed, i.e. no filter will be applied
- * @return a list of revisions in chronological order in JSON format.
- */
- String getRevisionHistory(long since, int maxEntries, String path);
-
- /**
- * @see MicroKernel#getNodes(String, String, int, long, int, String)
- *
- * @param path The path of the root of nodes to retrieve.
- * @param revisionId The revision id of the nodes or {@code null} if the latest head revision
- * should be retrieved.
- * @param depth The maximum depth of the retrieved node tree or -1 to retrieve all nodes.
- * @param offset The offset of the child list to retrieve.
- * @param maxChildNodes The count of children to retrieve or -1 to retrieve all children.
- * @param filter An optional filter for the retrieved nodes.
- * @return The {@link Node} of the root node.
- * @throws Exception If an error occurred while retrieving the nodes.
- */
- Node getNodes(String path, String revisionId, int depth, long offset, int maxChildNodes,
- String filter) throws Exception;
-
- /**
- * @see MicroKernel#nodeExists(String, String)
- *
- * @param path The path of the node to test.
- * @param revisionId The revision id of the node or {@code null} for the head revision.
- * @return {@code true} if the node for the specific revision exists else {@code false}.
- * @throws Exception If an error occurred while testing the node.
- */
- boolean nodeExists(String path, String revisionId) throws Exception;
-
- /**
- * @see MicroKernel#waitForCommit(String, long)
- *
- * @param oldHeadRevisionId id of earlier head revision
- * @param timeout the maximum time to wait in milliseconds
- * @return the id of the head revision
- * @throws InterruptedException if the thread was interrupted
- */
- String waitForCommit(String oldHeadRevisionId, long timeout) throws InterruptedException;
-}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/AbstractCommand.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/AbstractCommand.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/AbstractCommand.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/AbstractCommand.java Fri Sep 21 08:26:42 2012
@@ -1,42 +0,0 @@
-/*
- * 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.mongomk.api.command;
-
-/**
- * Base implementation of {@link Command}.
- *
- * @param <T> The result type of the {@code Command}.
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public abstract class AbstractCommand<T> implements Command<T> {
-
- @Override
- public int getNumOfRetries() {
- return 0;
- }
-
- @Override
- public boolean needsRetry(Exception e) {
- return false;
- }
-
- @Override
- public boolean needsRetry(T result) {
- return false;
- }
-}
Modified: jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/Command.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/Command.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/Command.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/Command.java Fri Sep 21 08:26:42 2012
@@ -1,92 +0,0 @@
-/*
- * 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.mongomk.api.command;
-
-import org.apache.jackrabbit.mk.api.MicroKernel;
-
-/**
- * The {@code Command} framework provides an way to encapsulate specific actions of the {@link MicroKernel}.
- *
- * <p>
- * It adds some functionality for retries and other non business logic related actions (i.e. logging, performance
- * tracking, etc).
- * </p>
- *
- * @see <a href="http://en.wikipedia.org/wiki/Command_pattern">Command Pattern</a>
- * @see CommandExecutor
- *
- * @param <T>
- * The result type of the {@code Command}.
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public interface Command<T> {
-
- // TODO Add postExecute and preExecute; Maybe add AOP but only if Granite moves to OSGi 4.3
-
- /**
- * Executes the {@code Command} and returns its result.
- *
- * @return The result.
- * @throws Exception
- * If an error occurred while executing.
- */
- T execute() throws Exception;
-
- /**
- * Returns the number of retries this {@code Command} should be retried in case of an error or false result.
- *
- * <p>
- * The number of reties is evaluated in the following way:
- * <li>n < 0: Unlimited retries</li>
- * <li>n = 0: No retries (just one execution)</li>
- * <li>n > 0: Corresponding number of retries</li>
- * </p>
- *
- * <p>
- * In order to determine whether the {@code Command} should be retired on of {@link #needsRetry(Exception)} or
- * {@link #needsRetry(Object)} will be called.
- * </p>
- *
- * @see #needsRetry(Exception)
- * @see #needsRetry(Object)
- *
- * @return The number of retries.
- */
- int getNumOfRetries();
-
- /**
- * Will be called in case of an {@link Exception} during the execution and a given number of retries which has not
- * exceeded.
- *
- * @param e The Exception which was thrown.
- * @return {@code true} if a retry should be performed, else {@code false}.
- */
- boolean needsRetry(Exception e);
-
- /**
- * Will be called in case of a successful execution and a given number of retries which has not exceeded.
- *
- * <p>
- * This gives the implementor a chance to retry a false result.
- * </p>
- *
- * @param result The result of the execution.
- * @return {@code true} if a retry should be performed, else {@code false}.
- */
- boolean needsRetry(T result);
-}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/CommandExecutor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/CommandExecutor.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/CommandExecutor.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/command/CommandExecutor.java Fri Sep 21 08:26:42 2012
@@ -1,45 +0,0 @@
-/*
- * 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.mongomk.api.command;
-
-/**
- * The executor part of the <a href="http://en.wikipedia.org/wiki/Command_pattern">Command Pattern</a>.
- *
- * <p>
- * The implementation of this class contains the business logic to execute a command.
- * </p>
- *
- * @see <a href="http://en.wikipedia.org/wiki/Command_pattern">Command Pattern</a>
- * @see Command
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public interface CommandExecutor {
-
- /**
- * Executes the given {@link Command} and returns the result.
- *
- * <p>
- * If an retry behavior is specified this will be taken care of by the implementation as well.
- * </p>
- *
- * @param command
- * @return The result of the execution.
- * @throws Exception If an error occurred while executing.
- */
- <T> T execute(Command<T> command) throws Exception;
-}
Modified: jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Commit.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Commit.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Commit.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Commit.java Fri Sep 21 08:26:42 2012
@@ -1,84 +0,0 @@
-/*
- * 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.mongomk.api.model;
-
-import java.util.List;
-
-/**
- * A higher level object representing a commit.
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public interface Commit {
-
- /**
- * Returns the <a href="http://wiki.apache.org/jackrabbit/Jsop">JSOP</a> diff of this commit.
- *
- * @return The {@link String} representing the diff.
- */
- String getDiff();
-
- /**
- * Returns the {@link List} of {@link Instruction}s which were created from the diff.
- *
- * @see #getDiff()
- *
- * @return The {@link List} of {@link Instruction}s.
- */
- List<Instruction> getInstructions();
-
- /**
- * Returns the message of the commit.
- *
- * @return The message.
- */
- String getMessage();
-
- /**
- * Returns the path of the root node of this commit.
- *
- * @return The path of the root node.
- */
- String getPath();
-
- /**
- * Returns the revision id of this commit if known already, else this will return {@code null}. The revision
- * id will be determined only after the commit has been successfully performed.
- *
- * @see #setRevisionId(String)
- *
- * @return The revision id of this commit or {@code null}.
- */
- String getRevisionId();
-
- /**
- * Sets the revision id of this commit.
- *
- * @see #getRevisionId()
- *
- * @param revisionId The revision id to set.
- */
- void setRevisionId(String revisionId);
-
-
- /**
- * Returns the timestamp of this commit.
- *
- * @return The timestamp of this commit.
- */
- long getTimestamp();
-}
Modified: jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Instruction.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Instruction.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Instruction.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Instruction.java Fri Sep 21 08:26:42 2012
@@ -1,143 +0,0 @@
-/*
- * 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.mongomk.api.model;
-
-/**
- * An {@code Instruction} is an abstraction of a single <a href="http://wiki.apache.org/jackrabbit/Jsop">JSOP</a>
- * operation.
- *
- * <p>
- * Each operation is a concrete subinterface of {@code Instruction} and extending it by the specific properties of the
- * operation. There is no exact 1 : 1 mapping between a {@code JSOP} operation and a subinterface, i.e. in {@code JSOP}
- * there is one add operation for adding nodes and properties whereas there are two specific subinterfaces; one for
- * adding a node and one for adding a property.
- * </p>
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public interface Instruction {
-
- /**
- * Accepts an {@code InstructionVisitor}.
- *
- * @param visitor The visitor.
- */
- void accept(InstructionVisitor visitor);
-
- /**
- * Returns the path of this {@code Instruction}.
- *
- * <p>
- * The semantics of this property differ depending on the concrete subinterface.
- * </p>
- *
- * @return The path.
- */
- String getPath();
-
- /**
- * The add node operation => "+" STRING ":" (OBJECT).
- */
- public interface AddNodeInstruction extends Instruction {
- }
-
- /**
- * The add property operation => "+" STRING ":" (ATOM | ARRAY)
- */
- public interface AddPropertyInstruction extends Instruction {
-
- /**
- * Returns the key of the property to add.
- *
- * @return The key.
- */
- String getKey();
-
- /**
- * Returns the value of the property to add.
- *
- * @return The value.
- */
- Object getValue();
- }
-
- /**
- * The copy node operation => "*" STRING ":" STRING
- */
- public interface CopyNodeInstruction extends Instruction {
-
- /**
- * Returns the destination path.
- *
- * @return the destination path.
- */
- String getDestPath();
-
- /**
- * Returns the source path.
- *
- * @return the source path.
- */
- String getSourcePath();
- }
-
- /**
- * The move node operation => ">" STRING ":" STRING
- */
- public interface MoveNodeInstruction extends Instruction {
-
- /**
- * Returns the destination path.
- *
- * @return the destination path.
- */
- String getDestPath();
-
- /**
- * Returns the source path.
- *
- * @return the source path.
- */
- String getSourcePath();
- }
-
- /**
- * The remove node operation => "-" STRING
- */
- public interface RemoveNodeInstruction extends Instruction {
- }
-
- /**
- * The set property operation => "^" STRING ":" ATOM | ARRAY
- */
- public interface SetPropertyInstruction extends Instruction {
-
- /**
- * Returns the key of the property to set.
- *
- * @return The key.
- */
- String getKey();
-
- /**
- * Returns the value of the property to set.
- *
- * @return The value.
- */
- Object getValue();
- }
-}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/InstructionVisitor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/InstructionVisitor.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/InstructionVisitor.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/InstructionVisitor.java Fri Sep 21 08:26:42 2012
@@ -1,74 +0,0 @@
-/*
- * 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.mongomk.api.model;
-
-import org.apache.jackrabbit.mongomk.api.model.Instruction.AddNodeInstruction;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.AddPropertyInstruction;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.CopyNodeInstruction;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.MoveNodeInstruction;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.RemoveNodeInstruction;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.SetPropertyInstruction;
-
-/**
- * A <a href="http://en.wikipedia.org/wiki/Visitor_pattern">Visitor</a> to iterate through a list of
- * {@code Instruction}s without the need to use {@code instanceof} on each item.
- */
-public interface InstructionVisitor {
-
- /**
- * Visits a {@code AddNodeInstruction}.
- *
- * @param instruction
- * The instruction.
- */
- void visit(AddNodeInstruction instruction);
-
- /**
- * Visits a {@code AddPropertyInstruction}.
- *
- * @param instruction The instruction.
- */
- void visit(AddPropertyInstruction instruction);
-
- /**
- * Visits a {@code CopyNodeInstruction}.
- *
- * @param instruction The instruction.
- */
- void visit(CopyNodeInstruction instruction);
-
- /**
- * Visits a {@code MoveNodeInstruction}.
- *
- * @param instruction The instruction.
- */
- void visit(MoveNodeInstruction instruction);
-
- /**
- * Visits a {@code RemoveNodeInstruction}.
- *
- * @param instruction The instruction.
- */
- void visit(RemoveNodeInstruction instruction);
-
- /**
- * Visits a {@code SetPropertyInstruction}.
- *
- * @param instruction The instruction.
- */
- void visit(SetPropertyInstruction instruction);
-}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Node.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Node.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Node.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-api/src/main/java/org/apache/jackrabbit/mongomk/api/model/Node.java Fri Sep 21 08:26:42 2012
@@ -1,100 +0,0 @@
-/*
- * 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.mongomk.api.model;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * A higher level object representing a node.
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public interface Node {
-
- /**
- * Returns the total number of children of this node.
- *
- * <p>
- * <strong>This is not necessarily equal to the number of children returned by {@link #getChildren()} since this
- * {@code Node} might be created with only a subset of children.</strong>
- * </p>
- *
- * @return The total number of children.
- */
- long getChildCount();
-
- /**
- * Returns the children this {@code Node} was created with.
- *
- * @return The children.
- */
- Set<Node> getChildren(); // TODO Replace Set with Collection
-
- // TODO - [Mete] Document.
- Iterator<Node> getChildEntries(int offset, int count);
-
- /**
- * Returns the descendants (children, children of the children, etc) this {@code Node} was created with.
- *
- * @param includeThis Flag indicating whether this {@code Node} should be included in the list.
- * @return The descendants.
- */
- Set<Node> getDescendants(boolean includeThis);
-
- /**
- * Returns the name of this {@code Node}.
- *
- * @return The name.
- */
- String getName();
-
- /**
- * Returns the path of this {@code Node}.
- *
- * @return The path.
- */
- String getPath();
-
- /**
- * Returns the properties this {@code Node} was created with.
- *
- * @return The properties.
- */
- Map<String, Object> getProperties();
-
- /**
- * Returns the revision id of this node if known already, else this will return {@code null}. The revision id
- * will be determined only after the commit has been successfully performed or the node has been read as part of an
- * existing revision.
- *
- * @see #setRevisionId(String)
- *
- * @return The revision id of this commit or {@code null}.
- */
- String getRevisionId();
-
- /**
- * Sets the revision id of this node.
- *
- * @see #getRevisionId()
- *
- * @param revisionId The revision id to set.
- */
- void setRevisionId(String revisionId);
-}
Modified: jackrabbit/oak/trunk/oak-mongomk-impl/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-impl/pom.xml?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-impl/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-mongomk-impl/pom.xml Fri Sep 21 08:26:42 2012
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- 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.
- -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
- http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-parent</artifactId>
- <version>0.5-SNAPSHOT</version>
- </parent>
-
- <artifactId>oak-mongomk-impl</artifactId>
-
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-mk</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.json</groupId>
- <artifactId>json</artifactId>
- <version>20090211</version>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>oak-mongomk-api</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
-</project>
Modified: jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/MongoMicroKernel.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/MongoMicroKernel.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/MongoMicroKernel.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/MongoMicroKernel.java Fri Sep 21 08:26:42 2012
@@ -1,213 +0,0 @@
-/*
- * 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.mongomk.impl;
-
-import java.io.InputStream;
-
-import org.apache.jackrabbit.mk.api.MicroKernel;
-import org.apache.jackrabbit.mk.api.MicroKernelException;
-import org.apache.jackrabbit.mongomk.api.BlobStore;
-import org.apache.jackrabbit.mongomk.api.NodeStore;
-import org.apache.jackrabbit.mongomk.api.model.Commit;
-import org.apache.jackrabbit.mongomk.api.model.Node;
-import org.apache.jackrabbit.mongomk.impl.builder.CommitBuilder;
-import org.apache.jackrabbit.mongomk.impl.json.JsonUtil;
-
-/**
- * The {@code MongoDB} implementation of the {@link MicroKernel}.
- *
- * <p>
- * This class will transform and delegate to instances of {@link NodeStore} and {@link BlobStore}.
- * </p>
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public class MongoMicroKernel implements MicroKernel {
-
- private final BlobStore blobStore;
- private final NodeStore nodeStore;
-
- /**
- * Constructs a new {@code MongoMicroKernel}.
- *
- * @param nodeStore The {@link NodeStore}.
- * @param blobStore The {@link BlobStore}.
- */
- public MongoMicroKernel(NodeStore nodeStore, BlobStore blobStore) {
- this.nodeStore = nodeStore;
- this.blobStore = blobStore;
- }
-
- @Override
- public String branch(String trunkRevisionId) throws MicroKernelException {
- throw new UnsupportedOperationException("Branch is currently not supported.");
- }
-
- @Override
- public String commit(String path, String jsonDiff, String revisionId, String message) throws MicroKernelException {
- String newRevisionId = null;
-
- try {
- Commit commit = CommitBuilder.build(path, jsonDiff, message);
- newRevisionId = nodeStore.commit(commit);
- } catch (Exception e) {
- throw new MicroKernelException(e);
- }
-
- return newRevisionId;
- }
-
- @Override
- public String diff(String fromRevisionId, String toRevisionId, String filter,
- int depth) throws MicroKernelException {
- throw new UnsupportedOperationException("Diff is currently not supported.");
- }
-
- @Override
- public long getChildNodeCount(String path, String revisionId) throws MicroKernelException {
- long childNodeCount = 0L;
-
- try {
- String revId = null;
- if (revisionId != null) {
- revId = new String(revisionId);
- }
- Node rootOfPath = nodeStore.getNodes(path, revId, 0, 0, -1, null);
- if (rootOfPath != null) {
- childNodeCount = rootOfPath.getChildCount();
- }
- } catch (Exception e) {
- throw new MicroKernelException(e);
- }
-
- return childNodeCount;
- }
-
- @Override
- public String getHeadRevision() throws MicroKernelException {
- String headRevisionId = null;
-
- try {
- headRevisionId = nodeStore.getHeadRevision();
- } catch (Exception e) {
- throw new MicroKernelException(e);
- }
-
- return headRevisionId;
- }
-
- @Override
- public String getJournal(String fromRevisionId, String toRevisionId,
- String path) throws MicroKernelException {
- return nodeStore.getJournal(fromRevisionId, toRevisionId, path);
- }
-
- @Override
- public long getLength(String blobId) throws MicroKernelException {
- long length = -1;
-
- try {
- length = blobStore.getBlobLength(blobId);
- } catch (Exception e) {
- throw new MicroKernelException(e);
- }
-
- return length;
- }
-
- @Override
- public String getNodes(String path, String revisionId, int depth, long offset,
- int maxChildNodes, String filter) throws MicroKernelException {
-
- NodeFilter nodeFilter = filter == null || filter.isEmpty() ? null : NodeFilter.parse(filter);
- if (offset > 0 && nodeFilter != null && nodeFilter.getChildNodeFilter() != null) {
- // Both an offset > 0 and a filter on node names have been specified...
- throw new IllegalArgumentException("offset > 0 with child node filter");
- }
-
- try {
- // FIXME [Mete] Should filter, offset, and maxChildNodes be handled in Mongo instead?
- Node rootNode = nodeStore.getNodes(path, revisionId, depth, offset, maxChildNodes, filter);
- if (rootNode == null) {
- return null;
- }
- return JsonUtil.convertToJson(rootNode, depth, (int)offset, maxChildNodes, true, nodeFilter);
- } catch (Exception e) {
- throw new MicroKernelException(e);
- }
- }
-
- @Override
- public String getRevisionHistory(long since, int maxEntries, String path) throws MicroKernelException {
- return nodeStore.getRevisionHistory(since, maxEntries, path);
- }
-
- @Override
- public String merge(String branchRevisionId, String message) throws MicroKernelException {
- throw new UnsupportedOperationException("Merge is currently not supported.");
- }
-
- @Override
- public boolean nodeExists(String path, String revisionId) throws MicroKernelException {
- boolean exists = false;
-
- try {
- String revId = null;
- if (revisionId != null) {
- revId = new String(revisionId);
- }
-
- exists = nodeStore.nodeExists(path, revId);
- } catch (Exception e) {
- throw new MicroKernelException(e);
- }
-
- return exists;
- }
-
- @Override
- public int read(String blobId, long pos, byte[] buff, int off, int length) throws MicroKernelException {
- int totalBytes = -1;
-
- try {
- totalBytes = blobStore.readBlob(blobId, pos, buff, off, length);
- } catch (Exception e) {
- throw new MicroKernelException(e);
- }
-
- return totalBytes;
- }
-
- @Override
- public String waitForCommit(String oldHeadRevisionId, long timeout) throws MicroKernelException,
- InterruptedException {
- return nodeStore.waitForCommit(oldHeadRevisionId, timeout);
- }
-
- @Override
- public String write(InputStream in) throws MicroKernelException {
- String blobId = null;
-
- try {
- blobId = blobStore.writeBlob(in);
- } catch (Exception e) {
- throw new MicroKernelException(e);
- }
-
- return blobId;
- }
-}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/NodeFilter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/NodeFilter.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/NodeFilter.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/NodeFilter.java Fri Sep 21 08:26:42 2012
@@ -1,88 +0,0 @@
-/*
- * 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.mongomk.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.jackrabbit.mk.json.JsopTokenizer;
-import org.apache.jackrabbit.mk.util.NameFilter;
-
-/**
- * FIXME [Mete] Stolen from OAK. Should go away at some point when MongoMK becomes
- * part of OAK.
- */
-public class NodeFilter {
-
- NameFilter nodeFilter;
- NameFilter propFilter;
-
- private NodeFilter(NameFilter nodeFilter, NameFilter propFilter) {
- this.nodeFilter = nodeFilter;
- this.propFilter = propFilter;
- }
-
- static NodeFilter parse(String json) {
- // parse json format filter
- JsopTokenizer t = new JsopTokenizer(json);
- t.read('{');
-
- NameFilter nodeFilter = null, propFilter = null;
-
- do {
- String type = t.readString();
- t.read(':');
- String[] globs = parseArray(t);
- if (type.equals("nodes")) {
- nodeFilter = new NameFilter(globs);
- } else if (type.equals("properties")) {
- propFilter = new NameFilter(globs);
- } else {
- throw new IllegalArgumentException("illegal filter format");
- }
- } while (t.matches(','));
- t.read('}');
-
- return new NodeFilter(nodeFilter, propFilter);
- }
-
- private static String[] parseArray(JsopTokenizer t) {
- List<String> l = new ArrayList<String>();
- t.read('[');
- do {
- l.add(t.readString());
- } while (t.matches(','));
- t.read(']');
- return l.toArray(new String[l.size()]);
- }
-
- NameFilter getChildNodeFilter() {
- return nodeFilter;
- }
-
- NameFilter getPropertyFilter() {
- return propFilter;
- }
-
- boolean includeNode(String name) {
- return nodeFilter == null || nodeFilter.matches(name);
- }
-
- public boolean includeProperty(String name) {
- return propFilter == null || propFilter.matches(name);
- }
-}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/CommitBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/CommitBuilder.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/CommitBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/CommitBuilder.java Fri Sep 21 08:26:42 2012
@@ -1,114 +0,0 @@
-/*
- * 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.mongomk.impl.builder;
-
-import org.apache.jackrabbit.mongomk.api.model.Commit;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.AddNodeInstruction;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.AddPropertyInstruction;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.CopyNodeInstruction;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.MoveNodeInstruction;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.RemoveNodeInstruction;
-import org.apache.jackrabbit.mongomk.api.model.Instruction.SetPropertyInstruction;
-import org.apache.jackrabbit.mongomk.impl.json.DefaultJsopHandler;
-import org.apache.jackrabbit.mongomk.impl.json.JsopParser;
-import org.apache.jackrabbit.mongomk.impl.model.AddNodeInstructionImpl;
-import org.apache.jackrabbit.mongomk.impl.model.AddPropertyInstructionImpl;
-import org.apache.jackrabbit.mongomk.impl.model.CommitImpl;
-import org.apache.jackrabbit.mongomk.impl.model.CopyNodeInstructionImpl;
-import org.apache.jackrabbit.mongomk.impl.model.MoveNodeInstructionImpl;
-import org.apache.jackrabbit.mongomk.impl.model.RemoveNodeInstructionImpl;
-import org.apache.jackrabbit.mongomk.impl.model.SetPropertyInstructionImpl;
-
-/**
- * A builder to convert a <a href="http://wiki.apache.org/jackrabbit/Jsop">JSOP</a> diff into a {@link Commit}.
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public class CommitBuilder {
-
- /**
- * Creates and returns the {@link Commit}.
- *
- * @param path The root path of the {@code Commit}.
- * @param diff The {@code JSOP} diff of the {@code Commit}.
- * @param message The message of the {@code Commit}.
- *
- * @return The {@code Commit}.
- * @throws Exception If an error occurred while creating the {@code Commit}.
- */
- public static Commit build(String path, String diff, String message) throws Exception {
- CommitHandler commitHandler = new CommitHandler(new CommitImpl(path, diff, message));
- JsopParser jsopParser = new JsopParser(path, diff, commitHandler);
- jsopParser.parse();
- return commitHandler.getCommit();
- }
-
- private CommitBuilder() {
- // no instantiation
- }
-
- /**
- * The {@link DefaultHandler} for the {@code JSOP} diff.
- */
- private static class CommitHandler extends DefaultJsopHandler {
- private final CommitImpl commit;
-
- CommitHandler(CommitImpl commit) {
- this.commit = commit;
- }
-
- @Override
- public void nodeAdded(String parentPath, String name) {
- AddNodeInstruction instruction = new AddNodeInstructionImpl(parentPath, name);
- commit.addInstruction(instruction);
- }
-
- @Override
- public void nodeCopied(String rootPath, String oldPath, String newPath) {
- CopyNodeInstruction instruction = new CopyNodeInstructionImpl(rootPath, oldPath, newPath);
- commit.addInstruction(instruction);
- }
-
- @Override
- public void nodeMoved(String rootPath, String oldPath, String newPath) {
- MoveNodeInstruction instruction = new MoveNodeInstructionImpl(rootPath, oldPath, newPath);
- commit.addInstruction(instruction);
- }
-
- @Override
- public void nodeRemoved(String parentPath, String name) {
- RemoveNodeInstruction instruction = new RemoveNodeInstructionImpl(parentPath, name);
- commit.addInstruction(instruction);
- }
-
- @Override
- public void propertyAdded(String path, String key, Object value) {
- AddPropertyInstruction instruction = new AddPropertyInstructionImpl(path, key, value);
- commit.addInstruction(instruction);
- }
-
- @Override
- public void propertySet(String path, String key, Object value) {
- SetPropertyInstruction instruction = new SetPropertyInstructionImpl(path, key, value);
- commit.addInstruction(instruction);
- }
-
- Commit getCommit() {
- return commit;
- }
- }
-}
Modified: jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/NodeBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/NodeBuilder.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/NodeBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/builder/NodeBuilder.java Fri Sep 21 08:26:42 2012
@@ -1,125 +0,0 @@
-/*
- * 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.mongomk.impl.builder;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.apache.jackrabbit.mongomk.api.model.Node;
-import org.apache.jackrabbit.mongomk.impl.json.JsonUtil;
-import org.apache.jackrabbit.mongomk.impl.model.NodeImpl;
-import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-/**
- * A builder to create {@link Node}s from <a hred="http://en.wikipedia.org/wiki/JavaScript_Object_Notation">JSON</a>
- * strings.
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public class NodeBuilder {
-
- /**
- * Creates {@link Node} from the given {@code json} and an empty path as root path.
- *
- * @param json The {@code json}.
- * @return The {@code Node}.
- * @throws Exception If an error occurred while creating.
- * @see #build(String, String)
- */
- public static Node build(String json) throws Exception {
- return build(json, "");
- }
-
- /**
- * Creates {@link Node} from the given {@code json} and an empty path as root path.
- *
- * @param json The {@code json}.
- * @param path The root path of the nodes.
- * @return The {@code Node}.
- * @throws Exception If an error occurred while creating.
- * @see #build(String, String)
- */
- public static Node build(String json, String path) throws Exception {
- NodeBuilder nodeBuilder = new NodeBuilder();
-
- return nodeBuilder.doBuild(json, path);
- }
-
- private NodeBuilder() {
- // only private construction
- }
-
- private Node doBuild(String json, String path) throws Exception {
- try {
- JSONObject jsonObject = new JSONObject(json);
- JSONArray names = jsonObject.names();
- if (names.length() != 1) {
- throw new IllegalArgumentException("JSON must contain exactly 1 root node");
- }
-
- String name = names.getString(0);
- JSONObject value = jsonObject.getJSONObject(name);
-
- return parseNode(PathUtils.concat(path, name), value);
- } catch (JSONException e) {
- throw new Exception(e);
- }
- }
-
- private Node parseNode(String path, JSONObject jsonObject) throws Exception {
- String realPath = path;
- String revisionId = null;
-
- int index = path.lastIndexOf('#');
- if (index != -1) {
- realPath = path.substring(0, index);
- revisionId = path.substring(index + 1);
- }
-
- NodeImpl node = new NodeImpl(realPath);
- node.setRevisionId(revisionId);
-
- Map<String, Object> properties = null;
- for (@SuppressWarnings("rawtypes")
- Iterator iterator = jsonObject.keys(); iterator.hasNext();) {
- String key = (String) iterator.next();
- Object value = jsonObject.get(key);
-
- if (value instanceof JSONObject) {
- String childPath = PathUtils.concat(realPath, key);
-
- Node childNode = parseNode(childPath, (JSONObject) value);
- node.addChild(childNode);
- } else {
- if (properties == null) {
- properties = new HashMap<String, Object>();
- }
-
- Object converted = JsonUtil.convertJsonValue(value.toString());
- properties.put(key, converted);
- }
- }
-
- node.setProperties(properties);
-
- return node;
- }
-}
Modified: jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/command/CommandExecutorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/command/CommandExecutorImpl.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/command/CommandExecutorImpl.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/command/CommandExecutorImpl.java Fri Sep 21 08:26:42 2012
@@ -1,55 +0,0 @@
-/*
- * 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.mongomk.impl.command;
-
-import org.apache.jackrabbit.mongomk.api.command.Command;
-import org.apache.jackrabbit.mongomk.api.command.CommandExecutor;
-
-/**
- * Implementation of the {@link CommandExecutor} interface.
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public class CommandExecutorImpl implements CommandExecutor {
-
- @Override
- public <T> T execute(Command<T> command) throws Exception {
- T result = null;
-
- int numOfRetries = command.getNumOfRetries();
- int currentRetry = 0;
- boolean needsRetry = true;
-
- while ((currentRetry <= numOfRetries) && needsRetry) {
-
- try {
- result = command.execute();
- needsRetry = command.needsRetry(result);
- } catch (Exception e) {
- needsRetry = command.needsRetry(e);
-
- if (!needsRetry) {
- throw e;
- }
- }
-
- ++currentRetry;
- }
-
- return result;
- }
-}
Modified: jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/DefaultJsopHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/DefaultJsopHandler.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/DefaultJsopHandler.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/DefaultJsopHandler.java Fri Sep 21 08:26:42 2012
@@ -1,92 +0,0 @@
-/*
- * 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.mongomk.impl.json;
-
-/**
- * The event callback of the parser.
- *
- * <p>
- * Each event callback has an empty default implementation. An implementor may choose the appropriate methods to
- * overwrite.
- * </p>
- */
-public class DefaultJsopHandler {
-
- /**
- * Event: A node has been added.
- *
- * @param parentPath The path where the node was added to.
- * @param name The name of the added node.
- */
- public void nodeAdded(String parentPath, String name) {
- // No-op
- }
-
- /**
- * Event: A node was copied.
- *
- * @param rootPath The root path where the copy took place.
- * @param oldPath The old path of the node (relative to the root path).
- * @param newPath The new path of the node (relative to the root path).
- */
- public void nodeCopied(String rootPath, String oldPath, String newPath) {
- // No-op
- }
-
- /**
- * Event: A node was moved.
- *
- * @param rootPath The root path where the copy took place.
- * @param oldPath The old path of the node (relative to the root path).
- * @param newPath The new path of the node (relative to the root path).
- */
- public void nodeMoved(String rootPath, String oldPath, String newPath) {
- // No-op
- }
-
- /**
- * Event: A node was removed.
- *
- * @param parentPath The path where the node was removed from.
- * @param name The name of the node.
- */
- public void nodeRemoved(String parentPath, String name) {
- // No-op
- }
-
- /**
- * Event: A property was added.
- *
- * @param path The path of the node where the property was added.
- * @param key The key of the property.
- * @param value The value of the property.
- */
- public void propertyAdded(String path, String key, Object value) {
- // No-op
- }
-
- /**
- * Event: A property was set.
- *
- * @param path The path of the node where the property was set.
- * @param key The key of the property.
- * @param value The value of the property.
- */
- public void propertySet(String path, String key, Object value) {
- // No-op
- }
-}
Modified: jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/JsonUtil.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/JsonUtil.java?rev=1388369&r1=1388368&r2=1388369&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/JsonUtil.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-impl/src/main/java/org/apache/jackrabbit/mongomk/impl/json/JsonUtil.java Fri Sep 21 08:26:42 2012
@@ -1,141 +0,0 @@
-/*
- * 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.mongomk.impl.json;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.jackrabbit.mk.json.JsopBuilder;
-import org.apache.jackrabbit.mongomk.api.model.Node;
-import org.apache.jackrabbit.mongomk.impl.NodeFilter;
-import org.json.JSONArray;
-import org.json.JSONObject;
-
-
-/**
- * FIXME - [Mete] This should really merge with MicroKernelImpl#toJson.
- *
- * <a href="http://en.wikipedia.org/wiki/JavaScript_Object_Notation">JSON</a> related utility classes.
- *
- * @author <a href="mailto:pmarx@adobe.com>Philipp Marx</a>
- */
-public class JsonUtil {
-
- public static Object convertJsonValue(String jsonValue) throws Exception {
- if (jsonValue == null) {
- return null;
- }
-
- String dummyJson = "{dummy : " + jsonValue + "}";
- JSONObject jsonObject = new JSONObject(dummyJson);
- Object dummyObject = jsonObject.get("dummy");
- return convertJsonValue(dummyObject);
- }
-
- public static String convertToJson(Node node, int depth, int offset, int maxChildNodes,
- boolean inclVirtualProps, NodeFilter filter) {
- JsopBuilder builder = new JsopBuilder();
- convertToJson(builder, node, depth, 0, offset, maxChildNodes, inclVirtualProps, filter);
- return builder.toString();
- }
-
- static void convertToJson(JsopBuilder builder, Node node, int depth, int currentDepth,
- int offset, int maxChildNodes, boolean inclVirtualProps, NodeFilter filter) {
- builder.object();
-
- Map<String, Object> properties = node.getProperties();
- if (properties != null) {
- for (Map.Entry<String, Object> entry : properties.entrySet()) {
- String key = entry.getKey();
- if (filter == null || filter.includeProperty(key)) {
- Object value = entry.getValue();
- builder.key(key);
- if (value instanceof String) {
- builder.value(value.toString());
- } else {
- builder.encodedValue(value.toString());
- }
- }
- }
- }
-
- long childCount = node.getChildCount();
- if (inclVirtualProps) {
- if (filter == null || filter.includeProperty(":childNodeCount")) {
- // :childNodeCount is by default always included
- // unless it is explicitly excluded in the filter
- builder.key(":childNodeCount").value(childCount);
- }
- // FIXME [Mete] See if :hash is still being used.
- /*check whether :hash has been explicitly included
- if (filter != null) {
- NameFilter nf = filter.getPropertyFilter();
- if (nf != null
- && nf.getInclusionPatterns().contains(":hash")
- && !nf.getExclusionPatterns().contains(":hash")) {
- builder.key(":hash").value(rep.getRevisionStore().getId(node).toString());
- }
- }
- */
- }
-
- // FIXME [Mete] There's still some more work here.
- Iterator<Node> entries = node.getChildEntries(offset, maxChildNodes);
- while (entries.hasNext()) {
- Node child = entries.next();
- int numSiblings = 0;
- if (maxChildNodes != -1 && ++numSiblings > maxChildNodes) {
- break;
- }
- builder.key(child.getName());
- if ((depth == -1) || (currentDepth < depth)) {
- convertToJson(builder, child, depth, currentDepth + 1, offset,
- maxChildNodes, inclVirtualProps, filter);
- } else {
- builder.object();
- builder.endObject();
- }
- }
-
- builder.endObject();
- }
-
- private static Object convertJsonValue(Object jsonObject) throws Exception {
- if (jsonObject == JSONObject.NULL) {
- return null;
- }
-
- if (jsonObject instanceof JSONArray) {
- List<Object> elements = new LinkedList<Object>();
- JSONArray dummyArray = (JSONArray) jsonObject;
- for (int i = 0; i < dummyArray.length(); ++i) {
- Object raw = dummyArray.get(i);
- Object parsed = convertJsonValue(raw);
- elements.add(parsed);
- }
- return elements;
- }
-
- return jsonObject;
- }
-
- private JsonUtil() {
- // no instantiation
- }
-}