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 d093cd4c22004047483dc89e2d7b4ad6ef5b3c93
Author: Thomas Vandahl <t...@apache.org>
AuthorDate: Mon Feb 15 22:20:45 2021 +0100

    Use composition instead of inheritance
---
 .../utils/serialization/CompressingSerializer.java | 27 ++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git 
a/commons-jcs-core/src/main/java/org/apache/commons/jcs3/utils/serialization/CompressingSerializer.java
 
b/commons-jcs-core/src/main/java/org/apache/commons/jcs3/utils/serialization/CompressingSerializer.java
index 9043822..b9ffb80 100644
--- 
a/commons-jcs-core/src/main/java/org/apache/commons/jcs3/utils/serialization/CompressingSerializer.java
+++ 
b/commons-jcs-core/src/main/java/org/apache/commons/jcs3/utils/serialization/CompressingSerializer.java
@@ -21,6 +21,7 @@ package org.apache.commons.jcs3.utils.serialization;
 
 import java.io.IOException;
 
+import org.apache.commons.jcs3.engine.behavior.IElementSerializer;
 import org.apache.commons.jcs3.utils.zip.CompressionUtil;
 
 /**
@@ -28,6 +29,28 @@ import org.apache.commons.jcs3.utils.zip.CompressionUtil;
  */
 public class CompressingSerializer extends StandardSerializer
 {
+    /** Wrapped serializer */
+    private final IElementSerializer serializer;
+
+
+    /**
+     * Default constructor
+     */
+    public CompressingSerializer()
+    {
+        this(new StandardSerializer());
+    }
+
+    /**
+     * Wrapper constructor
+     *
+     * @param serializer the wrapped serializer
+     */
+    public CompressingSerializer(IElementSerializer serializer)
+    {
+        this.serializer = serializer;
+    }
+
     /**
      * Serializes an object using default serialization. Compresses the byte 
array.
      * <p>
@@ -39,7 +62,7 @@ public class CompressingSerializer extends StandardSerializer
     public <T> byte[] serialize( final T obj )
         throws IOException
     {
-        final byte[] uncompressed = super.serialize(obj);
+        final byte[] uncompressed = serializer.serialize(obj);
         final byte[] compressed = CompressionUtil.compressByteArray( 
uncompressed );
         return compressed;
     }
@@ -64,6 +87,6 @@ public class CompressingSerializer extends StandardSerializer
         }
 
         final byte[] decompressedByteArray = 
CompressionUtil.decompressByteArray( data );
-        return super.deSerialize(decompressedByteArray, loader);
+        return serializer.deSerialize(decompressedByteArray, loader);
     }
 }

Reply via email to