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/08/26 22:54:52 UTC
svn commit: r1162253 [2/2] - in /avro/trunk: ./
lang/java/avro/src/main/java/org/apache/avro/
lang/java/avro/src/main/java/org/apache/avro/data/
lang/java/avro/src/main/java/org/apache/avro/generic/
lang/java/avro/src/main/java/org/apache/avro/io/parsi...
Modified: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/compiler/specific/TestSpecificCompiler.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/compiler/specific/TestSpecificCompiler.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/compiler/specific/TestSpecificCompiler.java (original)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/compiler/specific/TestSpecificCompiler.java Fri Aug 26 20:54:50 2011
@@ -24,6 +24,7 @@ import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -36,6 +37,8 @@ import javax.tools.JavaCompiler.Compilat
import org.apache.avro.AvroTestUtil;
import org.apache.avro.Protocol;
import org.apache.avro.Schema;
+import org.apache.avro.Schema.Field;
+import org.apache.avro.Schema.Type;
import org.apache.avro.TestProtocolParsing;
import org.apache.avro.TestSchema;
import org.apache.avro.compiler.specific.SpecificCompiler.OutputFile;
@@ -222,6 +225,404 @@ public class TestSpecificCompiler {
SpecificCompiler.compileSchema(inputFile, outputDir);
assertTrue(lastModified != outputFile.lastModified());
}
+
+ /**
+ * Creates a record with the given name, error status, and fields.
+ * @param name the name of the schema.
+ * @param isError true if the schema represents an error; false otherwise.
+ * @param fields the field(s) to add to the schema.
+ * @return the schema.
+ */
+ private Schema createRecord(String name,
+ boolean isError, Field... fields) {
+ Schema record = Schema.createRecord(name, null, null, isError);
+ record.setFields(Arrays.asList(fields));
+ return record;
+ }
+
+ @Test
+ public void generateGetMethod() {
+ Field height = new Field("height", Schema.create(Type.INT), null, null);
+ Field Height = new Field("Height", Schema.create(Type.INT), null, null);
+ Field height_and_width =
+ new Field("height_and_width", Schema.create(Type.STRING), null, null);
+ Field message =
+ new Field("message", Schema.create(Type.STRING), null, null);
+ Field Message =
+ new Field("Message", Schema.create(Type.STRING), null, null);
+ Field cause =
+ new Field("cause", Schema.create(Type.STRING), null, null);
+ Field clasz =
+ new Field("class", Schema.create(Type.STRING), null, null);
+ Field schema =
+ new Field("schema", Schema.create(Type.STRING), null, null);
+ Field Schema$ =
+ new Field("Schema", Schema.create(Type.STRING), null, null);
+
+ assertEquals("getHeight", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, height), height));
+
+ assertEquals("getHeightAndWidth", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, height_and_width), height_and_width));
+
+ assertEquals("getMessage", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, message), message));
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ assertEquals("getMessage$", SpecificCompiler.generateGetMethod(
+ createRecord("test", true, message), message));
+
+ assertEquals("getCause", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, cause), cause));
+ cause = new Field("cause", Schema.create(Type.STRING), null, null);
+ assertEquals("getCause$", SpecificCompiler.generateGetMethod(
+ createRecord("test", true, cause), cause));
+
+
+ assertEquals("getClass$", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, clasz), clasz));
+ clasz = new Field("class", Schema.create(Type.STRING), null, null);
+ assertEquals("getClass$", SpecificCompiler.generateGetMethod(
+ createRecord("test", true, clasz), clasz));
+
+ assertEquals("getSchema$", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, schema), schema));
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ assertEquals("getSchema$", SpecificCompiler.generateGetMethod(
+ createRecord("test", true, schema), schema));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("getHeight", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, Height), Height));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("getHeight$0", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, height, Height), height));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("getHeight$1", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, height, Height), Height));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("getMessage$", SpecificCompiler.generateGetMethod(
+ createRecord("test", true, Message), Message));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("getMessage$0", SpecificCompiler.generateGetMethod(
+ createRecord("test", true, message, Message), message));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("getMessage$1", SpecificCompiler.generateGetMethod(
+ createRecord("test", true, message, Message), Message));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("getSchema$", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, Schema$), Schema$));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("getSchema$0", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, schema, Schema$), schema));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("getSchema$1", SpecificCompiler.generateGetMethod(
+ createRecord("test", false, schema, Schema$), Schema$));
+ }
+
+ @Test
+ public void generateSetMethod() {
+ Field height = new Field("height", Schema.create(Type.INT), null, null);
+ Field Height = new Field("Height", Schema.create(Type.INT), null, null);
+ Field height_and_width =
+ new Field("height_and_width", Schema.create(Type.STRING), null, null);
+ Field message =
+ new Field("message", Schema.create(Type.STRING), null, null);
+ Field Message =
+ new Field("Message", Schema.create(Type.STRING), null, null);
+ Field cause =
+ new Field("cause", Schema.create(Type.STRING), null, null);
+ Field clasz =
+ new Field("class", Schema.create(Type.STRING), null, null);
+ Field schema =
+ new Field("schema", Schema.create(Type.STRING), null, null);
+ Field Schema$ =
+ new Field("Schema", Schema.create(Type.STRING), null, null);
+
+ assertEquals("setHeight", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, height), height));
+
+ assertEquals("setHeightAndWidth", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, height_and_width), height_and_width));
+
+ assertEquals("setMessage", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, message), message));
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ assertEquals("setMessage$", SpecificCompiler.generateSetMethod(
+ createRecord("test", true, message), message));
+
+ assertEquals("setCause", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, cause), cause));
+ cause = new Field("cause", Schema.create(Type.STRING), null, null);
+ assertEquals("setCause$", SpecificCompiler.generateSetMethod(
+ createRecord("test", true, cause), cause));
+
+
+ assertEquals("setClass$", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, clasz), clasz));
+ clasz = new Field("class", Schema.create(Type.STRING), null, null);
+ assertEquals("setClass$", SpecificCompiler.generateSetMethod(
+ createRecord("test", true, clasz), clasz));
+
+ assertEquals("setSchema$", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, schema), schema));
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ assertEquals("setSchema$", SpecificCompiler.generateSetMethod(
+ createRecord("test", true, schema), schema));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("setHeight", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, Height), Height));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("setHeight$0", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, height, Height), height));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("setHeight$1", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, height, Height), Height));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("setMessage$", SpecificCompiler.generateSetMethod(
+ createRecord("test", true, Message), Message));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("setMessage$0", SpecificCompiler.generateSetMethod(
+ createRecord("test", true, message, Message), message));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("setMessage$1", SpecificCompiler.generateSetMethod(
+ createRecord("test", true, message, Message), Message));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("setSchema$", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, Schema$), Schema$));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("setSchema$0", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, schema, Schema$), schema));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("setSchema$1", SpecificCompiler.generateSetMethod(
+ createRecord("test", false, schema, Schema$), Schema$));
+ }
+
+ @Test
+ public void generateHasMethod() {
+ Field height = new Field("height", Schema.create(Type.INT), null, null);
+ Field Height = new Field("Height", Schema.create(Type.INT), null, null);
+ Field height_and_width =
+ new Field("height_and_width", Schema.create(Type.STRING), null, null);
+ Field message =
+ new Field("message", Schema.create(Type.STRING), null, null);
+ Field Message =
+ new Field("Message", Schema.create(Type.STRING), null, null);
+ Field cause =
+ new Field("cause", Schema.create(Type.STRING), null, null);
+ Field clasz =
+ new Field("class", Schema.create(Type.STRING), null, null);
+ Field schema =
+ new Field("schema", Schema.create(Type.STRING), null, null);
+ Field Schema$ =
+ new Field("Schema", Schema.create(Type.STRING), null, null);
+
+ assertEquals("hasHeight", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, height), height));
+
+ assertEquals("hasHeightAndWidth", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, height_and_width), height_and_width));
+
+ assertEquals("hasMessage", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, message), message));
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ assertEquals("hasMessage$", SpecificCompiler.generateHasMethod(
+ createRecord("test", true, message), message));
+
+ assertEquals("hasCause", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, cause), cause));
+ cause = new Field("cause", Schema.create(Type.STRING), null, null);
+ assertEquals("hasCause$", SpecificCompiler.generateHasMethod(
+ createRecord("test", true, cause), cause));
+
+
+ assertEquals("hasClass$", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, clasz), clasz));
+ clasz = new Field("class", Schema.create(Type.STRING), null, null);
+ assertEquals("hasClass$", SpecificCompiler.generateHasMethod(
+ createRecord("test", true, clasz), clasz));
+
+ assertEquals("hasSchema$", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, schema), schema));
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ assertEquals("hasSchema$", SpecificCompiler.generateHasMethod(
+ createRecord("test", true, schema), schema));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("hasHeight", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, Height), Height));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("hasHeight$0", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, height, Height), height));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("hasHeight$1", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, height, Height), Height));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("hasMessage$", SpecificCompiler.generateHasMethod(
+ createRecord("test", true, Message), Message));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("hasMessage$0", SpecificCompiler.generateHasMethod(
+ createRecord("test", true, message, Message), message));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("hasMessage$1", SpecificCompiler.generateHasMethod(
+ createRecord("test", true, message, Message), Message));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("hasSchema$", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, Schema$), Schema$));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("hasSchema$0", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, schema, Schema$), schema));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("hasSchema$1", SpecificCompiler.generateHasMethod(
+ createRecord("test", false, schema, Schema$), Schema$));
+ }
+
+ @Test
+ public void generateClearMethod() {
+ Field height = new Field("height", Schema.create(Type.INT), null, null);
+ Field Height = new Field("Height", Schema.create(Type.INT), null, null);
+ Field height_and_width =
+ new Field("height_and_width", Schema.create(Type.STRING), null, null);
+ Field message =
+ new Field("message", Schema.create(Type.STRING), null, null);
+ Field Message =
+ new Field("Message", Schema.create(Type.STRING), null, null);
+ Field cause =
+ new Field("cause", Schema.create(Type.STRING), null, null);
+ Field clasz =
+ new Field("class", Schema.create(Type.STRING), null, null);
+ Field schema =
+ new Field("schema", Schema.create(Type.STRING), null, null);
+ Field Schema$ =
+ new Field("Schema", Schema.create(Type.STRING), null, null);
+
+ assertEquals("clearHeight", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, height), height));
+
+ assertEquals("clearHeightAndWidth", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, height_and_width), height_and_width));
+
+ assertEquals("clearMessage", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, message), message));
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ assertEquals("clearMessage$", SpecificCompiler.generateClearMethod(
+ createRecord("test", true, message), message));
+
+ assertEquals("clearCause", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, cause), cause));
+ cause = new Field("cause", Schema.create(Type.STRING), null, null);
+ assertEquals("clearCause$", SpecificCompiler.generateClearMethod(
+ createRecord("test", true, cause), cause));
+
+
+ assertEquals("clearClass$", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, clasz), clasz));
+ clasz = new Field("class", Schema.create(Type.STRING), null, null);
+ assertEquals("clearClass$", SpecificCompiler.generateClearMethod(
+ createRecord("test", true, clasz), clasz));
+
+ assertEquals("clearSchema$", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, schema), schema));
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ assertEquals("clearSchema$", SpecificCompiler.generateClearMethod(
+ createRecord("test", true, schema), schema));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("clearHeight", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, Height), Height));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("clearHeight$0", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, height, Height), height));
+
+ height = new Field("height", Schema.create(Type.INT), null, null);
+ Height = new Field("Height", Schema.create(Type.INT), null, null);
+ assertEquals("clearHeight$1", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, height, Height), Height));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("clearMessage$", SpecificCompiler.generateClearMethod(
+ createRecord("test", true, Message), Message));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("clearMessage$0", SpecificCompiler.generateClearMethod(
+ createRecord("test", true, message, Message), message));
+
+ message = new Field("message", Schema.create(Type.STRING), null, null);
+ Message = new Field("Message", Schema.create(Type.STRING), null, null);
+ assertEquals("clearMessage$1", SpecificCompiler.generateClearMethod(
+ createRecord("test", true, message, Message), Message));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("clearSchema$", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, Schema$), Schema$));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("clearSchema$0", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, schema, Schema$), schema));
+
+ schema = new Field("schema", Schema.create(Type.STRING), null, null);
+ Schema$ = new Field("Schema", Schema.create(Type.STRING), null, null);
+ assertEquals("clearSchema$1", SpecificCompiler.generateClearMethod(
+ createRecord("test", false, schema, Schema$), Schema$));
+ }
/**
* Checks that a schema passes through the SpecificCompiler, and,
Added: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/generic/TestDeepCopy.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/generic/TestDeepCopy.java?rev=1162253&view=auto
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/generic/TestDeepCopy.java (added)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/generic/TestDeepCopy.java Fri Aug 26 20:54:50 2011
@@ -0,0 +1,102 @@
+/**
+ * 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.avro.generic;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.avro.Foo;
+import org.apache.avro.Interop;
+import org.apache.avro.Kind;
+import org.apache.avro.MD5;
+import org.apache.avro.Node;
+import org.apache.avro.Schema.Field;
+import org.apache.avro.Schema.Type;
+import org.apache.avro.specific.SpecificData;
+import org.apache.avro.util.Utf8;
+import org.junit.Test;
+
+/** Unit test for performing a deep copy of an object with a schema */
+public class TestDeepCopy {
+ @Test
+ public void testDeepCopy() {
+ // Set all non-default fields in an Interop instance:
+ Interop.Builder interopBuilder = Interop.newBuilder();
+ interopBuilder.setArrayField(
+ Arrays.asList(new Double[] { 1.1, 1.2, 1.3, 1.4 }));
+ interopBuilder.setBoolField(true);
+ interopBuilder.setBytesField(ByteBuffer.wrap(new byte[] { 1, 2, 3, 4 }));
+ interopBuilder.setDoubleField(3.14d);
+ interopBuilder.setEnumField(Kind.B);
+ interopBuilder.setFixedField(new MD5(new byte[] {
+ 4, 3, 2, 1, 4, 3, 2, 1, 4, 3, 2, 1, 4, 3, 2, 1 }));
+ interopBuilder.setFloatField(6.022f);
+ interopBuilder.setIntField(32);
+ interopBuilder.setLongField(64L);
+
+ Map<java.lang.CharSequence,org.apache.avro.Foo> map =
+ new HashMap<java.lang.CharSequence,org.apache.avro.Foo>(1);
+ map.put(new Utf8("foo"),
+ Foo.newBuilder().setLabel(new Utf8("bar")).build());
+ interopBuilder.setMapField(map);
+
+ interopBuilder.setNullField(null);
+
+ Node.Builder rootBuilder = Node.newBuilder().setLabel(new Utf8("/"));
+ Node.Builder homeBuilder = Node.newBuilder().setLabel(new Utf8("home"));
+ homeBuilder.setChildren(new ArrayList<Node>(0));
+ rootBuilder.setChildren(Arrays.asList(new Node[] { homeBuilder.build() }));
+ interopBuilder.setRecordField(rootBuilder.build());
+
+ interopBuilder.setStringField(new Utf8("Hello"));
+ interopBuilder.setUnionField(true);
+
+ Interop interop = interopBuilder.build();
+
+ // Verify that deepCopy works for all fields:
+ for (Field field : Interop.SCHEMA$.getFields()) {
+ // Original field and deep copy should be equivalent:
+ if (interop.get(field.pos()) instanceof ByteBuffer) {
+ assertTrue(Arrays.equals(((ByteBuffer)interop.get(field.pos())).array(),
+ ((ByteBuffer)GenericData.get().deepCopy(field.schema(),
+ interop.get(field.pos()))).array()));
+ }
+ else {
+ assertEquals(interop.get(field.pos()),
+ SpecificData.get().deepCopy(
+ field.schema(), interop.get(field.pos())));
+ }
+
+ // Original field and deep copy should be different instances:
+ if ((field.schema().getType() != Type.ENUM) &&
+ (field.schema().getType() != Type.NULL)) {
+ assertFalse("Field " + field.name() + " is same instance in deep copy",
+ interop.get(field.pos()) ==
+ GenericData.get().deepCopy(
+ field.schema(), interop.get(field.pos())));
+ }
+ }
+ }
+}
Modified: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestNettyServer.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestNettyServer.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestNettyServer.java (original)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestNettyServer.java Fri Aug 26 20:54:50 2011
@@ -48,9 +48,9 @@ public class TestNettyServer {
// in this simple example just return details of the message
public CharSequence send(Message message) {
- return new Utf8("Sent message to [" + message.to.toString() + "] from ["
- + message.from.toString() + "] with body [" + message.body.toString()
- + "]");
+ return new Utf8("Sent message to [" + message.getTo().toString() +
+ "] from [" + message.getFrom().toString() + "] with body [" +
+ message.getBody().toString() + "]");
}
public void fireandforget(Message message) {
@@ -129,10 +129,11 @@ public class TestNettyServer {
}
private Message createMessage() {
- Message msg = new Message();
- msg.to = new Utf8("wife");
- msg.from = new Utf8("husband");
- msg.body = new Utf8("I love you!");
+ Message msg = Message.newBuilder().
+ setTo(new Utf8("wife")).
+ setFrom(new Utf8("husband")).
+ setBody(new Utf8("I love you!")).
+ build();
return msg;
}
Modified: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestNettyServerWithCallbacks.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestNettyServerWithCallbacks.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestNettyServerWithCallbacks.java (original)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestNettyServerWithCallbacks.java Fri Aug 26 20:54:50 2011
@@ -111,11 +111,11 @@ public class TestNettyServerWithCallback
@Test
public void echo() throws Exception {
- TestRecord record = new TestRecord();
- record.hash = new org.apache.avro.test.MD5();
- record.hash.bytes(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 } );
- record.kind = org.apache.avro.test.Kind.FOO;
- record.name = "My Record";
+ TestRecord record = TestRecord.newBuilder().setHash(
+ new org.apache.avro.test.MD5(
+ new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 })).
+ setKind(org.apache.avro.test.Kind.FOO).
+ setName("My Record").build();
// Test synchronous RPC:
Assert.assertEquals(record, simpleClient.echo(record));
@@ -284,6 +284,7 @@ public class TestNettyServerWithCallback
// Shut down server:
server2.close();
+ Thread.sleep(1000L);
// Send a new RPC, and verify that it throws an Exception that
// can be detected by the client:
@@ -445,9 +446,7 @@ public class TestNettyServerWithCallback
@Override
public Void error() throws AvroRemoteException, TestError {
- TestError error = new TestError();
- error.message = "Test Message";
- throw error;
+ throw TestError.newBuilder().setMessage$("Test Message").build();
}
@Override
Modified: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestRpcPluginOrdering.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestRpcPluginOrdering.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestRpcPluginOrdering.java (original)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/TestRpcPluginOrdering.java Fri Aug 26 20:54:50 2011
@@ -83,10 +83,11 @@ public class TestRpcPluginOrdering {
}
private Message createTestMessage() {
- Message message = new Message();
- message.to = new Utf8("me@test.com");
- message.from = new Utf8("you@test.com");
- message.body = new Utf8("plugin testing");
+ Message message = Message.newBuilder().
+ setTo(new Utf8("me@test.com")).
+ setFrom(new Utf8("you@test.com")).
+ setBody(new Utf8("plugin testing")).
+ build();
return message;
}
Modified: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestBasicTracing.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestBasicTracing.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestBasicTracing.java (original)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestBasicTracing.java Fri Aug 26 20:54:50 2011
@@ -100,17 +100,18 @@ public class TestBasicTracing {
Span requestorSpan = requestorSpans.get(0);
// Check meta propagation
- assertEquals(null, requestorSpan.parentSpanID);
- assertEquals(responderSpan.parentSpanID, requestorSpan.parentSpanID);
- assertEquals(responderSpan.traceID, requestorSpan.traceID);
+ assertEquals(null, requestorSpan.getParentSpanID());
+ assertEquals(responderSpan.getParentSpanID(),
+ requestorSpan.getParentSpanID());
+ assertEquals(responderSpan.getTraceID(), requestorSpan.getTraceID());
// Check other data
- assertEquals(2, requestorSpan.events.size());
- assertEquals(2, responderSpan.events.size());
- assertTrue("m".equals(requestorSpan.messageName.toString()));
- assertTrue("m".equals(responderSpan.messageName.toString()));
- assertFalse(requestorSpan.complete);
- assertFalse(responderSpan.complete);
+ assertEquals(2, requestorSpan.getEvents().size());
+ assertEquals(2, responderSpan.getEvents().size());
+ assertTrue("m".equals(requestorSpan.getMessageName().toString()));
+ assertTrue("m".equals(responderSpan.getMessageName().toString()));
+ assertFalse(requestorSpan.getComplete());
+ assertFalse(responderSpan.getComplete());
}
server.close();
@@ -285,48 +286,48 @@ public class TestBasicTracing {
assertEquals(1, cPlugin.storage.getAllSpans().size());
assertEquals(1, dPlugin.storage.getAllSpans().size());
- ID traceID = aPlugin.storage.getAllSpans().get(0).traceID;
+ ID traceID = aPlugin.storage.getAllSpans().get(0).getTraceID();
ID rootSpanID = null;
// Verify event counts and trace ID propagation
for (Span s: aPlugin.storage.getAllSpans()) {
- assertEquals(2, s.events.size());
- assertTrue(Util.idsEqual(traceID, s.traceID));
- assertFalse(s.complete);
- rootSpanID = s.spanID;
+ assertEquals(2, s.getEvents().size());
+ assertTrue(Util.idsEqual(traceID, s.getTraceID()));
+ assertFalse(s.getComplete());
+ rootSpanID = s.getSpanID();
}
for (Span s: bPlugin.storage.getAllSpans()) {
- assertEquals(2, s.events.size());
- assertEquals(traceID, s.traceID);
- assertFalse(s.complete);
+ assertEquals(2, s.getEvents().size());
+ assertEquals(traceID, s.getTraceID());
+ assertFalse(s.getComplete());
}
for (Span s: cPlugin.storage.getAllSpans()) {
- assertEquals(2, s.events.size());
- assertEquals(traceID, s.traceID);
- assertFalse(s.complete);
+ assertEquals(2, s.getEvents().size());
+ assertEquals(traceID, s.getTraceID());
+ assertFalse(s.getComplete());
}
for (Span s: dPlugin.storage.getAllSpans()) {
- assertEquals(2, s.events.size());
- assertEquals(traceID, s.traceID);
- assertFalse(s.complete);
+ assertEquals(2, s.getEvents().size());
+ assertEquals(traceID, s.getTraceID());
+ assertFalse(s.getComplete());
}
// Verify span propagation.
- ID firstSpanID = aPlugin.storage.getAllSpans().get(0).spanID;
- ID secondSpanID = cPlugin.storage.getAllSpans().get(0).spanID;
- ID thirdSpanID = dPlugin.storage.getAllSpans().get(0).spanID;
+ ID firstSpanID = aPlugin.storage.getAllSpans().get(0).getSpanID();
+ ID secondSpanID = cPlugin.storage.getAllSpans().get(0).getSpanID();
+ ID thirdSpanID = dPlugin.storage.getAllSpans().get(0).getSpanID();
boolean firstFound = false, secondFound = false, thirdFound = false;
for (Span s: bPlugin.storage.getAllSpans()) {
- if (Util.idsEqual(s.spanID, firstSpanID)) {
+ if (Util.idsEqual(s.getSpanID(), firstSpanID)) {
firstFound = true;
}
- else if (Util.idsEqual(s.spanID, secondSpanID)) {
+ else if (Util.idsEqual(s.getSpanID(), secondSpanID)) {
secondFound = true;
}
- else if (Util.idsEqual(s.spanID, thirdSpanID)) {
+ else if (Util.idsEqual(s.getSpanID(), thirdSpanID)) {
thirdFound = true;
}
}
Modified: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestFileSpanStorage.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestFileSpanStorage.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestFileSpanStorage.java (original)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestFileSpanStorage.java Fri Aug 26 20:54:50 2011
@@ -39,7 +39,7 @@ public class TestFileSpanStorage {
TracePluginConfiguration conf = new TracePluginConfiguration();
FileSpanStorage test = new FileSpanStorage(false, conf);
Span s = Util.createEventlessSpan(Util.idValue(1), Util.idValue(1), null);
- s.messageName = new Utf8("message");
+ s.setMessageName(new Utf8("message"));
test.addSpan(s);
try {
Thread.sleep(1000);
@@ -58,7 +58,7 @@ public class TestFileSpanStorage {
List<Span> spans = new ArrayList<Span>(50000);
for (int i = 0; i < 50000; i++) {
Span s = Util.createEventlessSpan(Util.idValue(i), Util.idValue(i), null);
- s.messageName = new Utf8("message");
+ s.setMessageName(new Utf8("message"));
test.addSpan(s);
spans.add(s);
}
@@ -76,7 +76,7 @@ public class TestFileSpanStorage {
spans.clear();
for (int i = 0; i < 5000; i++) {
Span s = Util.createEventlessSpan(Util.idValue(i), Util.idValue(i), null);
- s.messageName = new Utf8("message");
+ s.setMessageName(new Utf8("message"));
test2.addSpan(s);
spans.add(s);
}
@@ -99,14 +99,14 @@ public class TestFileSpanStorage {
// Add a bunch of spans
for (int i = 0; i < 100; i++) {
Span s = Util.createEventlessSpan(Util.idValue(i), Util.idValue(i), null);
- s.messageName = new Utf8("message");
+ s.setMessageName(new Utf8("message"));
test.addSpan(s);
}
List<Span> lastNine = new LinkedList<Span>();
for (int i = 0; i < 9; i++) {
Span s = Util.createEventlessSpan(Util.idValue(100 + i), Util.idValue(100 + i), null);
- s.messageName = new Utf8("message");
+ s.setMessageName(new Utf8("message"));
lastNine.add(s);
test.addSpan(s);
}
@@ -141,16 +141,16 @@ public class TestFileSpanStorage {
Span s = Util.createEventlessSpan(Util.idValue(i), Util.idValue(i), null);
TimestampedEvent te1 = new TimestampedEvent();
- te1.timeStamp = System.currentTimeMillis() * 1000000;
- te1.event = SpanEvent.CLIENT_SEND;
+ te1.setTimeStamp(System.currentTimeMillis() * 1000000);
+ te1.setEvent(SpanEvent.CLIENT_SEND);
TimestampedEvent te2 = new TimestampedEvent();
- te2.timeStamp = System.currentTimeMillis() * 1000000;
- te2.event = SpanEvent.CLIENT_RECV;
- s.events.add(te1);
- s.events.add(te2);
+ te2.setTimeStamp(System.currentTimeMillis() * 1000000);
+ te2.setEvent(SpanEvent.CLIENT_RECV);
+ s.getEvents().add(te1);
+ s.getEvents().add(te2);
- s.messageName = new Utf8("message");
+ s.setMessageName(new Utf8("message"));
test.addSpan(s);
spans[i] = s;
Modified: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestSpanAggregation.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestSpanAggregation.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestSpanAggregation.java (original)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestSpanAggregation.java Fri Aug 26 20:54:50 2011
@@ -45,12 +45,12 @@ public class TestSpanAggregation {
@Test
public void testSpanCompletion1() {
Span span1a = createClientSpan(idValue(1), idValue(1), null, new Utf8("a"));
- span1a.requestPayloadSize = 10;
- span1a.responsePayloadSize = 0;
+ span1a.setRequestPayloadSize(10L);
+ span1a.setResponsePayloadSize(0L);
Span span1b = createServerSpan(idValue(1), idValue(1), null, new Utf8("a"));
- span1b.requestPayloadSize = 0;
- span1b.responsePayloadSize = 11;
+ span1b.setRequestPayloadSize(0L);
+ span1b.setResponsePayloadSize(11L);
List<Span> partials = new ArrayList<Span>();
partials.add(span1a);
@@ -63,11 +63,11 @@ public class TestSpanAggregation {
assertTrue(results.completeSpans.size() == 1);
Span result = results.completeSpans.get(0);
- assertEquals(null, result.parentSpanID);
- assertTrue(idsEqual(idValue(1), result.spanID));
- assertEquals(4, result.events.size());
- assertEquals(10, result.requestPayloadSize);
- assertEquals(11, result.responsePayloadSize);
+ assertEquals(null, result.getParentSpanID());
+ assertTrue(idsEqual(idValue(1), result.getSpanID()));
+ assertEquals(4, result.getEvents().size());
+ assertEquals(new Long(10), result.getRequestPayloadSize());
+ assertEquals(new Long(11), result.getResponsePayloadSize());
}
/**
@@ -112,12 +112,12 @@ public class TestSpanAggregation {
assertTrue(results.completeSpans.size() == 1);
Span result = results.completeSpans.get(0);
- assertTrue(result.complete);
- assertTrue(idsEqual(idValue(1), result.spanID));
- assertEquals(new Utf8("requestorHostname"), result.requestorHostname);
- assertEquals(new Utf8("responderHostname"), result.responderHostname);
- assertNull(result.parentSpanID);
- assertEquals(new Utf8("a"), result.messageName);
+ assertTrue(result.getComplete());
+ assertTrue(idsEqual(idValue(1), result.getSpanID()));
+ assertEquals(new Utf8("requestorHostname"), result.getRequestorHostname());
+ assertEquals(new Utf8("responderHostname"), result.getResponderHostname());
+ assertNull(result.getParentSpanID());
+ assertEquals(new Utf8("a"), result.getMessageName());
}
/**
@@ -151,8 +151,8 @@ public class TestSpanAggregation {
assertEquals(5, merged.size());
for (Span s: merged) {
- assertEquals(new Utf8("requestorHostname"), s.requestorHostname);
- assertEquals(new Utf8("responderHostname"), s.responderHostname);
+ assertEquals(new Utf8("requestorHostname"), s.getRequestorHostname());
+ assertEquals(new Utf8("responderHostname"), s.getResponderHostname());
}
List<Trace> traces = SpanAggregator.getTraces(merged).traces;
@@ -167,28 +167,28 @@ public class TestSpanAggregation {
*/
public Span createClientSpan(ID traceID, ID spanID, ID parentID, Utf8 msgName) {
Span out = new Span();
- out.spanID = spanID;
- out.traceID = traceID;
- out.requestorHostname = new Utf8("requestorHostname");
+ out.setSpanID(spanID);
+ out.setTraceID(traceID);
+ out.setRequestorHostname(new Utf8("requestorHostname"));
if (parentID != null) {
- out.parentSpanID = parentID;
+ out.setParentSpanID(parentID);
}
- out.messageName = msgName;
- out.complete = false;
+ out.setMessageName(msgName);
+ out.setComplete(false);
TimestampedEvent event1 = new TimestampedEvent();
- event1.event = SpanEvent.CLIENT_SEND;
- event1.timeStamp = System.currentTimeMillis() * 1000000;
+ event1.setEvent(SpanEvent.CLIENT_SEND);
+ event1.setTimeStamp(System.currentTimeMillis() * 1000000);
TimestampedEvent event2 = new TimestampedEvent();
- event2.event = SpanEvent.CLIENT_RECV;
- event2.timeStamp = System.currentTimeMillis() * 1000000;
+ event2.setEvent(SpanEvent.CLIENT_RECV);
+ event2.setTimeStamp(System.currentTimeMillis() * 1000000);
- out.events = new GenericData.Array<TimestampedEvent>(
- 2, Schema.createArray(TimestampedEvent.SCHEMA$));
- out.events.add(event1);
- out.events.add(event2);
+ out.setEvents(new GenericData.Array<TimestampedEvent>(
+ 2, Schema.createArray(TimestampedEvent.SCHEMA$)));
+ out.getEvents().add(event1);
+ out.getEvents().add(event2);
return out;
}
@@ -198,28 +198,28 @@ public class TestSpanAggregation {
*/
public Span createServerSpan(ID traceID, ID spanID, ID parentID, Utf8 msgName) {
Span out = new Span();
- out.spanID = spanID;
- out.traceID = traceID;
- out.responderHostname = new Utf8("responderHostname");
+ out.setSpanID(spanID);
+ out.setTraceID(traceID);
+ out.setResponderHostname(new Utf8("responderHostname"));
if (parentID != null) {
- out.parentSpanID = parentID;
+ out.setParentSpanID(parentID);
}
- out.messageName = msgName;
- out.complete = false;
+ out.setMessageName(msgName);
+ out.setComplete(false);
TimestampedEvent event1 = new TimestampedEvent();
- event1.event = SpanEvent.SERVER_RECV;
- event1.timeStamp = System.currentTimeMillis();
+ event1.setEvent(SpanEvent.SERVER_RECV);
+ event1.setTimeStamp(System.currentTimeMillis());
TimestampedEvent event2 = new TimestampedEvent();
- event2.event = SpanEvent.SERVER_SEND;
- event2.timeStamp = System.currentTimeMillis();
+ event2.setEvent(SpanEvent.SERVER_SEND);
+ event2.setTimeStamp(System.currentTimeMillis());
- out.events = new GenericData.Array<TimestampedEvent>(
- 2, Schema.createArray(TimestampedEvent.SCHEMA$));
- out.events.add(event1);
- out.events.add(event2);
+ out.setEvents(new GenericData.Array<TimestampedEvent>(
+ 2, Schema.createArray(TimestampedEvent.SCHEMA$)));
+ out.getEvents().add(event1);
+ out.getEvents().add(event2);
return out;
}
Modified: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestSpanTraceFormation.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestSpanTraceFormation.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestSpanTraceFormation.java (original)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/ipc/trace/TestSpanTraceFormation.java Fri Aug 26 20:54:50 2011
@@ -36,24 +36,24 @@ public class TestSpanTraceFormation {
@Test
public void testSpanEquality() {
Span root = new Span();
- root.spanID = Util.idValue(10);
- root.parentSpanID = null;
- root.messageName = new Utf8("startCall");
+ root.setSpanID(Util.idValue(10));
+ root.setParentSpanID(null);
+ root.setMessageName(new Utf8("startCall"));
Span a = new Span();
- a.spanID = Util.idValue(11);
- a.parentSpanID = Util.idValue(10);
- a.messageName = new Utf8("childCall1");
+ a.setSpanID(Util.idValue(11));
+ a.setParentSpanID(Util.idValue(10));
+ a.setMessageName(new Utf8("childCall1"));
Span b = new Span();
- b.spanID = Util.idValue(12);
- b.parentSpanID = Util.idValue(10);
- b.messageName = new Utf8("childCall2");
+ b.setSpanID(Util.idValue(12));
+ b.setParentSpanID(Util.idValue(10));
+ b.setMessageName(new Utf8("childCall2"));
Span c = new Span();
- c.spanID = Util.idValue(13);
- c.parentSpanID = Util.idValue(10);
- c.messageName = new Utf8("childCall3");
+ c.setSpanID(Util.idValue(13));
+ c.setParentSpanID(Util.idValue(10));
+ c.setMessageName(new Utf8("childCall3"));
List<Span> spans = new LinkedList<Span>();
spans.add(root);
@@ -63,19 +63,19 @@ public class TestSpanTraceFormation {
Trace trace1 = Trace.extractTrace(spans);
Span d = new Span();
- d.spanID = Util.idValue(11);
- d.parentSpanID = Util.idValue(10);
- d.messageName = new Utf8("childCall1");
+ d.setSpanID(Util.idValue(11));
+ d.setParentSpanID(Util.idValue(10));
+ d.setMessageName(new Utf8("childCall1"));
Span e = new Span();
- e.spanID = Util.idValue(12);
- e.parentSpanID = Util.idValue(10);
- e.messageName = new Utf8("childCall2");
+ e.setSpanID(Util.idValue(12));
+ e.setParentSpanID(Util.idValue(10));
+ e.setMessageName(new Utf8("childCall2"));
Span f = new Span();
- f.spanID = Util.idValue(13);
- f.parentSpanID = Util.idValue(10);
- f.messageName = new Utf8("childCall3");
+ f.setSpanID(Util.idValue(13));
+ f.setParentSpanID(Util.idValue(10));
+ f.setMessageName(new Utf8("childCall3"));
spans.clear();
spans.add(d);
@@ -91,24 +91,24 @@ public class TestSpanTraceFormation {
@Test
public void testSpanEquality2() {
Span root = new Span();
- root.spanID = Util.idValue(10);
- root.parentSpanID = null;
- root.messageName = new Utf8("startCall");
+ root.setSpanID(Util.idValue(10));
+ root.setParentSpanID(null);
+ root.setMessageName(new Utf8("startCall"));
Span a = new Span();
- a.spanID = Util.idValue(11);
- a.parentSpanID = Util.idValue(10);
- a.messageName = new Utf8("childCall1");
+ a.setSpanID(Util.idValue(11));
+ a.setParentSpanID(Util.idValue(10));
+ a.setMessageName(new Utf8("childCall1"));
Span b = new Span();
- b.spanID = Util.idValue(12);
- b.parentSpanID = Util.idValue(10);
- b.messageName = new Utf8("childCall2");
+ b.setSpanID(Util.idValue(12));
+ b.setParentSpanID(Util.idValue(10));
+ b.setMessageName(new Utf8("childCall2"));
Span c = new Span();
- c.spanID = Util.idValue(13);
- c.parentSpanID = Util.idValue(10);
- c.messageName = new Utf8("childCall3");
+ c.setSpanID(Util.idValue(13));
+ c.setParentSpanID(Util.idValue(10));
+ c.setMessageName(new Utf8("childCall3"));
List<Span> spans = new LinkedList<Span>();
spans.add(root);
@@ -118,24 +118,24 @@ public class TestSpanTraceFormation {
Trace trace1 = Trace.extractTrace(spans);
Span d = new Span();
- d.spanID = Util.idValue(11);
- d.parentSpanID = Util.idValue(10);
- d.messageName = new Utf8("childCall1");
+ d.setSpanID(Util.idValue(11));
+ d.setParentSpanID(Util.idValue(10));
+ d.setMessageName(new Utf8("childCall1"));
Span e = new Span();
- e.spanID = Util.idValue(12);
- e.parentSpanID = Util.idValue(10);
- e.messageName = new Utf8("childCall2");
+ e.setSpanID(Util.idValue(12));
+ e.setParentSpanID(Util.idValue(10));
+ e.setMessageName(new Utf8("childCall2"));
Span f = new Span();
- f.spanID = Util.idValue(13);
- f.parentSpanID = Util.idValue(10);
- f.messageName = new Utf8("childCall3");
+ f.setSpanID(Util.idValue(13));
+ f.setParentSpanID(Util.idValue(10));
+ f.setMessageName(new Utf8("childCall3"));
Span g = new Span();
- g.spanID = Util.idValue(14);
- g.parentSpanID = Util.idValue(13);
- g.messageName = new Utf8("childCall4");
+ g.setSpanID(Util.idValue(14));
+ g.setParentSpanID(Util.idValue(13));
+ g.setMessageName(new Utf8("childCall4"));
spans.clear();
spans.add(d);
@@ -151,23 +151,23 @@ public class TestSpanTraceFormation {
/** Create a span with bogus timing events. */
public static Span createFullSpan(Long id, Long parentID, String messageName) {
Span out = new Span();
- out.spanID = Util.idValue(id);
+ out.setSpanID(Util.idValue(id));
if (parentID != null) {
- out.parentSpanID = Util.idValue(parentID);
+ out.setParentSpanID(Util.idValue(parentID));
}
- out.messageName = new Utf8(messageName);
+ out.setMessageName(new Utf8(messageName));
- out.events = new GenericData.Array<TimestampedEvent>(
- 4, Schema.createArray(TimestampedEvent.SCHEMA$));
+ out.setEvents(new GenericData.Array<TimestampedEvent>(
+ 4, Schema.createArray(TimestampedEvent.SCHEMA$)));
for (SpanEvent ev: SpanEvent.values()) {
TimestampedEvent newEvent = new TimestampedEvent();
- newEvent.timeStamp = System.currentTimeMillis() * 1000000;
- newEvent.event = ev;
- out.events.add(newEvent);
+ newEvent.setTimeStamp(System.currentTimeMillis() * 1000000);
+ newEvent.setEvent(ev);
+ out.getEvents().add(newEvent);
}
- out.complete = true;
+ out.setComplete(true);
return out;
}
@@ -225,24 +225,24 @@ public class TestSpanTraceFormation {
@Test
public void testBasicTraceFormation() {
Span root = new Span();
- root.spanID = Util.idValue(10);
- root.parentSpanID = null;
- root.messageName = new Utf8("startCall");
+ root.setSpanID(Util.idValue(10));
+ root.setParentSpanID(null);
+ root.setMessageName(new Utf8("startCall"));
Span a = new Span();
- a.spanID = Util.idValue(11);
- a.parentSpanID = Util.idValue(10);
- a.messageName = new Utf8("childCall1");
+ a.setSpanID(Util.idValue(11));
+ a.setParentSpanID(Util.idValue(10));
+ a.setMessageName(new Utf8("childCall1"));
Span b = new Span();
- b.spanID = Util.idValue(12);
- b.parentSpanID = Util.idValue(10);
- b.messageName = new Utf8("childCall2");
+ b.setSpanID(Util.idValue(12));
+ b.setParentSpanID(Util.idValue(10));
+ b.setMessageName(new Utf8("childCall2"));
Span c = new Span();
- c.spanID = Util.idValue(13);
- c.parentSpanID = Util.idValue(10);
- c.messageName = new Utf8("childCall3");
+ c.setSpanID(Util.idValue(13));
+ c.setParentSpanID(Util.idValue(10));
+ c.setMessageName(new Utf8("childCall3"));
List<Span> spans = new LinkedList<Span>();
spans.add(root);
@@ -254,19 +254,19 @@ public class TestSpanTraceFormation {
assertNotNull(trace);
TraceNode rootNode = trace.getRoot();
- assertEquals(rootNode.span.messageName, new Utf8("startCall"));
+ assertEquals(rootNode.span.getMessageName(), new Utf8("startCall"));
assertEquals(3, rootNode.children.size());
boolean found1, found2, found3;
found1 = found2 = found3 = false;
for (TraceNode tn: rootNode.children) {
- if (tn.span.messageName.equals(new Utf8("childCall1"))) {
+ if (tn.span.getMessageName().equals(new Utf8("childCall1"))) {
found1 = true;
}
- if (tn.span.messageName.equals(new Utf8("childCall2"))) {
+ if (tn.span.getMessageName().equals(new Utf8("childCall2"))) {
found2 = true;
}
- if (tn.span.messageName.equals(new Utf8("childCall3"))) {
+ if (tn.span.getMessageName().equals(new Utf8("childCall3"))) {
found3 = true;
}
assertNotNull(tn.children);
Modified: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificData.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificData.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificData.java (original)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificData.java Fri Aug 26 20:54:50 2011
@@ -57,11 +57,9 @@ public class TestSpecificData {
// create a generic instance of this record
TestRecord nested = new TestRecord();
- nested.name = new Utf8("foo");
- nested.kind = Kind.BAR;
- nested.hash = new MD5();
- System.arraycopy(new byte[]{0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5}, 0,
- nested.hash.bytes(), 0, 16);
+ nested.setName(new Utf8("foo"));
+ nested.setKind(Kind.BAR);
+ nested.setHash(new MD5(new byte[]{0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5}));
GenericData.Record record = new GenericData.Record(schema);
record.put("f", nested);
Modified: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificDatumWriter.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificDatumWriter.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificDatumWriter.java (original)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificDatumWriter.java Fri Aug 26 20:54:50 2011
@@ -39,16 +39,15 @@ public class TestSpecificDatumWriter {
writer.setSchema(schema);
- TestRecordWithUnion c = new TestRecordWithUnion();
- c.kind = Kind.BAR;
- c.value = "rab";
+ TestRecordWithUnion c = TestRecordWithUnion.newBuilder().
+ setKind(Kind.BAR).setValue("rab").build();
writer.write(c, encoder);
encoder.flush();
out.close();
String expectedJson = String.format(
"{'kind':{'org.apache.avro.test.Kind':'%s'},'value':{'string':'%s'}}",
- c.kind.toString(), c.value).replace('\'', '"');
+ c.getKind().toString(), c.getValue()).replace('\'', '"');
assertEquals(expectedJson, out.toString("UTF-8"));
}
Added: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificErrorBuilder.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificErrorBuilder.java?rev=1162253&view=auto
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificErrorBuilder.java (added)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificErrorBuilder.java Fri Aug 26 20:54:50 2011
@@ -0,0 +1,73 @@
+/**
+ * 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.avro.specific;
+
+import org.apache.avro.test.errors.TestError;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Unit test for the SpecificErrorBuilderBase class.
+ */
+public class TestSpecificErrorBuilder {
+ @Test
+ public void testSpecificErrorBuilder() {
+ TestError.Builder testErrorBuilder = TestError.newBuilder().
+ setValue("value").setCause(new NullPointerException()).
+ setMessage$("message$");
+
+ // Test has methods
+ Assert.assertTrue(testErrorBuilder.hasValue());
+ Assert.assertNotNull(testErrorBuilder.getValue());
+ Assert.assertTrue(testErrorBuilder.hasCause());
+ Assert.assertNotNull(testErrorBuilder.getCause());
+ Assert.assertTrue(testErrorBuilder.hasMessage$());
+ Assert.assertNotNull(testErrorBuilder.getMessage$());
+
+ TestError testError = testErrorBuilder.build();
+ Assert.assertEquals("value", testError.getValue());
+ Assert.assertEquals("value", testError.getMessage());
+ Assert.assertEquals("message$", testError.getMessage$());
+
+ // Test copy constructor
+ Assert.assertEquals(testErrorBuilder,
+ TestError.newBuilder(testErrorBuilder));
+ Assert.assertEquals(testErrorBuilder, TestError.newBuilder(testError));
+
+ Assert.assertEquals(
+ new TestError("value", new NullPointerException()),
+ TestError.newBuilder().setValue("value").
+ setCause(new NullPointerException()).build());
+
+ // Test clear
+ testErrorBuilder.clearValue();
+ Assert.assertFalse(testErrorBuilder.hasValue());
+ Assert.assertNull(testErrorBuilder.getValue());
+ testErrorBuilder.clearCause();
+ Assert.assertFalse(testErrorBuilder.hasCause());
+ Assert.assertNull(testErrorBuilder.getCause());
+ testErrorBuilder.clearMessage$();
+ Assert.assertFalse(testErrorBuilder.hasMessage$());
+ Assert.assertNull(testErrorBuilder.getMessage$());
+ }
+
+ @Test(expected=org.apache.avro.AvroRuntimeException.class)
+ public void attemptToSetNonNullableFieldToNull() {
+ TestError.newBuilder().setMessage$(null);
+ }
+}
Added: avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java?rev=1162253&view=auto
==============================================================================
--- avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java (added)
+++ avro/trunk/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java Fri Aug 26 20:54:50 2011
@@ -0,0 +1,147 @@
+/**
+ * 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.avro.specific;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.apache.avro.ipc.specific.Person;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * Unit test for the SpecificRecordBuilder class.
+ */
+public class TestSpecificRecordBuilder {
+ @Test
+ public void testSpecificBuilder() {
+ // Create a new builder, and leave some fields with default values empty:
+ Person.Builder builder = Person.newBuilder().setName("James Gosling").setYearOfBirth(1955).setState("CA");
+ Assert.assertTrue(builder.hasName());
+ Assert.assertEquals("James Gosling", builder.getName().toString());
+ Assert.assertTrue(builder.hasYearOfBirth());
+ Assert.assertEquals(new Integer(1955), builder.getYearOfBirth());
+ Assert.assertFalse(builder.hasCountry());
+ Assert.assertNull(builder.getCountry());
+ Assert.assertTrue(builder.hasState());
+ Assert.assertEquals("CA", builder.getState().toString());
+ Assert.assertFalse(builder.hasFriends());
+ Assert.assertNull(builder.getFriends());
+ Assert.assertFalse(builder.hasLanguages());
+ Assert.assertNull(builder.getLanguages());
+
+ Person person = builder.build();
+ Assert.assertEquals("James Gosling", person.getName().toString());
+ Assert.assertEquals(new Integer(1955), person.getYearOfBirth());
+ Assert.assertEquals("US", person.getCountry().toString()); // country should default to "US"
+ Assert.assertEquals("CA", person.getState().toString());
+ Assert.assertNotNull(person.getFriends()); // friends should default to an empty list
+ Assert.assertEquals(0, person.getFriends().size());
+ Assert.assertNotNull(person.getLanguages()); // Languages should now be "English" and "Java"
+ Assert.assertEquals(2, person.getLanguages().size());
+ Assert.assertEquals("English", person.getLanguages().get(0).toString());
+ Assert.assertEquals("Java", person.getLanguages().get(1).toString());
+
+ // Test copy constructors:
+ Assert.assertEquals(builder, Person.newBuilder(builder));
+ Assert.assertEquals(person, Person.newBuilder(person).build());
+
+ Person.Builder builderCopy = Person.newBuilder(person);
+ Assert.assertEquals("James Gosling", builderCopy.getName().toString());
+ Assert.assertEquals(new Integer(1955), builderCopy.getYearOfBirth());
+ Assert.assertEquals("US", builderCopy.getCountry().toString()); // country should default to "US"
+ Assert.assertEquals("CA", builderCopy.getState().toString());
+ Assert.assertNotNull(builderCopy.getFriends()); // friends should default to an empty list
+ Assert.assertEquals(0, builderCopy.getFriends().size());
+
+ // Test clearing fields:
+ builderCopy.clearFriends().clearCountry();
+ Assert.assertFalse(builderCopy.hasFriends());
+ Assert.assertFalse(builderCopy.hasCountry());
+ Assert.assertNull(builderCopy.getFriends());
+ Assert.assertNull(builderCopy.getCountry());
+ Person person2 = builderCopy.build();
+ Assert.assertNotNull(person2.getFriends());
+ Assert.assertTrue(person2.getFriends().isEmpty());
+ }
+
+ @Test(expected=org.apache.avro.AvroRuntimeException.class)
+ public void attemptToSetNonNullableFieldToNull() {
+ Person.newBuilder().setName(null);
+ }
+
+ @Ignore
+ @Test
+ public void testBuilderPerformance() {
+ int count = 1000000;
+ List<Person> friends = new ArrayList<Person>(0);
+ List<CharSequence> languages = new ArrayList<CharSequence>(Arrays.asList(new CharSequence[] { "English", "Java" }));
+ long startTimeNanos = System.nanoTime();
+ for (int ii = 0; ii < count; ii++) {
+ Person.newBuilder().setName("James Gosling").setYearOfBirth(1955).setCountry("US").setState("CA").setFriends(friends).
+ setLanguages(languages).build();
+ }
+ long durationNanos = System.nanoTime() - startTimeNanos;
+ double durationMillis = durationNanos / 1e6d;
+ System.out.println("Built " + count + " records in " + durationMillis + "ms (" +
+ (count / (durationMillis / 1000d)) + " records/sec, " + (durationMillis / count) +
+ "ms/record");
+ }
+
+ @Ignore
+ @Test
+ public void testBuilderPerformanceWithDefaultValues() {
+ int count = 1000000;
+ long startTimeNanos = System.nanoTime();
+ for (int ii = 0; ii < count; ii++) {
+ Person.newBuilder().setName("James Gosling").setYearOfBirth(1955).setState("CA").build();
+ }
+ long durationNanos = System.nanoTime() - startTimeNanos;
+ double durationMillis = durationNanos / 1e6d;
+ System.out.println("Built " + count + " records in " + durationMillis + "ms (" +
+ (count / (durationMillis / 1000d)) + " records/sec, " + (durationMillis / count) +
+ "ms/record");
+ }
+
+ @Ignore
+ @Test
+ @SuppressWarnings("deprecation")
+ public void testManualBuildPerformance() {
+ int count = 1000000;
+ List<Person> friends = new ArrayList<Person>(0);
+ List<CharSequence> languages = new ArrayList<CharSequence>(Arrays.asList(new CharSequence[] { "English", "Java" }));
+ long startTimeNanos = System.nanoTime();
+ for (int ii = 0; ii < count; ii++) {
+ Person person = new Person();
+ person.name = "James Gosling";
+ person.year_of_birth = 1955;
+ person.state = "CA";
+ person.country = "US";
+ person.friends = friends;
+ person.languages = languages;
+ }
+ long durationNanos = System.nanoTime() - startTimeNanos;
+ double durationMillis = durationNanos / 1e6d;
+ System.out.println("Built " + count + " records in " + durationMillis + "ms (" +
+ (count / (durationMillis / 1000d)) + " records/sec, " + (durationMillis / count) +
+ "ms/record");
+ }
+}
Modified: avro/trunk/lang/java/mapred/src/main/java/org/apache/avro/mapred/Pair.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/mapred/src/main/java/org/apache/avro/mapred/Pair.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/mapred/src/main/java/org/apache/avro/mapred/Pair.java (original)
+++ avro/trunk/lang/java/mapred/src/main/java/org/apache/avro/mapred/Pair.java Fri Aug 26 20:54:50 2011
@@ -30,7 +30,7 @@ import org.apache.avro.Schema.Field;
import org.apache.avro.generic.GenericData;
import org.apache.avro.generic.GenericContainer;
import org.apache.avro.generic.IndexedRecord;
-import org.apache.avro.specific.SpecificDatumReader.SchemaConstructable;
+import org.apache.avro.specific.SpecificData.SchemaConstructable;
import org.apache.avro.reflect.ReflectData;
/** A key/value pair. */
Modified: avro/trunk/lang/java/tools/src/test/compiler/output/Player.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/tools/src/test/compiler/output/Player.java?rev=1162253&r1=1162252&r2=1162253&view=diff
==============================================================================
--- avro/trunk/lang/java/tools/src/test/compiler/output/Player.java (original)
+++ avro/trunk/lang/java/tools/src/test/compiler/output/Player.java Fri Aug 26 20:54:50 2011
@@ -7,10 +7,10 @@ package avro.examples.baseball;
@SuppressWarnings("all")
public class Player extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
public static final org.apache.avro.Schema SCHEMA$ = org.apache.avro.Schema.parse("{\"type\":\"record\",\"name\":\"Player\",\"namespace\":\"avro.examples.baseball\",\"fields\":[{\"name\":\"number\",\"type\":\"int\"},{\"name\":\"first_name\",\"type\":\"string\"},{\"name\":\"last_name\",\"type\":\"string\"},{\"name\":\"position\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"enum\",\"name\":\"Position\",\"symbols\":[\"P\",\"C\",\"B1\",\"B2\",\"B3\",\"SS\",\"LF\",\"CF\",\"RF\",\"DH\"]}}}]}");
- public int number;
- public java.lang.CharSequence first_name;
- public java.lang.CharSequence last_name;
- public java.util.List<avro.examples.baseball.Position> position;
+ @Deprecated public int number;
+ @Deprecated public java.lang.CharSequence first_name;
+ @Deprecated public java.lang.CharSequence last_name;
+ @Deprecated public java.util.List<avro.examples.baseball.Position> position;
public org.apache.avro.Schema getSchema() { return SCHEMA$; }
// Used by DatumWriter. Applications should not call.
public java.lang.Object get(int field$) {
@@ -33,4 +33,235 @@ public class Player extends org.apache.a
default: throw new org.apache.avro.AvroRuntimeException("Bad index");
}
}
+
+ /**
+ * Gets the value of the 'number' field.
+ */
+ public java.lang.Integer getNumber() {
+ return number;
+ }
+
+ /**
+ * Sets the value of the 'number' field.
+ * @param value the value to set.
+ */
+ public void setNumber(java.lang.Integer value) {
+ this.number = value;
+ }
+
+ /**
+ * Gets the value of the 'first_name' field.
+ */
+ public java.lang.CharSequence getFirstName() {
+ return first_name;
+ }
+
+ /**
+ * Sets the value of the 'first_name' field.
+ * @param value the value to set.
+ */
+ public void setFirstName(java.lang.CharSequence value) {
+ this.first_name = value;
+ }
+
+ /**
+ * Gets the value of the 'last_name' field.
+ */
+ public java.lang.CharSequence getLastName() {
+ return last_name;
+ }
+
+ /**
+ * Sets the value of the 'last_name' field.
+ * @param value the value to set.
+ */
+ public void setLastName(java.lang.CharSequence value) {
+ this.last_name = value;
+ }
+
+ /**
+ * Gets the value of the 'position' field.
+ */
+ public java.util.List<avro.examples.baseball.Position> getPosition() {
+ return position;
+ }
+
+ /**
+ * Sets the value of the 'position' field.
+ * @param value the value to set.
+ */
+ public void setPosition(java.util.List<avro.examples.baseball.Position> value) {
+ this.position = value;
+ }
+
+ /** Creates a new Player RecordBuilder */
+ public static avro.examples.baseball.Player.Builder newBuilder() {
+ return new avro.examples.baseball.Player.Builder();
+ }
+
+ /** Creates a new Player RecordBuilder by copying an existing Builder */
+ public static avro.examples.baseball.Player.Builder newBuilder(avro.examples.baseball.Player.Builder other) {
+ return new avro.examples.baseball.Player.Builder(other);
+ }
+
+ /** Creates a new Player RecordBuilder by copying an existing Player instance */
+ public static avro.examples.baseball.Player.Builder newBuilder(avro.examples.baseball.Player other) {
+ return new avro.examples.baseball.Player.Builder(other);
+ }
+
+ /**
+ * RecordBuilder for Player instances.
+ */
+ public static class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase<Player>
+ implements org.apache.avro.data.RecordBuilder<Player> {
+
+ private int number;
+ private java.lang.CharSequence first_name;
+ private java.lang.CharSequence last_name;
+ private java.util.List<avro.examples.baseball.Position> position;
+
+ /** Creates a new Builder */
+ private Builder() {
+ super(avro.examples.baseball.Player.SCHEMA$);
+ }
+
+ /** Creates a Builder by copying an existing Builder */
+ private Builder(avro.examples.baseball.Player.Builder other) {
+ super(other);
+ }
+
+ /** Creates a Builder by copying an existing Player instance */
+ private Builder(avro.examples.baseball.Player other) {
+ super(avro.examples.baseball.Player.SCHEMA$);
+ if (isValidValue(fields[0], other.number)) {
+ number = (java.lang.Integer) data.deepCopy(fields[0].schema(), other.number);
+ fieldSetFlags[0] = true;
+ }
+ if (isValidValue(fields[1], other.first_name)) {
+ first_name = (java.lang.CharSequence) data.deepCopy(fields[1].schema(), other.first_name);
+ fieldSetFlags[1] = true;
+ }
+ if (isValidValue(fields[2], other.last_name)) {
+ last_name = (java.lang.CharSequence) data.deepCopy(fields[2].schema(), other.last_name);
+ fieldSetFlags[2] = true;
+ }
+ if (isValidValue(fields[3], other.position)) {
+ position = (java.util.List<avro.examples.baseball.Position>) data.deepCopy(fields[3].schema(), other.position);
+ fieldSetFlags[3] = true;
+ }
+ }
+
+ /** Gets the value of the 'number' field */
+ public java.lang.Integer getNumber() {
+ return number;
+ }
+
+ /** Sets the value of the 'number' field */
+ public avro.examples.baseball.Player.Builder setNumber(int value) {
+ validate(fields[0], value);
+ this.number = value;
+ fieldSetFlags[0] = true;
+ return this;
+ }
+
+ /** Checks whether the 'number' field has been set */
+ public boolean hasNumber() {
+ return fieldSetFlags[0];
+ }
+
+ /** Clears the value of the 'number' field */
+ public avro.examples.baseball.Player.Builder clearNumber() {
+ fieldSetFlags[0] = false;
+ return this;
+ }
+
+ /** Gets the value of the 'first_name' field */
+ public java.lang.CharSequence getFirstName() {
+ return first_name;
+ }
+
+ /** Sets the value of the 'first_name' field */
+ public avro.examples.baseball.Player.Builder setFirstName(java.lang.CharSequence value) {
+ validate(fields[1], value);
+ this.first_name = value;
+ fieldSetFlags[1] = true;
+ return this;
+ }
+
+ /** Checks whether the 'first_name' field has been set */
+ public boolean hasFirstName() {
+ return fieldSetFlags[1];
+ }
+
+ /** Clears the value of the 'first_name' field */
+ public avro.examples.baseball.Player.Builder clearFirstName() {
+ first_name = null;
+ fieldSetFlags[1] = false;
+ return this;
+ }
+
+ /** Gets the value of the 'last_name' field */
+ public java.lang.CharSequence getLastName() {
+ return last_name;
+ }
+
+ /** Sets the value of the 'last_name' field */
+ public avro.examples.baseball.Player.Builder setLastName(java.lang.CharSequence value) {
+ validate(fields[2], value);
+ this.last_name = value;
+ fieldSetFlags[2] = true;
+ return this;
+ }
+
+ /** Checks whether the 'last_name' field has been set */
+ public boolean hasLastName() {
+ return fieldSetFlags[2];
+ }
+
+ /** Clears the value of the 'last_name' field */
+ public avro.examples.baseball.Player.Builder clearLastName() {
+ last_name = null;
+ fieldSetFlags[2] = false;
+ return this;
+ }
+
+ /** Gets the value of the 'position' field */
+ public java.util.List<avro.examples.baseball.Position> getPosition() {
+ return position;
+ }
+
+ /** Sets the value of the 'position' field */
+ public avro.examples.baseball.Player.Builder setPosition(java.util.List<avro.examples.baseball.Position> value) {
+ validate(fields[3], value);
+ this.position = value;
+ fieldSetFlags[3] = true;
+ return this;
+ }
+
+ /** Checks whether the 'position' field has been set */
+ public boolean hasPosition() {
+ return fieldSetFlags[3];
+ }
+
+ /** Clears the value of the 'position' field */
+ public avro.examples.baseball.Player.Builder clearPosition() {
+ position = null;
+ fieldSetFlags[3] = false;
+ return this;
+ }
+
+ @Override
+ public Player build() {
+ try {
+ Player record = new Player();
+ record.number = fieldSetFlags[0] ? this.number : (java.lang.Integer) getDefaultValue(fields[0]);
+ record.first_name = fieldSetFlags[1] ? this.first_name : (java.lang.CharSequence) getDefaultValue(fields[1]);
+ record.last_name = fieldSetFlags[2] ? this.last_name : (java.lang.CharSequence) getDefaultValue(fields[2]);
+ record.position = fieldSetFlags[3] ? this.position : (java.util.List<avro.examples.baseball.Position>) getDefaultValue(fields[3]);
+ return record;
+ } catch (Exception e) {
+ throw new org.apache.avro.AvroRuntimeException(e);
+ }
+ }
+ }
}
Added: avro/trunk/share/test/schemas/social.avdl
URL: http://svn.apache.org/viewvc/avro/trunk/share/test/schemas/social.avdl?rev=1162253&view=auto
==============================================================================
--- avro/trunk/share/test/schemas/social.avdl (added)
+++ avro/trunk/share/test/schemas/social.avdl Fri Aug 26 20:54:50 2011
@@ -0,0 +1,29 @@
+/**
+ * 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.
+ */
+
+@namespace("org.apache.avro.ipc.specific")
+protocol Social {
+ record Person {
+ string name;
+ int year_of_birth;
+ string country = "US";
+ string state;
+ array<Person> friends = [];
+ array<string> languages = [ "English" , "Java" ];
+ }
+}