@Nullable public static Object resolvePushBuilder(HttpServletRequest request, Class<?> paramType) { PushBuilder pushBuilder = request.newPushBuilder(); if (pushBuilder != null && !paramType.isInstance(pushBuilder)) { throw new IllegalStateException( "Current push builder is not of type [" + paramType.getName() + "]: " + pushBuilder); } return pushBuilder; } }
@Nullable public static Object resolvePushBuilder(HttpServletRequest request, Class<?> paramType) { PushBuilder pushBuilder = request.newPushBuilder(); if (pushBuilder != null && !paramType.isInstance(pushBuilder)) { throw new IllegalStateException( "Current push builder is not of type [" + paramType.getName() + "]: " + pushBuilder); } return pushBuilder; } }
/** * The default behavior of this method is to call newPushBuilder on the * wrapped request object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * The default behavior of this method is to call newPushBuilder on the * wrapped request object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * The default behavior of this method is to call newPushBuilder on the * wrapped request object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * The default behavior of this method is to call newPushBuilder on the * wrapped request object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * The default behavior of this method is to call newPushBuilder on the * wrapped request object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * The default behavior of this method is to call newPushBuilder on the * wrapped request object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * The default behavior of this method is to call newPushBuilder on the * wrapped request object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * The default behavior of this method is to call newPushBuilder on the * wrapped request object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * {@inheritDoc} * <p> * The default behavior of this method is to return * {@link HttpServletRequest#newPushBuilder()} on the wrapped request * object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * The default behavior of this method is to call newPushBuilder on the * wrapped request object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * {@inheritDoc} * <p> * The default behavior of this method is to return * {@link HttpServletRequest#newPushBuilder()} on the wrapped request * object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
/** * {@inheritDoc} * <p> * The default behavior of this method is to return * {@link HttpServletRequest#newPushBuilder()} on the wrapped request * object. * * @since Servlet 4.0 */ @Override public PushBuilder newPushBuilder() { return this._getHttpServletRequest().newPushBuilder(); }
@Override public PushBuilder newPushBuilder() { return ((HttpServletRequest)getRequest()).newPushBuilder(); }
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(MediaType.TEXT_HTML_TYPE.withCharset(UTF_8.name()).toString()); response.setStatus(200); PushBuilder builder = request.newPushBuilder(); // If server push isn't supported, return that in the result. if (builder == null) { response.addHeader("protocol", "HTTP 1.1"); response.getWriter().append("<p>The image below was sent normally using HTTP 1.1.</p>"); } else { response.addHeader("protocol", "HTTP/2"); response.getWriter().append("<p>The image below was pushed using HTTP/2.</p>"); builder.path("images/payara-logo.jpg").push(); } response.getWriter().append("<img src=\"images/payara-logo.jpg\" />"); }
private Object getPushBuilder(FacesContext context, ExternalContext extContext) { javax.servlet.http.PushBuilder result = null; Object requestObj = extContext.getRequest(); if (requestObj instanceof HttpServletRequest) { Map<Object, Object> attrs = context.getAttributes(); HttpServletRequest hreq = (HttpServletRequest) requestObj; Object val; boolean isPushSupported = false; // Try to pull value from the request cache if ((val = attrs.get(PUSH_SUPPORTED_ATTRIBUTE_NAME)) != null) { isPushSupported = (Boolean) val; } else { // If the request has an If-Modified-Since header, do not push, since it's // possible the resources are already in the cache. isPushSupported = isEmpty(extContext.getRequestHeaderMap().get("If-Modified-Since")); } if (isPushSupported) { isPushSupported = (result = hreq.newPushBuilder()) != null; } attrs.putIfAbsent(PUSH_SUPPORTED_ATTRIBUTE_NAME, isPushSupported); } return result; }
private Object getPushBuilder(FacesContext context, ExternalContext extContext) { javax.servlet.http.PushBuilder result = null; Object requestObj = extContext.getRequest(); if (requestObj instanceof HttpServletRequest) { Map<Object, Object> attrs = context.getAttributes(); HttpServletRequest hreq = (HttpServletRequest) requestObj; Object val; boolean isPushSupported = false; // Try to pull value from the request cache if ((val = attrs.get(PUSH_SUPPORTED_ATTRIBUTE_NAME)) != null) { isPushSupported = (Boolean) val; } else { // If the request has an If-Modified-Since header, do not push, since it's // possible the resources are already in the cache. isPushSupported = isEmpty(extContext.getRequestHeaderMap().get("If-Modified-Since")); } if (isPushSupported) { isPushSupported = (result = hreq.newPushBuilder()) != null; } attrs.putIfAbsent(PUSH_SUPPORTED_ATTRIBUTE_NAME, isPushSupported); } return result; }
private Object getPushBuilder(FacesContext context, ExternalContext extContext) { javax.servlet.http.PushBuilder result = null; Object requestObj = extContext.getRequest(); if (requestObj instanceof HttpServletRequest) { Map<Object, Object> attrs = context.getAttributes(); HttpServletRequest hreq = (HttpServletRequest) requestObj; Object val; boolean isPushSupported = false; // Try to pull value from the request cache if ((val = attrs.get(PUSH_SUPPORTED_ATTRIBUTE_NAME)) != null) { isPushSupported = (Boolean) val; } else { // If the request has an If-Modified-Since header, do not push, since it's // possible the resources are already in the cache. isPushSupported = isEmpty(extContext.getRequestHeaderMap().get("If-Modified-Since")); } if (isPushSupported) { isPushSupported = (result = hreq.newPushBuilder()) != null; } attrs.putIfAbsent(PUSH_SUPPORTED_ATTRIBUTE_NAME, isPushSupported); } return result; }
@Override public void push(HttpServletRequest httpServletRequest, PushItem... pushItems) { Request request = RequestCycle.get().getRequest(); HttpServletRequest httpRequest = (HttpServletRequest) request.getContainerRequest(); javax.servlet.http.PushBuilder pushBuilder = httpRequest.newPushBuilder(); if (pushBuilder != null) { for (PushItem pushItem : pushItems) { pushBuilder.path(pushItem.getUrl()); pushItem.getHeaders().entrySet().stream().forEach(pushHeader -> { String key = pushHeader.getKey(); PushItemHeaderValue value = pushHeader.getValue(); if(value.getOperation() == HeaderOperation.ADD){ pushBuilder.addHeader(key, value.getValue()); }else{ pushBuilder.setHeader(key, value.getValue()); } }); pushBuilder.push(); } } else { LOG.warn("Attempted to use HTTP2 Push but it is not supported for the current request: {}!", httpRequest); } } }