code: public OutputStream put(String resource) throws CacheException {
  		if(Strings.isValid(resource)) {
  			return storage.store(resource);
  		}
  		return null;
  	}
docs: Tells the cache to store under the given resource name the contents
  that will be written to the output stream; the method creates a new
  resource entry and opens an output stream to it, then returns the
  stream to the caller so this can copy its data into it. It is up to
  the caller to close the steam once all data have been written to it.
  This mechanism actually by-passes the cache and the miss handlers and
  provides direct access to the underlying storage engine, thus providing
  a highly efficient way of storing data into the cache.
  
  @param resource
  the name of the new resource, to which the returned output stream
  will point; it must be a valid, non empty string.
  @return
  an output stream ; the caller will write its data into it, and then
  will flush and close it once it's done writing data.
  @throws CacheException