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 fr...@apache.org on 2016/09/15 14:03:06 UTC

svn commit: r1760934 [2/2] - in /jackrabbit/oak/trunk/oak-segment-tar/src: main/java/org/apache/jackrabbit/oak/segment/standby/client/ main/java/org/apache/jackrabbit/oak/segment/standby/codec/ main/java/org/apache/jackrabbit/oak/segment/standby/server...

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbySegmentReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbySegmentReader.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbySegmentReader.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/DefaultStandbySegmentReader.java Thu Sep 15 14:03:05 2016
@@ -17,9 +17,11 @@
 
 package org.apache.jackrabbit.oak.segment.standby.server;
 
+import java.io.IOException;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.jackrabbit.oak.segment.Segment;
 import org.apache.jackrabbit.oak.segment.SegmentId;
 import org.apache.jackrabbit.oak.segment.SegmentNotFoundException;
@@ -38,12 +40,27 @@ class DefaultStandbySegmentReader implem
     }
 
     @Override
-    public Segment readSegment(UUID uuid) {
+    public byte[] readSegment(String segmentId) {
+        UUID uuid = UUID.fromString(segmentId);
         long msb = uuid.getMostSignificantBits();
         long lsb = uuid.getLeastSignificantBits();
 
-        SegmentId id = store.newSegmentId(msb, lsb);
+        Segment segment = readSegment(store.newSegmentId(msb, lsb));
 
+        if (segment == null) {
+            return null;
+        }
+
+        try (ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
+            segment.writeTo(stream);
+            return stream.toByteArray();
+        } catch (IOException e) {
+            log.warn("Error while reading segment content", e);
+            return null;
+        }
+    }
+
+    private Segment readSegment(SegmentId id) {
         for (int i = 0; i < 10; i++) {
             try {
                 return store.readSegment(id);

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetBlobRequestHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetBlobRequestHandler.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetBlobRequestHandler.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetBlobRequestHandler.java Thu Sep 15 14:03:05 2016
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.segmen
 
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.SimpleChannelInboundHandler;
-import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetBlobRequest;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetBlobResponse;
 import org.slf4j.Logger;
@@ -39,14 +38,14 @@ class GetBlobRequestHandler extends Simp
     protected void channelRead0(ChannelHandlerContext ctx, GetBlobRequest msg) throws Exception {
         log.debug("Reading blob {} for client {}", msg.getBlobId(), msg.getClientId());
 
-        Blob blob = reader.readBlob(msg.getBlobId());
+        byte[] data = reader.readBlob(msg.getBlobId());
 
-        if (blob == null) {
+        if (data == null) {
             log.debug("Blob {} not found, discarding request from client {}", msg.getBlobId(), msg.getClientId());
             return;
         }
 
-        ctx.writeAndFlush(new GetBlobResponse(msg.getClientId(), blob));
+        ctx.writeAndFlush(new GetBlobResponse(msg.getClientId(), msg.getBlobId(), data));
     }
 
 }

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetHeadRequestHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetHeadRequestHandler.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetHeadRequestHandler.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetHeadRequestHandler.java Thu Sep 15 14:03:05 2016
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.segmen
 
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.SimpleChannelInboundHandler;
-import org.apache.jackrabbit.oak.segment.RecordId;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetHeadRequest;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetHeadResponse;
 import org.slf4j.Logger;
@@ -43,7 +42,7 @@ class GetHeadRequestHandler extends Simp
     protected void channelRead0(ChannelHandlerContext ctx, GetHeadRequest msg) throws Exception {
         log.debug("Reading head for client {}", msg.getClientId());
 
-        RecordId id = reader.readHeadRecordId();
+        String id = reader.readHeadRecordId();
 
         if (id == null) {
             log.debug("Head not found, discarding request from client {}", msg.getClientId());

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetSegmentRequestHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetSegmentRequestHandler.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetSegmentRequestHandler.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/GetSegmentRequestHandler.java Thu Sep 15 14:03:05 2016
@@ -39,14 +39,18 @@ class GetSegmentRequestHandler extends S
     protected void channelRead0(ChannelHandlerContext ctx, GetSegmentRequest msg) throws Exception {
         log.debug("Reading segment {} for client {}", msg.getSegmentId(), msg.getClientId());
 
-        Segment segment = reader.readSegment(msg.getSegmentId());
+        byte[] data = reader.readSegment(msg.getSegmentId());
 
-        if (segment == null) {
+        if (data == null) {
             log.debug("Segment {} not found, discarding request from client {}", msg.getSegmentId(), msg.getClientId());
             return;
         }
 
-        ctx.writeAndFlush(new GetSegmentResponse(msg.getClientId(), segment));
+        ctx.writeAndFlush(new GetSegmentResponse(msg.getClientId(), msg.getSegmentId(), data));
+    }
+
+    private String getId(Segment segment) {
+        return segment.getSegmentId().asUUID().toString();
     }
 
 }

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/ResponseObserverHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/ResponseObserverHandler.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/ResponseObserverHandler.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/ResponseObserverHandler.java Thu Sep 15 14:03:05 2016
@@ -48,11 +48,11 @@ class ResponseObserverHandler extends Ch
     }
 
     private void onGetSegmentResponse(GetSegmentResponse response) {
-        observer.didSendSegmentBytes(response.getClientId(), response.getSegment().size());
+        observer.didSendSegmentBytes(response.getClientId(), response.getSegmentData().length);
     }
 
     private void onGetBlobResponse(GetBlobResponse response) {
-        observer.didSendBinariesBytes(response.getClientId(), (int) Math.max(0, response.getBlob().length()));
+        observer.didSendBinariesBytes(response.getClientId(), (int) Math.max(0, response.getBlobData().length));
     }
 
 }

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyBlobReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyBlobReader.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyBlobReader.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyBlobReader.java Thu Sep 15 14:03:05 2016
@@ -17,10 +17,8 @@
 
 package org.apache.jackrabbit.oak.segment.standby.server;
 
-import org.apache.jackrabbit.oak.api.Blob;
-
 interface StandbyBlobReader {
 
-    Blob readBlob(String blobId);
+    byte[] readBlob(String blobId);
 
 }

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyHeadReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyHeadReader.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyHeadReader.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbyHeadReader.java Thu Sep 15 14:03:05 2016
@@ -17,8 +17,6 @@
 
 package org.apache.jackrabbit.oak.segment.standby.server;
 
-import org.apache.jackrabbit.oak.segment.RecordId;
-
 /**
  * Read the head record ID.
  */
@@ -30,6 +28,6 @@ interface StandbyHeadReader {
      * @return the head record ID or {@code null} if the head record ID can't be
      * found.
      */
-    RecordId readHeadRecordId();
+    String readHeadRecordId();
 
 }

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbySegmentReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbySegmentReader.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbySegmentReader.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/server/StandbySegmentReader.java Thu Sep 15 14:03:05 2016
@@ -17,12 +17,8 @@
 
 package org.apache.jackrabbit.oak.segment.standby.server;
 
-import java.util.UUID;
-
-import org.apache.jackrabbit.oak.segment.Segment;
-
 interface StandbySegmentReader {
 
-    Segment readSegment(UUID segmentId);
+    byte[] readSegment(String segmentId);
 
 }

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=1760934&r1=1760933&r2=1760934&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 Thu Sep 15 14:03:05 2016
@@ -46,12 +46,10 @@ import io.netty.handler.ssl.SslContext;
 import io.netty.handler.ssl.util.SelfSignedCertificate;
 import io.netty.util.CharsetUtil;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.segment.standby.codec.GetBlobRequestDecoder;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetBlobResponseEncoder;
-import org.apache.jackrabbit.oak.segment.standby.codec.GetHeadRequestDecoder;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetHeadResponseEncoder;
-import org.apache.jackrabbit.oak.segment.standby.codec.GetSegmentRequestDecoder;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetSegmentResponseEncoder;
+import org.apache.jackrabbit.oak.segment.standby.codec.RequestDecoder;
 import org.apache.jackrabbit.oak.segment.standby.jmx.StandbyStatusMBean;
 import org.apache.jackrabbit.oak.segment.standby.store.CommunicationObserver;
 import org.slf4j.Logger;
@@ -131,9 +129,7 @@ public class StandbyServer implements St
 
                 p.addLast(new LineBasedFrameDecoder(8192));
                 p.addLast(new StringDecoder(CharsetUtil.UTF_8));
-                p.addLast(new GetHeadRequestDecoder());
-                p.addLast(new GetSegmentRequestDecoder());
-                p.addLast(new GetBlobRequestDecoder());
+                p.addLast(new RequestDecoder());
                 p.addLast(new StateHandler(newStateConsumer()));
                 p.addLast(new RequestObserverHandler(observer));
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/store/StandbyStoreService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/store/StandbyStoreService.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/store/StandbyStoreService.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/standby/store/StandbyStoreService.java Thu Sep 15 14:03:05 2016
@@ -38,7 +38,7 @@ import org.apache.jackrabbit.oak.commons
 import org.apache.jackrabbit.oak.segment.SegmentStore;
 import org.apache.jackrabbit.oak.segment.SegmentStoreProvider;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.component.ComponentContext;
@@ -95,7 +95,8 @@ public class StandbyStoreService {
     private FileStore fileStore;
 
     private StandbyServer primary = null;
-    private StandbyClient sync = null;
+
+    private StandbySync sync = null;
 
     private ServiceRegistration syncReg = null;
 
@@ -157,7 +158,7 @@ public class StandbyStoreService {
         int readTimeout = PropertiesUtil.toInteger(props.get(READ_TIMEOUT), READ_TIMEOUT_DEFAULT);
         boolean clean = PropertiesUtil.toBoolean(props.get(AUTO_CLEAN), AUTO_CLEAN_DEFAULT);
 
-        sync = new StandbyClient(host, port, fileStore, secure, readTimeout, clean);
+        sync = new StandbySync(host, port, fileStore, secure, readTimeout, clean);
         Dictionary<Object, Object> dictionary = new Hashtable<Object, Object>();
         dictionary.put("scheduler.period", interval);
         dictionary.put("scheduler.concurrent", false);

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/BrokenNetworkTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/BrokenNetworkTest.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/BrokenNetworkTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/BrokenNetworkTest.java Thu Sep 15 14:03:05 2016
@@ -25,7 +25,7 @@ import static org.junit.Assert.assertFal
 
 import org.apache.jackrabbit.oak.segment.NetworkErrorProxy;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.After;
@@ -126,7 +126,7 @@ public class BrokenNetworkTest extends T
         addTestContent(store, "server");
         storeS.flush();  // this speeds up the test a little bit...
 
-        StandbyClient cl = newStandbyClient(storeC, proxyPort, ssl);
+        StandbySync cl = newStandbySync(storeC, proxyPort, ssl);
         cl.run();
 
         try {

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=1760934&r1=1760933&r2=1760934&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 Thu Sep 15 14:03:05 2016
@@ -42,7 +42,7 @@ import org.apache.jackrabbit.oak.segment
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
 import org.apache.jackrabbit.oak.segment.file.FileStoreBuilder;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -112,7 +112,7 @@ public class DataStoreTestBase extends T
         byte[] data = addTestContent(store, "server", blobSize);
         primary.flush();
 
-        StandbyClient cl = newStandbyClient(secondary);
+        StandbySync cl = newStandbySync(secondary);
         cl.run();
 
         try {
@@ -188,7 +188,7 @@ public class DataStoreTestBase extends T
         byte[] data = addTestContent(store, "server", blobSize);
         primary.flush();
 
-        StandbyClient cl = newStandbyClient(secondary, proxyPort);
+        StandbySync cl = newStandbySync(secondary, proxyPort);
         cl.run();
 
         try {

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/FailoverIPRangeTest.java Thu Sep 15 14:03:05 2016
@@ -24,7 +24,7 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertFalse;
 
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.After;
@@ -146,7 +146,7 @@ public class FailoverIPRangeTest extends
         addTestContent(store, "server");
         storeS.flush();  // this speeds up the test a little bit...
 
-        StandbyClient cl =  new StandbyClient(host, port, storeC, false, timeout, false);
+        StandbySync cl = new StandbySync(host, port, storeC, false, timeout, false);
         cl.run();
 
         try {

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=1760934&r1=1760933&r2=1760934&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 Thu Sep 15 14:03:05 2016
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertFal
 
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.SegmentTestUtils;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.After;
@@ -50,8 +50,8 @@ public class FailoverMultipleClientsTest
         SegmentTestUtils.addTestContent(store, "server");
         storeS.flush();  // this speeds up the test a little bit...
 
-        StandbyClient cl1 = newStandbyClient(storeC);
-        StandbyClient cl2 = newStandbyClient(storeC2);
+        StandbySync cl1 = newStandbySync(storeC);
+        StandbySync cl2 = newStandbySync(storeC2);
 
         try {
             assertFalse("first client has invalid initial store!", storeS.getHead().equals(storeC.getHead()));

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=1760934&r1=1760933&r2=1760934&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 Thu Sep 15 14:03:05 2016
@@ -24,7 +24,7 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertFalse;
 
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.After;
@@ -52,7 +52,7 @@ public class FailoverSslTestIT extends T
         addTestContent(store, "server");
         storeS.flush();  // this speeds up the test a little bit...
 
-        StandbyClient cl = newStandbyClient(storeC, port, true);
+        StandbySync cl = newStandbySync(storeC, port, true);
         cl.run();
 
         try {
@@ -72,7 +72,7 @@ public class FailoverSslTestIT extends T
         addTestContent(store, "server");
         storeS.flush();  // this speeds up the test a little bit...
 
-        StandbyClient cl = newStandbyClient(storeC);
+        StandbySync cl = newStandbySync(storeC);
         cl.run();
 
         try {
@@ -92,7 +92,7 @@ public class FailoverSslTestIT extends T
         addTestContent(store, "server");
         storeS.flush();  // this speeds up the test a little bit...
 
-        StandbyClient cl = newStandbyClient(storeC, port, true);
+        StandbySync cl = newStandbySync(storeC, port, true);
         cl.run();
 
         try {

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/MBeanTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/MBeanTest.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/MBeanTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/MBeanTest.java Thu Sep 15 14:03:05 2016
@@ -30,7 +30,7 @@ import java.util.Set;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.jmx.StandbyStatusMBean;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.junit.After;
@@ -86,7 +86,7 @@ public class MBeanTest extends TestBase
 
     @Test
     public void testClientEmptyConfigNoServer() throws Exception {
-        final StandbyClient client = newStandbyClient(storeC);
+        final StandbySync client = newStandbySync(storeC);
         client.start();
         client.run();
 
@@ -123,8 +123,8 @@ public class MBeanTest extends TestBase
 
     @Test
     public void testClientNoServer() throws Exception {
-        System.setProperty(StandbyClient.CLIENT_ID_PROPERTY_NAME, "Foo");
-        final StandbyClient client = newStandbyClient(storeC);
+        System.setProperty(StandbySync.CLIENT_ID_PROPERTY_NAME, "Foo");
+        final StandbySync client = newStandbySync(storeC);
         client.start();
         client.run();
 
@@ -151,8 +151,8 @@ public class MBeanTest extends TestBase
         final StandbyServer server = new StandbyServer(port, this.storeS);
         server.start();
 
-        System.setProperty(StandbyClient.CLIENT_ID_PROPERTY_NAME, "Bar");
-        final StandbyClient client = newStandbyClient(storeC);
+        System.setProperty(StandbySync.CLIENT_ID_PROPERTY_NAME, "Bar");
+        final StandbySync client = newStandbySync(storeC);
         client.start();
         client.run();
 

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=1760934&r1=1760933&r2=1760934&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 Thu Sep 15 14:03:05 2016
@@ -24,7 +24,7 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertFalse;
 
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.After;
@@ -55,7 +55,7 @@ public class RecoverTestIT extends TestB
         addTestContent(store, "server");
         storeS.flush();
 
-        StandbyClient cl = newStandbyClient(storeC);
+        StandbySync cl = newStandbySync(storeC);
         try {
             assertFalse("stores are not expected to be equal", storeS.getHead().equals(storeC.getHead()));
             cl.run();

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/StandbyTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/StandbyTest.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/StandbyTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/StandbyTest.java Thu Sep 15 14:03:05 2016
@@ -28,13 +28,14 @@ import java.io.ByteArrayInputStream;
 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;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -44,8 +45,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.google.common.io.ByteStreams;
-
 public class StandbyTest extends TestBase {
 
     @Before
@@ -71,7 +70,7 @@ public class StandbyTest extends TestBas
         byte[] data = addTestContent(store, "server", blobSize, 150);
         primary.flush();
 
-        StandbyClient cl = newStandbyClient(secondary);
+        StandbySync cl = newStandbySync(secondary);
         cl.run();
 
         try {

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=1760934&r1=1760933&r2=1760934&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 Thu Sep 15 14:03:05 2016
@@ -35,7 +35,7 @@ import org.apache.jackrabbit.oak.api.Pro
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -96,7 +96,7 @@ public class StandbyTestIT extends TestB
         byte[] data = addTestContent(store, "server", blobSize, dataNodes);
         primary.flush();
 
-        StandbyClient cl = newStandbyClient(secondary);
+        StandbySync cl = newStandbySync(secondary);
 
         try {
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/TestBase.java Thu Sep 15 14:03:05 2016
@@ -30,7 +30,7 @@ import org.apache.commons.lang3.SystemUt
 import org.apache.jackrabbit.oak.commons.CIHelper;
 import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.stats.DefaultStatisticsProvider;
 import org.junit.BeforeClass;
 import org.junit.Rule;
@@ -149,18 +149,16 @@ public class TestBase {
         return timeout;
     }
 
-    public StandbyClient newStandbyClient(FileStore store) throws Exception {
-        return newStandbyClient(store, port, false);
+    public StandbySync newStandbySync(FileStore store) throws Exception {
+        return newStandbySync(store, port, false);
     }
 
-    public StandbyClient newStandbyClient(FileStore store, int port)
-            throws Exception {
-        return newStandbyClient(store, port, false);
+    public StandbySync newStandbySync(FileStore store, int port) throws Exception {
+        return newStandbySync(store, port, false);
     }
 
-    public StandbyClient newStandbyClient(FileStore store, int port,
-            boolean secure) throws Exception {
-        return new StandbyClient(LOCALHOST, port, store, secure, timeout, false);
+    public StandbySync newStandbySync(FileStore store, int port, boolean secure) throws Exception {
+        return new StandbySync(LOCALHOST, port, store, secure, timeout, false);
     }
 
 }

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BenchmarkBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BenchmarkBase.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BenchmarkBase.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BenchmarkBase.java Thu Sep 15 14:03:05 2016
@@ -29,7 +29,7 @@ import java.util.concurrent.ScheduledExe
 import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
 import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.stats.DefaultStatisticsProvider;
 
 public class BenchmarkBase {
@@ -97,16 +97,16 @@ public class BenchmarkBase {
         return newFileStore(directory, executor);
     }
 
-    public StandbyClient newStandbyClient(FileStore store) throws Exception {
+    public StandbySync newStandbyClient(FileStore store) throws Exception {
         return newStandbyClient(store, port, false);
     }
 
-    public StandbyClient newStandbyClient(FileStore store, int port) throws Exception {
+    public StandbySync newStandbyClient(FileStore store, int port) throws Exception {
         return newStandbyClient(store, port, false);
     }
 
-    public StandbyClient newStandbyClient(FileStore store, int port, boolean secure) throws Exception {
-        return new StandbyClient(LOCALHOST, port, store, secure, timeout, false);
+    public StandbySync newStandbyClient(FileStore store, int port, boolean secure) throws Exception {
+        return new StandbySync(LOCALHOST, port, store, secure, timeout, false);
     }
 
     private static File createTmpTargetDir(String name) throws IOException {

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BulkTransferBenchmark.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BulkTransferBenchmark.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BulkTransferBenchmark.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BulkTransferBenchmark.java Thu Sep 15 14:03:05 2016
@@ -27,7 +27,7 @@ import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClient;
+import org.apache.jackrabbit.oak.segment.standby.client.StandbySync;
 import org.apache.jackrabbit.oak.segment.standby.jmx.StandbyStatusMBean;
 import org.apache.jackrabbit.oak.segment.standby.server.StandbyServer;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
@@ -94,8 +94,8 @@ public class BulkTransferBenchmark exten
         final StandbyServer server = new StandbyServer(port, storeS, useSSL);
         server.start();
 
-        System.setProperty(StandbyClient.CLIENT_ID_PROPERTY_NAME, "Bar");
-        StandbyClient cl = newStandbyClient(storeC, port, useSSL);
+        System.setProperty(StandbySync.CLIENT_ID_PROPERTY_NAME, "Bar");
+        StandbySync cl = newStandbyClient(storeC, port, useSSL);
 
         final MBeanServer jmxServer = ManagementFactory.getPlatformMBeanServer();
         ObjectName status = new ObjectName(StandbyStatusMBean.JMX_NAME + ",id=*");

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetBlobResponseEncoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetBlobResponseEncoderTest.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetBlobResponseEncoderTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetBlobResponseEncoderTest.java Thu Sep 15 14:03:05 2016
@@ -19,42 +19,33 @@ package org.apache.jackrabbit.oak.segmen
 
 import static org.apache.jackrabbit.oak.segment.standby.StandbyTestUtils.hash;
 import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.io.ByteArrayInputStream;
 
 import com.google.common.base.Charsets;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import io.netty.channel.embedded.EmbeddedChannel;
-import org.apache.jackrabbit.oak.api.Blob;
 import org.junit.Test;
 
 public class GetBlobResponseEncoderTest {
 
     @Test
     public void encodeResponse() throws Exception {
-        byte[] data = new byte[] {1, 2, 3};
-
-        String contentIdentity = "contentIdentity";
-        byte[] contentIdentityBytes = contentIdentity.getBytes(Charsets.UTF_8);
+        byte[] blobData = new byte[] {1, 2, 3};
 
-        Blob blob = mock(Blob.class);
-        when(blob.getNewStream()).thenReturn(new ByteArrayInputStream(data));
-        when(blob.getContentIdentity()).thenReturn(contentIdentity);
+        String blobId = "blobId";
+        byte[] blobIdBytes = blobId.getBytes(Charsets.UTF_8);
 
         EmbeddedChannel channel = new EmbeddedChannel(new GetBlobResponseEncoder());
-        channel.writeOutbound(new GetBlobResponse("clientId", blob));
+        channel.writeOutbound(new GetBlobResponse("clientId", blobId, blobData));
         ByteBuf buffer = (ByteBuf) channel.readOutbound();
 
         ByteBuf expected = Unpooled.buffer();
-        expected.writeInt(3);
+        expected.writeInt(1 + 4 + blobIdBytes.length + 8 + blobData.length);
         expected.writeByte(Messages.HEADER_BLOB);
-        expected.writeInt(contentIdentityBytes.length);
-        expected.writeBytes(contentIdentityBytes);
-        expected.writeLong(hash(data));
-        expected.writeBytes(data);
+        expected.writeInt(blobIdBytes.length);
+        expected.writeBytes(blobIdBytes);
+        expected.writeLong(hash(blobData));
+        expected.writeBytes(blobData);
 
         assertEquals(expected, buffer);
     }

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetHeadResponseEncoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetHeadResponseEncoderTest.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetHeadResponseEncoderTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetHeadResponseEncoderTest.java Thu Sep 15 14:03:05 2016
@@ -17,30 +17,29 @@
 
 package org.apache.jackrabbit.oak.segment.standby.codec;
 
-import static org.apache.jackrabbit.oak.segment.standby.StandbyTestUtils.mockRecordId;
 import static org.junit.Assert.assertEquals;
 
 import com.google.common.base.Charsets;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import io.netty.channel.embedded.EmbeddedChannel;
-import org.apache.jackrabbit.oak.segment.RecordId;
 import org.junit.Test;
 
 public class GetHeadResponseEncoderTest {
 
     @Test
     public void encodeResponse() throws Exception {
-        RecordId recordId = mockRecordId(1, 2, 8);
+        String recordId = "recordId";
+        byte[] recordIdBytes = recordId.getBytes(Charsets.UTF_8);
 
         EmbeddedChannel channel = new EmbeddedChannel(new GetHeadResponseEncoder());
-        channel.writeOutbound(new GetHeadResponse("clientId", recordId));
+        channel.writeOutbound(new GetHeadResponse("clientId", "recordId"));
         ByteBuf buffer = (ByteBuf) channel.readOutbound();
 
         ByteBuf expected = Unpooled.buffer();
-        expected.writeInt(recordId.toString().getBytes(Charsets.UTF_8).length + 1);
+        expected.writeInt(recordIdBytes.length + 1);
         expected.writeByte(Messages.HEADER_RECORD);
-        expected.writeBytes(recordId.toString().getBytes(Charsets.UTF_8));
+        expected.writeBytes(recordIdBytes);
         assertEquals(expected, buffer);
     }
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetSegmentResponseEncoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetSegmentResponseEncoderTest.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetSegmentResponseEncoderTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/GetSegmentResponseEncoderTest.java Thu Sep 15 14:03:05 2016
@@ -18,7 +18,6 @@
 package org.apache.jackrabbit.oak.segment.standby.codec;
 
 import static org.apache.jackrabbit.oak.segment.standby.StandbyTestUtils.hash;
-import static org.apache.jackrabbit.oak.segment.standby.StandbyTestUtils.mockSegment;
 import static org.junit.Assert.assertEquals;
 
 import java.util.UUID;
@@ -26,7 +25,6 @@ import java.util.UUID;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import io.netty.channel.embedded.EmbeddedChannel;
-import org.apache.jackrabbit.oak.segment.Segment;
 import org.junit.Test;
 
 public class GetSegmentResponseEncoderTest {
@@ -35,10 +33,9 @@ public class GetSegmentResponseEncoderTe
     public void encodeResponse() throws Exception {
         UUID uuid = new UUID(1, 2);
         byte[] data = new byte[] {3, 4, 5};
-        Segment segment = mockSegment(uuid, data);
 
         EmbeddedChannel channel = new EmbeddedChannel(new GetSegmentResponseEncoder());
-        channel.writeOutbound(new GetSegmentResponse("clientId", segment));
+        channel.writeOutbound(new GetSegmentResponse("clientId", uuid.toString(), data));
         ByteBuf buffer = (ByteBuf) channel.readOutbound();
 
         ByteBuf expected = Unpooled.buffer();

Added: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/RequestDecoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/RequestDecoderTest.java?rev=1760934&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/RequestDecoderTest.java (added)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/RequestDecoderTest.java Thu Sep 15 14:03:05 2016
@@ -0,0 +1,61 @@
+/*
+ * 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.oak.segment.standby.codec;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import io.netty.channel.embedded.EmbeddedChannel;
+import org.junit.Test;
+
+public class RequestDecoderTest {
+
+    @Test
+    public void shouldDecodeValidGetBlobRequests() throws Exception {
+        EmbeddedChannel channel = new EmbeddedChannel(new RequestDecoder());
+        channel.writeInbound(Messages.newGetBlobRequest("clientId", "blobId", false));
+        GetBlobRequest request = (GetBlobRequest) channel.readInbound();
+        assertEquals("clientId", request.getClientId());
+        assertEquals("blobId", request.getBlobId());
+    }
+
+    @Test
+    public void shouldDecodeValidGetHeadRequests() throws Exception {
+        EmbeddedChannel channel = new EmbeddedChannel(new RequestDecoder());
+        channel.writeInbound(Messages.newGetHeadRequest("clientId", false));
+        GetHeadRequest request = (GetHeadRequest) channel.readInbound();
+        assertEquals("clientId", request.getClientId());
+    }
+
+    @Test
+    public void shouldDecodeValidGetSegmentRequests() throws Exception {
+        EmbeddedChannel channel = new EmbeddedChannel(new RequestDecoder());
+        channel.writeInbound(Messages.newGetSegmentRequest("clientId", "segmentId", false));
+        GetSegmentRequest request = (GetSegmentRequest) channel.readInbound();
+        assertEquals("clientId", request.getClientId());
+        assertEquals("segmentId", request.getSegmentId());
+    }
+
+    @Test
+    public void shouldDropInvalidMessages() throws Exception {
+        EmbeddedChannel channel = new EmbeddedChannel(new RequestDecoder());
+        channel.writeInbound("Standby-CMD@clientId:z");
+        assertNull(channel.readInbound());
+    }
+
+}

Propchange: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/RequestDecoderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/ResponseDecoderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/ResponseDecoderTest.java?rev=1760934&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/ResponseDecoderTest.java (added)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/ResponseDecoderTest.java Thu Sep 15 14:03:05 2016
@@ -0,0 +1,142 @@
+/*
+ * 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.oak.segment.standby.codec;
+
+import static org.apache.jackrabbit.oak.segment.standby.StandbyTestUtils.hash;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.util.UUID;
+
+import com.google.common.base.Charsets;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
+import io.netty.channel.embedded.EmbeddedChannel;
+import org.junit.Test;
+
+public class ResponseDecoderTest {
+
+    @Test
+    public void unrecognizedMessagesShouldBeDropped() throws Exception {
+        ByteBuf buf = Unpooled.buffer();
+        buf.writeInt(1);
+        buf.writeByte(-1);
+
+        EmbeddedChannel channel = new EmbeddedChannel(new ResponseDecoder());
+        channel.writeInbound(buf);
+        assertNull(channel.readInbound());
+    }
+
+    @Test
+    public void shouldDecodeValidGetBlobResponses() throws Exception {
+        byte[] blobData = new byte[] {1, 2, 3};
+
+        String blobId = "blobId";
+        byte[] blobIdBytes = blobId.getBytes(Charsets.UTF_8);
+
+        ByteBuf buf = Unpooled.buffer();
+        buf.writeInt(1 + 4 + blobIdBytes.length + 8 + blobData.length);
+        buf.writeByte(Messages.HEADER_BLOB);
+        buf.writeInt(blobIdBytes.length);
+        buf.writeBytes(blobIdBytes);
+        buf.writeLong(hash(blobData));
+        buf.writeBytes(blobData);
+
+        EmbeddedChannel channel = new EmbeddedChannel(new ResponseDecoder());
+        channel.writeInbound(buf);
+        GetBlobResponse response = (GetBlobResponse) channel.readInbound();
+        assertEquals("blobId", response.getBlobId());
+        assertArrayEquals(blobData, response.getBlobData());
+    }
+
+    @Test
+    public void shouldDropInvalidGetBlobResponses() throws Exception {
+        byte[] blobData = new byte[] {1, 2, 3};
+
+        String blobId = "blobId";
+        byte[] blobIdBytes = blobId.getBytes(Charsets.UTF_8);
+
+        ByteBuf buf = Unpooled.buffer();
+        buf.writeInt(1 + 4 + blobIdBytes.length + 8 + blobData.length);
+        buf.writeByte(Messages.HEADER_BLOB);
+        buf.writeInt(blobIdBytes.length);
+        buf.writeBytes(blobIdBytes);
+        buf.writeLong(hash(blobData) + 1);
+        buf.writeBytes(blobData);
+
+        EmbeddedChannel channel = new EmbeddedChannel(new ResponseDecoder());
+        channel.writeInbound(buf);
+        assertNull(channel.readInbound());
+    }
+
+    @Test
+    public void shouldDecodeValidGetHeadResponses() throws Exception {
+        String recordId = "recordId";
+        byte[] recordIdBytes = recordId.getBytes(Charsets.UTF_8);
+
+        ByteBuf in = Unpooled.buffer();
+        in.writeInt(recordIdBytes.length + 1);
+        in.writeByte(Messages.HEADER_RECORD);
+        in.writeBytes(recordIdBytes);
+
+        EmbeddedChannel channel = new EmbeddedChannel(new ResponseDecoder());
+        channel.writeInbound(in);
+        GetHeadResponse response = (GetHeadResponse) channel.readInbound();
+        assertEquals(recordId, response.getHeadRecordId());
+    }
+
+    @Test
+    public void shouldDecodeValidGetSegmentResponses() throws Exception {
+        UUID uuid = new UUID(1, 2);
+        byte[] data = new byte[] {3, 4, 5};
+
+        ByteBuf buf = Unpooled.buffer();
+        buf.writeInt(data.length + 25);
+        buf.writeByte(Messages.HEADER_SEGMENT);
+        buf.writeLong(uuid.getMostSignificantBits());
+        buf.writeLong(uuid.getLeastSignificantBits());
+        buf.writeLong(hash(data));
+        buf.writeBytes(data);
+
+        EmbeddedChannel channel = new EmbeddedChannel(new ResponseDecoder());
+        channel.writeInbound(buf);
+        GetSegmentResponse response = (GetSegmentResponse) channel.readInbound();
+        assertEquals(uuid, UUID.fromString(response.getSegmentId()));
+        assertArrayEquals(data, response.getSegmentData());
+    }
+
+    @Test
+    public void shouldDropInvalidGetSegmentResponses() throws Exception {
+        UUID uuid = new UUID(1, 2);
+        byte[] data = new byte[] {3, 4, 5};
+
+        ByteBuf buf = Unpooled.buffer();
+        buf.writeInt(data.length + 25);
+        buf.writeByte(Messages.HEADER_SEGMENT);
+        buf.writeLong(uuid.getMostSignificantBits());
+        buf.writeLong(uuid.getLeastSignificantBits());
+        buf.writeLong(hash(data) + 1);
+        buf.writeBytes(data);
+
+        EmbeddedChannel channel = new EmbeddedChannel(new ResponseDecoder());
+        channel.writeInbound(buf);
+        assertNull(channel.readInbound());
+    }
+
+}

Propchange: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/codec/ResponseDecoderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetBlobRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetBlobRequestHandlerTest.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetBlobRequestHandlerTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetBlobRequestHandlerTest.java Thu Sep 15 14:03:05 2016
@@ -17,14 +17,13 @@
 
 package org.apache.jackrabbit.oak.segment.standby.server;
 
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import io.netty.channel.embedded.EmbeddedChannel;
-import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetBlobRequest;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetBlobResponse;
 import org.junit.Test;
@@ -33,16 +32,17 @@ public class GetBlobRequestHandlerTest {
 
     @Test
     public void successfulReadsShouldGenerateResponses() throws Exception {
-        Blob blob = mock(Blob.class);
+        byte[] blobData = new byte[] {99, 114, 97, 112};
 
         StandbyBlobReader reader = mock(StandbyBlobReader.class);
-        when(reader.readBlob("blobId")).thenReturn(blob);
+        when(reader.readBlob("blobId")).thenReturn(blobData);
 
         EmbeddedChannel channel = new EmbeddedChannel(new GetBlobRequestHandler(reader));
         channel.writeInbound(new GetBlobRequest("clientId", "blobId"));
         GetBlobResponse response = (GetBlobResponse) channel.readOutbound();
         assertEquals("clientId", response.getClientId());
-        assertSame(blob, response.getBlob());
+        assertEquals("blobId", response.getBlobId());
+        assertArrayEquals(blobData, response.getBlobData());
     }
 
     @Test

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetHeadRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetHeadRequestHandlerTest.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetHeadRequestHandlerTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetHeadRequestHandlerTest.java Thu Sep 15 14:03:05 2016
@@ -17,15 +17,12 @@
 
 package org.apache.jackrabbit.oak.segment.standby.server;
 
-import static org.apache.jackrabbit.oak.segment.standby.StandbyTestUtils.mockRecordId;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import io.netty.channel.embedded.EmbeddedChannel;
-import org.apache.jackrabbit.oak.segment.RecordId;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetHeadRequest;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetHeadResponse;
 import org.junit.Test;
@@ -34,15 +31,13 @@ public class GetHeadRequestHandlerTest {
 
     @Test
     public void successfulReadsShouldGenerateResponses() throws Exception {
-        RecordId headRecordId = mockRecordId(1, 2, 8);
-
         StandbyHeadReader reader = mock(StandbyHeadReader.class);
-        when(reader.readHeadRecordId()).thenReturn(headRecordId);
+        when(reader.readHeadRecordId()).thenReturn("recordId");
 
         EmbeddedChannel channel = new EmbeddedChannel(new GetHeadRequestHandler(reader));
         channel.writeInbound(new GetHeadRequest("clientId"));
         GetHeadResponse response = (GetHeadResponse) channel.readOutbound();
-        assertSame(headRecordId, response.getHeadRecordId());
+        assertEquals("recordId", response.getHeadRecordId());
         assertEquals("clientId", response.getClientId());
     }
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetSegmentRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetSegmentRequestHandlerTest.java?rev=1760934&r1=1760933&r2=1760934&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetSegmentRequestHandlerTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/server/GetSegmentRequestHandlerTest.java Thu Sep 15 14:03:05 2016
@@ -17,17 +17,15 @@
 
 package org.apache.jackrabbit.oak.segment.standby.server;
 
-import static org.apache.jackrabbit.oak.segment.standby.StandbyTestUtils.mockSegment;
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.util.UUID;
 
 import io.netty.channel.embedded.EmbeddedChannel;
-import org.apache.jackrabbit.oak.segment.Segment;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetSegmentRequest;
 import org.apache.jackrabbit.oak.segment.standby.codec.GetSegmentResponse;
 import org.junit.Test;
@@ -36,18 +34,17 @@ public class GetSegmentRequestHandlerTes
 
     @Test
     public void successfulReadsShouldGenerateResponses() throws Exception {
-        UUID uuid = new UUID(1, 2);
-
-        Segment segment = mockSegment(uuid, new byte[] {3, 4, 5});
+        byte[] data = new byte[] {3, 4, 5};
 
         StandbySegmentReader reader = mock(StandbySegmentReader.class);
-        when(reader.readSegment(uuid)).thenReturn(segment);
+        when(reader.readSegment("segmentId")).thenReturn(data);
 
         EmbeddedChannel channel = new EmbeddedChannel(new GetSegmentRequestHandler(reader));
-        channel.writeInbound(new GetSegmentRequest("clientId", uuid));
+        channel.writeInbound(new GetSegmentRequest("clientId", "segmentId"));
         GetSegmentResponse response = (GetSegmentResponse) channel.readOutbound();
         assertEquals("clientId", response.getClientId());
-        assertSame(segment, response.getSegment());
+        assertEquals("segmentId", response.getSegmentId());
+        assertArrayEquals(data, response.getSegmentData());
     }
 
     @Test
@@ -55,10 +52,10 @@ public class GetSegmentRequestHandlerTes
         UUID uuid = new UUID(1, 2);
 
         StandbySegmentReader reader = mock(StandbySegmentReader.class);
-        when(reader.readSegment(uuid)).thenReturn(null);
+        when(reader.readSegment(uuid.toString())).thenReturn(null);
 
         EmbeddedChannel channel = new EmbeddedChannel(new GetSegmentRequestHandler(reader));
-        channel.writeInbound(new GetSegmentRequest("clientId", uuid));
+        channel.writeInbound(new GetSegmentRequest("clientId", uuid.toString()));
         assertNull(channel.readOutbound());
     }