Factorize java serialization fallback

POLYGENE-231


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/44d34fad
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/44d34fad
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/44d34fad

Branch: refs/heads/develop
Commit: 44d34fad84d6c6282d1d6353626a38f2905bff39
Parents: 7416efc
Author: Paul Merlin <[email protected]>
Authored: Mon Mar 13 15:18:32 2017 +0100
Committer: Paul Merlin <[email protected]>
Committed: Sun Apr 2 19:16:23 2017 +0200

----------------------------------------------------------------------
 .../javaxjson/JavaxJsonDeserializer.java         | 15 ---------------
 .../javaxjson/JavaxJsonSerializer.java           | 19 -------------------
 .../spi/serialization/AbstractDeserializer.java  | 15 +++++++++++++++
 .../spi/serialization/AbstractSerializer.java    | 18 ++++++++++++++++++
 .../javaxxml/JavaxXmlDeserializer.java           | 15 ---------------
 .../javaxxml/JavaxXmlSerializer.java             | 18 ------------------
 .../msgpack/MessagePackDeserializer.java         | 14 --------------
 .../msgpack/MessagePackSerializer.java           | 17 -----------------
 8 files changed, 33 insertions(+), 98 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/44d34fad/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonDeserializer.java
----------------------------------------------------------------------
diff --git 
a/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonDeserializer.java
 
b/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonDeserializer.java
index 2d8cc53..4eb7a69 100644
--- 
a/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonDeserializer.java
+++ 
b/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonDeserializer.java
@@ -17,9 +17,6 @@
  */
 package org.apache.polygene.serialization.javaxjson;
 
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
 import java.lang.reflect.Array;
 import java.util.AbstractMap;
 import java.util.ArrayList;
@@ -286,18 +283,6 @@ public class JavaxJsonDeserializer extends 
AbstractTextDeserializer implements J
         };
     }
 
-    private Object deserializeJava( byte[] bytes )
-    {
-        try( ObjectInputStream oin = new ObjectInputStream( new 
ByteArrayInputStream( bytes ) ) )
-        {
-            return oin.readObject();
-        }
-        catch( IOException | ClassNotFoundException ex )
-        {
-            throw new SerializationException( "Unable to deserialize using 
Java serialization", ex );
-        }
-    }
-
     private String getTypeInfoPropertyName()
     {
         return JavaxJsonSettings.orDefault( descriptor.metaInfo( 
JavaxJsonSettings.class ) )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/44d34fad/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializer.java
----------------------------------------------------------------------
diff --git 
a/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializer.java
 
b/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializer.java
index 93a9077..3bf8e1e 100644
--- 
a/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializer.java
+++ 
b/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializer.java
@@ -17,9 +17,6 @@
  */
 package org.apache.polygene.serialization.javaxjson;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectOutputStream;
 import java.util.Base64;
 import java.util.Map;
 import java.util.function.Function;
@@ -39,7 +36,6 @@ import org.apache.polygene.api.injection.scope.This;
 import org.apache.polygene.api.injection.scope.Uses;
 import org.apache.polygene.api.serialization.Converter;
 import org.apache.polygene.api.serialization.Converters;
-import org.apache.polygene.api.serialization.SerializationException;
 import org.apache.polygene.api.service.ServiceDescriptor;
 import org.apache.polygene.api.type.ArrayType;
 import org.apache.polygene.api.type.MapType;
@@ -218,21 +214,6 @@ public class JavaxJsonSerializer extends 
AbstractTextSerializer implements JsonS
         return builder.build();
     }
 
-    private byte[] serializeJava( Object object )
-    {
-        ByteArrayOutputStream bout = new ByteArrayOutputStream();
-        try( ObjectOutputStream out = new ObjectOutputStream( bout ) )
-        {
-            out.writeUnshared( object );
-            out.flush();
-            return bout.toByteArray();
-        }
-        catch( IOException ex )
-        {
-            throw new SerializationException( "Unable to serialize using Java 
serialization", ex );
-        }
-    }
-
     private String getTypeInfoPropertyName()
     {
         return JavaxJsonSettings.orDefault( descriptor.metaInfo( 
JavaxJsonSettings.class ) )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/44d34fad/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractDeserializer.java
----------------------------------------------------------------------
diff --git 
a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractDeserializer.java
 
b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractDeserializer.java
index b373160..4edd044 100644
--- 
a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractDeserializer.java
+++ 
b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractDeserializer.java
@@ -18,7 +18,9 @@
 package org.apache.polygene.spi.serialization;
 
 import java.io.ByteArrayInputStream;
+import java.io.IOException;
 import java.io.InputStream;
+import java.io.ObjectInputStream;
 import java.io.Reader;
 import java.io.StringReader;
 import java.util.function.Function;
@@ -26,6 +28,7 @@ import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 import org.apache.polygene.api.entity.EntityReference;
 import org.apache.polygene.api.serialization.Deserializer;
+import org.apache.polygene.api.serialization.SerializationException;
 import org.apache.polygene.api.structure.ModuleDescriptor;
 import org.apache.polygene.api.type.CollectionType;
 import org.apache.polygene.api.type.MapType;
@@ -159,4 +162,16 @@ public abstract class AbstractDeserializer implements 
Deserializer
         // TODO Remove (ModuleSpi) cast
         return ( (ModuleSpi) module.instance() 
).valueTypeFactory().valueTypeOf( module, type );
     }
+
+    protected Object deserializeJava( byte[] bytes )
+    {
+        try( ObjectInputStream oin = new ObjectInputStream( new 
ByteArrayInputStream( bytes ) ) )
+        {
+            return oin.readObject();
+        }
+        catch( IOException | ClassNotFoundException ex )
+        {
+            throw new SerializationException( "Unable to deserialize using 
Java serialization", ex );
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/44d34fad/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractSerializer.java
----------------------------------------------------------------------
diff --git 
a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractSerializer.java
 
b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractSerializer.java
index 3269adb..4db3548 100644
--- 
a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractSerializer.java
+++ 
b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractSerializer.java
@@ -18,6 +18,8 @@
 package org.apache.polygene.spi.serialization;
 
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 import java.io.StringWriter;
 import java.io.Writer;
@@ -25,6 +27,7 @@ import java.util.function.Function;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 import org.apache.polygene.api.common.Optional;
+import org.apache.polygene.api.serialization.SerializationException;
 import org.apache.polygene.api.serialization.Serializer;
 
 /**
@@ -151,4 +154,19 @@ public abstract class AbstractSerializer implements 
Serializer
     {
         return Stream.of( objects ).map( object -> toBytes( Options.DEFAULT, 
object ) );
     }
+
+    protected byte[] serializeJava( Object object )
+    {
+        ByteArrayOutputStream bout = new ByteArrayOutputStream();
+        try( ObjectOutputStream out = new ObjectOutputStream( bout ) )
+        {
+            out.writeUnshared( object );
+            out.flush();
+            return bout.toByteArray();
+        }
+        catch( IOException ex )
+        {
+            throw new SerializationException( "Unable to serialize using Java 
serialization", ex );
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/44d34fad/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlDeserializer.java
----------------------------------------------------------------------
diff --git 
a/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlDeserializer.java
 
b/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlDeserializer.java
index 146d763..95da377 100644
--- 
a/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlDeserializer.java
+++ 
b/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlDeserializer.java
@@ -17,9 +17,6 @@
  */
 package org.apache.polygene.serialization.javaxxml;
 
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
 import java.lang.reflect.Array;
 import java.util.ArrayList;
 import java.util.Base64;
@@ -321,18 +318,6 @@ public class JavaxXmlDeserializer extends 
AbstractTextDeserializer implements Xm
         throw new SerializationException( "Don't know how to deserialize " + 
valueType + " from " + xml );
     }
 
-    private Object deserializeJava( byte[] bytes )
-    {
-        try( ObjectInputStream oin = new ObjectInputStream( new 
ByteArrayInputStream( bytes ) ) )
-        {
-            return oin.readObject();
-        }
-        catch( IOException | ClassNotFoundException ex )
-        {
-            throw new SerializationException( "Unable to deserialize using 
Java serialization", ex );
-        }
-    }
-
     private Optional<String> getTypeInfo( Node xml )
     {
         if( xml.getNodeType() != Node.ELEMENT_NODE )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/44d34fad/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializer.java
----------------------------------------------------------------------
diff --git 
a/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializer.java
 
b/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializer.java
index 576647b..3c49699 100644
--- 
a/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializer.java
+++ 
b/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializer.java
@@ -17,9 +17,6 @@
  */
 package org.apache.polygene.serialization.javaxxml;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectOutputStream;
 import java.util.Base64;
 import java.util.Map;
 import java.util.function.Function;
@@ -279,21 +276,6 @@ public class JavaxXmlSerializer extends 
AbstractTextSerializer implements XmlSer
         return collectionElement;
     }
 
-    private byte[] serializeJava( Object object )
-    {
-        ByteArrayOutputStream bout = new ByteArrayOutputStream();
-        try( ObjectOutputStream out = new ObjectOutputStream( bout ) )
-        {
-            out.writeUnshared( object );
-            out.flush();
-            return bout.toByteArray();
-        }
-        catch( IOException ex )
-        {
-            throw new SerializationException( "Unable to serialize using Java 
serialization", ex );
-        }
-    }
-
     private JavaxXmlSettings getSettings()
     {
         return JavaxXmlSettings.orDefault( descriptor.metaInfo( 
JavaxXmlSettings.class ) );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/44d34fad/extensions/serialization-msgpack/src/main/java/org/apache/polygene/serialization/msgpack/MessagePackDeserializer.java
----------------------------------------------------------------------
diff --git 
a/extensions/serialization-msgpack/src/main/java/org/apache/polygene/serialization/msgpack/MessagePackDeserializer.java
 
b/extensions/serialization-msgpack/src/main/java/org/apache/polygene/serialization/msgpack/MessagePackDeserializer.java
index 9d5c9df..9afe450 100644
--- 
a/extensions/serialization-msgpack/src/main/java/org/apache/polygene/serialization/msgpack/MessagePackDeserializer.java
+++ 
b/extensions/serialization-msgpack/src/main/java/org/apache/polygene/serialization/msgpack/MessagePackDeserializer.java
@@ -17,10 +17,8 @@
  */
 package org.apache.polygene.serialization.msgpack;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.ObjectInputStream;
 import java.lang.reflect.Array;
 import java.util.AbstractMap;
 import java.util.ArrayList;
@@ -311,17 +309,5 @@ public interface MessagePackDeserializer extends 
Deserializer
                                                       + " (" + 
value.getValueType() + ")" );
             }
         }
-
-        private Object deserializeJava( byte[] bytes )
-        {
-            try( ObjectInputStream oin = new ObjectInputStream( new 
ByteArrayInputStream( bytes ) ) )
-            {
-                return oin.readObject();
-            }
-            catch( IOException | ClassNotFoundException ex )
-            {
-                throw new SerializationException( "Unable to deserialize using 
Java serialization", ex );
-            }
-        }
     }
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/44d34fad/extensions/serialization-msgpack/src/main/java/org/apache/polygene/serialization/msgpack/MessagePackSerializer.java
----------------------------------------------------------------------
diff --git 
a/extensions/serialization-msgpack/src/main/java/org/apache/polygene/serialization/msgpack/MessagePackSerializer.java
 
b/extensions/serialization-msgpack/src/main/java/org/apache/polygene/serialization/msgpack/MessagePackSerializer.java
index ea66ad0..cdbbf5a 100644
--- 
a/extensions/serialization-msgpack/src/main/java/org/apache/polygene/serialization/msgpack/MessagePackSerializer.java
+++ 
b/extensions/serialization-msgpack/src/main/java/org/apache/polygene/serialization/msgpack/MessagePackSerializer.java
@@ -17,9 +17,7 @@
  */
 package org.apache.polygene.serialization.msgpack;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 import java.util.Map;
 import java.util.stream.Stream;
@@ -200,20 +198,5 @@ public interface MessagePackSerializer extends Serializer
             return ValueFactory.newArray( stream.map( element -> doSerialize( 
options, element, false ) )
                                                 .collect( toList() ) );
         }
-
-        private byte[] serializeJava( Object object )
-        {
-            ByteArrayOutputStream bout = new ByteArrayOutputStream();
-            try( ObjectOutputStream out = new ObjectOutputStream( bout ) )
-            {
-                out.writeUnshared( object );
-                out.flush();
-                return bout.toByteArray();
-            }
-            catch( IOException ex )
-            {
-                throw new SerializationException( "Unable to serialize using 
Java serialization", ex );
-            }
-        }
     }
 }

Reply via email to