You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2015/06/16 18:11:41 UTC

[02/10] incubator-usergrid git commit: change serializer

change serializer

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/fab26a5b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/fab26a5b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/fab26a5b

Branch: refs/heads/two-dot-o-dev
Commit: fab26a5b68e7d4463664d81443751f68807bbf61
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 13:06:40 2015 -0600

----------------------------------------------------------------------
 .../MvccEntitySerializationStrategyV3Impl.java  | 48 ++++++++++----------
 .../core/astyanax/FieldBufferBuilder.java       | 18 ++++++--
 .../core/astyanax/FieldBufferParser.java        | 13 ++++--
 3 files changed, 47 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fab26a5b/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..0e8e92a 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,8 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.UUID;
 
+import com.fasterxml.jackson.core.JsonFactory;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -396,9 +399,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;
@@ -440,7 +443,7 @@ public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializ
                 builder.addByte( STATE_DELETED );
 
 
-                return FIELD_BUFFER_SERIALIZER.toByteBuffer( builder.build() );
+                return FIELD_BUFFER_SERIALIZER.toByteBuffer(builder.build());
             }
 
 
@@ -457,25 +460,28 @@ public class MvccEntitySerializationStrategyV3Impl implements MvccEntitySerializ
             //Get Entity
             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 );
+                final EntityMap entityMap = EntityMap.fromEntity( entity );
+                entityString = MAPPER.writeValueAsString(entityMap);
             }
-            catch ( Exception e ) {
-                throw new RuntimeException( "Unable to serialize entity", e );
+            catch ( JsonProcessingException jpe ) {
+                throw new RuntimeException( "Unable to serialize entity", jpe );
             }
 
 
             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 +529,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/fab26a5b/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/fab26a5b/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() {