You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tv...@apache.org on 2019/05/15 09:43:32 UTC

svn commit: r1859283 - in /commons/proper/jcs/trunk/commons-jcs-core/src: main/java/org/apache/commons/jcs/utils/serialization/ test/java/org/apache/commons/jcs/utils/serialization/

Author: tv
Date: Wed May 15 09:43:32 2019
New Revision: 1859283

URL: http://svn.apache.org/viewvc?rev=1859283&view=rev
Log:
Remove duplicate code

Modified:
    commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/CompressingSerializer.java
    commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/StandardSerializer.java
    commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/utils/serialization/CompressingSerializerUnitTest.java

Modified: commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/CompressingSerializer.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/CompressingSerializer.java?rev=1859283&r1=1859282&r2=1859283&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/CompressingSerializer.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/CompressingSerializer.java Wed May 15 09:43:32 2019
@@ -19,22 +19,14 @@ package org.apache.commons.jcs.utils.ser
  * under the License.
  */
 
-import org.apache.commons.jcs.engine.behavior.IElementSerializer;
-import org.apache.commons.jcs.io.ObjectInputStreamClassLoaderAware;
-import org.apache.commons.jcs.utils.zip.CompressionUtil;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
+
+import org.apache.commons.jcs.utils.zip.CompressionUtil;
 
 /**
  * Performs default serialization and de-serialization. It gzips the value.
  */
-public class CompressingSerializer
-    implements IElementSerializer
+public class CompressingSerializer extends StandardSerializer
 {
     /**
      * Serializes an object using default serialization. Compresses the byte array.
@@ -47,32 +39,12 @@ public class CompressingSerializer
     public <T> byte[] serialize( T obj )
         throws IOException
     {
-        byte[] uncompressed = serializeObject( obj );
+        byte[] uncompressed = super.serialize(obj);
         byte[] compressed = CompressionUtil.compressByteArray( uncompressed );
         return compressed;
     }
 
     /**
-     * Does the basic serialization.
-     * <p>
-     * @param obj object
-     * @return byte[]
-     * @throws IOException on i/o problem
-     */
-    protected <T> byte[] serializeObject( T obj )
-        throws IOException
-    {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
-        try (ObjectOutputStream oos = new ObjectOutputStream( baos ))
-        {
-            oos.writeObject( obj );
-        }
-
-        return baos.toByteArray();
-    }
-
-    /**
      * Uses default de-serialization to turn a byte array into an object. Decompresses the value
      * first. All exceptions are converted into IOExceptions.
      * <p>
@@ -89,28 +61,8 @@ public class CompressingSerializer
         {
             return null;
         }
+        
         byte[] decompressedByteArray = CompressionUtil.decompressByteArray( data );
-        return deserializeObject( decompressedByteArray );
-    }
-
-    /**
-     * Does the standard deserialization.
-     * <p>
-     * @param decompressedByteArray array of decompressed bytes
-     * @return Object
-     * @throws IOException on i/o error
-     * @throws ClassNotFoundException if class is not found during deserialization
-     */
-    protected <T> T deserializeObject( byte[] decompressedByteArray )
-        throws IOException, ClassNotFoundException
-    {
-        ByteArrayInputStream bais = new ByteArrayInputStream( decompressedByteArray );
-
-        try (ObjectInputStream ois = new ObjectInputStreamClassLoaderAware( bais, null ))
-        {
-            @SuppressWarnings("unchecked") // Need to cast from Object
-            T readObject = (T) ois.readObject();
-            return readObject;
-        }
+        return super.deSerialize(decompressedByteArray, loader);
     }
 }

Modified: commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/StandardSerializer.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/StandardSerializer.java?rev=1859283&r1=1859282&r2=1859283&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/StandardSerializer.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/StandardSerializer.java Wed May 15 09:43:32 2019
@@ -19,16 +19,15 @@ package org.apache.commons.jcs.utils.ser
  * under the License.
  */
 
-import org.apache.commons.jcs.engine.behavior.IElementSerializer;
-import org.apache.commons.jcs.io.ObjectInputStreamClassLoaderAware;
-
-import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
+import org.apache.commons.jcs.engine.behavior.IElementSerializer;
+import org.apache.commons.jcs.io.ObjectInputStreamClassLoaderAware;
+
 /**
  * Performs default serialization and de-serialization.
  * <p>

Modified: commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/utils/serialization/CompressingSerializerUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/utils/serialization/CompressingSerializerUnitTest.java?rev=1859283&r1=1859282&r2=1859283&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/utils/serialization/CompressingSerializerUnitTest.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/utils/serialization/CompressingSerializerUnitTest.java Wed May 15 09:43:32 2019
@@ -110,7 +110,7 @@ public class CompressingSerializerUnitTe
 
         // DO WORK
         byte[] compressed = serializer.serialize( before );
-        byte[] nonCompressed = serializer.serializeObject( before );
+        byte[] nonCompressed = new StandardSerializer().serialize( before );
 
         // VERIFY
         assertTrue( "Compressed should be smaller. compressed size = " + compressed.length + "nonCompressed size = "