hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <garydgreg...@gmail.com>
Subject org.apache.hc.client5.http.entity.GzipDecompressingEntity refactoring (less garbage)
Date Mon, 08 May 2017 01:31:21 GMT
Hi all,

How about making DecompressingEntity implementations reuse their same
factories since they are stateless?

Like this:

Index:
src/main/java/org/apache/hc/client5/http/entity/GzipDecompressingEntity.java
===================================================================
---
src/main/java/org/apache/hc/client5/http/entity/GzipDecompressingEntity.java
(revision
1794275)
+++
src/main/java/org/apache/hc/client5/http/entity/GzipDecompressingEntity.java
(working
copy)
@@ -33,29 +33,31 @@
 import org.apache.hc.core5.http.HttpEntity;

 /**
- * {@link org.apache.hc.core5.http.io.entity.HttpEntityWrapper} for
handling gzip
- * Content Coded responses.
+ * {@link org.apache.hc.core5.http.io.entity.HttpEntityWrapper} for
handling
+ * gzip Content Coded responses.
  *
  * @since 4.1
  */
 public class GzipDecompressingEntity extends DecompressingEntity {

+    private static final InputStreamFactory inputStreamFactory = new
InputStreamFactory() {
+
+        @Override
+        public InputStream create(final InputStream instream) throws
IOException {
+            return new GZIPInputStream(instream);
+        }
+
+    };
+
     /**
-     * Creates a new {@link GzipDecompressingEntity} which will wrap the
specified
-     * {@link HttpEntity}.
+     * Creates a new {@link GzipDecompressingEntity} which will wrap the
+     * specified {@link HttpEntity}.
      *
      * @param entity
      *            the non-null {@link HttpEntity} to be wrapped
      */
     public GzipDecompressingEntity(final HttpEntity entity) {
-        super(entity, new InputStreamFactory() {
-
-            @Override
-            public InputStream create(final InputStream instream) throws
IOException {
-                return new GZIPInputStream(instream);
-            }
-
-        });
+        super(entity, inputStreamFactory);
     }

 }

and the same for other DecompressingEntity implementations.

Gary

-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
Java Persistence with Hibernate, Second Edition
<https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459>
JUnit in Action, Second Edition
<https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021>
Spring Batch in Action
<https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message