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/28 13:48:51 UTC

[commons-jcs] 03/09: Remove duplicate code

This is an automated email from the ASF dual-hosted git repository.

tv pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jcs.git

commit 79e8cbbf4afbf5803c50ab10d3f51e5a46425e03
Author: Thomas Vandahl <tv...@apache.org>
AuthorDate: Tue May 28 15:38:26 2019 +0200

    Remove duplicate code
---
 .../utils/serialization/CompressingSerializer.java | 60 +++-------------------
 .../utils/serialization/StandardSerializer.java    |  7 ++-
 .../CompressingSerializerUnitTest.java             |  2 +-
 3 files changed, 10 insertions(+), 59 deletions(-)

diff --git a/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/CompressingSerializer.java b/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/CompressingSerializer.java
index 4b3aa53..f28a778 100644
--- a/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/CompressingSerializer.java
+++ b/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/CompressingSerializer.java
@@ -19,22 +19,14 @@ package org.apache.commons.jcs.utils.serialization;
  * 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);
     }
 }
diff --git a/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/StandardSerializer.java b/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/StandardSerializer.java
index 28dac5b..7206b3f 100644
--- a/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/StandardSerializer.java
+++ b/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/serialization/StandardSerializer.java
@@ -19,16 +19,15 @@ package org.apache.commons.jcs.utils.serialization;
  * 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>
diff --git a/commons-jcs-core/src/test/java/org/apache/commons/jcs/utils/serialization/CompressingSerializerUnitTest.java b/commons-jcs-core/src/test/java/org/apache/commons/jcs/utils/serialization/CompressingSerializerUnitTest.java
index 79c0658..6b09dca 100644
--- a/commons-jcs-core/src/test/java/org/apache/commons/jcs/utils/serialization/CompressingSerializerUnitTest.java
+++ b/commons-jcs-core/src/test/java/org/apache/commons/jcs/utils/serialization/CompressingSerializerUnitTest.java
@@ -110,7 +110,7 @@ public class CompressingSerializerUnitTest
 
         // 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 = "