You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/06/15 19:12:02 UTC
incubator-usergrid git commit: change serializer
Repository: incubator-usergrid
Updated Branches:
refs/heads/USERGRID-751 [created] 99615b349
change serializer
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/99615b34
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/99615b34
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/99615b34
Branch: refs/heads/USERGRID-751
Commit: 99615b3490b13c68da31cd1092030235ee1b0021
Parents: 7a264c4
Author: Shawn Feldman <sf...@apache.org>
Authored: Mon Jun 15 11:11:48 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Mon Jun 15 11:11:48 2015 -0600
----------------------------------------------------------------------
.../MvccEntitySerializationStrategyV3Impl.java | 39 ++++++++++----------
.../core/astyanax/FieldBufferBuilder.java | 18 ++++++---
.../core/astyanax/FieldBufferParser.java | 13 +++++--
3 files changed, 42 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/99615b34/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
index 6418ac7..b626e4d 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyV3Impl.java
@@ -1,6 +1,7 @@
package org.apache.usergrid.persistence.collection.serialization.impl;
+import java.io.StringWriter;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collection;
@@ -9,6 +10,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.UUID;
+import com.fasterxml.jackson.core.JsonFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -396,9 +398,9 @@ public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializ
public final class EntitySerializer extends AbstractSerializer<EntityWrapper> {
- private final SmileFactory SMILE_FACTORY = new SmileFactory();
+ private final JsonFactory JSON_FACTORY = new JsonFactory();
- private final ObjectMapper MAPPER = new ObjectMapper( SMILE_FACTORY );
+ private final ObjectMapper MAPPER = new ObjectMapper( JSON_FACTORY );
private SerializationFig serializationFig;
@@ -458,9 +460,9 @@ public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializ
final Entity entity = wrapper.entity.get();
//Convert to internal entity map
final EntityMap entityMap = EntityMap.fromEntity( entity );
- final byte[] entityBytes;
+ final String entityString;
try {
- entityBytes = MAPPER.writeValueAsBytes( entityMap );
+ entityString = MAPPER.writeValueAsString( entityMap );
}
catch ( Exception e ) {
throw new RuntimeException( "Unable to serialize entity", e );
@@ -469,13 +471,16 @@ public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializ
final int maxEntrySize = serializationFig.getMaxEntitySize();
- if ( entityBytes.length > maxEntrySize ) {
- throw new EntityTooLargeException( entity, maxEntrySize, entityBytes.length,
+ if ( entityString.length() > maxEntrySize ) {
+ throw new EntityTooLargeException( entity, maxEntrySize, entityString.length(),
"Your entity cannot exceed " + maxEntrySize + " bytes. The entity you tried to save was "
- + entityBytes.length + " bytes" );
+ + entityString.length() + " bytes" );
+ }
+ if( log.isDebugEnabled() ){
+ log.debug("Entity(" + entityString + ") Version("+wrapper.version+") State("+wrapper.status+")");
}
- builder.addBytes( entityBytes );
+ builder.addString(entityString);
return FIELD_BUFFER_SERIALIZER.toByteBuffer( builder.build() );
}
@@ -523,18 +528,14 @@ public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializ
EntityMap storedEntity;
- byte[] array = parser.readBytes();
- try {
+ String entityString = parser.readString();
- // String[] byteValues = s.substring(1, s.length() - 1).split(",");
- // byte[] bytes = new byte[byteValues.length];
- //
- // for (int i=0, len=bytes.length; i<len; i++) {
- // bytes[i] = Byte.parseByte(byteValues[i].trim());
- // }
- //
- // s = new String(bytes);
- storedEntity = MAPPER.readValue( array, EntityMap.class );
+ if( log.isDebugEnabled() ){
+ log.debug("Entity(" + entityString + ") Version("+version+") State("+state+")");
+ }
+
+ try {
+ storedEntity = MAPPER.readValue( entityString, EntityMap.class );
}
catch ( Exception e ) {
throw new DataCorruptionException( "Unable to read entity data", e );
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/99615b34/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/FieldBufferBuilder.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/FieldBufferBuilder.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/FieldBufferBuilder.java
index 367bf88..6401ad9 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/FieldBufferBuilder.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/FieldBufferBuilder.java
@@ -22,11 +22,7 @@ package org.apache.usergrid.persistence.core.astyanax;
import java.util.UUID;
-import com.netflix.astyanax.serializers.ByteSerializer;
-import com.netflix.astyanax.serializers.BytesArraySerializer;
-import com.netflix.astyanax.serializers.IntegerSerializer;
-import com.netflix.astyanax.serializers.LongSerializer;
-import com.netflix.astyanax.serializers.UUIDSerializer;
+import com.netflix.astyanax.serializers.*;
/**
@@ -39,6 +35,8 @@ public class FieldBufferBuilder {
private static final BytesArraySerializer BYTES_ARRAY_SERIALIZER = BytesArraySerializer.get();
private static final ByteSerializer BYTE_SERIALIZER = ByteSerializer.get();
private static final UUIDSerializer UUID_SERIALIZER = UUIDSerializer.get();
+ private static final StringSerializer STRING_SERIALIZER = StringSerializer.get();
+
private final FieldBuffer buffer;
@@ -67,6 +65,16 @@ public class FieldBufferBuilder {
return this;
}
+ /**
+ * add a string to buffer
+ * @param value
+ * @return
+ */
+ public FieldBufferBuilder addString( final String value ) {
+ buffer.add( STRING_SERIALIZER.toByteBuffer( value ) );
+ return this;
+ }
+
/**
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/99615b34/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/FieldBufferParser.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/FieldBufferParser.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/FieldBufferParser.java
index a27e94a..16c48e9 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/FieldBufferParser.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/FieldBufferParser.java
@@ -25,10 +25,7 @@ import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.UUID;
-import com.netflix.astyanax.serializers.ByteSerializer;
-import com.netflix.astyanax.serializers.BytesArraySerializer;
-import com.netflix.astyanax.serializers.IntegerSerializer;
-import com.netflix.astyanax.serializers.UUIDSerializer;
+import com.netflix.astyanax.serializers.*;
/**
@@ -41,6 +38,7 @@ public class FieldBufferParser {
private static final BytesArraySerializer BYTES_ARRAY_SERIALIZER = BytesArraySerializer.get();
private static final ByteSerializer BYTE_SERIALIZER = ByteSerializer.get();
private static final UUIDSerializer UUID_SERIALIZER = UUIDSerializer.get();
+ private static final StringSerializer STRING_SERIALIZER = StringSerializer.get();
private final Iterator<ByteBuffer> fields;
@@ -59,6 +57,13 @@ public class FieldBufferParser {
/**
+ * Return the value as an String
+ */
+ public String readString() {
+ return STRING_SERIALIZER.fromByteBuffer( getNext() );
+ }
+
+ /**
* Return the value as a byte array
*/
public byte[] readBytes() {