@Override public Map<String, String> getResponseHeaders() { Map<String, String> responseHeaders = new HashMap<String, String>(3); long lastModified = info.getLastModified(); responseHeaders.put("Last-Modified", Utils.formatRFC1123(new Date(lastModified))); responseHeaders.put( "Expires", Utils.formatRFC1123(new Date(System.currentTimeMillis() + info.getMaxAge()))); responseHeaders.put( "Etag", String.format("W/\"%d-%d\"", info.getContentLength(), lastModified)); responseHeaders.put( "Pragma", ""); // Explicitly set empty pragma to prevent some containers from setting it. return responseHeaders; }
/** * Converts a <code>Iterable<E></code> to a <code>List<E></code>. Useful when you want * to iterate over an <code>Iterable</code>, which includes any type of <code>Collection</code> * (which includes e.g. a <code>Set</code>) in for example <code><ui:repeat></code> and * <code><h:dataTable></code>. * * <p>When iterating specifically over a Set using the above mentioned components {@link * Converters#setToList(Set)} is an alternative to this. * * @param <E> The generic iterable element type. * @param iterable The Iterable to be converted to a List. * @return The converted List. * @since 1.5 */ public static <E> List<E> iterableToList(Iterable<E> iterable) { if (iterable == null) { return null; } return Utils.iterableToList(iterable); }
@Override public boolean userAgentNeedsUpdate(FacesContext context) { String ifModifiedSince = context.getExternalContext().getRequestHeaderMap().get("If-Modified-Since"); if (ifModifiedSince != null) { try { return info.getLastModified() > Utils.parseRFC1123(ifModifiedSince).getTime(); } catch (ParseException ignore) { return true; } } return true; }
/** * Encode the conditional comment. * * @throws IllegalArgumentException When <code>if</code> attribute is not specified. */ @Override public void encodeChildren(final FacesContext context) throws IOException { final String _if = getIf(); if (Utils.isEmpty(_if)) { throw new IllegalArgumentException(ConditionalComment.ERROR_MISSING_IF); } final ResponseWriter writer = context.getResponseWriter(); writer.write("<!--[if "); writer.writeText(_if, this, "if"); writer.write("]>"); super.encodeChildren(context); writer.write("<![endif]-->"); }