summaryrefslogtreecommitdiffstats
path: root/documentapi/src/main
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@oath.com>2018-01-17 15:50:14 +0100
committerGeir Storli <geirst@oath.com>2018-01-29 15:32:14 +0000
commit716d43a04a0fb720e8d1d8a77fbca9e7505acceb (patch)
treea47ce355765056fabf4730b385b53f5cfe53229e /documentapi/src/main
parent710d9ad634015c3ad7d3f1cc419db5ce11862e8c (diff)
WIP on bucket space enabled protocol version for Java
Diffstat (limited to 'documentapi/src/main')
-rwxr-xr-xdocumentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java8
-rwxr-xr-xdocumentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories51.java13
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories60.java22
3 files changed, 41 insertions, 2 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java
index e1e501d3e1b..dac3d50db40 100755
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java
@@ -298,10 +298,12 @@ public class DocumentProtocol implements Protocol {
VersionSpecification version50 = new VersionSpecification(5, 0);
VersionSpecification version51 = new VersionSpecification(5, 1);
VersionSpecification version52 = new VersionSpecification(5, 115);
+ VersionSpecification version6 = new VersionSpecification(6, 999); // TODO change once stable protocol
List<VersionSpecification> from50 = Arrays.asList(version50, version51, version52);
List<VersionSpecification> from51 = Arrays.asList(version51, version52);
- List<VersionSpecification> from52 = Arrays.asList(version52);
+ List<VersionSpecification> from52 = Collections.singletonList(version52);
+ List<VersionSpecification> from6 = Collections.singletonList(version6); // TODO decide minor version...
// 5.0 serialization (keep alphabetized please)
putRoutableFactory(MESSAGE_BATCHDOCUMENTUPDATE, new RoutableFactories50.BatchDocumentUpdateMessageFactory(), from50);
@@ -352,6 +354,10 @@ public class DocumentProtocol implements Protocol {
putRoutableFactory(MESSAGE_PUTDOCUMENT, new RoutableFactories52.PutDocumentMessageFactory(), from52);
putRoutableFactory(MESSAGE_UPDATEDOCUMENT, new RoutableFactories52.UpdateDocumentMessageFactory(), from52);
putRoutableFactory(MESSAGE_REMOVEDOCUMENT, new RoutableFactories52.RemoveDocumentMessageFactory(), from52);
+
+ // 6.x serialization
+ // TODO stat, listbuckets
+ putRoutableFactory(MESSAGE_CREATEVISITOR, new RoutableFactories60.CreateVisitorMessageFactory(), from6);
}
/**
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories51.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories51.java
index c2f986b8fb8..1754209fc06 100755
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories51.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories51.java
@@ -5,6 +5,7 @@ import com.yahoo.document.BucketId;
import com.yahoo.document.DocumentId;
import com.yahoo.document.serialization.DocumentDeserializer;
import com.yahoo.document.serialization.DocumentSerializer;
+import com.yahoo.vespa.objects.Deserializer;
import java.util.Map;
@@ -17,6 +18,10 @@ public abstract class RoutableFactories51 extends RoutableFactories50 {
public static class CreateVisitorMessageFactory extends DocumentMessageFactory {
+ protected String decodeBucketSpace(Deserializer deserializer) {
+ return "default"; // TODO fixed space repo
+ }
+
@Override
protected DocumentMessage doDecode(DocumentDeserializer buf) {
CreateVisitorMessage msg = new CreateVisitorMessage();
@@ -53,9 +58,15 @@ public abstract class RoutableFactories51 extends RoutableFactories50 {
msg.setVisitorOrdering(buf.getInt(null));
msg.setMaxBucketsPerVisitor(buf.getInt(null));
msg.setVisitorDispatcherVersion(50);
+ msg.setBucketSpace(decodeBucketSpace(buf));
return msg;
}
+ protected boolean encodeBucketSpace(String bucketSpace) {
+ // TODO fixed space repo
+ return "default".equals(bucketSpace);
+ }
+
@Override
protected boolean doEncode(DocumentMessage obj, DocumentSerializer buf) {
CreateVisitorMessage msg = (CreateVisitorMessage)obj;
@@ -92,7 +103,7 @@ public abstract class RoutableFactories51 extends RoutableFactories50 {
buf.putInt(null, msg.getVisitorOrdering());
buf.putInt(null, msg.getMaxBucketsPerVisitor());
- return true;
+ return encodeBucketSpace(msg.getBucketSpace());
}
}
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories60.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories60.java
new file mode 100644
index 00000000000..11a707c44de
--- /dev/null
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories60.java
@@ -0,0 +1,22 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.documentapi.messagebus.protocol;
+
+import com.yahoo.vespa.objects.Deserializer;
+
+public class RoutableFactories60 extends RoutableFactories52 {
+
+ public static class CreateVisitorMessageFactory extends RoutableFactories52.CreateVisitorMessageFactory {
+ @Override
+ protected String decodeBucketSpace(Deserializer deserializer) {
+ // TODO le test~
+ return super.decodeBucketSpace(deserializer);
+ }
+
+ @Override
+ protected boolean encodeBucketSpace(String bucketSpace) {
+ // TODO le test~
+ return super.encodeBucketSpace(bucketSpace);
+ }
+ }
+
+}