You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by cu...@apache.org on 2011/09/13 03:30:43 UTC
svn commit: r1170003 - in /avro/trunk/lang/java: pom.xml
protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java
protobuf/src/test/java/org/apache/avro/protobuf/TestProtobuf.java
Author: cutting
Date: Tue Sep 13 01:30:43 2011
New Revision: 1170003
URL: http://svn.apache.org/viewvc?rev=1170003&view=rev
Log:
AVRO-805. Fix to work with either protobuf 2.3 or 2.4.
Modified:
avro/trunk/lang/java/pom.xml
avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java
avro/trunk/lang/java/protobuf/src/test/java/org/apache/avro/protobuf/TestProtobuf.java
Modified: avro/trunk/lang/java/pom.xml
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/pom.xml?rev=1170003&r1=1170002&r2=1170003&view=diff
==============================================================================
--- avro/trunk/lang/java/pom.xml (original)
+++ avro/trunk/lang/java/pom.xml Tue Sep 13 01:30:43 2011
@@ -46,7 +46,7 @@
<netty-version>3.2.4.Final</netty-version>
<jopt-simple-version>3.2</jopt-simple-version>
<snappy-version>1.0.3.2</snappy-version>
- <protobuf-version>2.4.1</protobuf-version>
+ <protobuf-version>2.3.0</protobuf-version>
</properties>
<build>
Modified: avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java?rev=1170003&r1=1170002&r2=1170003&view=diff
==============================================================================
--- avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java (original)
+++ avro/trunk/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java Tue Sep 13 01:30:43 2011
@@ -33,8 +33,8 @@ import org.apache.avro.generic.GenericDa
import org.apache.avro.specific.SpecificData;
import com.google.protobuf.ByteString;
+import com.google.protobuf.Message;
import com.google.protobuf.Message.Builder;
-import com.google.protobuf.MessageOrBuilder;
import com.google.protobuf.ProtocolMessageEnum;
import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.Descriptors.FieldDescriptor;
@@ -79,23 +79,23 @@ public class ProtobufData extends Generi
@Override
public Object getField(Object record, String name, int position) {
- MessageOrBuilder b = (MessageOrBuilder)record;
- FieldDescriptor f = getFieldDescriptor(b.getDescriptorForType(), position);
+ Message m = (Message)record;
+ FieldDescriptor f = getFieldDescriptor(m.getDescriptorForType(), position);
switch (f.getType()) {
case ENUM:
Schema s = getSchema(f);
try {
Class c = Class.forName(SpecificData.getClassName(s));
- EnumValueDescriptor symbol = (EnumValueDescriptor)b.getField(f);
+ EnumValueDescriptor symbol = (EnumValueDescriptor)m.getField(f);
return Enum.valueOf(c, symbol.getName());
} catch (Exception e) {
throw new RuntimeException(e);
}
case MESSAGE:
- if (!b.hasField(f))
+ if (!m.hasField(f))
return null;
default:
- return b.getField(f);
+ return m.getField(f);
}
}
@@ -116,7 +116,7 @@ public class ProtobufData extends Generi
@Override
protected boolean isRecord(Object datum) {
- return datum instanceof MessageOrBuilder;
+ return datum instanceof Message;
}
@Override
@@ -146,7 +146,7 @@ public class ProtobufData extends Generi
@Override
protected Schema getRecordSchema(Object record) {
- return getSchema(((MessageOrBuilder)record).getDescriptorForType());
+ return getSchema(((Message)record).getDescriptorForType());
}
private final Map<Class,Schema> schemaCache
Modified: avro/trunk/lang/java/protobuf/src/test/java/org/apache/avro/protobuf/TestProtobuf.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/protobuf/src/test/java/org/apache/avro/protobuf/TestProtobuf.java?rev=1170003&r1=1170002&r2=1170003&view=diff
==============================================================================
--- avro/trunk/lang/java/protobuf/src/test/java/org/apache/avro/protobuf/TestProtobuf.java (original)
+++ avro/trunk/lang/java/protobuf/src/test/java/org/apache/avro/protobuf/TestProtobuf.java Tue Sep 13 01:30:43 2011
@@ -55,6 +55,8 @@ public class TestProtobuf {
builder.setEnum(A.X);
builder.addIntArray(27);
Foo fooInner = builder.build();
+
+ builder = Foo.newBuilder(fooInner);
builder.setFoo(fooInner);
Foo foo = builder.build();