类javax.ws.rs.core.CacheControl源码实例Demo

下面列出了怎么用javax.ws.rs.core.CacheControl的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: jweb-cms   文件: ImageController.java
@Path("/{s:.+}")
@GET
public Response image() {
    String requestPath = uriInfo.getPath();

    Matcher matcher = IMAGE_PATTERN.matcher(requestPath);
    if (!matcher.matches()) {
        throw new NotFoundException(requestPath);
    }
    CacheControl cacheControl = new CacheControl();
    cacheControl.setMaxAge(Integer.MAX_VALUE);
    String filePath = matcher.group(2);
    Optional<Resource> resource = cache.get(requestPath);
    if (resource.isPresent()) {
        return Response.ok(resource.get()).cacheControl(cacheControl).build();
    }
    Resource file = fileRepository.get(filePath).orElseThrow(() -> new NotFoundException("missing file, requestPath=" + filePath));
    java.nio.file.Path targetPath = cache.path().resolve(requestPath);
    imageScalar.scale(file, new ImageSize(matcher.group(1)), targetPath);
    resource = cache.get(requestPath);
    if (resource.isPresent()) {
        return Response.ok(resource.get()).type(MediaTypes.getMediaType(filePath)).cacheControl(cacheControl).build();
    }
    throw new NotFoundException("missing image, requestPath=" + requestPath);
}
 
源代码2 项目: jweb-cms   文件: ImageController.java
@Path("/{s:.+}")
@GET
public Response image() {
    String requestPath = uriInfo.getPath();

    Matcher matcher = IMAGE_PATTERN.matcher(requestPath);
    if (!matcher.matches()) {
        throw new NotFoundException(requestPath);
    }
    CacheControl cacheControl = new CacheControl();
    cacheControl.setMaxAge(Integer.MAX_VALUE);
    String filePath = matcher.group(2);
    Optional<Resource> resource = cache.get(requestPath);
    if (resource.isPresent()) {
        return Response.ok(resource.get()).cacheControl(cacheControl).build();
    }
    Resource file = fileRepository.get(filePath).orElseThrow(() -> new NotFoundException("missing file, requestPath=" + filePath));
    java.nio.file.Path targetPath = cache.path().resolve(requestPath);
    imageScalar.scale(file, new ImageSize(matcher.group(1)), targetPath);
    resource = cache.get(requestPath);
    if (resource.isPresent()) {
        return Response.ok(resource.get()).type(MediaTypes.getMediaType(filePath)).cacheControl(cacheControl).build();
    }
    throw new NotFoundException("missing image, requestPath=" + requestPath);
}
 
/**
 * Apply cache policy to a response.
 *
 * @param response     The response builder.
 * @param eTag         The ETag of the resource.
 * @param lastModified The last modified date of the resource.
 * @param isToBeCached     Boolean to set whether we should define maxage of cache control
 * @return The response builder with the cache policy.
 */
private static Response.ResponseBuilder applyCachePolicyToResponse(Response.ResponseBuilder response, EntityTag eTag, Date lastModified, boolean isToBeCached) {

    if (isToBeCached) {
        CacheControl cc = new CacheControl();
        cc.setMaxAge(CACHE_SECOND);
        cc.setNoTransform(false);
        cc.setPrivate(false);

        Calendar expirationDate = Calendar.getInstance();
        expirationDate.add(Calendar.SECOND, CACHE_SECOND);
        response.cacheControl(cc)
                .expires(expirationDate.getTime());

    }

    return response.lastModified(lastModified)
            .tag(eTag);
}
 
源代码4 项目: mycore   文件: MCRSessionFilter.java
/**
 * If request was authenticated via JSON Web Token add a new token if <code>aud</code> was
 * {@link MCRRestAPIAuthentication#AUDIENCE}.
 *
 * If the response has a status code that represents a client error (4xx), the JSON Web Token is ommited.
 * If the response already has a JSON Web Token no changes are made.
 */
private static void addJWTToResponse(ContainerRequestContext requestContext,
    ContainerResponseContext responseContext) {
    MCRSession currentSession = MCRSessionMgr.getCurrentSession();
    boolean renewJWT = Optional.ofNullable(requestContext.getProperty(PROP_RENEW_JWT))
        .map(Boolean.class::cast)
        .orElse(Boolean.FALSE);
    Optional.ofNullable(requestContext.getHeaderString(HttpHeaders.AUTHORIZATION))
        .filter(s -> s.startsWith("Bearer "))
        .filter(s -> !responseContext.getStatusInfo().getFamily().equals(Response.Status.Family.CLIENT_ERROR))
        .filter(s -> responseContext.getHeaderString(HttpHeaders.AUTHORIZATION) == null)
        .map(h -> renewJWT ? ("Bearer " + MCRRestAPIAuthentication
            .getToken(currentSession.getUserInformation(), currentSession.getCurrentIP())
            .orElseThrow(() -> new InternalServerErrorException("Could not get JSON Web Token"))) : h)
        .ifPresent(h -> {
            responseContext.getHeaders().putSingle(HttpHeaders.AUTHORIZATION, h);
            //Authorization header may never be cached in public caches
            Optional.ofNullable(requestContext.getHeaderString(HttpHeaders.CACHE_CONTROL))
                .map(CacheControl::valueOf)
                .filter(cc -> !cc.isPrivate())
                .ifPresent(cc -> {
                    cc.setPrivate(true);
                    responseContext.getHeaders().putSingle(HttpHeaders.CACHE_CONTROL, cc);
                });
        });
}
 
源代码5 项目: mycore   文件: MCRViewerResource.java
private Response showViewer(HttpServletRequest request, Request jaxReq) throws Exception {
    MCRContent content = getContent(request);
    String contentETag = content.getETag();
    Response.ResponseBuilder responseBuilder = null;
    EntityTag eTag = contentETag == null ? null : new EntityTag(contentETag);
    if (eTag != null) {
        responseBuilder = jaxReq.evaluatePreconditions(eTag);
    }
    if (responseBuilder == null) {
        responseBuilder = Response.ok(content.asByteArray(), MediaType.valueOf(content.getMimeType()));
    }
    if (eTag != null) {
        responseBuilder.tag(eTag);
    }
    if (content.isUsingSession()) {
        CacheControl cc = new CacheControl();
        cc.setPrivate(true);
        cc.setMaxAge(0);
        cc.setMustRevalidate(true);
        responseBuilder.cacheControl(cc);
    }
    return responseBuilder.build();
}
 
源代码6 项目: resteasy-examples   文件: CustomerResourceTest.java
@Test
public void testCustomerResource() throws Exception
{
   System.out.println("*** Create a new Customer ***");
   Customer newCustomer = new Customer();
   newCustomer.setFirstName("Bill");
   newCustomer.setLastName("Burke");
   newCustomer.setStreet("256 Clarendon Street");
   newCustomer.setCity("Boston");
   newCustomer.setState("MA");
   newCustomer.setZip("02115");
   newCustomer.setCountry("USA");

   Response response = client.target("http://localhost:8080/services/customers")
           .request().post(Entity.xml(newCustomer));
   if (response.getStatus() != 201) throw new RuntimeException("Failed to create");
   String location = response.getLocation().toString();
   System.out.println("Location: " + location);
   response.close();

   System.out.println("*** GET Created Customer **");
   response = client.target(location).request().get();
   CacheControl cc = CacheControl.valueOf(response.getHeaderString(HttpHeaders.CACHE_CONTROL));
   System.out.println("Max age: " + cc.getMaxAge());
}
 
源代码7 项目: jaxrs-analyzer   文件: TestClass22.java
@javax.ws.rs.GET public Response method() {
    Response.ResponseBuilder responseBuilder = Response.ok();
    responseBuilder.header("X-Test", "Hello");
    responseBuilder.cacheControl(CacheControl.valueOf(""));
    responseBuilder.contentLocation(URI.create(""));
    responseBuilder.cookie();
    responseBuilder.entity(12d);
    responseBuilder.expires(new Date());
    responseBuilder.language(Locale.ENGLISH);
    responseBuilder.encoding("UTF-8");
    responseBuilder.lastModified(new Date());
    responseBuilder.link(URI.create(""), "rel");
    responseBuilder.location(URI.create(""));
    responseBuilder.status(433);
    responseBuilder.tag(new EntityTag(""));
    responseBuilder.type(MediaType.APPLICATION_JSON_TYPE);
    responseBuilder.variants(new LinkedList<>());

    return responseBuilder.build();
}
 
源代码8 项目: cxf   文件: BookStore.java
@GET
@Path("/books/response3/{bookId}/")
@Produces("application/xml")
public Response getBookAsResponse3(@PathParam("bookId") String id,
                                   @HeaderParam("If-Modified-Since") String modifiedSince
) throws BookNotFoundFault {
    Book entity = doGetBook(id);

    EntityTag etag = new EntityTag(Integer.toString(entity.hashCode()));

    CacheControl cacheControl = new CacheControl();
    cacheControl.setMaxAge(1);
    cacheControl.setPrivate(true);

    if (modifiedSince != null) {
        return Response.status(304).tag(etag)
            .cacheControl(cacheControl).lastModified(new Date()).build();
    } else {
        return Response.ok().tag(etag).entity(entity)
            .cacheControl(cacheControl).lastModified(new Date()).build();
    }
}
 
源代码9 项目: cxf   文件: RuntimeDelegateImplTest.java
@Test
public void testCreateHeaderProvider() throws Exception {
    assertSame(MediaTypeHeaderProvider.class,
               new RuntimeDelegateImpl().
                   createHeaderDelegate(MediaType.class).getClass());
    assertSame(EntityTagHeaderProvider.class,
               new RuntimeDelegateImpl().
                   createHeaderDelegate(EntityTag.class).getClass());
    assertSame(CacheControlHeaderProvider.class,
               new RuntimeDelegateImpl().
                   createHeaderDelegate(CacheControl.class).getClass());
    assertSame(CookieHeaderProvider.class,
               new RuntimeDelegateImpl().
                   createHeaderDelegate(Cookie.class).getClass());
    assertSame(NewCookieHeaderProvider.class,
               new RuntimeDelegateImpl().
                   createHeaderDelegate(NewCookie.class).getClass());
}
 
源代码10 项目: cxf   文件: CacheControlHeaderProviderTest.java
@Test
public void testFromComplexStringWithSemicolon() {
    CacheControlHeaderProvider cp = new CacheControlHeaderProvider() {
        protected Message getCurrentMessage() {
            Message m = new MessageImpl();
            m.put(CacheControlHeaderProvider.CACHE_CONTROL_SEPARATOR_PROPERTY, ";");
            return m;
        }
    };
    CacheControl c = cp.fromString(
        "private=\"foo\";no-cache=\"bar\";no-store;no-transform;"
        + "must-revalidate;proxy-revalidate;max-age=2;s-maxage=3");
    assertTrue(c.isPrivate() && c.isNoStore()
               && c.isMustRevalidate() && c.isProxyRevalidate() && c.isNoCache());
    assertTrue(c.isNoTransform() && c.getNoCacheFields().size() == 1
               && c.getPrivateFields().size() == 1);
    assertEquals("foo", c.getPrivateFields().get(0));
    assertEquals("bar", c.getNoCacheFields().get(0));

}
 
源代码11 项目: cxf   文件: CacheControlClientReaderInterceptor.java
private long computeExpiry(CacheControl cacheControl, MultivaluedMap<String, String> responseHeaders) {
    // if a max-age property is set then it overrides Expires
    long expiry = cacheControl.getMaxAge();
    if (expiry == -1) {
        //TODO: Review if Expires can be supported as an alternative to Cache-Control
        String expiresHeader = responseHeaders.getFirst(HttpHeaders.EXPIRES);
        if (expiresHeader.length() > 1 && expiresHeader.startsWith("'") && expiresHeader.endsWith("'")) {
            expiresHeader = expiresHeader.substring(1, expiresHeader.length() - 1);
        }
        try {
            expiry = (Headers.getHttpDateFormat().parse(expiresHeader).getTime()
                - System.currentTimeMillis()) / 1000L;
        } catch (final ParseException e) {
            // TODO: Revisit the possibility of supporting multiple formats
        }
    }
    return expiry;
}
 
源代码12 项目: everrest   文件: CacheControlBuilder.java
public CacheControl build() {
    CacheControl cacheControl = new CacheControl();
    cacheControl.setMustRevalidate(mustRevalidate);
    cacheControl.setProxyRevalidate(proxyRevalidate);
    cacheControl.setMaxAge(maxAge);
    cacheControl.setSMaxAge(sMaxAge);
    cacheControl.setNoCache(noCache);
    cacheControl.setPrivate(privateFlag);
    cacheControl.setNoTransform(noTransform);
    cacheControl.setNoStore(noStore);
    if (privateFields != null) {
        cacheControl.getPrivateFields().addAll(privateFields);
    }
    if (noCacheFields != null) {
        cacheControl.getNoCacheFields().addAll(noCacheFields);
    }
    if (cacheExtension != null) {
        cacheControl.getCacheExtension().putAll(cacheExtension);
    }
    return cacheControl;
}
 
源代码13 项目: everrest   文件: CacheControlHeaderDelegateTest.java
@Test
public void testToStringCacheControlWithAllArguments() throws Exception {
    CacheControl cacheControl = aCacheControl()
            .withMaxAge(60)
            .withMustRevalidate(true)
            .withNoCache(true)
            .withNoStore(true)
            .withNoTransform(true)
            .withPrivate(true)
            .withProxyRevalidate(true)
            .withSMaxAge(60)
            .withPrivateFields(newArrayList("aaa"))
            .withNoCacheFields(newArrayList("bbb"))
            .withCacheExtension(ImmutableMap.of("foo", "bar"))
            .build();

    assertEquals("private=\"aaa\", no-cache=\"bbb\", no-store, no-transform, must-revalidate, proxy-revalidate, 60, 60, foo=bar",
                 cacheControlHeaderDelegate.toString(cacheControl));
}
 
源代码14 项目: keycloak   文件: LoginStatusIframeEndpoint.java
@GET
@Produces(MediaType.TEXT_HTML_UTF_8)
public Response getLoginStatusIframe(@QueryParam("version") String version) {
    CacheControl cacheControl;
    if (version != null) {
        if (!version.equals(Version.RESOURCES_VERSION)) {
            return Response.status(Response.Status.NOT_FOUND).build();
        }
        cacheControl = CacheControlUtil.getDefaultCacheControl();
    } else {
        cacheControl = CacheControlUtil.noCache();
    }

    InputStream resource = getClass().getClassLoader().getResourceAsStream("login-status-iframe.html");
    if (resource != null) {
        P3PHelper.addP3PHeader();
        session.getProvider(SecurityHeadersProvider.class).options().allowAnyFrameAncestor();
        return Response.ok(resource).cacheControl(cacheControl).build();
    } else {
        return Response.status(Response.Status.NOT_FOUND).build();
    }
}
 
源代码15 项目: keycloak   文件: JsResource.java
private Response getJs(String name, String version) {
    CacheControl cacheControl;
    if (version != null) {
        if (!version.equals(Version.RESOURCES_VERSION)) {
            return Response.status(Response.Status.NOT_FOUND).build();
        }
        cacheControl = CacheControlUtil.getDefaultCacheControl();
    } else {
        cacheControl = CacheControlUtil.noCache();
    }

    Cors cors = Cors.add(request).allowAllOrigins();

    InputStream inputStream = getClass().getClassLoader().getResourceAsStream(name);
    if (inputStream != null) {
        return cors.builder(Response.ok(inputStream).type("text/javascript").cacheControl(cacheControl)).build();
    } else {
        return cors.builder(Response.status(Response.Status.NOT_FOUND)).build();
    }
}
 
源代码16 项目: timbuctoo   文件: VreImage.java
@GET
public Response getImage(@PathParam("vreName") String vreName) {

  return transactionEnforcer.executeAndReturn(timbuctooActions -> {
    final Vre vre = timbuctooActions.getVre(vreName);
    if (vre == null) {
      return TransactionStateAndResult.commitAndReturn(Response.status(Response.Status.NOT_FOUND).build());
    }

    final byte[] imageBlob = timbuctooActions.getVreImageBlob(vreName);
    final MediaType mediaType = vre.getMetadata().getImageMediaType();

    if (imageBlob != null && mediaType != null) {
      final CacheControl cacheControl = new CacheControl();
      cacheControl.setMaxAge(604800);
      cacheControl.setPrivate(false);
      return TransactionStateAndResult.commitAndReturn(Response
        .ok(imageBlob).type(mediaType).cacheControl(cacheControl).build());
    } else {
      return TransactionStateAndResult.commitAndReturn(Response.status(Response.Status.NOT_FOUND).build());
    }
  });
}
 
源代码17 项目: org.openntf.domino   文件: SearchResource.java
private ResponseBuilder getBuilder(final String jsonEntity, final Date lastMod, final boolean includeEtag, final Request request) {
	String etagSource = DominoUtils.md5(jsonEntity);
	EntityTag etag = new EntityTag(etagSource);
	ResponseBuilder berg = null;
	if (request != null) {
		berg = request.evaluatePreconditions(etag);
	}
	if (berg == null) {
		berg = Response.ok();
		if (includeEtag) {
			berg.tag(etag);
		}
		berg.type(MediaType.APPLICATION_JSON_TYPE);
		berg.entity(jsonEntity);
		berg.lastModified(lastMod);
		CacheControl cc = new CacheControl();
		cc.setMustRevalidate(true);
		cc.setPrivate(true);
		cc.setMaxAge(86400);
		cc.setNoTransform(true);
		berg.cacheControl(cc);
	}
	return berg;
}
 
源代码18 项目: localization_nifi   文件: ProcessorWebUtils.java
static Response.ResponseBuilder applyCacheControl(Response.ResponseBuilder response) {
    CacheControl cacheControl = new CacheControl();
    cacheControl.setPrivate(true);
    cacheControl.setNoCache(true);
    cacheControl.setNoStore(true);
    return response.cacheControl(cacheControl);
}
 
源代码19 项目: localization_nifi   文件: RuleResource.java
private ResponseBuilder noCache(ResponseBuilder response) {
    CacheControl cacheControl = new CacheControl();
    cacheControl.setPrivate(true);
    cacheControl.setNoCache(true);
    cacheControl.setNoStore(true);
    return response.cacheControl(cacheControl);
}
 
源代码20 项目: localization_nifi   文件: ApplicationResource.java
/**
 * Edit the response headers to indicating no caching.
 *
 * @param response response
 * @return builder
 */
protected ResponseBuilder noCache(final ResponseBuilder response) {
    final CacheControl cacheControl = new CacheControl();
    cacheControl.setPrivate(true);
    cacheControl.setNoCache(true);
    cacheControl.setNoStore(true);
    return response.cacheControl(cacheControl);
}
 
源代码21 项目: jweb-cms   文件: FileAdminController.java
@Path("/{s:.+}")
@GET
public Response file() {
    String path = uriInfo.getPath().substring("/admin/file".length());
    Optional<Resource> resource = fileRepository.get(path);
    if (!resource.isPresent()) {
        return Response.ok().status(Response.Status.NOT_FOUND).build();
    }
    CacheControl cacheControl = new CacheControl();
    cacheControl.setMaxAge(Integer.MAX_VALUE);
    return Response.ok(resource.get()).type(MediaTypes.getMediaType(path)).cacheControl(cacheControl).build();
}
 
源代码22 项目: jweb-cms   文件: FileController.java
@Path("/{s:.+}")
@GET
public Response file() {
    String path = uriInfo.getPath().substring("file/".length());
    Optional<Resource> resource = fileRepository.get(path);
    if (!resource.isPresent()) {
        return Response.ok().status(Response.Status.NOT_FOUND).build();
    }
    CacheControl cacheControl = new CacheControl();
    cacheControl.setMaxAge(Integer.MAX_VALUE);
    return Response.ok(resource.get()).cacheControl(cacheControl).type(MediaTypes.getMediaType(path)).build();
}
 
源代码23 项目: jweb-cms   文件: FileController.java
@Path("/{s:.+}")
@GET
public Response file() {
    String path = uriInfo.getPath().substring("file/".length());
    Optional<Resource> resource = fileRepository.get(path);
    if (!resource.isPresent()) {
        return Response.ok().status(Response.Status.NOT_FOUND).build();
    }
    CacheControl cacheControl = new CacheControl();
    cacheControl.setMaxAge(Integer.MAX_VALUE);
    return Response.ok(resource.get()).cacheControl(cacheControl).type(MediaTypes.getMediaType(path)).build();
}
 
源代码24 项目: jweb-cms   文件: AdminStaticResourceController.java
@Path("/{s:.+}")
@GET
@Consumes
public Response get(@Context UriInfo uriInfo, @Context Request request) throws IOException {
    String path = uriInfo.getPath();
    Optional<ConsoleBundle> consoleBundleOptional = console.findByScriptFile(path);
    Resource resource;
    if (consoleBundleOptional.isPresent()) {
        ConsoleBundle consoleBundle = consoleBundleOptional.get();
        resource = new CombinedResource(path, resourcePaths(consoleBundle), webRoot);
    } else {
        Optional<Resource> optional = webRoot.get(path);
        if (!optional.isPresent()) {
            throw new NotFoundException(String.format("missing resource, path=%s", path));
        }
        resource = optional.get();
    }
    EntityTag eTag = new EntityTag(resource.hash());
    Response.ResponseBuilder builder = request.evaluatePreconditions(eTag);
    if (builder != null) {
        return builder.build();
    }
    builder = Response.ok(resource).type(MediaTypes.getMediaType(Files.getFileExtension(path)));
    builder.tag(eTag);
    CacheControl cacheControl = new CacheControl();
    cacheControl.setMustRevalidate(true);
    builder.cacheControl(cacheControl);
    return builder.build();
}
 
源代码25 项目: opencps-v2   文件: DataManagementImpl.java
@Override
public Response getDictCollectionDetail(HttpServletRequest request, HttpHeaders header, Company company,
		Locale locale, User user, ServiceContext serviceContext, String code, Request requestCC) {
	DictcollectionInterface dictItemDataUtil = new DictCollectionActions();
	long groupId = GetterUtil.getLong(header.getHeaderString("groupId"));

	DictCollection dictCollection = dictItemDataUtil.getDictCollectionDetail(code, groupId);
	EntityTag etag = new EntityTag(Integer.toString(Long.valueOf(groupId).hashCode()));
    ResponseBuilder builder = requestCC.evaluatePreconditions(etag);	
    
	if (Validator.isNotNull(dictCollection)) {
		DictCollectionModel dictCollectionModel = DataManagementUtils.mapperDictCollectionModel(dictCollection);
		if (OpenCPSConfigUtil.isHttpCacheEnable() && builder == null) {
			builder = Response.status(200);
			CacheControl cc = new CacheControl();
			cc.setMaxAge(OpenCPSConfigUtil.getHttpCacheMaxAge());
			cc.setPrivate(true);	
			// return json object after update

			return builder.entity(dictCollectionModel).cacheControl(cc).build();				
		}
		else {
			return builder.entity(dictCollectionModel).build();
		}

	} else {
		return null;
	}
}
 
源代码26 项目: opencps-v2   文件: DataManagementImpl.java
@Override
public Response getDictItemByItemCode(HttpServletRequest request, HttpHeaders header, Company company,
		Locale locale, User user, ServiceContext serviceContext, String code, String itemCode) {
	DictcollectionInterface dictItemDataUtil = new DictCollectionActions();

	long groupId = GetterUtil.getLong(header.getHeaderString("groupId"));

	DictItem dictItem = dictItemDataUtil.getDictItemByItemCode(code, itemCode, groupId, serviceContext);

	if (Validator.isNotNull(dictItem)) {

		DictItemModel dictItemModel = DataManagementUtils.mapperDictItemModel(dictItem, dictItemDataUtil,
				user.getUserId(), company.getCompanyId(), groupId, serviceContext);
		CacheControl cc = new CacheControl();
		cc.setMaxAge(86400);
		cc.setPrivate(true);	
		return Response.status(200).entity(dictItemModel).cacheControl(cc).build();

	} else {

		ErrorMsg error = new ErrorMsg();

		error.setMessage("not found!");
		error.setCode(404);
		error.setDescription("not found!");

		return Response.status(409).entity(error).build();

	}
}
 
源代码27 项目: Graphene   文件: AdminResource.java
@GET
@Path("version")
@Produces(MediaType.APPLICATION_JSON)
public Response getVersionInfo() {

	CacheControl cc = new CacheControl();
	cc.setMaxAge(60 * 60 * 24); // seconds
	cc.setPrivate(true);

	return Response
               .status(Response.Status.OK)
               .cacheControl(cc)
               .entity(graphene.getVersionInfo())
               .build();
   }
 
源代码28 项目: Graphene   文件: AdminResource.java
@GET
@Path("examples")
@Produces(MediaType.APPLICATION_JSON)
public Response getExampleQueries() {

	CacheControl cc = new CacheControl();
	cc.setMaxAge(60 * 60 * 24); // seconds
	cc.setPrivate(true);

	return Response
		.status(Response.Status.OK)
		.cacheControl(cc)
		.entity(EXAMPLE_QUERIES)
		.build();
}
 
源代码29 项目: nifi-registry   文件: ApplicationResource.java
/**
 * Edit the response headers to indicating no caching.
 *
 * @param response response
 * @return builder
 */
protected Response.ResponseBuilder noCache(final Response.ResponseBuilder response) {
    final CacheControl cacheControl = new CacheControl();
    cacheControl.setPrivate(true);
    cacheControl.setNoCache(true);
    cacheControl.setNoStore(true);
    return response.cacheControl(cacheControl);
}
 
源代码30 项目: trellis   文件: CacheControlFilter.java
@Override
public void filter(final ContainerRequestContext req, final ContainerResponseContext res) {
    if ((GET.equals(req.getMethod()) || HEAD.equals(req.getMethod()))
            && SUCCESSFUL.equals(res.getStatusInfo().getFamily()) && maxAge > 0) {
        final CacheControl cc = new CacheControl();
        cc.setMaxAge(maxAge);
        cc.setMustRevalidate(mustRevalidate);
        cc.setNoCache(noCache);
        res.getHeaders().add(CACHE_CONTROL, cc);
    }
}