aboutsummaryrefslogtreecommitdiff
path: root/conformance/ConformanceJava.java
diff options
context:
space:
mode:
Diffstat (limited to 'conformance/ConformanceJava.java')
-rw-r--r--conformance/ConformanceJava.java32
1 files changed, 24 insertions, 8 deletions
diff --git a/conformance/ConformanceJava.java b/conformance/ConformanceJava.java
index d1ce4059f..008f3bc7a 100644
--- a/conformance/ConformanceJava.java
+++ b/conformance/ConformanceJava.java
@@ -1,16 +1,17 @@
-import com.google.protobuf.ByteString;
import com.google.protobuf.AbstractMessage;
-import com.google.protobuf.Parser;
+import com.google.protobuf.ByteString;
import com.google.protobuf.CodedInputStream;
-import com.google.protobuf.conformance.Conformance;
-import com.google.protobuf.InvalidProtocolBufferException;
-import com.google.protobuf_test_messages.proto3.TestMessagesProto3;
-import com.google.protobuf_test_messages.proto3.TestMessagesProto3.TestAllTypesProto3;
-import com.google.protobuf_test_messages.proto2.TestMessagesProto2;
-import com.google.protobuf_test_messages.proto2.TestMessagesProto2.TestAllTypesProto2;
import com.google.protobuf.ExtensionRegistry;
+import com.google.protobuf.InvalidProtocolBufferException;
+import com.google.protobuf.Parser;
+import com.google.protobuf.TextFormat;
+import com.google.protobuf.conformance.Conformance;
import com.google.protobuf.util.JsonFormat;
import com.google.protobuf.util.JsonFormat.TypeRegistry;
+import com.google.protobuf_test_messages.proto2.TestMessagesProto2;
+import com.google.protobuf_test_messages.proto2.TestMessagesProto2.TestAllTypesProto2;
+import com.google.protobuf_test_messages.proto3.TestMessagesProto3;
+import com.google.protobuf_test_messages.proto3.TestMessagesProto3.TestAllTypesProto3;
import java.nio.ByteBuffer;
import java.util.ArrayList;
@@ -247,6 +248,17 @@ class ConformanceJava {
}
break;
}
+ case TEXT_PAYLOAD: {
+ try {
+ TestMessagesProto3.TestAllTypesProto3.Builder builder =
+ TestMessagesProto3.TestAllTypesProto3.newBuilder();
+ TextFormat.merge(request.getTextPayload(), builder);
+ testMessage = builder.build();
+ } catch (TextFormat.ParseException e) {
+ return Conformance.ConformanceResponse.newBuilder().setParseError(e.getMessage()).build();
+ }
+ break;
+ }
case PAYLOAD_NOT_SET: {
throw new RuntimeException("Request didn't have payload.");
}
@@ -274,6 +286,10 @@ class ConformanceJava {
e.getMessage()).build();
}
+ case TEXT_FORMAT:
+ return Conformance.ConformanceResponse.newBuilder().setTextPayload(
+ TextFormat.printToString(testMessage)).build();
+
default: {
throw new RuntimeException("Unexpected request output.");
}