You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2007/02/06 02:24:43 UTC

svn commit: r503948 - in /incubator/abdera/java/trunk: client/src/main/java/org/apache/abdera/protocol/client/ protocol/src/main/java/org/apache/abdera/protocol/util/

Author: jmsnell
Date: Mon Feb  5 17:24:43 2007
New Revision: 503948

URL: http://svn.apache.org/viewvc?view=rev&rev=503948
Log:
Consolidating utility classes

Removed:
    incubator/abdera/java/trunk/protocol/src/main/java/org/apache/abdera/protocol/util/ContentEncodingUtil.java
Modified:
    incubator/abdera/java/trunk/client/src/main/java/org/apache/abdera/protocol/client/CommonsResponse.java
    incubator/abdera/java/trunk/protocol/src/main/java/org/apache/abdera/protocol/util/EncodingUtil.java

Modified: incubator/abdera/java/trunk/client/src/main/java/org/apache/abdera/protocol/client/CommonsResponse.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/client/src/main/java/org/apache/abdera/protocol/client/CommonsResponse.java?view=diff&rev=503948&r1=503947&r2=503948
==============================================================================
--- incubator/abdera/java/trunk/client/src/main/java/org/apache/abdera/protocol/client/CommonsResponse.java (original)
+++ incubator/abdera/java/trunk/client/src/main/java/org/apache/abdera/protocol/client/CommonsResponse.java Mon Feb  5 17:24:43 2007
@@ -27,7 +27,7 @@
 
 import org.apache.abdera.Abdera;
 import org.apache.abdera.protocol.client.util.AutoReleasingInputStream;
-import org.apache.abdera.protocol.util.ContentEncodingUtil;
+import org.apache.abdera.protocol.util.EncodingUtil;
 import org.apache.commons.httpclient.Header;
 import org.apache.commons.httpclient.HttpMethod;
 import org.apache.commons.httpclient.URIException;
@@ -155,7 +155,7 @@
       String ce = getHeader("Content-Encoding");
       in = method.getResponseBodyAsStream();
       if (ce != null)
-        in = ContentEncodingUtil.getDecodingInputStream(in, ce);
+        in = EncodingUtil.getDecodingInputStream(in, ce);
     }
     return new AutoReleasingInputStream(method,in);
   }

Modified: incubator/abdera/java/trunk/protocol/src/main/java/org/apache/abdera/protocol/util/EncodingUtil.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/protocol/src/main/java/org/apache/abdera/protocol/util/EncodingUtil.java?view=diff&rev=503948&r1=503947&r2=503948
==============================================================================
--- incubator/abdera/java/trunk/protocol/src/main/java/org/apache/abdera/protocol/util/EncodingUtil.java (original)
+++ incubator/abdera/java/trunk/protocol/src/main/java/org/apache/abdera/protocol/util/EncodingUtil.java Mon Feb  5 17:24:43 2007
@@ -17,6 +17,14 @@
 */
 package org.apache.abdera.protocol.util;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.zip.DeflaterOutputStream;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.GZIPOutputStream;
+import java.util.zip.InflaterInputStream;
+
 import org.apache.commons.codec.net.QCodec;
 
 public class EncodingUtil {
@@ -35,5 +43,37 @@
     } catch (Exception e) {
       return value;
     }
+  }
+  
+  public enum ContentEncoding { GZIP, XGZIP, DEFLATE }
+  
+  public static OutputStream getEncodedOutputStream(OutputStream out, ContentEncoding encoding) throws IOException {
+    return getEncodedOutputStream(out, new ContentEncoding[] {encoding});
+  }
+  
+  public static OutputStream getEncodedOutputStream(OutputStream out, ContentEncoding... encodings) throws IOException {
+    for (ContentEncoding encoding:encodings) {
+      switch(encoding) {
+        case GZIP:
+          out = new GZIPOutputStream(out); break;
+        case DEFLATE:
+          out = new DeflaterOutputStream(out); break;
+      }
+    }
+    return out;
+  }
+  
+  public static InputStream getDecodingInputStream(InputStream in, String ce) throws IOException {
+    String[] encodings = CacheControlParser.splitAndTrim(ce, ",", false);
+    for (int n = encodings.length -1; n >= 0; n--) {
+      switch(ContentEncoding.valueOf(encodings[n].toUpperCase().replaceAll("-", ""))) {
+        case GZIP:
+        case XGZIP:
+          in = new GZIPInputStream(in); break;
+        case DEFLATE:
+          in = new InflaterInputStream(in); break;
+      }
+    }
+    return in;
   }
 }