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 ch...@apache.org on 2016/12/09 13:30:13 UTC
svn commit: r1773382 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java
test/java/org/apache/jackrabbit/oak/OakTest.java
Author: chetanm
Date: Fri Dec 9 13:30:13 2016
New Revision: 1773382
URL: http://svn.apache.org/viewvc?rev=1773382&view=rev
Log:
OAK-5257 - Pass CommitContext as part of CommitInfo in OakInitializer
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/OakTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java?rev=1773382&r1=1773381&r2=1773382&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java Fri Dec 9 13:30:13 2016
@@ -18,19 +18,28 @@
*/
package org.apache.jackrabbit.oak.spi.lifecycle;
+import java.util.Map;
+
import javax.annotation.Nonnull;
+import com.google.common.collect.ImmutableMap;
import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.core.ResetCommitAttributeHook;
+import org.apache.jackrabbit.oak.core.SimpleCommitContext;
import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider;
+import org.apache.jackrabbit.oak.spi.commit.CommitContext;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
+import org.apache.jackrabbit.oak.spi.commit.CompositeHook;
import org.apache.jackrabbit.oak.spi.commit.EditorHook;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
public final class OakInitializer {
+ public static final String SESSION_ID = "OakInitializer";
+
private OakInitializer() {
}
@@ -40,9 +49,7 @@ public final class OakInitializer {
try {
NodeBuilder builder = store.getRoot().builder();
initializer.initialize(builder);
- CommitHook hook = new EditorHook(new IndexUpdateProvider(indexEditor));
- CommitInfo info = new CommitInfo("OakInitializer", null);
- store.merge(builder, hook, info);
+ store.merge(builder, createHook(indexEditor), createCommitInfo());
} catch (CommitFailedException e) {
throw new RuntimeException(e);
}
@@ -57,11 +64,20 @@ public final class OakInitializer {
wspInit.initialize(builder, workspaceName);
}
try {
- CommitHook hook = new EditorHook(new IndexUpdateProvider(indexEditor));
- CommitInfo info = new CommitInfo("OakInitializer", null);
- store.merge(builder, hook, info);
+ store.merge(builder, createHook(indexEditor), createCommitInfo());
} catch (CommitFailedException e) {
throw new RuntimeException(e);
}
}
+
+ private static CommitHook createHook(@Nonnull IndexEditorProvider indexEditor) {
+ return new CompositeHook(
+ ResetCommitAttributeHook.INSTANCE,
+ new EditorHook(new IndexUpdateProvider(indexEditor)));
+ }
+
+ private static CommitInfo createCommitInfo(){
+ Map<String, Object> infoMap = ImmutableMap.<String, Object>of(CommitContext.NAME, new SimpleCommitContext());
+ return new CommitInfo(SESSION_ID, null, infoMap);
+ }
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/OakTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/OakTest.java?rev=1773382&r1=1773381&r2=1773382&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/OakTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/OakTest.java Fri Dec 9 13:30:13 2016
@@ -17,14 +17,17 @@
package org.apache.jackrabbit.oak;
import java.io.Closeable;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.atomic.AtomicReference;
+import javax.annotation.Nonnull;
import javax.jcr.NoSuchWorkspaceException;
+import com.google.common.collect.Lists;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.ContentRepository;
import org.apache.jackrabbit.oak.api.ContentSession;
@@ -35,8 +38,15 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.index.reference.ReferenceEditorProvider;
+import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
+import org.apache.jackrabbit.oak.spi.commit.CommitContext;
+import org.apache.jackrabbit.oak.spi.commit.CommitHook;
+import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
+import org.apache.jackrabbit.oak.spi.lifecycle.OakInitializer;
import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider;
+import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
+import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.whiteboard.DefaultWhiteboard;
import org.apache.jackrabbit.oak.spi.whiteboard.Registration;
import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
@@ -44,9 +54,13 @@ import org.apache.jackrabbit.oak.spi.whi
import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils;
import org.junit.Test;
+import static org.hamcrest.Matchers.empty;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -191,4 +205,32 @@ public class OakTest {
((Closeable)repo).close();
}
+ @Test
+ public void commitContextInCommitInfo() throws Exception{
+ CommitInfoCapturingStore store = new CommitInfoCapturingStore();
+ Oak oak = new Oak(store);
+
+ ContentRepository repo = oak.with(new OpenSecurityProvider()).createContentRepository();
+ assertThat(store.infos, is(not(empty())));
+ for (CommitInfo ci : store.infos){
+ assertNotNull(ci.getInfo().get(CommitContext.NAME));
+ }
+ ((Closeable)repo).close();
+ }
+
+ private static class CommitInfoCapturingStore extends MemoryNodeStore {
+ List<CommitInfo> infos = Lists.newArrayList();
+
+ @Override
+ public synchronized NodeState merge(@Nonnull NodeBuilder builder, @Nonnull CommitHook commitHook,
+ @Nonnull CommitInfo info) throws CommitFailedException {
+ if (info.getSessionId().equals(OakInitializer.SESSION_ID)) {
+ this.infos.add(info);
+ }
+ return super.merge(builder, commitHook, info);
+ }
+
+
+ }
+
}
\ No newline at end of file