/** * * {@inheritDoc} */ public void init() { registerBeanDefinitionParser("message-broker", new MessageBrokerBeanDefinitionParser()); registerBeanDefinitionParser("remoting-destination", new RemotingDestinationBeanDefinitionParser()); registerBeanDefinitionParser("message-destination", new MessageDestinationBeanDefinitionParser()); registerBeanDefinitionParser("jms-message-destination", new JmsMessageDestinationBeanDefinitionParser()); registerBeanDefinitionParser("integration-message-destination", new IntegrationMessageDestinationBeanDefinitionParser()); registerBeanDefinitionDecorator("remoting-destination", new RemotingDestinationBeanDefinitionDecorator()); }
/** * * {@inheritDoc} */ @Override protected void parseAdapter(Element element, ParserContext parserContext, BeanDefinitionBuilder destinationBuilder) { ParsingUtils.mapOptionalAttributes(element, parserContext, destinationBuilder, SERVICE_ADAPTER_ATTR); }
public static SpringSecurityConfigHelper resolve() { return createConfigHelper(SECURITY3_CONFIG_HELPER_CLASSNAME); }
private void configureRemotingService(Element parent, ParserContext parserContext, ManagedSet<RuntimeBeanReference> configProcessors, Element remotingServiceElement) { Element source = remotingServiceElement != null ? remotingServiceElement : parent; BeanDefinitionBuilder remotingProcessorBuilder = BeanDefinitionBuilder.genericBeanDefinition(REMOTING_PROCESSOR_CLASS_NAME); if (remotingServiceElement != null) { ParsingUtils.mapAllAttributes(remotingServiceElement, parserContext, remotingProcessorBuilder); } String brokerId = parent.getAttribute(ID_ATTRIBUTE); ParsingUtils.registerInfrastructureComponent(source, parserContext, remotingProcessorBuilder, brokerId + BeanIds.REMOTING_PROCESSOR_SUFFIX); configProcessors.add(new RuntimeBeanReference(brokerId + BeanIds.REMOTING_PROCESSOR_SUFFIX)); registerFlexRemotingAnnotationPostProcessorIfNecessary(source, parserContext); registerHibernate3SerializationConfigPostProcessorIfNecessary(source, parserContext); registerHibernate4SerializationConfigPostProcessorIfNecessary(source, parserContext); }
/** * * {@inheritDoc} */ @Override protected void parseAdapter(Element element, ParserContext parserContext, BeanDefinitionBuilder destinationBuilder) { BeanDefinitionBuilder adapterBuilder = BeanDefinitionBuilder.genericBeanDefinition(INTEGRATION_ADAPTER_CLASS_NAME); ParsingUtils.mapRequiredBeanRefAttributes(element, parserContext, adapterBuilder, MESSAGE_CHANNEL_ATTR); ParsingUtils.mapOptionalAttributes(element, parserContext, adapterBuilder, EXTRACT_PAYLOAD_ATTR); String serviceAdapterId = ParsingUtils.registerInfrastructureComponent(element, parserContext, adapterBuilder); destinationBuilder.addPropertyValue(SERVICE_ADAPTER_PROPERTY, serviceAdapterId); }
static void mapRequiredAttributes(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, String... attrs) { for (String attr : attrs) { String value = element.getAttribute(attr); if(!validateRequiredAttribute(element,parserContext,attr)) { return; } String propertyName = Conventions.attributeNameToPropertyName(attr); if (validateProperty(element, parserContext, propertyName, attr)) { builder.addPropertyValue(propertyName, value); } } }
static void mapAllAttributes(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { new SimpleBeanDefinitionParser().mapToBuilder(element, parserContext, builder); }
/** * * {@inheritDoc} */ @Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder destinationBuilder = BeanDefinitionBuilder.genericBeanDefinition(DESTINATION_FACTORY_CLASS_NAME); String brokerId = element.getAttribute(MESSAGE_BROKER_ATTR); brokerId = StringUtils.hasText(brokerId) ? brokerId : BeanIds.MESSAGE_BROKER; destinationBuilder.addPropertyReference(MESSAGE_BROKER_PROPERTY, brokerId); ParsingUtils.mapOptionalAttributes(element, parserContext, destinationBuilder, CHANNELS_ATTR, SUBSCRIPTION_TIMEOUT_ATTR, THROTTLE_INBOUND_FREQ_ATTR, THROTTLE_INBOUND_POLICY_ATTR, THROTTLE_OUTBOUND_FREQ_ATTR, THROTTLE_OUTBOUND_POLICY_ATTR, ALLOW_SUBTOPICS_ATTR, CLUSTER_ROUTING_ATTR, CLUSTER_REF_ATTR, DISALLOW_WILDCARD_SUBTOPICS_ATTR, MESSAGE_TTL_ATTR, SEND_CONSTRAINT_ATTR, SUBSCRIBE_CONSTRAINT_ATTR, SUBTOPIC_SEPARATOR_ATTR); parseAdapter(element, parserContext, destinationBuilder); return destinationBuilder.getBeanDefinition(); }
private void registerSecurityConfigPostProcessorIfNecessary(ParserContext parserContext, Element securedElement) { if (!parserContext.getRegistry().containsBeanDefinition(BeanIds.SECURITY_CONFIG_POST_PROCESSOR)) { BeanDefinitionBuilder securityConfigPostProcessorBuilder = BeanDefinitionBuilder.genericBeanDefinition(securityHelper.getSecurityConfigPostProcessorClassName()); securityConfigPostProcessorBuilder.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE); securityConfigPostProcessorBuilder.setDependencyCheck(AbstractBeanDefinition.DEPENDENCY_CHECK_NONE); ParsingUtils.registerInfrastructureComponent(securedElement, parserContext, securityConfigPostProcessorBuilder, BeanIds.SECURITY_CONFIG_POST_PROCESSOR); } }
private void registerFlexRemotingAnnotationPostProcessorIfNecessary(Element source, ParserContext parserContext) { if (!parserContext.getRegistry().containsBeanDefinition(BeanIds.REMOTING_ANNOTATION_PROCESSOR)) { BeanDefinitionBuilder processorBuilder = BeanDefinitionBuilder.genericBeanDefinition(REMOTING_ANNOTATION_PROCESSOR_CLASS_NAME); ParsingUtils.registerInfrastructureComponent(source, parserContext, processorBuilder, BeanIds.REMOTING_ANNOTATION_PROCESSOR); } }
private MessageInterceptors() { order = ordinal() * INTERVAL; }
/** * * {@inheritDoc} */ public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) { Element element = (Element) node; parseInternal(element, parserContext, definition.getBeanName()); return definition; }
/** * * {@inheritDoc} */ public BeanDefinition parse(Element element, ParserContext parserContext) { return parseInternal(element, parserContext, element.getAttribute(REF_ATTR)).getBeanDefinition(); }
static void mapOptionalBeanRefAttributes(Element element, BeanDefinitionBuilder builder, ParserContext parserContext, String... attrs) { for (String attr : attrs) { String value = element.getAttribute(attr); if (StringUtils.hasText(value)) { String propertyName = Conventions.attributeNameToPropertyName(attr); if (validateProperty(element, parserContext, propertyName, attr)) { builder.addPropertyReference(propertyName, value); } } } }
protected void mapToBuilder(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { try { this.doParse(element, parserContext, builder); } catch (Exception ex) { parserContext.getReaderContext().error(ex.getMessage(), parserContext.extractSource(element), ex); } } }
static void mapRequiredBeanRefAttributes(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, String... attrs) { for (String attr : attrs) { String value = element.getAttribute(attr); if(!validateRequiredAttribute(element,parserContext,attr)) { return; } String propertyName = Conventions.attributeNameToPropertyName(attr); if (validateProperty(element, parserContext, propertyName, attr)) { builder.addPropertyReference(propertyName, value); } } }
private void registerHandlerAdapterIfNecessary(Element element, ParserContext parserContext) { // Make sure we only ever register one MessageBrokerHandlerAdapter if (!parserContext.getRegistry().containsBeanDefinition(BeanIds.MESSAGE_BROKER_HANDLER_ADAPTER)) { BeanDefinitionBuilder handlerAdapterBuilder = BeanDefinitionBuilder.genericBeanDefinition(MESSAGE_BROKER_HANDLER_ADAPTER_CLASS_NAME); ParsingUtils.registerInfrastructureComponent(element, parserContext, handlerAdapterBuilder, BeanIds.MESSAGE_BROKER_HANDLER_ADAPTER); } }
private void registerMessageInterceptionAdvice(Element element, ParserContext parserContext, ManagedList<RuntimeBeanReference> advisors, ManagedSet<RuntimeBeanReference> interceptors) { BeanDefinitionBuilder advisorBuilder = BeanDefinitionBuilder.genericBeanDefinition(SERVICE_MESSAGE_ADVISOR_CLASS_NAME); BeanDefinitionBuilder messageInterceptionBuilder = BeanDefinitionBuilder.genericBeanDefinition(MESSAGE_INTERCEPTION_CLASS_NAME); messageInterceptionBuilder.addPropertyValue(MESSAGE_INTERCEPTORS_PROPERTY, interceptors); String messageInterceptionId = ParsingUtils.registerInfrastructureComponent(element, parserContext, messageInterceptionBuilder); advisorBuilder.addConstructorArgReference(messageInterceptionId); String advisorId = ParsingUtils.registerInfrastructureComponent(element, parserContext, advisorBuilder); advisors.add(new RuntimeBeanReference(advisorId)); }
private void registerEndpointProcessor(ParserContext parserContext, ManagedSet<RuntimeBeanReference> configProcessors, ManagedList<RuntimeBeanReference> advisors, Element securedElement, String brokerId) { BeanDefinitionBuilder endpointProcessorBuilder = BeanDefinitionBuilder.genericBeanDefinition(ENDPOINT_PROCESSOR_CLASS_NAME); endpointProcessorBuilder.addConstructorArgValue(advisors); ParsingUtils.registerInfrastructureComponent(securedElement, parserContext, endpointProcessorBuilder, brokerId + BeanIds.ENDPOINT_PROCESSOR_SUFFIX); configProcessors.add(new RuntimeBeanReference(brokerId + BeanIds.ENDPOINT_PROCESSOR_SUFFIX)); }
static String registerInfrastructureComponent(Element element, ParserContext parserContext, BeanDefinitionBuilder componentBuilder) { String beanName = parserContext.getReaderContext().generateBeanName(componentBuilder.getRawBeanDefinition()); ParsingUtils.registerInfrastructureComponent(element, parserContext, componentBuilder, beanName); return beanName; }