下面列出了javax.ws.rs.core.Response.ResponseBuilder#cacheControl() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Creates response builder from response dataset.
* Adds matched sitemap class as affordance metadata in <pre>Link</pre> header.
*
* @param dataset response RDF dataset
* @return response builder
*/
@Override
public ResponseBuilder getResponseBuilder(Dataset dataset)
{
ResponseBuilder rb = super.getResponseBuilder(dataset);
rb.cacheControl(getCacheControl());
rb.header("Link", new Link(URI.create(getTemplateCall().getTemplate().getURI()), LDT.template.getURI(), null));
rb.header("Link", new Link(URI.create(getApplication().getOntology().getURI()), LDT.ontology.getURI(), null));
rb.header("Link", new Link(getUriInfo().getBaseUri(), LDT.base.getURI(), null));
Reasoner reasoner = getTemplateCall().getTemplate().getOntModel().getSpecification().getReasoner();
if (reasoner instanceof GenericRuleReasoner)
{
GenericRuleReasoner grr = (GenericRuleReasoner)reasoner;
rb.header("Rules", RulePrinter.print(grr.getRules())); // grr.getRules().toString() - prevented by JENA-1030 bug
}
return rb;
}
/**
* Creates response builder from response model.
* Adds matched sitemap class as affordance metadata in <pre>Link</pre> header.
*
* @param model response RDF model
* @return response builder
*/
@Override
public ResponseBuilder getResponseBuilder(Model model)
{
ResponseBuilder rb = super.getResponseBuilder(model);
rb.cacheControl(getCacheControl());
rb.header("Link", new Link(URI.create(getTemplateCall().getTemplate().getURI()), LDT.template.getURI(), null));
rb.header("Link", new Link(URI.create(getApplication().getOntology().getURI()), LDT.ontology.getURI(), null));
rb.header("Link", new Link(getUriInfo().getBaseUri(), LDT.base.getURI(), null));
Reasoner reasoner = getTemplateCall().getTemplate().getOntModel().getSpecification().getReasoner();
if (reasoner instanceof GenericRuleReasoner)
{
GenericRuleReasoner grr = (GenericRuleReasoner)reasoner;
rb.header("Rules", RulePrinter.print(grr.getRules())); // grr.getRules().toString() - prevented by JENA-1030 bug
}
return rb;
}
@GET
@Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON, MIMETYPE_PROTOBUF,
MIMETYPE_PROTOBUF_IETF})
public Response get(final @Context UriInfo uriInfo) {
if (LOG.isTraceEnabled()) {
LOG.trace("GET " + uriInfo.getAbsolutePath());
}
servlet.getMetrics().incrementRequests(1);
try {
ResponseBuilder response =
Response.ok(new TableSchemaModel(getTableSchema()));
response.cacheControl(cacheControl);
servlet.getMetrics().incrementSucessfulGetRequests(1);
return response.build();
} catch (Exception e) {
servlet.getMetrics().incrementFailedGetRequests(1);
return processException(e);
}
}
@GET
@Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON, MIMETYPE_PROTOBUF,
MIMETYPE_PROTOBUF_IETF})
public Response get(final @Context UriInfo uriInfo) {
if (LOG.isTraceEnabled()) {
LOG.trace("GET " + uriInfo.getAbsolutePath());
}
servlet.getMetrics().incrementRequests(1);
try {
ResponseBuilder response = Response.ok(getTableList());
response.cacheControl(cacheControl);
servlet.getMetrics().incrementSucessfulGetRequests(1);
return response.build();
} catch (Exception e) {
servlet.getMetrics().incrementFailedGetRequests(1);
return processException(e);
}
}
@GET
@Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON})
public Response get(final @Context UriInfo uriInfo) {
if (LOG.isTraceEnabled()) {
LOG.trace("GET " + uriInfo.getAbsolutePath());
}
servlet.getMetrics().incrementRequests(1);
try {
StorageClusterVersionModel model = new StorageClusterVersionModel();
model.setVersion(
servlet.getAdmin().getClusterMetrics(EnumSet.of(Option.HBASE_VERSION))
.getHBaseVersion());
ResponseBuilder response = Response.ok(model);
response.cacheControl(cacheControl);
servlet.getMetrics().incrementSucessfulGetRequests(1);
return response.build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
return Response.status(Response.Status.SERVICE_UNAVAILABLE)
.type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
.build();
}
}
@GET
@Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON, MIMETYPE_PROTOBUF,
MIMETYPE_PROTOBUF_IETF, MIMETYPE_BINARY})
public Response get(final @Context UriInfo uriInfo) {
try {
if (!tableResource.exists()) {
return Response.status(Response.Status.NOT_FOUND)
.type(MIMETYPE_TEXT).entity("Not found" + CRLF)
.build();
}
} catch (IOException e) {
return Response.status(Response.Status.SERVICE_UNAVAILABLE)
.type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
.build();
}
ResponseBuilder response = Response.ok();
response.cacheControl(cacheControl);
return response.build();
}
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;
}
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;
}
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) {
// System.out.println("TEMP DEBUG creating a new builder");
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;
}
private ResponseBuilder noCache(ResponseBuilder response) {
CacheControl cacheControl = new CacheControl();
cacheControl.setPrivate(true);
cacheControl.setNoCache(true);
cacheControl.setNoStore(true);
return response.cacheControl(cacheControl);
}
/**
* 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);
}
/**
* Build a response for a version request.
* @param context servlet context
* @param uriInfo (JAX-RS context variable) request URL
* @return a response for a version request
*/
@GET
@Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON, MIMETYPE_PROTOBUF,
MIMETYPE_PROTOBUF_IETF})
public Response get(final @Context ServletContext context,
final @Context UriInfo uriInfo) {
if (LOG.isTraceEnabled()) {
LOG.trace("GET " + uriInfo.getAbsolutePath());
}
servlet.getMetrics().incrementRequests(1);
ResponseBuilder response = Response.ok(new VersionModel(context));
response.cacheControl(cacheControl);
servlet.getMetrics().incrementSucessfulGetRequests(1);
return response.build();
}
@GET
@Produces(MIMETYPE_BINARY)
public Response getBinary(final @Context UriInfo uriInfo) {
if (LOG.isTraceEnabled()) {
LOG.trace("GET " + uriInfo.getAbsolutePath() + " as " +
MIMETYPE_BINARY);
}
servlet.getMetrics().incrementRequests(1);
try {
Cell value = generator.next();
if (value == null) {
if (LOG.isTraceEnabled()) {
LOG.trace("generator exhausted");
}
return Response.noContent().build();
}
ResponseBuilder response = Response.ok(CellUtil.cloneValue(value));
response.cacheControl(cacheControl);
response.header("X-Row", Bytes.toString(Base64.getEncoder().encode(
CellUtil.cloneRow(value))));
response.header("X-Column", Bytes.toString(Base64.getEncoder().encode(
CellUtil.makeColumn(CellUtil.cloneFamily(value), CellUtil.cloneQualifier(value)))));
response.header("X-Timestamp", value.getTimestamp());
servlet.getMetrics().incrementSucessfulGetRequests(1);
return response.build();
} catch (IllegalStateException e) {
if (ScannerResource.delete(id)) {
servlet.getMetrics().incrementSucessfulDeleteRequests(1);
} else {
servlet.getMetrics().incrementFailedDeleteRequests(1);
}
servlet.getMetrics().incrementFailedGetRequests(1);
return Response.status(Response.Status.GONE)
.type(MIMETYPE_TEXT).entity("Gone" + CRLF)
.build();
}
}
private Response response(ResponseBuilder builder, OAuth2AuditLog oAuth2AuditLog) {
builder.cacheControl(ServerUtil.cacheControl(true, false));
builder.header("Pragma", "no-cache");
applicationAuditLogger.sendMessage(oAuth2AuditLog);
return builder.build();
}
private ResponseBuilder noCache(ResponseBuilder response) {
CacheControl cacheControl = new CacheControl();
cacheControl.setPrivate(true);
cacheControl.setNoCache(true);
cacheControl.setNoStore(true);
return response.cacheControl(cacheControl);
}
/**
* 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);
}
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).entity(jsonEntity);
berg.lastModified(lastMod);
CacheControl cc = new CacheControl();
cc.setMustRevalidate(true);
cc.setPrivate(true);
cc.setMaxAge(86400);
cc.setNoTransform(true);
berg.cacheControl(cc);
} else {
// System.out.println("TEMP DEBUG got a hit for etag " +
// etagSource);
}
return berg;
}
private ResponseBuilder getBuilder(String jsonEntity, Date lastMod, boolean includeEtag, 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) {
// System.out.println("TEMP DEBUG creating a new builder");
berg = Response.ok();
if (includeEtag) {
berg.tag(etag);
}
berg.type(MediaType.APPLICATION_JSON_TYPE);
berg.entity(jsonEntity);
if (lastMod != null) {
berg.lastModified(lastMod);
}
CacheControl cc = new CacheControl();
cc.setMustRevalidate(true);
cc.setPrivate(true);
cc.setMaxAge(86400);
cc.setNoTransform(true);
berg.cacheControl(cc);
}
return berg;
}
@GET
@Path("/favicon/{id}")
@UnitOfWork
@ApiOperation(value = "Fetch a feed's icon", notes = "Fetch a feed's icon")
@Timed
public Response getFeedFavicon(@ApiParam(hidden = true) @SecurityCheck User user,
@ApiParam(value = "subscription id", required = true) @PathParam("id") Long id) {
Preconditions.checkNotNull(id);
FeedSubscription subscription = feedSubscriptionDAO.findById(user, id);
if (subscription == null) {
return Response.status(Status.NOT_FOUND).build();
}
Feed feed = subscription.getFeed();
Favicon icon = feedService.fetchFavicon(feed);
ResponseBuilder builder = Response.ok(icon.getIcon(), Optional.ofNullable(icon.getMediaType()).orElse("image/x-icon"));
CacheControl cacheControl = new CacheControl();
cacheControl.setMaxAge(2592000);
cacheControl.setPrivate(false);
builder.cacheControl(cacheControl);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 1);
builder.expires(calendar.getTime());
builder.lastModified(CommaFeedApplication.STARTUP_TIME);
return builder.build();
}
@GET
@Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON, MIMETYPE_PROTOBUF,
MIMETYPE_PROTOBUF_IETF})
public Response get(final @Context UriInfo uriInfo) {
if (LOG.isTraceEnabled()) {
LOG.trace("GET " + uriInfo.getAbsolutePath());
}
servlet.getMetrics().incrementRequests(1);
try {
ClusterMetrics status = servlet.getAdmin().getClusterMetrics(
EnumSet.of(Option.LIVE_SERVERS, Option.DEAD_SERVERS));
StorageClusterStatusModel model = new StorageClusterStatusModel();
model.setRegions(status.getRegionCount());
model.setRequests(status.getRequestCount());
model.setAverageLoad(status.getAverageLoad());
for (Map.Entry<ServerName, ServerMetrics> entry: status.getLiveServerMetrics().entrySet()) {
ServerName sn = entry.getKey();
ServerMetrics load = entry.getValue();
StorageClusterStatusModel.Node node =
model.addLiveNode(
sn.getHostname() + ":" +
Integer.toString(sn.getPort()),
sn.getStartcode(), (int) load.getUsedHeapSize().get(Size.Unit.MEGABYTE),
(int) load.getMaxHeapSize().get(Size.Unit.MEGABYTE));
node.setRequests(load.getRequestCount());
for (RegionMetrics region: load.getRegionMetrics().values()) {
node.addRegion(region.getRegionName(), region.getStoreCount(),
region.getStoreFileCount(),
(int) region.getStoreFileSize().get(Size.Unit.MEGABYTE),
(int) region.getMemStoreSize().get(Size.Unit.MEGABYTE),
(long) region.getStoreFileIndexSize().get(Size.Unit.KILOBYTE),
region.getReadRequestCount(),
region.getCpRequestCount(),
region.getWriteRequestCount(),
(int) region.getStoreFileRootLevelIndexSize().get(Size.Unit.KILOBYTE),
(int) region.getStoreFileUncompressedDataIndexSize().get(Size.Unit.KILOBYTE),
(int) region.getBloomFilterSize().get(Size.Unit.KILOBYTE),
region.getCompactingCellCount(),
region.getCompactedCellCount());
}
}
for (ServerName name: status.getDeadServerNames()) {
model.addDeadNode(name.toString());
}
ResponseBuilder response = Response.ok(model);
response.cacheControl(cacheControl);
servlet.getMetrics().incrementSucessfulGetRequests(1);
return response.build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
return Response.status(Response.Status.SERVICE_UNAVAILABLE)
.type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
.build();
}
}