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 am...@apache.org on 2018/07/27 07:28:02 UTC
svn commit: r1836781 - in /jackrabbit/oak/trunk:
oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ClusterRepositoryInfoTest.java
oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/cluster/ClusterRepositoryInfo.java
Author: amitj
Date: Fri Jul 27 07:28:02 2018
New Revision: 1836781
URL: http://svn.apache.org/viewvc?rev=1836781&view=rev
Log:
OAK-7664: Add a get method to ClusterRepositoryInfo for read only cases
Added get() to retrieve only the already set cluster id or null
Modified:
jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ClusterRepositoryInfoTest.java
jackrabbit/oak/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/cluster/ClusterRepositoryInfo.java
Modified: jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ClusterRepositoryInfoTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ClusterRepositoryInfoTest.java?rev=1836781&r1=1836780&r2=1836781&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ClusterRepositoryInfoTest.java (original)
+++ jackrabbit/oak/trunk/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/ClusterRepositoryInfoTest.java Fri Jul 27 07:28:02 2018
@@ -35,12 +35,12 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.junit.After;
+import org.junit.Assert;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
-import junit.framework.Assert;
/**
* Tests the ClusterRepositoryInfo unique cluster repository id.
@@ -167,6 +167,35 @@ public class ClusterRepositoryInfoTest {
Assert.assertEquals(id, "xxxxxxxx");
}
+ @Test
+ public void getId() {
+ MemoryDocumentStore store = new MemoryDocumentStore();
+ DocumentNodeStore ds1 = builderProvider.newBuilder()
+ .setAsyncDelay(0)
+ .setDocumentStore(store)
+ .setClusterId(1)
+ .getNodeStore();
+ String repoId1 = ClusterRepositoryInfo.getOrCreateId(ds1);
+ ds1.runBackgroundOperations();
+
+ String retrievedId = ClusterRepositoryInfo.getId(ds1);
+ Assert.assertNotNull(retrievedId);
+ Assert.assertEquals(repoId1, retrievedId);
+ }
+
+ @Test
+ public void getIdNotSet() {
+ MemoryDocumentStore store = new MemoryDocumentStore();
+ DocumentNodeStore ds1 = builderProvider.newBuilder()
+ .setAsyncDelay(0)
+ .setDocumentStore(store)
+ .setClusterId(1)
+ .getNodeStore();
+ ds1.runBackgroundOperations();
+
+ String retrievedId = ClusterRepositoryInfo.getId(ds1);
+ Assert.assertNull(retrievedId);
+ }
@After
public void close() throws IOException {
Modified: jackrabbit/oak/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/cluster/ClusterRepositoryInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/cluster/ClusterRepositoryInfo.java?rev=1836781&r1=1836780&r2=1836781&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/cluster/ClusterRepositoryInfo.java (original)
+++ jackrabbit/oak/trunk/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/cluster/ClusterRepositoryInfo.java Fri Jul 27 07:28:02 2018
@@ -104,5 +104,18 @@ public class ClusterRepositoryInfo {
}
}
+ @Nullable
+ public static String getId(@NotNull NodeStore store) {
+ checkNotNull(store, "store is null");
+
+ // first try to read an existing clusterId
+ NodeState root = store.getRoot();
+ NodeState node = root.getChildNode(CLUSTER_CONFIG_NODE);
+ if (node.exists() && node.hasProperty(CLUSTER_ID_PROP)) {
+ return node.getProperty(CLUSTER_ID_PROP).getValue(Type.STRING);
+ }
+ return null;
+ }
+
}