protected void registerRenderletService(String servicePid, Renderlet renderlet) { configLock.writeLock().lock(); try { if (renderletMap.get(servicePid) == null) { renderletMap.put(servicePid, renderlet); } } finally { configLock.writeLock().unlock(); } handlePendingRegistrations(); }
private void registerRenderletsFromStore() { synchronized (renderletRefStore) { for (ServiceReference renderletRef : renderletRefStore) { registerRenderletService(renderletRef); } } renderletRefStore.clear(); }
/** * The activate method is called when SCR activates the component * configuration * * @param componentContext */ protected void activate(ComponentContext componentContext) { bundleContext = componentContext.getBundleContext(); this.componentContext = componentContext; registerRenderletsFromStore(); }
private void handlePendingRegistrations() { Lock l = configLock.readLock(); l.lock(); try { Iterator<RegistrationRequest> iterator = pendingRequests.iterator(); while (iterator.hasNext()) { RegistrationRequest pending = iterator.next(); if (attemptRegistration(pending)) { iterator.remove(); } } } finally { l.unlock(); } }
protected void unbindRenderlet(ServiceReference renderletRef) { Lock l = configLock.writeLock(); l.lock(); try { if (!renderletRefStore.remove(renderletRef)) { String servicePid = (String) renderletRef.getProperty(Constants.SERVICE_PID); Renderlet renderlet = (Renderlet) componentContext.locateService("renderlet", renderletRef); unregisterRenderletService(servicePid, renderlet); } } finally { l.unlock(); } }
getAlreadyRegisteredServiceReg(rdfType, mediaType, modePattern); if(oldServiceRegistration != null) { oldServiceRegistration.unregister();
mode, mediaType); if (!attemptRegistration(registrationRequest)) { logger.info("no renderlet service registered for " + renderletServiceName + ", will retry later.");
protected void bindRenderlet(ServiceReference renderletRef) { logger.info("Bind renderlet of bundle {}", renderletRef.getBundle().getSymbolicName()); if (componentContext != null) { registerRenderletService(renderletRef); } else { renderletRefStore.add(renderletRef); } }
private void registerRenderletService(ServiceReference renderletRef) { String servicePid = (String) renderletRef.getProperty(Constants.SERVICE_PID); Renderlet renderlet = (Renderlet) componentContext.locateService("renderlet", renderletRef); registerRenderletService(servicePid, renderlet); }