Return-Path: X-Original-To: apmail-avro-commits-archive@www.apache.org Delivered-To: apmail-avro-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6D91810BC7 for ; Tue, 18 Nov 2014 10:11:54 +0000 (UTC) Received: (qmail 90994 invoked by uid 500); 18 Nov 2014 10:11:49 -0000 Delivered-To: apmail-avro-commits-archive@avro.apache.org Received: (qmail 90954 invoked by uid 500); 18 Nov 2014 10:11:49 -0000 Mailing-List: contact commits-help@avro.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@avro.apache.org Delivered-To: mailing list commits@avro.apache.org Received: (qmail 90944 invoked by uid 99); 18 Nov 2014 10:11:49 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 18 Nov 2014 10:11:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 18 Nov 2014 10:11:46 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 5178323888D7; Tue, 18 Nov 2014 10:10:56 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1640294 - in /avro/branches/branch-1.7: ./ lang/java/ 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/io/ lang/java/avro/src/main/java/org/apache... Date: Tue, 18 Nov 2014 10:10:55 -0000 To: commits@avro.apache.org From: tomwhite@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20141118101056.5178323888D7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: tomwhite Date: Tue Nov 18 10:10:55 2014 New Revision: 1640294 URL: http://svn.apache.org/r1640294 Log: Merge -r 1640292:1640293 from trunk to branch. Fixes: AVRO-1585. Java: Deprecate Jackson classes in public API. Added: avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/util/internal/ - copied from r1640293, avro/trunk/lang/java/avro/src/main/java/org/apache/avro/util/internal/ avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/util/internal/ - copied from r1640293, avro/trunk/lang/java/avro/src/test/java/org/apache/avro/util/internal/ Modified: avro/branches/branch-1.7/CHANGES.txt avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/JsonProperties.java avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/Schema.java avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/data/Json.java avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/EncoderFactory.java avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/JsonEncoder.java avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/TestSchemaBuilder.java avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/TestSchemaCompatibility.java avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericRecordBuilder.java avro/branches/branch-1.7/lang/java/ipc/src/test/java/org/apache/avro/TestProtocolGeneric.java avro/branches/branch-1.7/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java avro/branches/branch-1.7/lang/java/mapred/src/test/java/org/apache/avro/mapred/TestGenericJob.java avro/branches/branch-1.7/lang/java/pom.xml avro/branches/branch-1.7/lang/java/tools/src/main/java/org/apache/avro/tool/RpcReceiveTool.java Modified: avro/branches/branch-1.7/CHANGES.txt URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/CHANGES.txt?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/CHANGES.txt (original) +++ avro/branches/branch-1.7/CHANGES.txt Tue Nov 18 10:10:55 2014 @@ -16,6 +16,8 @@ Trunk (not yet released) AVRO-843. C#: Change Visual Studio project files to specify .NET 3.5. (Dmitry Kovalev via cutting) + AVRO-1585. Java: Deprecate Jackson classes in public API. (tomwhite) + BUG FIXES AVRO-1553. Java: MapReduce never uses MapOutputValueSchema (tomwhite) Modified: avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/JsonProperties.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/JsonProperties.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/JsonProperties.java (original) +++ avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/JsonProperties.java Tue Nov 18 10:10:55 2014 @@ -23,12 +23,97 @@ import java.util.Map; import java.util.Set; import java.io.IOException; +import org.apache.avro.util.internal.JacksonUtils; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.node.TextNode; -/** Base class for objects that have Json-valued properties. */ +/** + * Base class for objects that have JSON-valued properties. Avro and JSON values are + * represented in Java using the following mapping: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
+ * Avro typeJSON typeJava type
nullnull{@link #NULL_VALUE}
booleanBooleanboolean
intNumberint
longNumberlong
floatNumberfloat
doubleNumberdouble
bytesStringbyte[]
stringString{@link java.lang.String}
recordObject{@link java.util.Map}
enumString{@link java.lang.String}
arrayArray{@link java.util.Collection}
mapObject{@link java.util.Map}
fixedStringbyte[]
+ * + * @see org.apache.avro.data.Json + */ public abstract class JsonProperties { + public static class Null { + private Null() {} + } + /** A value representing a JSON null. */ + public static final Null NULL_VALUE = new Null(); + Map props = new LinkedHashMap(1); private Set reserved; @@ -49,12 +134,22 @@ public abstract class JsonProperties { /** * Returns the value of the named property in this schema. * Returns null if there is no property with that name. + * @deprecated use {@link #getObjectProp(String)} */ + @Deprecated public synchronized JsonNode getJsonProp(String name) { return props.get(name); } /** + * Returns the value of the named property in this schema. + * Returns null if there is no property with that name. + */ + public synchronized Object getObjectProp(String name) { + return JacksonUtils.toObject(props.get(name)); + } + + /** * Adds a property with the given name name and * value value. Neither name nor value can be * null. It is illegal to add a property if another with @@ -75,7 +170,9 @@ public abstract class JsonProperties { * * @param name The name of the property to add * @param value The value for the property to add + * @deprecated use {@link #addProp(String, Object)} */ + @Deprecated public synchronized void addProp(String name, JsonNode value) { if (reserved.contains(name)) throw new AvroRuntimeException("Can't set reserved property: " + name); @@ -90,6 +187,10 @@ public abstract class JsonProperties { throw new AvroRuntimeException("Can't overwrite property: " + name); } + public synchronized void addProp(String name, Object value) { + addProp(name, JacksonUtils.toJsonNode(value)); + } + /** Return the defined properties that have string values. */ @Deprecated public Map getProps() { Map result = new LinkedHashMap(); @@ -107,11 +208,23 @@ public abstract class JsonProperties { return result; } - /** Return the defined properties as an unmodifieable Map. */ + /** + * Return the defined properties as an unmodifieable Map. + * @deprecated use {@link #getObjectProps()} + */ + @Deprecated public Map getJsonProps() { return Collections.unmodifiableMap(props); } + /** Return the defined properties as an unmodifieable Map. */ + public Map getObjectProps() { + Map result = new LinkedHashMap(); + for (Map.Entry e : props.entrySet()) + result.put(e.getKey(), JacksonUtils.toObject(e.getValue())); + return result; + } + void writeProps(JsonGenerator gen) throws IOException { for (Map.Entry e : props.entrySet()) gen.writeObjectField(e.getKey(), e.getValue()); Modified: avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/Schema.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/Schema.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/Schema.java (original) +++ avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/Schema.java Tue Nov 18 10:10:55 2014 @@ -35,6 +35,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.avro.util.internal.JacksonUtils; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonParseException; @@ -132,6 +133,11 @@ public abstract class Schema extends Jso hashCode = NO_HASHCODE; } + @Override public void addProp(String name, Object value) { + super.addProp(name, value); + hashCode = NO_HASHCODE; + } + /** Create an anonymous record schema. */ public static Schema createRecord(List fields) { Schema result = createRecord(null, null, null, false); @@ -362,10 +368,14 @@ public abstract class Schema extends Jso private final Order order; private Set aliases; + /** @deprecated use {@link #Field(String, Schema, String, Object)} */ + @Deprecated public Field(String name, Schema schema, String doc, JsonNode defaultValue) { this(name, schema, doc, defaultValue, Order.ASCENDING); } + /** @deprecated use {@link #Field(String, Schema, String, Object, Order)} */ + @Deprecated public Field(String name, Schema schema, String doc, JsonNode defaultValue, Order order) { super(FIELD_RESERVED); @@ -375,6 +385,22 @@ public abstract class Schema extends Jso this.defaultValue = validateDefault(name, schema, defaultValue); this.order = order; } + /** + * @param defaultValue the default value for this field specified using the mapping + * in {@link JsonProperties} + */ + public Field(String name, Schema schema, String doc, + Object defaultValue) { + this(name, schema, doc, defaultValue, Order.ASCENDING); + } + /** + * @param defaultValue the default value for this field specified using the mapping + * in {@link JsonProperties} + */ + public Field(String name, Schema schema, String doc, + Object defaultValue, Order order) { + this(name, schema, doc, JacksonUtils.toJsonNode(defaultValue), order); + } public String name() { return name; }; /** The position of this field within the record. */ public int pos() { return position; } @@ -382,7 +408,13 @@ public abstract class Schema extends Jso public Schema schema() { return schema; } /** Field's documentation within the record, if set. May return null. */ public String doc() { return doc; } - public JsonNode defaultValue() { return defaultValue; } + /** @deprecated use {@link #defaultVal() } */ + @Deprecated public JsonNode defaultValue() { return defaultValue; } + /** + * @return the default value for this field specified using the mapping + * in {@link JsonProperties} + */ + public Object defaultVal() { return JacksonUtils.toObject(defaultValue); } public Order order() { return order; } @Deprecated public Map props() { return getProps(); } public void addAlias(String alias) { @@ -1313,7 +1345,11 @@ public abstract class Schema extends Jso return jsonNode != null ? jsonNode.getTextValue() : null; } - /** Parses a string as Json. */ + /** + * Parses a string as Json. + * @deprecated use {@link org.apache.avro.data.Json#parseJson(String)} + */ + @Deprecated public static JsonNode parseJson(String s) { try { return MAPPER.readTree(FACTORY.createJsonParser(new StringReader(s))); Modified: avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/data/Json.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/data/Json.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/data/Json.java (original) +++ avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/data/Json.java Tue Nov 18 10:10:55 2014 @@ -18,9 +18,14 @@ package org.apache.avro.data; import java.io.IOException; +import java.io.StringReader; import java.util.Iterator; +import org.apache.avro.util.internal.JacksonUtils; +import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonNode; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.node.JsonNodeFactory; import org.codehaus.jackson.node.LongNode; import org.codehaus.jackson.node.DoubleNode; @@ -43,6 +48,9 @@ import org.apache.avro.io.ResolvingDecod public class Json { private Json() {} // singleton: no public ctor + static final JsonFactory FACTORY = new JsonFactory(); + static final ObjectMapper MAPPER = new ObjectMapper(FACTORY); + /** The schema for Json data. */ public static final Schema SCHEMA; static { @@ -54,7 +62,11 @@ public class Json { } } - /** {@link DatumWriter} for arbitrary Json data. */ + /** + * {@link DatumWriter} for arbitrary Json data. + * @deprecated use {@link ObjectWriter} + */ + @Deprecated public static class Writer implements DatumWriter { @Override public void setSchema(Schema schema) { @@ -68,7 +80,11 @@ public class Json { } } - /** {@link DatumReader} for arbitrary Json data. */ + /** + * {@link DatumReader} for arbitrary Json data. + * @deprecated use {@link ObjectReader} + */ + @Deprecated public static class Reader implements DatumReader { private Schema written; private ResolvingDecoder resolver; @@ -92,10 +108,77 @@ public class Json { } } + /** {@link DatumWriter} for arbitrary Json data using the object model described + * in {@link org.apache.avro.JsonProperties}. */ + public static class ObjectWriter implements DatumWriter { + + @Override public void setSchema(Schema schema) { + if (!SCHEMA.equals(schema)) + throw new RuntimeException("Not the Json schema: "+schema); + } + + @Override + public void write(Object datum, Encoder out) throws IOException { + Json.writeObject(datum, out); + } + } + + /** {@link DatumReader} for arbitrary Json data using the object model described + * in {@link org.apache.avro.JsonProperties}. */ + public static class ObjectReader implements DatumReader { + private Schema written; + private ResolvingDecoder resolver; + + @Override public void setSchema(Schema schema) { + this.written = SCHEMA.equals(written) ? null : schema; + } + + @Override + public Object read(Object reuse, Decoder in) throws IOException { + if (written == null) // same schema + return Json.readObject(in); + + // use a resolver to adapt alternate version of Json schema + if (resolver == null) + resolver = DecoderFactory.get().resolvingDecoder(written, SCHEMA, null); + resolver.configure(in); + Object result = Json.readObject(resolver); + resolver.drain(); + return result; + } + } + + /** + * Parses a JSON string and converts it to the object model described in + * {@link org.apache.avro.JsonProperties}. + */ + public static Object parseJson(String s) { + try { + return JacksonUtils.toObject(MAPPER.readTree(FACTORY.createJsonParser( + new StringReader(s)))); + } catch (JsonParseException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + /** + * Converts an instance of the object model described in + * {@link org.apache.avro.JsonProperties} to a JSON string. + */ + public static String toString(Object datum) { + return JacksonUtils.toJsonNode(datum).toString(); + } + /** Note: this enum must be kept aligned with the union in Json.avsc. */ private enum JsonType { LONG, DOUBLE, STRING, BOOLEAN, NULL, ARRAY, OBJECT } - /** Write Json data as Avro data. */ + /** + * Write Json data as Avro data. + * @deprecated internal method + */ + @Deprecated public static void write(JsonNode node, Encoder out) throws IOException { switch(node.asToken()) { case VALUE_NUMBER_INT: @@ -150,7 +233,11 @@ public class Json { } } - /** Read Json data from Avro data. */ + /** + * Read Json data from Avro data. + * @deprecated internal method + */ + @Deprecated public static JsonNode read(Decoder in) throws IOException { switch (JsonType.values()[in.readIndex()]) { case LONG: @@ -181,4 +268,12 @@ public class Json { } } + private static void writeObject(Object datum, Encoder out) throws IOException { + write(JacksonUtils.toJsonNode(datum), out); + } + + private static Object readObject(Decoder in) throws IOException { + return JacksonUtils.toObject(read(in)); + } + } Modified: avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/EncoderFactory.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/EncoderFactory.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/EncoderFactory.java (original) +++ avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/EncoderFactory.java Tue Nov 18 10:10:55 2014 @@ -320,7 +320,9 @@ public class EncoderFactory { * The JsonGenerator to write with. Cannot be null. * @return A JsonEncoder configured with gen and schema * @throws IOException + * @deprecated internal method */ + @Deprecated public JsonEncoder jsonEncoder(Schema schema, JsonGenerator gen) throws IOException { return new JsonEncoder(schema, gen); Modified: avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/JsonEncoder.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/JsonEncoder.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/JsonEncoder.java (original) +++ avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/JsonEncoder.java Tue Nov 18 10:10:55 2014 @@ -131,7 +131,9 @@ public class JsonEncoder extends Parsing * The JsonGenerator to direct output to. Cannot be null. * @throws IOException * @return this JsonEncoder + * @deprecated internal method */ + @Deprecated public JsonEncoder configure(JsonGenerator generator) throws IOException { if (null == generator) throw new NullPointerException("JsonGenerator cannot be null"); Modified: avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java (original) +++ avro/branches/branch-1.7/lang/java/avro/src/main/java/org/apache/avro/io/parsing/ResolvingGrammarGenerator.java Tue Nov 18 10:10:55 2014 @@ -316,8 +316,9 @@ public class ResolvingGrammarGenerator e * @param s The schema for the object being encoded. * @param n The Json node to encode. * @throws IOException + * @deprecated internal method */ - + @Deprecated public static void encode(Encoder e, Schema s, JsonNode n) throws IOException { switch (s.getType()) { Modified: avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/TestSchemaBuilder.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/TestSchemaBuilder.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/TestSchemaBuilder.java (original) +++ avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/TestSchemaBuilder.java Tue Nov 18 10:10:55 2014 @@ -33,7 +33,6 @@ import org.apache.avro.generic.GenericDa import org.apache.avro.generic.GenericDatumReader; import org.apache.avro.generic.GenericDatumWriter; import org.apache.avro.generic.GenericRecordBuilder; -import org.codehaus.jackson.node.BooleanNode; import org.codehaus.jackson.node.NullNode; import org.junit.Assert; import org.junit.Test; @@ -70,7 +69,7 @@ public class TestSchemaBuilder { types.add(Schema.create(Schema.Type.BOOLEAN)); types.add(Schema.create(Schema.Type.NULL)); Schema optional = Schema.createUnion(types); - Assert.assertEquals(new Schema.Field("f2", optional, null, BooleanNode.getTrue()), + Assert.assertEquals(new Schema.Field("f2", optional, null, true), fields.get(2)); } Modified: avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/TestSchemaCompatibility.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/TestSchemaCompatibility.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/TestSchemaCompatibility.java (original) +++ avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/TestSchemaCompatibility.java Tue Nov 18 10:10:55 2014 @@ -38,7 +38,6 @@ import org.apache.avro.io.DecoderFactory import org.apache.avro.io.Encoder; import org.apache.avro.io.EncoderFactory; import org.apache.avro.util.Utf8; -import org.codehaus.jackson.node.IntNode; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -118,13 +117,13 @@ public class TestSchemaCompatibility { new Field("a", INT_SCHEMA, null, null), new Field("b", INT_SCHEMA, null, null))); A_DINT_RECORD1.setFields(list( - new Field("a", INT_SCHEMA, null, new IntNode(0)))); + new Field("a", INT_SCHEMA, null, 0))); A_INT_B_DINT_RECORD1.setFields(list( new Field("a", INT_SCHEMA, null, null), - new Field("b", INT_SCHEMA, null, new IntNode(0)))); + new Field("b", INT_SCHEMA, null, 0))); A_DINT_B_DINT_RECORD1.setFields(list( - new Field("a", INT_SCHEMA, null, new IntNode(0)), - new Field("b", INT_SCHEMA, null, new IntNode(0)))); + new Field("a", INT_SCHEMA, null, 0), + new Field("b", INT_SCHEMA, null, 0))); } // Recursive records @@ -221,7 +220,7 @@ public class TestSchemaCompatibility { public void testValidateSchemaNewFieldWithDefault() throws Exception { final List readerFields = list( new Schema.Field("oldfield1", INT_SCHEMA, null, null), - new Schema.Field("newfield1", INT_SCHEMA, null, IntNode.valueOf(42))); + new Schema.Field("newfield1", INT_SCHEMA, null, 42)); final Schema reader = Schema.createRecord(readerFields); final SchemaCompatibility.SchemaPairCompatibility expectedResult = new SchemaCompatibility.SchemaPairCompatibility( Modified: avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericRecordBuilder.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericRecordBuilder.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericRecordBuilder.java (original) +++ avro/branches/branch-1.7/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericRecordBuilder.java Tue Nov 18 10:10:55 2014 @@ -26,8 +26,6 @@ import org.apache.avro.Schema; import org.apache.avro.Schema.Field; import org.apache.avro.Schema.Type; import org.apache.avro.generic.GenericData.Record; -import org.codehaus.jackson.node.TextNode; -import org.codehaus.jackson.node.NullNode; import org.junit.Assert; import org.junit.Test; @@ -100,13 +98,13 @@ public class TestGenericRecordBuilder { /** Creates a test record schema */ private static Schema recordSchema() { List fields = new ArrayList(); - fields.add(new Field("id", Schema.create(Type.STRING), null, new TextNode("0"))); + fields.add(new Field("id", Schema.create(Type.STRING), null, "0")); fields.add(new Field("intField", Schema.create(Type.INT), null, null)); fields.add(new Field("anArray", Schema.createArray(Schema.create(Type.STRING)), null, null)); fields.add(new Field("optionalInt", Schema.createUnion (Arrays.asList(Schema.create(Type.NULL), Schema.create(Type.INT))), - null, NullNode.getInstance())); + null, Schema.NULL_VALUE)); Schema schema = Schema.createRecord("Foo", "test", "mytest", false); schema.setFields(fields); return schema; Modified: avro/branches/branch-1.7/lang/java/ipc/src/test/java/org/apache/avro/TestProtocolGeneric.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/ipc/src/test/java/org/apache/avro/TestProtocolGeneric.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/ipc/src/test/java/org/apache/avro/TestProtocolGeneric.java (original) +++ avro/branches/branch-1.7/lang/java/ipc/src/test/java/org/apache/avro/TestProtocolGeneric.java Tue Nov 18 10:10:55 2014 @@ -44,8 +44,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; -import org.codehaus.jackson.node.BooleanNode; - public class TestProtocolGeneric { private static final Logger LOG = LoggerFactory.getLogger(TestProtocolGeneric.class); @@ -222,7 +220,7 @@ public class TestProtocolGeneric { for (Field f : PROTOCOL.getType("TestRecord").getFields()) fields.add(new Field(f.name(), f.schema(), null, null)); fields.add(new Field("extra", Schema.create(Schema.Type.BOOLEAN), - null, BooleanNode.TRUE)); + null, true)); Schema record = Schema.createRecord("TestRecord", null, "org.apache.avro.test", false); record.setFields(fields); Modified: avro/branches/branch-1.7/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java (original) +++ avro/branches/branch-1.7/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java Tue Nov 18 10:10:55 2014 @@ -819,21 +819,21 @@ public class TestSchema { } public static void checkBinaryJson(String json) throws Exception { - JsonNode node = Schema.parseJson(json); + Object node = Json.parseJson(json); ByteArrayOutputStream out = new ByteArrayOutputStream(); - DatumWriter writer = new Json.Writer(); + DatumWriter writer = new Json.ObjectWriter(); Encoder encoder = EncoderFactory.get().binaryEncoder(out, null); encoder = EncoderFactory.get().validatingEncoder(Json.SCHEMA, encoder); writer.write(node, encoder); encoder.flush(); byte[] bytes = out.toByteArray(); - DatumReader reader = new Json.Reader(); + DatumReader reader = new Json.ObjectReader(); Decoder decoder = DecoderFactory.get().binaryDecoder(bytes, null); decoder = DecoderFactory.get().validatingDecoder(Json.SCHEMA, decoder); - JsonNode decoded = reader.read(null, decoder); + Object decoded = reader.read(null, decoder); - assertEquals("Decoded json does not match.", node.toString(), decoded.toString()); + assertEquals("Decoded json does not match.", Json.toString(node), Json.toString(decoded)); } private static final Schema ACTUAL = // an empty record schema Modified: avro/branches/branch-1.7/lang/java/mapred/src/test/java/org/apache/avro/mapred/TestGenericJob.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/mapred/src/test/java/org/apache/avro/mapred/TestGenericJob.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/mapred/src/test/java/org/apache/avro/mapred/TestGenericJob.java (original) +++ avro/branches/branch-1.7/lang/java/mapred/src/test/java/org/apache/avro/mapred/TestGenericJob.java Tue Nov 18 10:10:55 2014 @@ -47,7 +47,6 @@ import org.apache.hadoop.mapred.Mapper; import org.apache.hadoop.mapred.OutputCollector; import org.apache.hadoop.mapred.Reporter; import org.apache.hadoop.mapred.TextInputFormat; -import org.codehaus.jackson.node.JsonNodeFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -61,8 +60,7 @@ public class TestGenericJob { List fields = new ArrayList(); - fields.add(new Field("Optional", createArraySchema(), "", - JsonNodeFactory.instance.arrayNode())); + fields.add(new Field("Optional", createArraySchema(), "", new ArrayList())); Schema recordSchema = Schema.createRecord("Container", "", "org.apache.avro.mapred", false); @@ -83,8 +81,7 @@ public class TestGenericJob { private static Schema createInnerSchema(String name) { Schema innerrecord = Schema.createRecord(name, "", "", false); innerrecord.setFields - (Arrays.asList(new Field(name, Schema.create(Type.LONG), "", - JsonNodeFactory.instance.numberNode(0l)))); + (Arrays.asList(new Field(name, Schema.create(Type.LONG), "", 0L))); return innerrecord; } Modified: avro/branches/branch-1.7/lang/java/pom.xml URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/pom.xml?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/pom.xml (original) +++ avro/branches/branch-1.7/lang/java/pom.xml Tue Nov 18 10:10:55 2014 @@ -248,6 +248,7 @@ ${plugin-tools-javadoc.version} + org.apache.avro.compiler.idl,*.internal Modified: avro/branches/branch-1.7/lang/java/tools/src/main/java/org/apache/avro/tool/RpcReceiveTool.java URL: http://svn.apache.org/viewvc/avro/branches/branch-1.7/lang/java/tools/src/main/java/org/apache/avro/tool/RpcReceiveTool.java?rev=1640294&r1=1640293&r2=1640294&view=diff ============================================================================== --- avro/branches/branch-1.7/lang/java/tools/src/main/java/org/apache/avro/tool/RpcReceiveTool.java (original) +++ avro/branches/branch-1.7/lang/java/tools/src/main/java/org/apache/avro/tool/RpcReceiveTool.java Tue Nov 18 10:10:55 2014 @@ -38,9 +38,6 @@ import org.apache.avro.io.JsonEncoder; import org.apache.avro.ipc.Ipc; import org.apache.avro.ipc.Server; import org.apache.avro.ipc.generic.GenericResponder; -import org.codehaus.jackson.JsonEncoding; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonGenerator; /** * Receives one RPC call and responds. (The moral equivalent @@ -82,14 +79,11 @@ public class RpcReceiveTool implements T out.print(message.getName()); out.print("\t"); try { - JsonGenerator jsonGenerator = new JsonFactory().createJsonGenerator( - out, JsonEncoding.UTF8); - JsonEncoder jsonEncoder = EncoderFactory.get().jsonEncoder(message.getRequest(), jsonGenerator); - + JsonEncoder jsonEncoder = EncoderFactory.get().jsonEncoder(message.getRequest(), + out); GenericDatumWriter writer = new GenericDatumWriter( message.getRequest()); writer.write(request, jsonEncoder); - jsonGenerator.flush(); jsonEncoder.flush(); out.flush(); } catch (IOException e) {