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 = "