protected void doBind(Resource resource) { if (!started) { return; } if (resource.mbean != null) { throw new IllegalStateException(resource + " is already bound"); } MBeanServer server = serverLocatorService.lookupServer(resource.managementName.getDomain()); try { resource.mbean = doBind(server, resource.managementName, resource.instance, resource.clazz); if (ResourcePublisherService.log.isDebugEnabled()) { ResourcePublisherService.log.debug("bound " + resource); } } catch (JMException | InvalidTargetObjectTypeException e) { ResourcePublisherService.log.error("Cannot bind " + resource, e); } }
@Override public void registerContribution(Object contribution, String extensionPoint, ComponentInstance contributor) { if (extensionPoint.equals(SERVICES_EXT_KEY)) { resourcesRegistry.doRegisterResource((ServiceDescriptor) contribution); } else if (extensionPoint.equals(FACTORIES_EXT_KEY)) { factoriesRegistry.doRegisterFactory((ResourceFactoryDescriptor) contribution); } else if (extensionPoint.equals(SHORTCUTS_EXT_KEY)) { shortcutsRegistry.doRegisterShortcut((ShortcutDescriptor) contribution); } }
public void unbindResource(ObjectName name) { Resource resource = resourcesRegistry.registry.get(name); if (resource == null) { throw new IllegalArgumentException(name + " is not registered"); } resourcesRegistry.doUnbind(resource); }
protected void doUnregisterResource(String qualifiedName) { ObjectName objectName = ObjectNameFactory.getObjectName(qualifiedName); doUnregisterResource(objectName); }
protected void doUnbindResources() { for (Resource resource : resourcesRegistry.registry.values()) { if (resource.mbean != null) { resourcesRegistry.doUnbind(resource); } } }
@Override public void registerResource(String shortName, String qualifiedName, Class<?> managementClass, Object instance) { resourcesRegistry.doRegisterResource(qualifiedName, managementClass, instance); if (shortName != null) { shortcutsRegistry.doRegisterShortcut(shortName, qualifiedName); } }
protected void doRegisterResource(Resource resource) { final ObjectName name = resource.getManagementName(); if (registry.containsKey(name)) { return; } registry.put(name, resource); doBind(resource); if (log.isDebugEnabled()) { log.debug("registered " + name); } }
protected void doRegisterResource(String qualifiedName, Class<?> info, Object instance) { Resource resource = new Resource(ObjectNameFactory.getObjectName(qualifiedName), info, instance); doRegisterResource(resource); }
protected void doBindResources() { for (Resource resource : resourcesRegistry.registry.values()) { if (resource.mbean == null) { resourcesRegistry.doBind(resource); } } }
protected void doUnregisterResource(ObjectName objectName) { Resource resource = registry.remove(objectName); if (resource == null) { throw new IllegalArgumentException(objectName + " is not registered"); } if (resource.mbean != null) { doUnbind(resource); } }
protected void bindForTest(MBeanServer server, ObjectName name, Object instance, Class<?> clazz) throws JMException, InvalidTargetObjectTypeException { resourcesRegistry.doBind(server, name, instance, clazz); }
@Override public void deactivate(ComponentContext context) { resourcesRegistry.doUnregisterResources(); }
protected void doUnregisterResource(ServiceDescriptor descriptor) { ObjectName objectName = doResolveServiceName(descriptor); doUnregisterResource(objectName); String shortName = descriptor.getName(); if (StringUtils.isNotEmpty(shortName)) { shortcutsRegistry.unregisterShortcut(shortName); } }
@Override public void unregisterResource(String shortName, String qualifiedName) { resourcesRegistry.doUnregisterResource(qualifiedName); if (shortName != null) { shortcutsRegistry.doUnregisterShortcut(shortName); } }
@Override public void unregisterContribution(Object contribution, String extensionPoint, ComponentInstance contributor) { if (extensionPoint.equals(SERVICES_EXT_KEY)) { resourcesRegistry.doUnregisterResource((ServiceDescriptor) contribution); } else if (extensionPoint.equals(FACTORIES_EXT_KEY)) { factoriesRegistry.doUnregisterFactory((ResourceFactoryDescriptor) contribution); } else if (extensionPoint.equals(SHORTCUTS_EXT_KEY)) { shortcutsRegistry.doUnregisterShortcut((ShortcutDescriptor) contribution); } }
public void bindResource(ObjectName name) { Resource resource = resourcesRegistry.registry.get(name); if (resource == null) { throw new IllegalArgumentException(name + " is not registered"); } resourcesRegistry.doBind(resource); }
protected void doUnregisterResources() { Iterator<Entry<ObjectName, Resource>> iterator = registry.entrySet().iterator(); while (iterator.hasNext()) { Entry<ObjectName, Resource> entry = iterator.next(); iterator.remove(); Resource resource = entry.getValue(); if (resource.mbean != null) { doUnbind(entry.getValue()); } } }
protected Resource doResolveServiceDescriptor(ServiceDescriptor descriptor) { Class<?> resourceClass = descriptor.getResourceClass(); Object resourceInstance = doResolveService(resourceClass, descriptor); ObjectName managementName = doResolveServiceName(descriptor); Class<?> ifaceClass = descriptor.getIfaceClass(); Class<?> managementClass = ifaceClass != null ? ifaceClass : resourceClass; return new Resource(managementName, managementClass, resourceInstance); }
protected void doRegisterResource(ServiceDescriptor descriptor) { Resource resource = doResolveServiceDescriptor(descriptor); doRegisterResource(resource); String shortName = descriptor.getName(); if (StringUtils.isNotEmpty(shortName)) { shortcutsRegistry.doRegisterShortcut(shortName, resource.getManagementName()); } }