ManagementInfo overriden = componentType.getManagementInfo(); if (overriden != null) {
public void visitMethod(ManagementOperation annotation, Method method, Class<?> implClass, InjectingComponentType componentType, IntrospectionContext context) { ManagementInfo info = componentType.getManagementInfo(); if (info == null) { // there was no management annotation on the type - record an error Class<?> clazz = method.getDeclaringClass(); String name = Management.class.getSimpleName(); context.addError(new InvalidAnnotation("Implementation is missing @" + name, method, annotation, clazz)); return; } String description = annotation.description(); if (description.trim().length() == 0) { description = null; } Set<Role> roles = new HashSet<>(); for (String roleName : annotation.rolesAllowed()) { roles.add(new Role(roleName)); } String path = annotation.path(); org.fabric3.api.annotation.management.OperationType operationType = annotation.type(); OperationType type = OperationType.valueOf(operationType.toString()); ManagementOperationInfo operationInfo = new ManagementOperationInfo(method, path, type, description, roles); info.addOperation(operationInfo); }
public PhysicalComponent generate(LogicalComponent<SystemImplementation> component) throws Fabric3Exception { Component<SystemImplementation> definition = component.getDefinition(); SystemImplementation implementation = definition.getImplementation(); InjectingComponentType type = implementation.getComponentType(); ImplementationManagerDefinition managerDefinition = new ImplementationManagerDefinition(); managerDefinition.setReinjectable(true); managerDefinition.setConstructor(type.getConstructor()); managerDefinition.setInitMethod(type.getInitMethod()); managerDefinition.setDestroyMethod(type.getDestroyMethod()); managerDefinition.setImplementationClass(implementation.getImplementationClass()); managerDefinition.setClassLoaderUri(definition.getContributionUri()); helper.processInjectionSites(type, managerDefinition); // create the physical component definition PhysicalSystemComponent physical = new PhysicalSystemComponent(); physical.setEagerInit(type.isEagerInit()); physical.setManaged(type.isManaged()); physical.setManagementInfo(type.getManagementInfo()); physical.setManagerDefinition(managerDefinition); helper.processPropertyValues(component, physical); return physical; }
public void generate(PhysicalJavaComponent physicalComponent, LogicalComponent<? extends JavaImplementation> component) { Component<? extends JavaImplementation> logical = component.getDefinition(); JavaImplementation implementation = logical.getImplementation(); InjectingComponentType type = implementation.getComponentType(); Scope scope = type.getScope(); // create the instance factory definition ImplementationManagerDefinition managerDefinition = new ImplementationManagerDefinition(); managerDefinition.setReinjectable(Scope.COMPOSITE == scope); managerDefinition.setConstructor(type.getConstructor()); managerDefinition.setInitMethod(type.getInitMethod()); managerDefinition.setDestroyMethod(type.getDestroyMethod()); managerDefinition.setImplementationClass(implementation.getImplementationClass()); managerDefinition.setClassLoaderUri(component.getDefinition().getContributionUri()); helper.processInjectionSites(type, managerDefinition); // create the physical component definition physicalComponent.setScope(scope); physicalComponent.setEagerInit(type.isEagerInit()); physicalComponent.setManagerDefinition(managerDefinition); physicalComponent.setManaged(type.isManaged()); physicalComponent.setManagementInfo(type.getManagementInfo()); helper.processPropertyValues(component, physicalComponent); }