Skip to content

httpcache4j/httpcache4j

Repository files navigation

HTTPCache4j a Java Browser cache.

Build Status

HTTP Cache 4 Java is a project that tries to uphold the caching rules defined in HTTP. The rules are mostly defined in Section 13 in RFC2616. The rules are changing slightly in httpbis, and will result in a new set of RFCs which will invalidate RFC2616.

Most types in HTTPCache4j are immutable. Meaning all builders, and other types of objects.

I have created a few mutable versions which delegates to the immutable types underneath. The mutable versions are not thread safe.

Usage

Spring support

Spring support has been moved to separate repository.

Maven

Add this to your POM

<dependency>
  <groupId>org.codehaus.httpcache4j</groupId>
  <artifactId>httpcache4j-core</artifactId>
  <version>5.1.0</version>
</dependency>

Now choose your resolver.

<dependency>
  <groupId>org.codehaus.httpcache4j.resolvers</groupId>
  <artifactId>resolvers-commons-httpclient</artifactId>
  <version>5.1.0</version>
</dependency>

<dependency>
  <groupId>org.codehaus.httpcache4j.resolvers</groupId>
  <artifactId>resolvers-httpcomponents-httpclient</artifactId>
  <version>5.1.0</version>
</dependency>

<dependency>
  <groupId>org.codehaus.httpcache4j.resolvers</groupId>
  <artifactId>resolvers-ning-async</artifactId>
  <version>5.1.0</version>
</dependency>

Then choose your storage mechanism.

The core has a built in Memory storage, and is useful for non-persistent small data. The core also has a resolver built on java.net.URLConnection.

If this is not enough, there are a number of persistent storages to choose from

  <dependency>
    <groupId>org.codehaus.httpcache4j.storage</groupId>
    <artifactId>storage-file</artifactId>
    <version>5.1.0</version>
  </dependency>

There are also a few jdbc storages which are independently developed from the core.

SNAPSHOT version

Snapshots are available from

Maven

<repository>
  <id>sonatype-snapshots</id>
  <url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>

HTTP Library

If you want to use HTTPCache4j as a normal HTTP library without the caching functions, you can. Either just use a resolver, or use a NullStorage with the HTTPCache class.