private ComponentMetadata decorateRole(Node node, ComponentMetadata component, ParserContext context) { if (!(component instanceof BeanMetadata)) { throw new ComponentDefinitionException("Attribute " + node.getNodeName() + " can only be used on a <bean> element"); } if (!(component instanceof MutableBeanMetadata)) { throw new ComponentDefinitionException("Expected an instance of MutableBeanMetadata"); } boolean processor = false; String value = ((Attr) node).getValue(); String[] flags = value.trim().split(" "); for (String flag : flags) { if (ROLE_PROCESSOR.equals(flag)) { processor = true; } else { throw new ComponentDefinitionException("Unknown proxy method: " + flag); } } ((MutableBeanMetadata) component).setProcessor(processor); return component; }
private ComponentMetadata decorateRole(Node node, ComponentMetadata component, ParserContext context) { if (!(component instanceof BeanMetadata)) { throw new ComponentDefinitionException("Attribute " + node.getNodeName() + " can only be used on a <bean> element"); } if (!(component instanceof MutableBeanMetadata)) { throw new ComponentDefinitionException("Expected an instance of MutableBeanMetadata"); } boolean processor = false; String value = ((Attr) node).getValue(); String[] flags = value.trim().split(" "); for (String flag : flags) { if (ROLE_PROCESSOR.equals(flag)) { processor = true; } else { throw new ComponentDefinitionException("Unknown proxy method: " + flag); } } ((MutableBeanMetadata) component).setProcessor(processor); return component; }
private void parseElement(Element elt, ParserContext pc) { ComponentDefinitionRegistry cdr = pc.getComponentDefinitionRegistry(); if ("enable".equals(elt.getLocalName()) && !cdr.containsComponentDefinition(JpaComponentProcessor.class.getSimpleName())) { MutableBeanMetadata meta = pc.createMetadata(MutableBeanMetadata.class); meta.setId(JpaComponentProcessor.class.getSimpleName()); meta.setRuntimeClass(JpaComponentProcessor.class); meta.setProcessor(true); meta.addProperty("pc", passThrough(pc, pc)); cdr.registerComponentDefinition(meta); } }
private MutableBeanMetadata createAnnotationParserBean(ParserContext pc, ComponentDefinitionRegistry cdr) { MutableBeanMetadata meta = pc.createMetadata(MutableBeanMetadata.class); meta.setId(ANNOTATION_PARSER_BEAN_NAME); meta.setRuntimeClass(AnnotationProcessor.class); meta.setProcessor(true); meta.addArgument(passThrough(pc, cdr), ComponentDefinitionRegistry.class.getName(), 0); meta.addArgument(passThrough(pc, tm), TransactionManager.class.getName(), 1); meta.addArgument(passThrough(pc, coordinator), Coordinator.class.getName(), 1); return meta; }
private static MutableBeanMetadata registerComponentProcessor(final ParserContext context) { ComponentDefinitionRegistry registry = context.getComponentDefinitionRegistry(); MutableBeanMetadata metadata = (MutableBeanMetadata) registry.getComponentDefinition(COMPONENT_PROCESSOR_NAME); if (metadata == null) { metadata = createBeanMetadata(context, COMPONENT_PROCESSOR_NAME, ComponentProcessor.class, false, true); metadata.setProcessor(true); addBlueprintBundleRefProperty(context, metadata); metadata.addProperty("blueprintContainerRestartService", createServiceRef(context, BlueprintContainerRestartService.class, null)); LOG.debug("Registering ComponentProcessor bean: {}", metadata); registry.registerComponentDefinition(metadata); } return metadata; }
public ComponentMetadata parsePropertyPlaceholder(Element element, ParserContext context) { MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class); metadata.setProcessor(true); metadata.setId(getId(context, element)); metadata.setScope(BeanMetadata.SCOPE_SINGLETON);
public ComponentMetadata decorate(Node node, ComponentMetadata component, ParserContext context) { if(node.getLocalName().equals(ATTRIB_ONE)){ if(component instanceof BeanMetadata){ if(context.getComponentDefinitionRegistry().getComponentDefinition(NSURI+"/BeanProcessor")==null){ BeanMetadata bm = context.createMetadata(BeanMetadata.class); MutableBeanMetadata mbm = (MutableBeanMetadata)bm; mbm.setProcessor(true); mbm.setRuntimeClass(BeanProcessorTest.class); mbm.setScope(BeanMetadata.SCOPE_SINGLETON); mbm.setId(NSURI+"/BeanProcessor"); context.getComponentDefinitionRegistry().registerComponentDefinition(mbm); } } } return component; }
public ComponentMetadata decorate(Node node, ComponentMetadata component, ParserContext context) { if(node.getLocalName().equals(ATTRIB_ONE)){ if(component instanceof BeanMetadata){ if(context.getComponentDefinitionRegistry().getComponentDefinition(NSURI+"/BeanProcessor")==null){ BeanMetadata bm = context.createMetadata(BeanMetadata.class); MutableBeanMetadata mbm = (MutableBeanMetadata)bm; mbm.setProcessor(true); mbm.setRuntimeClass(BeanProcessorTest.class); mbm.setScope(BeanMetadata.SCOPE_SINGLETON); mbm.setId(NSURI+"/BeanProcessor"); context.getComponentDefinitionRegistry().registerComponentDefinition(mbm); } } } return component; }
private Metadata parsePropertyPlaceholder(ParserContext context, Element element) { MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class); metadata.setProcessor(true); metadata.setId(getId(context, element)); metadata.setScope(BeanMetadata.SCOPE_SINGLETON);
private Metadata parsePropertyPlaceholder(ParserContext context, Element element) { MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class); metadata.setProcessor(true); metadata.setId(getId(context, element)); metadata.setScope(BeanMetadata.SCOPE_SINGLETON);
private ComponentMetadata parsePropertyPlaceholder(ParserContext context, Element element) { MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class); metadata.setProcessor(true); metadata.setId(getId(context, element)); metadata.setScope(BeanMetadata.SCOPE_SINGLETON);
private ComponentMetadata parsePropertyPlaceholder(ParserContext context, Element element) { MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class); metadata.setProcessor(true); metadata.setId(getId(context, element)); metadata.setScope(BeanMetadata.SCOPE_SINGLETON);
private ComponentMetadata parsePropertyPlaceholder(ParserContext context, Element element) { MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class); metadata.setProcessor(true); metadata.setId(getId(context, element)); metadata.setScope(BeanMetadata.SCOPE_SINGLETON);
metadata.setProcessor(true); metadata.setId(getId(context, element)); metadata.setRuntimeClass(CmManagedProperties.class);
private ComponentMetadata decorateCmProperties(ParserContext context, Element element, ComponentMetadata component) { generateIdIfNeeded(context, ((MutableComponentMetadata) component)); MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class); metadata.setProcessor(true); metadata.setId(getId(context, element)); metadata.setRuntimeClass(CmProperties.class); String persistentId = element.getAttribute(PERSISTENT_ID_ATTRIBUTE); // if persistentId is "" the cm-properties element in nested in managed-service-factory // and the configuration object will come from the factory. So we only really need to register // ManagedService if the persistentId is not an empty string. if (persistentId.length() > 0) { metadata.setInitMethod("init"); metadata.setDestroyMethod("destroy"); } metadata.addProperty("blueprintContainer", createRef(context, "blueprintContainer")); metadata.addProperty("configAdmin", createConfigurationAdminRef(context)); metadata.addProperty("managedObjectManager", createRef(context, MANAGED_OBJECT_MANAGER_NAME)); metadata.addProperty("persistentId", createValue(context, persistentId)); if (element.hasAttribute(UPDATE_ATTRIBUTE)) { metadata.addProperty("update", createValue(context, element.getAttribute(UPDATE_ATTRIBUTE))); } metadata.addProperty("serviceId", createIdRef(context, component.getId())); context.getComponentDefinitionRegistry().registerComponentDefinition(metadata); return component; }
metadata.setProcessor(true); metadata.setId(getId(context, element)); metadata.setRuntimeClass(CmManagedProperties.class);
private static MutableBeanMetadata registerComponentProcessor(ParserContext context) { ComponentDefinitionRegistry registry = context.getComponentDefinitionRegistry(); MutableBeanMetadata metadata = (MutableBeanMetadata) registry.getComponentDefinition(COMPONENT_PROCESSOR_NAME); if(metadata == null) { metadata = context.createMetadata(MutableBeanMetadata.class); metadata.setProcessor(true); metadata.setId(COMPONENT_PROCESSOR_NAME); metadata.setActivation(BeanMetadata.ACTIVATION_EAGER); metadata.setScope(BeanMetadata.SCOPE_SINGLETON); metadata.setRuntimeClass(ComponentProcessor.class); metadata.setDestroyMethod("destroy"); metadata.addProperty("bundle", createRef(context, "blueprintBundle")); metadata.addProperty("blueprintContainerRestartService", createServiceRef(context, BlueprintContainerRestartService.class, null)); LOG.debug("Registering ComponentProcessor bean: {}", metadata); registry.registerComponentDefinition(metadata); } return metadata; }
private ComponentMetadata decorateCmProperties(ParserContext context, Element element, ComponentMetadata component) { generateIdIfNeeded(context, ((MutableComponentMetadata) component)); MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class); metadata.setProcessor(true); metadata.setId(getId(context, element)); metadata.setRuntimeClass(CmProperties.class); String persistentId = element.getAttribute(PERSISTENT_ID_ATTRIBUTE); // if persistentId is "" the cm-properties element in nested in managed-service-factory // and the configuration object will come from the factory. So we only really need to register // ManagedService if the persistentId is not an empty string. if (persistentId.length() > 0) { metadata.setInitMethod("init"); metadata.setDestroyMethod("destroy"); } metadata.addProperty("blueprintContainer", createRef(context, "blueprintContainer")); metadata.addProperty("configAdmin", createConfigurationAdminRef(context)); metadata.addProperty("managedObjectManager", createRef(context, MANAGED_OBJECT_MANAGER_NAME)); metadata.addProperty("persistentId", createValue(context, persistentId)); if (element.hasAttribute(UPDATE_ATTRIBUTE)) { metadata.addProperty("update", createValue(context, element.getAttribute(UPDATE_ATTRIBUTE))); } metadata.addProperty("serviceId", createIdRef(context, component.getId())); context.getComponentDefinitionRegistry().registerComponentDefinition(metadata); return component; }
private void addProcessor( Element element, ParserContext context, AbstractElementParser elementParser, String initMethodName ) { // Register processors MutablePassThroughMetadata beanProcessorFactory = context.createMetadata(MutablePassThroughMetadata.class); String id = elementParser.getId(context, element); String contextId = ".kie.processor."+ id; beanProcessorFactory.setId(contextId); KieObjectsInjector kieObjectsInjector = new KieObjectsInjector(id, context); beanProcessorFactory.setObject(new PassThroughCallable<Object>(kieObjectsInjector)); MutableBeanMetadata beanProcessor = context.createMetadata(MutableBeanMetadata.class); beanProcessor.setId(".droolsBlueprint.processor.bean." + id); beanProcessor.setRuntimeClass(KieObjectsInjector.class); beanProcessor.setFactoryComponent(beanProcessorFactory); beanProcessor.setFactoryMethod("call"); beanProcessor.setProcessor(true); beanProcessor.setInitMethod(initMethodName); beanProcessor.addProperty("blueprintContainer", AbstractElementParser.createRef(context, "blueprintContainer")); context.getComponentDefinitionRegistry().registerComponentDefinition(beanProcessor); }
private void addProcessor( Element element, ParserContext context, AbstractElementParser elementParser, String initMethodName ) { // Register processors MutablePassThroughMetadata beanProcessorFactory = context.createMetadata(MutablePassThroughMetadata.class); String id = elementParser.getId(context, element); String contextId = ".kie.processor."+ id; beanProcessorFactory.setId(contextId); KieObjectsInjector kieObjectsInjector = new KieObjectsInjector(id, context); beanProcessorFactory.setObject(new PassThroughCallable<Object>(kieObjectsInjector)); MutableBeanMetadata beanProcessor = context.createMetadata(MutableBeanMetadata.class); beanProcessor.setId(".droolsBlueprint.processor.bean." + id); beanProcessor.setRuntimeClass(KieObjectsInjector.class); beanProcessor.setFactoryComponent(beanProcessorFactory); beanProcessor.setFactoryMethod("call"); beanProcessor.setProcessor(true); beanProcessor.setInitMethod(initMethodName); beanProcessor.addProperty("blueprintContainer", AbstractElementParser.createRef(context, "blueprintContainer")); context.getComponentDefinitionRegistry().registerComponentDefinition(beanProcessor); }