@Override
public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
Map<String, Object> attributes = component.getAttributes();
String name = (String) attributes.get("name");
String type = (String) attributes.get("type");
WebResourceManager wrm = Framework.getService(WebResourceManager.class);
if (StringUtils.isBlank(type)) {
log.error("Cannot encode bundle with empty type at %s" + component.getClientId());
return;
}
if (!ResourceType.css.equals(type) && !ResourceType.js.equals(type) && !ResourceType.html.equals(type)) {
log.error("Unsupported type '" + type + "' to encode page '" + name + "' at " + component.getClientId());
return;
}
List<Resource> rs = wrm.getResources(new ResourceContextImpl(), name, type);
if (rs != null && !rs.isEmpty()) {
if (ResourceType.css.equals(type)) {
encodeEnd(context, component, ResourceType.css, BUNDLE_ENDPOINT_PATH + name + ".css");
} else if (ResourceType.js.equals(type)) {
encodeEnd(context, component, ResourceType.js, BUNDLE_ENDPOINT_PATH + name + ".js");
} else if (ResourceType.html.equals(type)) {
for (Resource r : rs) {
encodeEnd(context, component, ResourceType.html, COMPONENTS_PATH + r.getPath());
}
}
}
super.encodeEnd(context, component);
}