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 <t...@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 = "