public boolean isStale(LocalDateTime requestTime) { if (response.hasPayload() && !response.getPayload().get().isAvailable()) { return true; } return ttl - getAge(requestTime) <= 0; }
public Properties toProperties() { Properties object = new Properties(); object.setProperty("cache-time", HeaderUtils.toHttpDate("cache-time", item.getCachedTime()).getValue()); HTTPResponse response = item.getResponse(); object.setProperty("status", String.valueOf(response.getStatus().getCode())); if (response.hasPayload()) { FilePayload payload = (FilePayload) response.getPayload().get(); object.setProperty("file", payload.getFile().getAbsolutePath()); } object.setProperty("headers", response.getHeaders().toString()); return object; }
@Override protected HTTPResponse putImpl(Key key, HTTPResponse response) { HTTPResponse resolvedResponse = response.getPayload().flatMap(p -> { if (persistablePayload(p)) { try { return Optional.of(response.withPayload(createRealPayload(key, (FilePayload)p))); } catch (IOException ignore) {} } return Optional.empty(); }).orElse(response); HTTPResponse res = super.putImpl(key, resolvedResponse); if (serializationPolicy.shouldWePersist(modCount++, lastSerialization)) { lastSerialization = System.currentTimeMillis(); saveCacheToDisk(); } return res; }
private HTTPResponse createCacheableResponse(Key key, HTTPResponse response) throws IOException { Optional<Payload> payload = Optional.empty(); if (response.hasPayload()) { Payload p = response.getPayload().get(); File file = fileManager.createFile(key, p.getInputStream()); if (file != null && file.exists()) { payload = Optional.of(new FilePayload(file, p.getMimeType())); } } return new HTTPResponse(payload, response.getStatusLine(), response.getHeaders()); }
statement.setInt(3, response.getStatus().getCode()); statement.setString(4, response.getHeaders().toJSON()); if (response.hasPayload() && response.getPayload().isAvailable()) { statement.setString(5, response.getPayload().getMimeType().toString()); try { File file = manager.createFile(key, response.getPayload().getInputStream()); if (file != null && file.exists()) { payload.set(new FilePayload(file, response.getPayload().getMimeType()));
public void write(HTTPResponse response, PrintStream stream) { writeStatus(stream, response.getStatusLine()); writeHeaders(stream, response.getHeaders()); if (response.hasPayload()) { writeBody(stream, response.getPayload()); } stream.flush(); }