[prev in list] [next in list] [prev in thread] [next in thread] 

List:       httpcomponents-commits
Subject:    svn commit: r980767 - in
From:       olegk () apache ! org
Date:       2010-07-30 12:44:45
Message-ID: 20100730124445.BCEA423889E5 () eris ! apache ! org
[Download RAW message or body]

Author: olegk
Date: Fri Jul 30 12:44:44 2010
New Revision: 980767

URL: http://svn.apache.org/viewvc?rev=980767&view=rev
Log:
Made possible for cache entries to depend on system resources that may require \
deallocation

Added:
    httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/Resource.java \
(with props)  httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheEntry.java \
(with props)  httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheMap.java \
(with props) Modified:
    httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheEntry.java
  httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCache.java
  httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheConfig.java
  httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryGenerator.java
  httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java
  httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingHttpClient.java
  httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/CacheEntry.java
  httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCacheEntry.java
  httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCachingHttpClient.java
  httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestResponseCache.java


Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheEntry.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/main/java/org/apache/http/client/cache/HttpCacheEntry.java?rev=980767&r1=980766&r2=980767&view=diff
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheEntry.java \
                (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/HttpCacheEntry.java \
Fri Jul 30 12:44:44 2010 @@ -44,12 +44,15 @@ import org.apache.http.annotation.Immuta
 import org.apache.http.message.BasicHeader;
 
 /**
- * Structure used to store an {@link HttpResponse} in a cache
+ * Structure used to store an {@link HttpResponse} in a cache. Some entries can \
optionally depend + * on system resources that may require explicit deallocation. In \
such a case {@link #getResource()} + * should return a non-null instance of {@link \
Resource} that must be deallocated by calling + * {@link Resource#dispose()} method \
                when no longer used.
  *
  * @since 4.1
  */
 @Immutable
-public class HttpCacheEntry implements Serializable {
+public abstract class HttpCacheEntry implements Serializable {
 
     private static final long serialVersionUID = -6300496422359477413L;
 
@@ -198,21 +201,12 @@ public class HttpCacheEntry implements S
         this.responseHeaders.setHeaders(headers);
     }
 
+    public abstract Resource getResource();
+
     @Override
     public String toString() {
         return "[request date=" + this.requestDate + "; response date=" + \
this.responseDate  + "; statusLine=" + this.statusLine + "]";
     }
 
-    public static HttpCacheEntry copyWithVariant(final HttpCacheEntry entry, final \
                String variantURI){
-        Set<String> variants = new HashSet<String>(entry.getVariantURIs());
-        variants.add(variantURI);
-        return new HttpCacheEntry(
-                entry.getRequestDate(),
-                entry.getResponseDate(),
-                entry.getStatusLine(),
-                entry.getAllHeaders(),
-                entry.getBody(), variants);
-    }
-
 }

Added: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/Resource.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/Resource.java?rev=980767&view=auto
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/Resource.java \
                (added)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/Resource.java \
Fri Jul 30 12:44:44 2010 @@ -0,0 +1,38 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package org.apache.http.client.cache;
+
+/**
+ * Represents a disposable system resource.
+ *
+ * @since 4.1
+ */
+public interface Resource {
+
+    void dispose();
+
+}

Propchange: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/Resource.java
                
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/Resource.java
                
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/client/cache/Resource.java
                
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCache.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/main/java/org/apache/http/impl/client/cache/BasicHttpCache.java?rev=980767&r1=980766&r2=980767&view=diff
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCache.java \
                (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCache.java \
Fri Jul 30 12:44:44 2010 @@ -28,7 +28,6 @@ package org.apache.http.impl.client.cach
 
 import java.io.IOException;
 import java.util.LinkedHashMap;
-import java.util.Map;
 
 import org.apache.http.annotation.ThreadSafe;
 import org.apache.http.client.cache.HttpCache;
@@ -36,29 +35,19 @@ import org.apache.http.client.cache.Http
 import org.apache.http.client.cache.HttpCacheUpdateCallback;
 
 /**
- * Implements {@link HttpCache} using LinkedHashMap for backing store
+ * Basic {@link HttpCache} implementation backed by an instance of {@link \
LinkedHashMap}. + * This cache does NOT deallocate resources associated with the \
cache entries. It is intended + * for use with {@link BasicHttpCacheEntry} and \
                similar.
  *
  * @since 4.1
  */
 @ThreadSafe
 public class BasicHttpCache implements HttpCache {
 
-    private final LinkedHashMap<String, HttpCacheEntry> baseMap = new \
                LinkedHashMap<String, HttpCacheEntry>(
-            20, 0.75f, true) {
-
-        private static final long serialVersionUID = -7750025207539768511L;
-
-        @Override
-        protected boolean removeEldestEntry(Map.Entry<String, HttpCacheEntry> \
                eldest) {
-            return size() > maxEntries;
-        }
-
-    };
-
-    private final int maxEntries;
+    private final CacheMap entries;
 
     public BasicHttpCache(int maxEntries) {
-        this.maxEntries = maxEntries;
+        this.entries = new CacheMap(maxEntries);
     }
 
     /**
@@ -70,7 +59,7 @@ public class BasicHttpCache implements H
      *            HttpCacheEntry to place in the cache
      */
     public synchronized void putEntry(String url, HttpCacheEntry entry) throws \
                IOException {
-        baseMap.put(url, entry);
+        entries.put(url, entry);
     }
 
     /**
@@ -81,7 +70,7 @@ public class BasicHttpCache implements H
      * @return HttpCacheEntry if one exists, or null for cache miss
      */
     public synchronized HttpCacheEntry getEntry(String url) throws IOException {
-        return baseMap.get(url);
+        return entries.get(url);
     }
 
     /**
@@ -91,14 +80,14 @@ public class BasicHttpCache implements H
      *            Url that is the cache key
      */
     public synchronized void removeEntry(String url) throws IOException {
-        baseMap.remove(url);
+        entries.remove(url);
     }
 
     public synchronized void updateEntry(
             String url,
             HttpCacheUpdateCallback callback) throws IOException {
-        HttpCacheEntry existingEntry = baseMap.get(url);
-        baseMap.put(url, callback.update(existingEntry));
+        HttpCacheEntry existingEntry = entries.get(url);
+        entries.put(url, callback.update(existingEntry));
     }
 
 }

Added: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheEntry.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/main/java/org/apache/http/impl/client/cache/BasicHttpCacheEntry.java?rev=980767&view=auto
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheEntry.java \
                (added)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheEntry.java \
Fri Jul 30 12:44:44 2010 @@ -0,0 +1,63 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package org.apache.http.impl.client.cache;
+
+import java.util.Date;
+import java.util.Set;
+
+import org.apache.http.Header;
+import org.apache.http.HttpEntity;
+import org.apache.http.StatusLine;
+import org.apache.http.annotation.Immutable;
+import org.apache.http.client.cache.HttpCacheEntry;
+import org.apache.http.client.cache.Resource;
+
+/**
+ * Basic {@link HttpCacheEntry} that does not depend on any system resources that \
may require + * explicit deallocation.
+ */
+@Immutable
+public class BasicHttpCacheEntry extends HttpCacheEntry {
+
+    private static final long serialVersionUID = -8464486112875881235L;
+
+    public BasicHttpCacheEntry(
+            final Date requestDate,
+            final Date responseDate,
+            final StatusLine statusLine,
+            final Header[] responseHeaders,
+            final HttpEntity body,
+            final Set<String> variants) {
+        super(requestDate, responseDate, statusLine, responseHeaders, body, \
variants); +    }
+
+    @Override
+    public Resource getResource() {
+        return null;
+    }
+
+}

Propchange: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheEntry.java
                
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheEntry.java
                
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCacheEntry.java
                
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheConfig.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/main/java/org/apache/http/impl/client/cache/CacheConfig.java?rev=980767&r1=980766&r2=980767&view=diff
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheConfig.java \
                (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheConfig.java \
Fri Jul 30 12:44:44 2010 @@ -1,3 +1,29 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
 package org.apache.http.impl.client.cache;
 
 /**

Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryGenerator.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/main/java/org/apache/http/impl/client/cache/CacheEntryGenerator.java?rev=980767&r1=980766&r2=980767&view=diff
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryGenerator.java \
                (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryGenerator.java \
Fri Jul 30 12:44:44 2010 @@ -27,6 +27,8 @@
 package org.apache.http.impl.client.cache;
 
 import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.apache.http.Header;
 import org.apache.http.HttpResponse;
@@ -50,10 +52,10 @@ class CacheEntryGenerator {
         Header ct = response.getFirstHeader(HTTP.CONTENT_TYPE);
         Header ce = response.getFirstHeader(HTTP.CONTENT_ENCODING);
         CacheEntity entity = new CacheEntity(
-                body, 
-                ct != null ? ct.getValue() : null, 
+                body,
+                ct != null ? ct.getValue() : null,
                 ce != null ? ce.getValue() : null);
-        return new HttpCacheEntry(requestDate,
+        return new BasicHttpCacheEntry(requestDate,
                               responseDate,
                               response.getStatusLine(),
                               response.getAllHeaders(),
@@ -61,4 +63,15 @@ class CacheEntryGenerator {
                               null);
     }
 
+    public HttpCacheEntry copyWithVariant(final HttpCacheEntry entry, final String \
variantURI){ +        Set<String> variants = new \
HashSet<String>(entry.getVariantURIs()); +        variants.add(variantURI);
+        return new BasicHttpCacheEntry(
+                entry.getRequestDate(),
+                entry.getResponseDate(),
+                entry.getStatusLine(),
+                entry.getAllHeaders(),
+                entry.getBody(), variants);
+      }
+
 }

Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java?rev=980767&r1=980766&r2=980767&view=diff
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java \
                (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java \
Fri Jul 30 12:44:44 2010 @@ -69,7 +69,7 @@ class CacheEntryUpdater {
             HttpResponse response) throws IOException {
 
         Header[] mergedHeaders = mergeHeaders(entry, response);
-        HttpCacheEntry updated = new HttpCacheEntry(requestDate, responseDate,
+        HttpCacheEntry updated = new BasicHttpCacheEntry(requestDate, responseDate,
                                             entry.getStatusLine(),
                                             mergedHeaders,
                                             entry.getBody(),

Added: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheMap.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheMap.java?rev=980767&view=auto
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheMap.java \
                (added)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheMap.java \
Fri Jul 30 12:44:44 2010 @@ -0,0 +1,50 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package org.apache.http.impl.client.cache;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.http.client.cache.HttpCacheEntry;
+
+final class CacheMap extends LinkedHashMap<String, HttpCacheEntry> {
+
+    private static final long serialVersionUID = -7750025207539768511L;
+
+    private final int maxEntries;
+
+    CacheMap(int maxEntries) {
+        super(20, 0.75f, true);
+        this.maxEntries = maxEntries;
+    }
+
+    @Override
+    protected boolean removeEldestEntry(final Map.Entry<String, HttpCacheEntry> \
eldest) { +        return size() > this.maxEntries;
+    }
+
+}
\ No newline at end of file

Propchange: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheMap.java
                
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheMap.java
                
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheMap.java
                
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingHttpClient.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/main/java/org/apache/http/impl/client/cache/CachingHttpClient.java?rev=980767&r1=980766&r2=980767&view=diff
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingHttpClient.java \
                (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingHttpClient.java \
Fri Jul 30 12:44:44 2010 @@ -532,9 +532,9 @@ public class CachingHttpClient implement
             HttpCacheEntry existing,
             HttpCacheEntry entry, String variantURI) {
         if (existing != null) {
-            return HttpCacheEntry.copyWithVariant(existing, variantURI);
+            return cacheEntryGenerator.copyWithVariant(existing, variantURI);
         } else {
-            return HttpCacheEntry.copyWithVariant(entry, variantURI);
+            return cacheEntryGenerator.copyWithVariant(entry, variantURI);
         }
     }
 

Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/CacheEntry.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/test/java/org/apache/http/impl/client/cache/CacheEntry.java?rev=980767&r1=980766&r2=980767&view=diff
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/CacheEntry.java \
                (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/CacheEntry.java \
Fri Jul 30 12:44:44 2010 @@ -31,9 +31,8 @@ import java.util.Date;
 import org.apache.http.Header;
 import org.apache.http.HttpEntity;
 import org.apache.http.StatusLine;
-import org.apache.http.client.cache.HttpCacheEntry;
 
-public class CacheEntry extends HttpCacheEntry {
+public class CacheEntry extends BasicHttpCacheEntry {
 
     private static final long serialVersionUID = 7964121802841871079L;
 
@@ -51,7 +50,7 @@ public class CacheEntry extends HttpCach
     public CacheEntry(
             Date requestDate,
             Date responseDate) {
-        super(requestDate, responseDate, new OKStatus(), new Header[] {}, 
+        super(requestDate, responseDate, new OKStatus(), new Header[] {},
                 new CacheEntity(new byte[] {}), null);
     }
 
@@ -59,7 +58,7 @@ public class CacheEntry extends HttpCach
             Date requestDate,
             Date responseDate,
             Header[] headers) {
-        super(requestDate, responseDate, new OKStatus(), headers, 
+        super(requestDate, responseDate, new OKStatus(), headers,
                 new CacheEntity(new byte[] {}), null);
     }
 
@@ -68,19 +67,19 @@ public class CacheEntry extends HttpCach
             Date responseDate,
             Header[] headers,
             byte[] content) {
-        super(requestDate, responseDate, new OKStatus(), headers, 
+        super(requestDate, responseDate, new OKStatus(), headers,
                 new CacheEntity(content), null);
     }
 
     public CacheEntry(
             Header[] headers,
             byte[] content) {
-        super(new Date(), new Date(), new OKStatus(), headers, 
+        super(new Date(), new Date(), new OKStatus(), headers,
                 new CacheEntity(content), null);
     }
 
     public CacheEntry(Header[] headers) {
-        super(new Date(), new Date(), new OKStatus(), headers, 
+        super(new Date(), new Date(), new OKStatus(), headers,
                 new CacheEntity(new byte[] {}), null);
     }
 
@@ -89,7 +88,7 @@ public class CacheEntry extends HttpCach
     }
 
     public CacheEntry(byte[] content) {
-        super(new Date(), new Date(), new OKStatus(), new Header[] {}, 
+        super(new Date(), new Date(), new OKStatus(), new Header[] {},
                 new CacheEntity(content), null);
     }
 

Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCacheEntry.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/test/java/org/apache/http/impl/client/cache/TestCacheEntry.java?rev=980767&r1=980766&r2=980767&view=diff
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCacheEntry.java \
                (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCacheEntry.java \
Fri Jul 30 12:44:44 2010 @@ -108,8 +108,10 @@ public class TestCacheEntry {
         Header[] headers = new Header[]{};
         CacheEntry entry = new CacheEntry(headers);
 
-        HttpCacheEntry addedOne = HttpCacheEntry.copyWithVariant(entry, "foo");
-        HttpCacheEntry addedTwo = HttpCacheEntry.copyWithVariant(addedOne, "bar");
+        CacheEntryGenerator entryGenerator = new CacheEntryGenerator();
+
+        HttpCacheEntry addedOne = entryGenerator.copyWithVariant(entry, "foo");
+        HttpCacheEntry addedTwo = entryGenerator.copyWithVariant(addedOne, "bar");
 
         Set<String> variants = addedTwo.getVariantURIs();
 

Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCachingHttpClient.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/test/java/org/apache/http/impl/client/cache/TestCachingHttpClient.java?rev=980767&r1=980766&r2=980767&view=diff
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCachingHttpClient.java \
                (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCachingHttpClient.java \
Fri Jul 30 12:44:44 2010 @@ -26,8 +26,6 @@
  */
 package org.apache.http.impl.client.cache;
 
-import static junit.framework.Assert.assertTrue;
-
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -319,18 +317,12 @@ public class TestCachingHttpClient {
 
     @Test
     public void testCacheUpdateAddsVariantURIToParentEntry() throws Exception {
-
         final String variantURI = "variantURI";
-
         final CacheEntry entry = new CacheEntry();
-
+        copyCacheEntry(entry, variantURI);
         replayMocks();
-
-        HttpCacheEntry updatedEntry = impl.doGetUpdatedParentEntry(null, entry, \
                variantURI);
-
+        impl.doGetUpdatedParentEntry(null, entry, variantURI);
         verifyMocks();
-
-        assertTrue(updatedEntry.getVariantURIs().contains(variantURI));
     }
 
 
@@ -1228,6 +1220,11 @@ public class TestCachingHttpClient {
                                                  bytes)).andReturn(mockCacheEntry);
     }
 
+    private void copyCacheEntry(CacheEntry entry, String variantURI) {
+        EasyMock.expect(
+                mockEntryGenerator.copyWithVariant(entry, \
variantURI)).andReturn(entry); +    }
+
     private void handleBackendResponseReturnsResponse(HttpRequest request, \
HttpResponse response)  throws IOException {
         EasyMock.expect(

Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestResponseCache.java
                
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src \
/test/java/org/apache/http/impl/client/cache/TestResponseCache.java?rev=980767&r1=980766&r2=980767&view=diff
 ==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestResponseCache.java \
                (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestResponseCache.java \
Fri Jul 30 12:44:44 2010 @@ -143,7 +143,7 @@ public class TestResponseCache {
         cache.updateEntry("foo", new HttpCacheUpdateCallback() {
 
             public HttpCacheEntry update(HttpCacheEntry existing) {
-                HttpCacheEntry updated = new HttpCacheEntry(
+                HttpCacheEntry updated = new BasicHttpCacheEntry(
                         existing.getRequestDate(),
                         existing.getRequestDate(),
                         existing.getStatusLine(),


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic