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() {