Use Protobuf Json formatting for routeguide example

This commit is contained in:
Carl Mastrangelo 2016-03-02 09:30:35 -08:00
parent 3a4b266b4f
commit 8e1fba7c90
8 changed files with 1345 additions and 641 deletions

View File

@ -135,6 +135,7 @@ subprojects {
protobuf: "com.google.protobuf:protobuf-java:${protobufVersion}",
protobuf_nano: "com.google.protobuf.nano:protobuf-javanano:${protobufNanoVersion}",
protobuf_plugin: 'com.google.protobuf:protobuf-gradle-plugin:0.7.4',
protobuf_util: "com.google.protobuf:protobuf-java-util:${protobufVersion}",
netty: 'io.netty:netty-codec-http2:4.1.0.CR3',
netty_epoll: 'io.netty:netty-transport-native-epoll:4.1.0.CR3' + epoll_suffix,

View File

@ -29,7 +29,7 @@ dependencies {
project(':grpc-netty'),
project(':grpc-protobuf'),
project(':grpc-stub'),
'org.glassfish:javax.json:1.0.4'
libraries.protobuf_util
}
configureProtoCompilation()

View File

@ -0,0 +1,663 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: route_guide.proto
package io.grpc.examples.routeguide;
/**
* Protobuf type {@code routeguide.FeatureDatabase}
*
* <pre>
* Not used in the RPC. Instead, this is here for the form serialized to disk.
* </pre>
*/
public final class FeatureDatabase extends
com.google.protobuf.GeneratedMessage implements
// @@protoc_insertion_point(message_implements:routeguide.FeatureDatabase)
FeatureDatabaseOrBuilder {
// Use FeatureDatabase.newBuilder() to construct.
private FeatureDatabase(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
super(builder);
}
private FeatureDatabase() {
feature_ = java.util.Collections.emptyList();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
}
private FeatureDatabase(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
this();
int mutable_bitField0_ = 0;
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!input.skipField(tag)) {
done = true;
}
break;
}
case 10: {
if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
feature_ = new java.util.ArrayList<io.grpc.examples.routeguide.Feature>();
mutable_bitField0_ |= 0x00000001;
}
feature_.add(input.readMessage(io.grpc.examples.routeguide.Feature.parser(), extensionRegistry));
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw new RuntimeException(e.setUnfinishedMessage(this));
} catch (java.io.IOException e) {
throw new RuntimeException(
new com.google.protobuf.InvalidProtocolBufferException(
e.getMessage()).setUnfinishedMessage(this));
} finally {
if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
feature_ = java.util.Collections.unmodifiableList(feature_);
}
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.grpc.examples.routeguide.RouteGuideProto.internal_static_routeguide_FeatureDatabase_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.grpc.examples.routeguide.RouteGuideProto.internal_static_routeguide_FeatureDatabase_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.grpc.examples.routeguide.FeatureDatabase.class, io.grpc.examples.routeguide.FeatureDatabase.Builder.class);
}
public static final int FEATURE_FIELD_NUMBER = 1;
private java.util.List<io.grpc.examples.routeguide.Feature> feature_;
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public java.util.List<io.grpc.examples.routeguide.Feature> getFeatureList() {
return feature_;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public java.util.List<? extends io.grpc.examples.routeguide.FeatureOrBuilder>
getFeatureOrBuilderList() {
return feature_;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public int getFeatureCount() {
return feature_.size();
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public io.grpc.examples.routeguide.Feature getFeature(int index) {
return feature_.get(index);
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public io.grpc.examples.routeguide.FeatureOrBuilder getFeatureOrBuilder(
int index) {
return feature_.get(index);
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
for (int i = 0; i < feature_.size(); i++) {
output.writeMessage(1, feature_.get(i));
}
}
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
for (int i = 0; i < feature_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, feature_.get(i));
}
memoizedSize = size;
return size;
}
private static final long serialVersionUID = 0L;
public static io.grpc.examples.routeguide.FeatureDatabase parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.grpc.examples.routeguide.FeatureDatabase parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.grpc.examples.routeguide.FeatureDatabase parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.grpc.examples.routeguide.FeatureDatabase parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.grpc.examples.routeguide.FeatureDatabase parseFrom(java.io.InputStream input)
throws java.io.IOException {
return PARSER.parseFrom(input);
}
public static io.grpc.examples.routeguide.FeatureDatabase parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseFrom(input, extensionRegistry);
}
public static io.grpc.examples.routeguide.FeatureDatabase parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return PARSER.parseDelimitedFrom(input);
}
public static io.grpc.examples.routeguide.FeatureDatabase parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseDelimitedFrom(input, extensionRegistry);
}
public static io.grpc.examples.routeguide.FeatureDatabase parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return PARSER.parseFrom(input);
}
public static io.grpc.examples.routeguide.FeatureDatabase parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseFrom(input, extensionRegistry);
}
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(io.grpc.examples.routeguide.FeatureDatabase prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* Protobuf type {@code routeguide.FeatureDatabase}
*
* <pre>
* Not used in the RPC. Instead, this is here for the form serialized to disk.
* </pre>
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:routeguide.FeatureDatabase)
io.grpc.examples.routeguide.FeatureDatabaseOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.grpc.examples.routeguide.RouteGuideProto.internal_static_routeguide_FeatureDatabase_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.grpc.examples.routeguide.RouteGuideProto.internal_static_routeguide_FeatureDatabase_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.grpc.examples.routeguide.FeatureDatabase.class, io.grpc.examples.routeguide.FeatureDatabase.Builder.class);
}
// Construct using io.grpc.examples.routeguide.FeatureDatabase.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getFeatureFieldBuilder();
}
}
public Builder clear() {
super.clear();
if (featureBuilder_ == null) {
feature_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
} else {
featureBuilder_.clear();
}
return this;
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return io.grpc.examples.routeguide.RouteGuideProto.internal_static_routeguide_FeatureDatabase_descriptor;
}
public io.grpc.examples.routeguide.FeatureDatabase getDefaultInstanceForType() {
return io.grpc.examples.routeguide.FeatureDatabase.getDefaultInstance();
}
public io.grpc.examples.routeguide.FeatureDatabase build() {
io.grpc.examples.routeguide.FeatureDatabase result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
public io.grpc.examples.routeguide.FeatureDatabase buildPartial() {
io.grpc.examples.routeguide.FeatureDatabase result = new io.grpc.examples.routeguide.FeatureDatabase(this);
int from_bitField0_ = bitField0_;
if (featureBuilder_ == null) {
if (((bitField0_ & 0x00000001) == 0x00000001)) {
feature_ = java.util.Collections.unmodifiableList(feature_);
bitField0_ = (bitField0_ & ~0x00000001);
}
result.feature_ = feature_;
} else {
result.feature_ = featureBuilder_.build();
}
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof io.grpc.examples.routeguide.FeatureDatabase) {
return mergeFrom((io.grpc.examples.routeguide.FeatureDatabase)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(io.grpc.examples.routeguide.FeatureDatabase other) {
if (other == io.grpc.examples.routeguide.FeatureDatabase.getDefaultInstance()) return this;
if (featureBuilder_ == null) {
if (!other.feature_.isEmpty()) {
if (feature_.isEmpty()) {
feature_ = other.feature_;
bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensureFeatureIsMutable();
feature_.addAll(other.feature_);
}
onChanged();
}
} else {
if (!other.feature_.isEmpty()) {
if (featureBuilder_.isEmpty()) {
featureBuilder_.dispose();
featureBuilder_ = null;
feature_ = other.feature_;
bitField0_ = (bitField0_ & ~0x00000001);
featureBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getFeatureFieldBuilder() : null;
} else {
featureBuilder_.addAllMessages(other.feature_);
}
}
}
onChanged();
return this;
}
public final boolean isInitialized() {
return true;
}
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
io.grpc.examples.routeguide.FeatureDatabase parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (io.grpc.examples.routeguide.FeatureDatabase) e.getUnfinishedMessage();
throw e;
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int bitField0_;
private java.util.List<io.grpc.examples.routeguide.Feature> feature_ =
java.util.Collections.emptyList();
private void ensureFeatureIsMutable() {
if (!((bitField0_ & 0x00000001) == 0x00000001)) {
feature_ = new java.util.ArrayList<io.grpc.examples.routeguide.Feature>(feature_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
io.grpc.examples.routeguide.Feature, io.grpc.examples.routeguide.Feature.Builder, io.grpc.examples.routeguide.FeatureOrBuilder> featureBuilder_;
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public java.util.List<io.grpc.examples.routeguide.Feature> getFeatureList() {
if (featureBuilder_ == null) {
return java.util.Collections.unmodifiableList(feature_);
} else {
return featureBuilder_.getMessageList();
}
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public int getFeatureCount() {
if (featureBuilder_ == null) {
return feature_.size();
} else {
return featureBuilder_.getCount();
}
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public io.grpc.examples.routeguide.Feature getFeature(int index) {
if (featureBuilder_ == null) {
return feature_.get(index);
} else {
return featureBuilder_.getMessage(index);
}
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public Builder setFeature(
int index, io.grpc.examples.routeguide.Feature value) {
if (featureBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureFeatureIsMutable();
feature_.set(index, value);
onChanged();
} else {
featureBuilder_.setMessage(index, value);
}
return this;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public Builder setFeature(
int index, io.grpc.examples.routeguide.Feature.Builder builderForValue) {
if (featureBuilder_ == null) {
ensureFeatureIsMutable();
feature_.set(index, builderForValue.build());
onChanged();
} else {
featureBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public Builder addFeature(io.grpc.examples.routeguide.Feature value) {
if (featureBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureFeatureIsMutable();
feature_.add(value);
onChanged();
} else {
featureBuilder_.addMessage(value);
}
return this;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public Builder addFeature(
int index, io.grpc.examples.routeguide.Feature value) {
if (featureBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureFeatureIsMutable();
feature_.add(index, value);
onChanged();
} else {
featureBuilder_.addMessage(index, value);
}
return this;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public Builder addFeature(
io.grpc.examples.routeguide.Feature.Builder builderForValue) {
if (featureBuilder_ == null) {
ensureFeatureIsMutable();
feature_.add(builderForValue.build());
onChanged();
} else {
featureBuilder_.addMessage(builderForValue.build());
}
return this;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public Builder addFeature(
int index, io.grpc.examples.routeguide.Feature.Builder builderForValue) {
if (featureBuilder_ == null) {
ensureFeatureIsMutable();
feature_.add(index, builderForValue.build());
onChanged();
} else {
featureBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public Builder addAllFeature(
java.lang.Iterable<? extends io.grpc.examples.routeguide.Feature> values) {
if (featureBuilder_ == null) {
ensureFeatureIsMutable();
com.google.protobuf.AbstractMessageLite.Builder.addAll(
values, feature_);
onChanged();
} else {
featureBuilder_.addAllMessages(values);
}
return this;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public Builder clearFeature() {
if (featureBuilder_ == null) {
feature_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
} else {
featureBuilder_.clear();
}
return this;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public Builder removeFeature(int index) {
if (featureBuilder_ == null) {
ensureFeatureIsMutable();
feature_.remove(index);
onChanged();
} else {
featureBuilder_.remove(index);
}
return this;
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public io.grpc.examples.routeguide.Feature.Builder getFeatureBuilder(
int index) {
return getFeatureFieldBuilder().getBuilder(index);
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public io.grpc.examples.routeguide.FeatureOrBuilder getFeatureOrBuilder(
int index) {
if (featureBuilder_ == null) {
return feature_.get(index); } else {
return featureBuilder_.getMessageOrBuilder(index);
}
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public java.util.List<? extends io.grpc.examples.routeguide.FeatureOrBuilder>
getFeatureOrBuilderList() {
if (featureBuilder_ != null) {
return featureBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(feature_);
}
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public io.grpc.examples.routeguide.Feature.Builder addFeatureBuilder() {
return getFeatureFieldBuilder().addBuilder(
io.grpc.examples.routeguide.Feature.getDefaultInstance());
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public io.grpc.examples.routeguide.Feature.Builder addFeatureBuilder(
int index) {
return getFeatureFieldBuilder().addBuilder(
index, io.grpc.examples.routeguide.Feature.getDefaultInstance());
}
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
public java.util.List<io.grpc.examples.routeguide.Feature.Builder>
getFeatureBuilderList() {
return getFeatureFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
io.grpc.examples.routeguide.Feature, io.grpc.examples.routeguide.Feature.Builder, io.grpc.examples.routeguide.FeatureOrBuilder>
getFeatureFieldBuilder() {
if (featureBuilder_ == null) {
featureBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
io.grpc.examples.routeguide.Feature, io.grpc.examples.routeguide.Feature.Builder, io.grpc.examples.routeguide.FeatureOrBuilder>(
feature_,
((bitField0_ & 0x00000001) == 0x00000001),
getParentForChildren(),
isClean());
feature_ = null;
}
return featureBuilder_;
}
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return this;
}
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return this;
}
// @@protoc_insertion_point(builder_scope:routeguide.FeatureDatabase)
}
// @@protoc_insertion_point(class_scope:routeguide.FeatureDatabase)
private static final io.grpc.examples.routeguide.FeatureDatabase DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.grpc.examples.routeguide.FeatureDatabase();
}
public static io.grpc.examples.routeguide.FeatureDatabase getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser<FeatureDatabase>
PARSER = new com.google.protobuf.AbstractParser<FeatureDatabase>() {
public FeatureDatabase parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
try {
return new FeatureDatabase(input, extensionRegistry);
} catch (RuntimeException e) {
if (e.getCause() instanceof
com.google.protobuf.InvalidProtocolBufferException) {
throw (com.google.protobuf.InvalidProtocolBufferException)
e.getCause();
}
throw e;
}
}
};
public static com.google.protobuf.Parser<FeatureDatabase> parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser<FeatureDatabase> getParserForType() {
return PARSER;
}
public io.grpc.examples.routeguide.FeatureDatabase getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}

View File

@ -0,0 +1,33 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: route_guide.proto
package io.grpc.examples.routeguide;
public interface FeatureDatabaseOrBuilder extends
// @@protoc_insertion_point(interface_extends:routeguide.FeatureDatabase)
com.google.protobuf.MessageOrBuilder {
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
java.util.List<io.grpc.examples.routeguide.Feature>
getFeatureList();
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
io.grpc.examples.routeguide.Feature getFeature(int index);
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
int getFeatureCount();
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
java.util.List<? extends io.grpc.examples.routeguide.FeatureOrBuilder>
getFeatureOrBuilderList();
/**
* <code>repeated .routeguide.Feature feature = 1;</code>
*/
io.grpc.examples.routeguide.FeatureOrBuilder getFeatureOrBuilder(
int index);
}

View File

@ -23,6 +23,11 @@ public final class RouteGuideProto {
static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_routeguide_Feature_fieldAccessorTable;
static com.google.protobuf.Descriptors.Descriptor
internal_static_routeguide_FeatureDatabase_descriptor;
static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_routeguide_FeatureDatabase_fieldAccessorTable;
static com.google.protobuf.Descriptors.Descriptor
internal_static_routeguide_RouteNote_descriptor;
static
@ -47,19 +52,21 @@ public final class RouteGuideProto {
"\tRectangle\022\035\n\002lo\030\001 \001(\0132\021.routeguide.Poin" +
"t\022\035\n\002hi\030\002 \001(\0132\021.routeguide.Point\"<\n\007Feat" +
"ure\022\014\n\004name\030\001 \001(\t\022#\n\010location\030\002 \001(\0132\021.ro" +
"uteguide.Point\"A\n\tRouteNote\022#\n\010location\030" +
"\001 \001(\0132\021.routeguide.Point\022\017\n\007message\030\002 \001(" +
"\t\"b\n\014RouteSummary\022\023\n\013point_count\030\001 \001(\005\022\025" +
"\n\rfeature_count\030\002 \001(\005\022\020\n\010distance\030\003 \001(\005\022" +
"\024\n\014elapsed_time\030\004 \001(\0052\205\002\n\nRouteGuide\0226\n\n",
"GetFeature\022\021.routeguide.Point\032\023.routegui" +
"de.Feature\"\000\022>\n\014ListFeatures\022\025.routeguid" +
"e.Rectangle\032\023.routeguide.Feature\"\0000\001\022>\n\013" +
"RecordRoute\022\021.routeguide.Point\032\030.routegu" +
"ide.RouteSummary\"\000(\001\022?\n\tRouteChat\022\025.rout" +
"eguide.RouteNote\032\025.routeguide.RouteNote\"" +
"\000(\0010\001B6\n\033io.grpc.examples.routeguideB\017Ro" +
"uteGuideProtoP\001\242\002\003RTGb\006proto3"
"uteguide.Point\"7\n\017FeatureDatabase\022$\n\007fea" +
"ture\030\001 \003(\0132\023.routeguide.Feature\"A\n\tRoute" +
"Note\022#\n\010location\030\001 \001(\0132\021.routeguide.Poin" +
"t\022\017\n\007message\030\002 \001(\t\"b\n\014RouteSummary\022\023\n\013po" +
"int_count\030\001 \001(\005\022\025\n\rfeature_count\030\002 \001(\005\022\020",
"\n\010distance\030\003 \001(\005\022\024\n\014elapsed_time\030\004 \001(\0052\205" +
"\002\n\nRouteGuide\0226\n\nGetFeature\022\021.routeguide" +
".Point\032\023.routeguide.Feature\"\000\022>\n\014ListFea" +
"tures\022\025.routeguide.Rectangle\032\023.routeguid" +
"e.Feature\"\0000\001\022>\n\013RecordRoute\022\021.routeguid" +
"e.Point\032\030.routeguide.RouteSummary\"\000(\001\022?\n" +
"\tRouteChat\022\025.routeguide.RouteNote\032\025.rout" +
"eguide.RouteNote\"\000(\0010\001B6\n\033io.grpc.exampl" +
"es.routeguideB\017RouteGuideProtoP\001\242\002\003RTGb\006" +
"proto3"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
@ -91,14 +98,20 @@ public final class RouteGuideProto {
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_routeguide_Feature_descriptor,
new java.lang.String[] { "Name", "Location", });
internal_static_routeguide_RouteNote_descriptor =
internal_static_routeguide_FeatureDatabase_descriptor =
getDescriptor().getMessageTypes().get(3);
internal_static_routeguide_FeatureDatabase_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_routeguide_FeatureDatabase_descriptor,
new java.lang.String[] { "Feature", });
internal_static_routeguide_RouteNote_descriptor =
getDescriptor().getMessageTypes().get(4);
internal_static_routeguide_RouteNote_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_routeguide_RouteNote_descriptor,
new java.lang.String[] { "Location", "Message", });
internal_static_routeguide_RouteSummary_descriptor =
getDescriptor().getMessageTypes().get(4);
getDescriptor().getMessageTypes().get(5);
internal_static_routeguide_RouteSummary_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_routeguide_RouteSummary_descriptor,

View File

@ -31,17 +31,15 @@
package io.grpc.examples.routeguide;
import com.google.protobuf.util.JsonFormat;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonValue;
/**
* Common utilities for the RouteGuide demo.
*/
@ -75,25 +73,14 @@ public class RouteGuideUtil {
public static List<Feature> parseFeatures(URL file) throws IOException {
InputStream input = file.openStream();
try {
JsonReader reader = Json.createReader(input);
List<Feature> features = new ArrayList<Feature>();
for (JsonValue value : reader.readArray()) {
JsonObject obj = (JsonObject) value;
String name = obj.getString("name", "");
JsonObject location = obj.getJsonObject("location");
int lat = location.getInt("latitude");
int lon = location.getInt("longitude");
Feature feature =
Feature
.newBuilder()
.setName(name)
.setLocation(
Point.newBuilder().setLatitude(lat)
.setLongitude(lon).build()).build();
features.add(feature);
Reader reader = new InputStreamReader(input);
try {
FeatureDatabase.Builder database = FeatureDatabase.newBuilder();
JsonFormat.parser().merge(reader, database);
return database.getFeatureList();
} finally {
reader.close();
}
return features;
} finally {
input.close();
}

View File

@ -97,6 +97,11 @@ message Feature {
Point location = 2;
}
// Not used in the RPC. Instead, this is here for the form serialized to disk.
message FeatureDatabase {
repeated Feature feature = 1;
}
// A RouteNote is a message sent while at a given point.
message RouteNote {
// The location from which the message is sent.