Author: frm
Date: Wed Oct 19 19:56:32 2016
New Revision: 1765706
URL: http://svn.apache.org/viewvc?rev=1765706&view=rev
Log:
OAK-4958 - Finalize test resources, client and server consistently
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/client/StandbyClient.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyServer.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeIT.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverMultipleClientsTestIT.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverSslTestIT.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/MBeanIT.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/RecoverTestIT.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/StandbyTestIT.java
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/client/StandbyClient.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/client/StandbyClient.java?rev=1765706&r1=1765705&r2=1765706&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/client/StandbyClient.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/client/StandbyClient.java
Wed Oct 19 19:56:32 2016
@@ -145,22 +145,31 @@ class StandbyClient implements AutoClose
}
@Override
- public void close() throws InterruptedException {
+ public void close() {
+ closeChannel();
+ closeGroup();
+ }
+
+ private void closeChannel() {
+ if (channel == null) {
+ return;
+ }
if (channel.close().awaitUninterruptibly(1, TimeUnit.SECONDS)) {
log.debug("Channel closed");
} else {
log.debug("Channel close timed out");
}
+ }
- channel = null;
-
+ private void closeGroup() {
+ if (group == null) {
+ return;
+ }
if (group.shutdownGracefully(2, 15,
TimeUnit.SECONDS).awaitUninterruptibly(20, TimeUnit.SECONDS)) {
log.debug("Group shut down");
} else {
log.debug("Group shutdown timed out");
}
-
- group = null;
}
String getHead() throws InterruptedException {
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyServer.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyServer.java?rev=1765706&r1=1765705&r2=1765706&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyServer.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyServer.java
Wed Oct 19 19:56:32 2016
@@ -190,6 +190,9 @@ class StandbyServer implements AutoClose
}
public void stop() {
+ if (channelFuture == null) {
+ return;
+ }
if (channelFuture.channel().disconnect().awaitUninterruptibly(1,
TimeUnit.SECONDS)) {
log.debug("Channel disconnected");
} else {
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java?rev=1765706&r1=1765705&r2=1765706&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/DataStoreTestBase.java
Wed Oct 19 19:56:32 2016
@@ -98,19 +98,15 @@ public abstract class DataStoreTestBase
FileStore secondary = getSecondary();
NodeStore store = SegmentNodeStoreBuilders.builder(primary).build();
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), primary);
- serverSync.start();
byte[] data = addTestContent(store, "server", blobSize);
- primary.flush();
-
- StandbyClientSync cl = newStandbyClientSync(secondary);
- cl.run();
-
- try {
+ try (
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), primary);
+ StandbyClientSync cl = newStandbyClientSync(secondary)
+ ) {
+ serverSync.start();
+ primary.flush();
+ cl.run();
assertEquals(primary.getHead(), secondary.getHead());
- } finally {
- serverSync.close();
- cl.close();
}
assertTrue(primary.getStats().getApproximateSize() < mb);
@@ -168,21 +164,22 @@ public abstract class DataStoreTestBase
FileStore primary = getPrimary();
FileStore secondary = getSecondary();
- NetworkErrorProxy p = new NetworkErrorProxy(getProxyPort(),
getServerHost(), getServerPort());
- p.skipBytes(skipPosition, skipBytes);
- p.flipByte(flipPosition);
- p.run();
-
NodeStore store = SegmentNodeStoreBuilders.builder(primary).build();
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), primary);
- serverSync.start();
byte[] data = addTestContent(store, "server", blobSize);
- primary.flush();
+ try (
+ NetworkErrorProxy p = new NetworkErrorProxy(getProxyPort(),
getServerHost(), getServerPort());
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), primary);
+ StandbyClientSync clientSync = newStandbyClientSync(secondary,
getProxyPort())
+ ) {
+ p.skipBytes(skipPosition, skipBytes);
+ p.flipByte(flipPosition);
+ p.run();
+
+ serverSync.start();
+ primary.flush();
- StandbyClientSync clientSync = newStandbyClientSync(secondary,
getProxyPort());
- clientSync.run();
+ clientSync.run();
- try {
if (skipBytes > 0 || flipPosition >= 0) {
if (!storesShouldBeEqual()) {
assertFalse("stores are not expected to be equal",
primary.getHead().equals(secondary.getHead()));
@@ -196,10 +193,6 @@ public abstract class DataStoreTestBase
clientSync.run();
}
assertEquals(primary.getHead(), secondary.getHead());
- } finally {
- serverSync.close();
- clientSync.close();
- p.close();
}
assertTrue(primary.getStats().getApproximateSize() < mb);
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeIT.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeIT.java?rev=1765706&r1=1765705&r2=1765706&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeIT.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeIT.java
Wed Oct 19 19:56:32 2016
@@ -150,26 +150,22 @@ public class FailoverIPRangeIT extends T
FileStore storeC = clientFileStore.fileStore();
NodeStore store = SegmentNodeStoreBuilders.builder(storeS).build();
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS, ipRanges);
- serverSync.start();
- addTestContent(store, "server");
- storeS.flush(); // this speeds up the test a little bit...
+ try (
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS, ipRanges);
+ StandbyClientSync clientSync = new StandbyClientSync(host,
getServerPort(), storeC, false, getClientTimeout(), false)
+ ) {
+ serverSync.start();
+ addTestContent(store, "server");
+ storeS.flush(); // this speeds up the test a little bit...
- StandbyClientSync clientSync = new StandbyClientSync(host,
getServerPort(), storeC, false, getClientTimeout(), false);
- clientSync.run();
+ clientSync.run();
- try {
if (expectedToWork) {
assertEquals(storeS.getHead(), storeC.getHead());
- }
- else {
+ } else {
assertFalse("stores are equal but shouldn't!",
storeS.getHead().equals(storeC.getHead()));
}
- } finally {
- serverSync.close();
- clientSync.close();
}
-
}
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverMultipleClientsTestIT.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverMultipleClientsTestIT.java?rev=1765706&r1=1765705&r2=1765706&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverMultipleClientsTestIT.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverMultipleClientsTestIT.java
Wed Oct 19 19:56:32 2016
@@ -58,15 +58,15 @@ public class FailoverMultipleClientsTest
FileStore storeC2 = clientFileStore2.fileStore();
NodeStore store = SegmentNodeStoreBuilders.builder(storeS).build();
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS);
- serverSync.start();
- SegmentTestUtils.addTestContent(store, "server");
- storeS.flush(); // this speeds up the test a little bit...
+ try (
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS);
+ StandbyClientSync cl1 = newStandbyClientSync(storeC);
+ StandbyClientSync cl2 = newStandbyClientSync(storeC2)
+ ) {
+ serverSync.start();
+ SegmentTestUtils.addTestContent(store, "server");
+ storeS.flush(); // this speeds up the test a little bit...
- StandbyClientSync cl1 = newStandbyClientSync(storeC);
- StandbyClientSync cl2 = newStandbyClientSync(storeC2);
-
- try {
assertFalse("first client has invalid initial store!",
storeS.getHead().equals(storeC.getHead()));
assertFalse("second client has invalid initial store!",
storeS.getHead().equals(storeC2.getHead()));
assertEquals(storeC.getHead(), storeC2.getHead());
@@ -89,10 +89,6 @@ public class FailoverMultipleClientsTest
cl1.start();
cl1.run();
assertEquals(storeS.getHead(), storeC.getHead());
- } finally {
- serverSync.close();
- cl1.close();
- cl2.close();
}
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverSslTestIT.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverSslTestIT.java?rev=1765706&r1=1765705&r2=1765706&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverSslTestIT.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverSslTestIT.java
Wed Oct 19 19:56:32 2016
@@ -20,8 +20,8 @@
package org.apache.jackrabbit.oak.segment.standby;
import static
org.apache.jackrabbit.oak.segment.SegmentTestUtils.addTestContent;
-import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import java.io.File;
@@ -53,20 +53,11 @@ public class FailoverSslTestIT extends T
public void testFailoverSecure() throws Exception {
FileStore storeS = serverFileStore.fileStore();
FileStore storeC = clientFileStore.fileStore();
- NodeStore store = SegmentNodeStoreBuilders.builder(storeS).build();
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS, true);
- serverSync.start();
- addTestContent(store, "server");
- storeS.flush(); // this speeds up the test a little bit...
-
- StandbyClientSync clientSync = newStandbyClientSync(storeC,
getServerPort(), true);
- clientSync.run();
-
- try {
- assertEquals(storeS.getHead(), storeC.getHead());
- } finally {
- serverSync.close();
- clientSync.close();
+ try (
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS, true);
+ StandbyClientSync clientSync = newStandbyClientSync(storeC,
getServerPort(), true);
+ ) {
+ assertTrue(synchronizeAndCompareHead(serverSync, clientSync));
}
}
@@ -74,20 +65,11 @@ public class FailoverSslTestIT extends T
public void testFailoverSecureServerPlainClient() throws Exception {
FileStore storeS = serverFileStore.fileStore();
FileStore storeC = clientFileStore.fileStore();
- NodeStore store = SegmentNodeStoreBuilders.builder(storeS).build();
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS, true);
- serverSync.start();
- addTestContent(store, "server");
- storeS.flush(); // this speeds up the test a little bit...
-
- StandbyClientSync clientSync = newStandbyClientSync(storeC);
- clientSync.run();
-
- try {
- assertFalse("stores are equal but shouldn't!",
storeS.getHead().equals(storeC.getHead()));
- } finally {
- serverSync.close();
- clientSync.close();
+ try (
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS, true);
+ StandbyClientSync clientSync = newStandbyClientSync(storeC);
+ ) {
+ assertFalse(synchronizeAndCompareHead(serverSync, clientSync));
}
}
@@ -95,20 +77,23 @@ public class FailoverSslTestIT extends T
public void testFailoverPlainServerSecureClient() throws Exception {
FileStore storeS = serverFileStore.fileStore();
FileStore storeC = clientFileStore.fileStore();
+ try (
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS);
+ StandbyClientSync clientSync = newStandbyClientSync(storeC,
getServerPort(), true);
+ ) {
+ assertFalse(synchronizeAndCompareHead(serverSync, clientSync));
+ }
+ }
+
+ private boolean synchronizeAndCompareHead(StandbyServerSync serverSync,
StandbyClientSync clientSync) throws Exception {
+ FileStore storeS = serverFileStore.fileStore();
+ FileStore storeC = clientFileStore.fileStore();
NodeStore store = SegmentNodeStoreBuilders.builder(storeS).build();
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS);
serverSync.start();
addTestContent(store, "server");
storeS.flush(); // this speeds up the test a little bit...
-
- StandbyClientSync clientSync = newStandbyClientSync(storeC,
getServerPort(), true);
clientSync.run();
-
- try {
- assertFalse("stores are equal but shouldn't!",
storeS.getHead().equals(storeC.getHead()));
- } finally {
- serverSync.close();
- clientSync.close();
- }
+ return storeS.getHead().equals(storeC.getHead());
}
+
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/MBeanIT.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/MBeanIT.java?rev=1765706&r1=1765705&r2=1765706&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/MBeanIT.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/MBeanIT.java
Wed Oct 19 19:56:32 2016
@@ -35,8 +35,9 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.standby.jmx.StandbyStatusMBean;
import org.apache.jackrabbit.oak.segment.standby.server.StandbyServerSync;
import org.apache.jackrabbit.oak.segment.test.TemporaryFileStore;
-import org.junit.Ignore;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.RuleChain;
import org.junit.rules.TemporaryFolder;
public class MBeanIT extends TestBase {
@@ -47,14 +48,18 @@ public class MBeanIT extends TestBase {
private TemporaryFileStore clientFileStore = new
TemporaryFileStore(folder);
+ @Rule
+ public RuleChain chain = RuleChain.outerRule(folder)
+ .around(serverFileStore)
+ .around(clientFileStore);
+
@Test
public void testServerEmptyConfig() throws Exception {
- final StandbyServerSync serverSync = new
StandbyServerSync(TestBase.getServerPort(), serverFileStore.fileStore());
- serverSync.start();
-
- final MBeanServer jmxServer =
ManagementFactory.getPlatformMBeanServer();
+ MBeanServer jmxServer = ManagementFactory.getPlatformMBeanServer();
ObjectName status = new ObjectName(StandbyStatusMBean.JMX_NAME +
",id=*");
- try {
+ try (StandbyServerSync serverSync = new
StandbyServerSync(TestBase.getServerPort(), serverFileStore.fileStore())) {
+ serverSync.start();
+
Set<ObjectName> instances = jmxServer.queryNames(status, null);
assertEquals(1, instances.size());
status = instances.toArray(new ObjectName[0])[0];
@@ -63,8 +68,9 @@ public class MBeanIT extends TestBase {
assertEquals("primary", jmxServer.getAttribute(status, "Mode"));
String m = jmxServer.getAttribute(status, "Status").toString();
- if (!m.equals(StandbyStatusMBean.STATUS_RUNNING) &&
!m.equals("channel unregistered"))
+ if (!m.equals(StandbyStatusMBean.STATUS_RUNNING) &&
!m.equals("channel unregistered")) {
fail("unexpected Status " + m);
+ }
assertEquals(StandbyStatusMBean.STATUS_RUNNING,
jmxServer.getAttribute(status, "Status"));
assertEquals(true, jmxServer.getAttribute(status, "Running"));
@@ -75,22 +81,18 @@ public class MBeanIT extends TestBase {
assertEquals(true, jmxServer.getAttribute(status, "Running"));
assertEquals(StandbyStatusMBean.STATUS_RUNNING,
jmxServer.getAttribute(status, "Status"));
- } finally {
- serverSync.close();
}
-
assertTrue(!jmxServer.isRegistered(status));
}
@Test
public void testClientEmptyConfigNoServer() throws Exception {
- final StandbyClientSync clientSync =
newStandbyClientSync(clientFileStore.fileStore());
- clientSync.start();
- clientSync.run();
-
- final MBeanServer jmxServer =
ManagementFactory.getPlatformMBeanServer();
+ MBeanServer jmxServer = ManagementFactory.getPlatformMBeanServer();
ObjectName status = new ObjectName(StandbyStatusMBean.JMX_NAME +
",id=*");
- try {
+ try (StandbyClientSync clientSync =
newStandbyClientSync(clientFileStore.fileStore())) {
+ clientSync.start();
+ clientSync.run();
+
Set<ObjectName> instances = jmxServer.queryNames(status, null);
assertEquals(1, instances.size());
status = instances.toArray(new ObjectName[0])[0];
@@ -98,7 +100,9 @@ public class MBeanIT extends TestBase {
assertTrue(jmxServer.isRegistered(status));
String m = jmxServer.getAttribute(status, "Mode").toString();
- if (!m.startsWith("client: ")) fail("unexpected mode " + m);
+ if (!m.startsWith("client: ")) {
+ fail("unexpected mode " + m);
+ }
assertEquals("1", jmxServer.getAttribute(status,
"FailedRequests").toString());
assertEquals("-1", jmxServer.getAttribute(status,
"SecondsSinceLastSuccess").toString());
@@ -112,23 +116,21 @@ public class MBeanIT extends TestBase {
jmxServer.invoke(status, "start", null, null);
assertEquals(true, jmxServer.getAttribute(status, "Running"));
assertEquals(StandbyStatusMBean.STATUS_RUNNING,
jmxServer.getAttribute(status, "Status"));
- } finally {
- clientSync.close();
- }
+ }
assertTrue(!jmxServer.isRegistered(status));
}
@Test
public void testClientNoServer() throws Exception {
System.setProperty(StandbyClientSync.CLIENT_ID_PROPERTY_NAME, "Foo");
- final StandbyClientSync clientSync =
newStandbyClientSync(clientFileStore.fileStore());
- clientSync.start();
- clientSync.run();
-
- final MBeanServer jmxServer =
ManagementFactory.getPlatformMBeanServer();
- ObjectName status = new ObjectName(clientSync.getMBeanName());
- try {
+ MBeanServer jmxServer = ManagementFactory.getPlatformMBeanServer();
+ ObjectName status;
+ try (StandbyClientSync clientSync =
newStandbyClientSync(clientFileStore.fileStore())) {
+ clientSync.start();
+ clientSync.run();
+
+ status = new ObjectName(clientSync.getMBeanName());
assertTrue(jmxServer.isRegistered(status));
assertEquals("client: Foo", jmxServer.getAttribute(status,
"Mode"));
@@ -137,35 +139,35 @@ public class MBeanIT extends TestBase {
assertEquals("1", jmxServer.invoke(status, "calcFailedRequests",
null, null).toString());
assertEquals("-1", jmxServer.invoke(status,
"calcSecondsSinceLastSuccess", null, null).toString());
- } finally {
- clientSync.close();
}
-
assertTrue(!jmxServer.isRegistered(status));
}
@Test
- @Ignore("OAK-4958")
public void testClientAndServerEmptyConfig() throws Exception {
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), serverFileStore.fileStore());
- serverSync.start();
-
System.setProperty(StandbyClientSync.CLIENT_ID_PROPERTY_NAME, "Bar");
- final StandbyClientSync clientSync =
newStandbyClientSync(clientFileStore.fileStore());
- clientSync.start();
- clientSync.run();
-
- final MBeanServer jmxServer =
ManagementFactory.getPlatformMBeanServer();
- ObjectName status = new ObjectName(StandbyStatusMBean.JMX_NAME +
",id=*");
- ObjectName clientStatus = new ObjectName(clientSync.getMBeanName());
- ObjectName serverStatus = new ObjectName(serverSync.getMBeanName());
- try {
+ MBeanServer jmxServer = ManagementFactory.getPlatformMBeanServer();
+ ObjectName clientStatus, serverStatus;
+ try (
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), serverFileStore.fileStore());
+ StandbyClientSync clientSync =
newStandbyClientSync(clientFileStore.fileStore())
+ ) {
+ serverSync.start();
+
+ clientSync.start();
+ clientSync.run();
+
+ clientStatus = new ObjectName(clientSync.getMBeanName());
+ serverStatus = new ObjectName(serverSync.getMBeanName());
+ ObjectName status = new ObjectName(StandbyStatusMBean.JMX_NAME +
",id=*");
Set<ObjectName> instances = jmxServer.queryNames(status, null);
assertEquals(3, instances.size());
ObjectName connectionStatus = null;
for (ObjectName s : instances) {
- if (!s.equals(clientStatus) && !s.equals(serverStatus))
connectionStatus = s;
+ if (!s.equals(clientStatus) && !s.equals(serverStatus)) {
+ connectionStatus = s;
+ }
}
assertNotNull(connectionStatus);
@@ -174,7 +176,9 @@ public class MBeanIT extends TestBase {
assertTrue(jmxServer.isRegistered(connectionStatus));
String m = jmxServer.getAttribute(clientStatus, "Mode").toString();
- if (!m.startsWith("client: ")) fail("unexpected mode " + m);
+ if (!m.startsWith("client: ")) {
+ fail("unexpected mode " + m);
+ }
assertEquals("primary", jmxServer.getAttribute(serverStatus,
"Mode"));
@@ -199,16 +203,18 @@ public class MBeanIT extends TestBase {
jmxServer.invoke(serverStatus, "stop", null, null);
assertEquals(false, jmxServer.getAttribute(serverStatus,
"Running"));
m = jmxServer.getAttribute(serverStatus, "Status").toString();
- if (!m.equals(StandbyStatusMBean.STATUS_STOPPED) &&
!m.equals("channel unregistered"))
+ if (!m.equals(StandbyStatusMBean.STATUS_STOPPED) &&
!m.equals("channel unregistered")) {
fail("unexpected Status" + m);
+ }
// restart the master
jmxServer.invoke(serverStatus, "start", null, null);
assertEquals(true, jmxServer.getAttribute(serverStatus,
"Running"));
assertEquals(true, jmxServer.getAttribute(clientStatus,
"Running"));
m = jmxServer.getAttribute(serverStatus, "Status").toString();
- if (!m.equals(StandbyStatusMBean.STATUS_RUNNING) &&
!m.equals("channel unregistered"))
+ if (!m.equals(StandbyStatusMBean.STATUS_RUNNING) &&
!m.equals("channel unregistered")) {
fail("unexpected Status" + m);
+ }
// stop the slave
jmxServer.invoke(clientStatus, "stop", null, null);
@@ -220,13 +226,9 @@ public class MBeanIT extends TestBase {
jmxServer.invoke(clientStatus, "start", null, null);
assertEquals(true, jmxServer.getAttribute(clientStatus,
"Running"));
assertEquals(StandbyStatusMBean.STATUS_RUNNING,
jmxServer.getAttribute(clientStatus, "Status"));
-
- } finally {
- clientSync.close();
- serverSync.close();
}
-
assertTrue(!jmxServer.isRegistered(clientStatus));
assertTrue(!jmxServer.isRegistered(serverStatus));
}
+
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/RecoverTestIT.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/RecoverTestIT.java?rev=1765706&r1=1765705&r2=1765706&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/RecoverTestIT.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/RecoverTestIT.java
Wed Oct 19 19:56:32 2016
@@ -57,21 +57,19 @@ public class RecoverTestIT extends TestB
NodeStore store = SegmentNodeStoreBuilders.builder(storeC).build();
addTestContent(store, "client");
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS);
- serverSync.start();
- store = SegmentNodeStoreBuilders.builder(storeS).build();
- addTestContent(store, "server");
- storeS.flush();
+ try (
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), storeS);
+ StandbyClientSync cl = newStandbyClientSync(storeC)
+ ) {
+ serverSync.start();
+ store = SegmentNodeStoreBuilders.builder(storeS).build();
+ addTestContent(store, "server");
+ storeS.flush();
- StandbyClientSync cl = newStandbyClientSync(storeC);
- try {
assertFalse("stores are not expected to be equal",
storeS.getHead().equals(storeC.getHead()));
cl.run();
assertEquals(storeS.getHead(), storeC.getHead());
- } finally {
- serverSync.close();
- cl.close();
}
-
}
+
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/StandbyTestIT.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/StandbyTestIT.java?rev=1765706&r1=1765705&r2=1765706&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/StandbyTestIT.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/StandbyTestIT.java
Wed Oct 19 19:56:32 2016
@@ -26,12 +26,10 @@ import static org.junit.Assert.assertTru
import java.io.ByteArrayInputStream;
import java.io.File;
-import java.io.IOException;
import java.util.Random;
import com.google.common.io.ByteStreams;
import org.apache.jackrabbit.oak.api.Blob;
-import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
@@ -69,35 +67,32 @@ public class StandbyTestIT extends TestB
FileStore secondary = clientFileStore.fileStore();
NodeStore store = SegmentNodeStoreBuilders.builder(primary).build();
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), primary);
- serverSync.start();
- byte[] data = addTestContent(store, "server", blobSize, 150);
- primary.flush();
+ try (
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), primary);
+ StandbyClientSync clientSync = newStandbyClientSync(secondary)
+ ) {
+ serverSync.start();
+ byte[] data = addTestContent(store, "server", blobSize, 150);
+ primary.flush();
- StandbyClientSync clientSync = newStandbyClientSync(secondary);
- clientSync.run();
+ clientSync.run();
- try {
assertEquals(primary.getHead(), secondary.getHead());
- } finally {
- serverSync.close();
- clientSync.close();
- }
-
- assertTrue(primary.getStats().getApproximateSize() > blobSize);
- assertTrue(secondary.getStats().getApproximateSize() > blobSize);
- PropertyState ps = secondary.getHead().getChildNode("root")
- .getChildNode("server").getProperty("testBlob");
- assertNotNull(ps);
- assertEquals(Type.BINARY.tag(), ps.getType().tag());
- Blob b = ps.getValue(Type.BINARY);
- assertEquals(blobSize, b.length());
-
- byte[] testData = new byte[blobSize];
- ByteStreams.readFully(b.getNewStream(), testData);
- assertArrayEquals(data, testData);
+ assertTrue(primary.getStats().getApproximateSize() > blobSize);
+ assertTrue(secondary.getStats().getApproximateSize() > blobSize);
+ PropertyState ps = secondary.getHead().getChildNode("root")
+ .getChildNode("server").getProperty("testBlob");
+ assertNotNull(ps);
+ assertEquals(Type.BINARY.tag(), ps.getType().tag());
+ Blob b = ps.getValue(Type.BINARY);
+ assertEquals(blobSize, b.length());
+
+ byte[] testData = new byte[blobSize];
+ ByteStreams.readFully(b.getNewStream(), testData);
+ assertArrayEquals(data, testData);
+ }
}
/**
@@ -112,14 +107,13 @@ public class StandbyTestIT extends TestB
FileStore secondary = clientFileStore.fileStore();
NodeStore store = SegmentNodeStoreBuilders.builder(primary).build();
- final StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), primary);
- serverSync.start();
- byte[] data = addTestContent(store, "server", blobSize, dataNodes);
- primary.flush();
-
- StandbyClientSync clientSync = newStandbyClientSync(secondary);
-
- try {
+ try (
+ StandbyServerSync serverSync = new
StandbyServerSync(getServerPort(), primary);
+ StandbyClientSync clientSync = newStandbyClientSync(secondary)
+ ) {
+ serverSync.start();
+ byte[] data = addTestContent(store, "server", blobSize, dataNodes);
+ primary.flush();
for (int i = 0; i < 5; i++) {
String cp = store.checkpoint(Long.MAX_VALUE);
@@ -131,28 +125,23 @@ public class StandbyTestIT extends TestB
assertTrue(secondary.getStats().getApproximateSize() >
blobSize);
}
- } finally {
- serverSync.close();
- clientSync.close();
- }
-
- assertTrue(primary.getStats().getApproximateSize() > blobSize);
- assertTrue(secondary.getStats().getApproximateSize() > blobSize);
+ assertTrue(primary.getStats().getApproximateSize() > blobSize);
+ assertTrue(secondary.getStats().getApproximateSize() > blobSize);
- PropertyState ps = secondary.getHead().getChildNode("root")
- .getChildNode("server").getProperty("testBlob");
- assertNotNull(ps);
- assertEquals(Type.BINARY.tag(), ps.getType().tag());
- Blob b = ps.getValue(Type.BINARY);
- assertEquals(blobSize, b.length());
-
- byte[] testData = new byte[blobSize];
- ByteStreams.readFully(b.getNewStream(), testData);
- assertArrayEquals(data, testData);
+ PropertyState ps = secondary.getHead().getChildNode("root")
+ .getChildNode("server").getProperty("testBlob");
+ assertNotNull(ps);
+ assertEquals(Type.BINARY.tag(), ps.getType().tag());
+ Blob b = ps.getValue(Type.BINARY);
+ assertEquals(blobSize, b.length());
+
+ byte[] testData = new byte[blobSize];
+ ByteStreams.readFully(b.getNewStream(), testData);
+ assertArrayEquals(data, testData);
+ }
}
- private static byte[] addTestContent(NodeStore store, String child, int
size, int dataNodes)
- throws CommitFailedException, IOException {
+ private static byte[] addTestContent(NodeStore store, String child, int
size, int dataNodes) throws Exception {
NodeBuilder builder = store.getRoot().builder();
NodeBuilder content = builder.child(child);
content.setProperty("ts", System.currentTimeMillis());