This is an automated email from the ASF dual-hosted git repository. drazzib pushed a commit to branch GORA-649-replace-deprecated-mongo-api in repository https://gitbox.apache.org/repos/asf/gora.git
commit 890af43708d7121266330e55911f09a38542701c Author: Damien Raude-Morvan <draz...@drazzib.com> AuthorDate: Mon Mar 23 21:58:52 2020 +0100 GORA-649 Use Codec interface instead of DefaultDBEncoder --- .../utils/{GoraDBEncoder.java => Utf8Codec.java} | 42 +++++++++------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/GoraDBEncoder.java b/gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/Utf8Codec.java similarity index 54% rename from gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/GoraDBEncoder.java rename to gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/Utf8Codec.java index 587968a..60d5b31 100644 --- a/gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/GoraDBEncoder.java +++ b/gora-mongodb/src/main/java/org/apache/gora/mongodb/utils/Utf8Codec.java @@ -17,40 +17,30 @@ */ package org.apache.gora.mongodb.utils; -import java.nio.ByteBuffer; - import org.apache.avro.util.Utf8; - -import com.mongodb.DBEncoder; -import com.mongodb.DBEncoderFactory; -import com.mongodb.DefaultDBEncoder; +import org.bson.BsonReader; +import org.bson.BsonWriter; +import org.bson.codecs.Codec; +import org.bson.codecs.DecoderContext; +import org.bson.codecs.EncoderContext; /** - * BSON encoder for BSONObject instances. + * BSON encoder for {@link Utf8} instances. */ -public class GoraDBEncoder extends DefaultDBEncoder { +public class Utf8Codec implements Codec<Utf8> { - public static DBEncoderFactory FACTORY = new DefaultFactory(); - - @Override - protected boolean putSpecial(String name, Object val) { - if (val instanceof Utf8) { - putString(name, val.toString()); - return true; - } else if (val instanceof ByteBuffer) { - putBinary(name, ((ByteBuffer) val).array()); - return true; - } else { - return super.putSpecial(name, val); + @Override + public Utf8 decode(BsonReader reader, DecoderContext decoderContext) { + return new Utf8(reader.readString()); } - } - - static class DefaultFactory implements DBEncoderFactory { @Override - public DBEncoder create() { - return new GoraDBEncoder(); + public void encode(BsonWriter writer, Utf8 value, EncoderContext encoderContext) { + writer.writeString(value.toString()); } - } + @Override + public Class<Utf8> getEncoderClass() { + return Utf8.class; + } }