@Override public void registerContribution(Object contribution, String extensionPoint, ComponentInstance contributor) { if (XP_SERVLETS.equals(extensionPoint)) { ((ServletDescriptor) contribution).setBundle(contributor.getContext().getBundle()); try { registry.addServlet((ServletDescriptor) contribution); } catch (ServletException | NamespaceException e) { throw new RuntimeException(e); } } else if (XP_FILTERS.equals(extensionPoint)) { registry.addFilterSet((FilterSetDescriptor) contribution); } else if (XP_RESOURCES.equals(extensionPoint)) { ResourcesDescriptor rd = (ResourcesDescriptor) contribution; rd.setBundle(contributor.getContext().getBundle()); registry.addResources(rd); } else if (XP_SUBRESOURCES.equals(extensionPoint)) { ResourceExtension rxt = (ResourceExtension) contribution; rxt.setBundle(contributor.getContext().getBundle()); ApplicationManager.getInstance().getOrCreateApplication(rxt.getApplication()).addExtension(rxt); } }
protected void computeResourceUri(ResourceDescriptor resource, ComponentInstance contributor) { String uri = resource.getURI(); if (uri == null) { // build it from local classpath // XXX: hacky wildcard support String path = resource.getPath(); if (path != null) { boolean hasWildcard = false; if (path.endsWith("*")) { hasWildcard = true; path = path.substring(0, path.length() - 1); } URL url = contributor.getContext().getLocalResource(path); if (url == null) { log.error("Cannot resolve local URL for resource '" + resource.getName() + "' with path '" + resource.getPath() + "'"); } else { String builtUri = url.toString(); if (hasWildcard) { builtUri += "*"; } resource.setURI(builtUri); } } } }
@Override public void unregisterContribution(Object contribution, String extensionPoint, ComponentInstance contributor) { if (XP_SERVLETS.equals(extensionPoint)) { registry.removeServlet((ServletDescriptor) contribution); } else if (XP_FILTERS.equals(extensionPoint)) { registry.removeFilterSet((FilterSetDescriptor) contribution); } else if (XP_RESOURCES.equals(extensionPoint)) { ResourcesDescriptor rd = (ResourcesDescriptor) contribution; rd.setBundle(contributor.getContext().getBundle()); registry.removeResources(rd); } else if (XP_SUBRESOURCES.equals(extensionPoint)) { ResourceExtension rxt = (ResourceExtension) contribution; rxt.setBundle(contributor.getContext().getBundle()); ApplicationManager.getInstance().getOrCreateApplication(rxt.getApplication()).removeExtension(rxt); } }
@Override public void registerContribution(Object contribution, String extensionPoint, ComponentInstance contributor) { if (contribution instanceof GwtWarStrategy) { GwtWarStrategy descriptor = (GwtWarStrategy) contribution; resolver.install(descriptor.name, descriptor.strategy); } else if (contribution instanceof GwtWarDirectory) { GwtWarDirectory descriptor = (GwtWarDirectory) contribution; try { resolver.install(descriptor.name, descriptor.dir.toURI()); } catch (IOException cause) { throw new NuxeoException("Cannot install " + descriptor, cause); } } else if (contribution instanceof GwtWarBundle) { GwtWarBundle descriptor = (GwtWarBundle) contribution; URL location = contributor.getContext().getBundle().getEntry(descriptor.pathname); if (location == null) { throw new NuxeoException("Cannot locate GWT " + descriptor + " in " + contributor.getContext().getBundle()); } try { resolver.install(descriptor.name, location.toURI()); } catch (IOException | URISyntaxException cause) { throw new NuxeoException("Cannot install " + descriptor, cause); } } }
FlavorDescriptor flavor = (FlavorDescriptor) contribution; log.info(String.format("Register flavor '%s'", flavor.getName())); registerFlavor(flavor, contributor.getContext()); log.info(String.format("Done registering flavor '%s'", flavor.getName())); } else if (contribution instanceof SimpleStyle) { Framework.getRuntime().getMessageHandler().addWarning(message); ResourceDescriptor resource = getResourceFromStyle(style); registerResource(resource, contributor.getContext()); log.info(String.format("Done registering style '%s'", style.getName())); } else if (contribution instanceof PageDescriptor) { resource.setUri("/" + path); registerResource(resource, contributor.getContext()); log.info(String.format("Done registering resource '%s'", resource.getName())); } else if (contribution instanceof NegotiationDescriptor) {
occ.toOperationChain(contributor.getContext().getBundle()), occ); service.putOperation(docChainType, occ.replace); } catch (OperationException e) {