Refine search
/** * * {@inheritDoc} */ @Override protected void parseAdapter(Element element, ParserContext parserContext, BeanDefinitionBuilder destinationBuilder) { BeanDefinitionBuilder adapterBuilder = BeanDefinitionBuilder.genericBeanDefinition(JMS_ADAPTER_CLASS_NAME); int count = ParsingUtils.countProvidedAttributeValues(element, JMS_DESTINATION_ATTR, QUEUE_NAME_ATTR, TOPIC_NAME_ATTR); if (count != 1) { parserContext.getReaderContext().error("exactly one of 'jms-destination', 'queue-name', or 'topic-name' is required", element); return; } String connectionFactoryId = element.getAttribute(CONNECTION_FACTORY_ATTR); connectionFactoryId = StringUtils.hasText(connectionFactoryId) ? connectionFactoryId : DEFAULT_CONNECTION_FACTORY_REF; adapterBuilder.addPropertyReference(CONNECTION_FACTORY_PROPERTY, connectionFactoryId); ParsingUtils.mapOptionalBeanRefAttributes(element, adapterBuilder, parserContext, JMS_DESTINATION_ATTR, DESTINATION_RESOLVER_ATTR, MESSAGE_CONVERTER_ATTR, TRANSACTION_MANAGER_ATTR); ParsingUtils.mapOptionalAttributes(element, parserContext, adapterBuilder, QUEUE_NAME_ATTR, TOPIC_NAME_ATTR); String serviceAdapterId = ParsingUtils.registerInfrastructureComponent(element, parserContext, adapterBuilder); destinationBuilder.addPropertyValue(SERVICE_ADAPTER_PROPERTY, serviceAdapterId); }
private void configureMessageService(Element parent, ParserContext parserContext, ManagedSet<RuntimeBeanReference> configProcessors, Element messageServiceElement) { Element source = messageServiceElement != null ? messageServiceElement : parent; BeanDefinitionBuilder messagingProcessorBuilder = BeanDefinitionBuilder.genericBeanDefinition(MESSAGING_PROCESSOR_CLASS_NAME); if (messageServiceElement != null) { ParsingUtils.mapAllAttributes(messageServiceElement, parserContext, messagingProcessorBuilder); } String brokerId = parent.getAttribute(ID_ATTRIBUTE); ParsingUtils.registerInfrastructureComponent(source, parserContext, messagingProcessorBuilder, brokerId + BeanIds.MESSAGING_PROCESSOR_SUFFIX); configProcessors.add(new RuntimeBeanReference(brokerId + BeanIds.MESSAGING_PROCESSOR_SUFFIX)); }
/** * * {@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 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); } } }
/** * The main parsing algorithm for the <code>remoting-destination</code> tag. * * @param element the element being parsed * @param parserContext the current parser context * @param exportedBeanReference reference to the bean being exported as a remoting destination * @return a bean definition holder for the {@link RemotingDestinationExporter} bean */ protected BeanDefinitionHolder parseInternal(Element element, ParserContext parserContext, String exportedBeanReference) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(REMOTING_DESTINATION_EXPORTER_CLASS_NAME); builder.getRawBeanDefinition().setRole(BeanDefinition.ROLE_INFRASTRUCTURE); validateRemotingDestination(element, parserContext); String destinationId = element.getAttribute(DESTINATION_ID_ATTR); String brokerId = element.getAttribute(MESSAGE_BROKER_ATTR); builder.addPropertyValue(SERVICE_PROPERTY, exportedBeanReference); builder.addDependsOn(exportedBeanReference); destinationId = StringUtils.hasText(destinationId) ? destinationId : exportedBeanReference; builder.addPropertyValue(DESTINATION_ID_PROPERTY, destinationId); brokerId = StringUtils.hasText(brokerId) ? brokerId : BeanIds.MESSAGE_BROKER; builder.addPropertyReference(MESSAGE_BROKER_PROPERTY, brokerId); ParsingUtils.mapOptionalAttributes(element, parserContext, builder, CHANNELS_ATTR, INCLUDE_METHODS_ATTR, EXCLUDE_METHODS_ATTR, SERVICE_ADAPTER_ATTR); String beanName = ParsingUtils.registerInfrastructureComponent(element, parserContext, builder); return new BeanDefinitionHolder(builder.getBeanDefinition(), beanName); }
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 registerHandlerMappings(Element parent, ParserContext parserContext, List<Element> mappingPatternElements) { BeanDefinitionBuilder handlerMappingBuilder = BeanDefinitionBuilder.genericBeanDefinition(DEFAULT_HANDLER_MAPPING_CLASS_NAME); if (StringUtils.hasText(parent.getAttribute(MAPPING_ORDER_ATTR))) { handlerMappingBuilder.addPropertyValue(ORDER_PROPERTY, Integer.parseInt(parent.getAttribute(MAPPING_ORDER_ATTR))); } Map<String, String> mappings = new HashMap<String, String>(); if (CollectionUtils.isEmpty(mappingPatternElements)) { mappings.put(DEFAULT_MAPPING_PATH, parent.getAttribute(ID_ATTRIBUTE)); } else { Iterator<Element> i = mappingPatternElements.iterator(); while (i.hasNext()) { Element mappingElement = i.next(); mappings.put(mappingElement.getAttribute(PATTERN_ATTR), parent.getAttribute(ID_ATTRIBUTE)); } } handlerMappingBuilder.addPropertyValue(URL_MAP_PROPERTY, mappings); ParsingUtils.registerInfrastructureComponent(parent, parserContext, handlerMappingBuilder, parent.getAttribute(ID_ATTRIBUTE) + BeanIds.HANDLER_MAPPING_SUFFIX); }
/** * * {@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 registerEndpointInterceptorIfNecessary(Element securedElement, ParserContext parserContext, Map<Integer, RuntimeBeanReference> interceptors, String authManager, String accessManager) { if (securedElement.hasChildNodes() && !interceptors.containsKey(MessageInterceptors.ENDPOINT_INTERCEPTOR.getOrder())) { BeanDefinitionBuilder interceptorBuilder = BeanDefinitionBuilder.genericBeanDefinition(securityHelper.getEndpointInterceptorClassName()); interceptorBuilder.addPropertyReference(AUTH_MANAGER_PROPERTY, authManager); if (StringUtils.hasText(accessManager)) { interceptorBuilder.addPropertyReference(ACCESS_MANAGER_PROPERTY, accessManager); endpointDefSourceBuilder.addConstructorArgValue(endpointMap); String endpointDefSourceId = ParsingUtils.registerInfrastructureComponent(securedElement, parserContext, endpointDefSourceBuilder); interceptorBuilder.addPropertyReference(OBJECT_DEF_SOURCE_PROPERTY, endpointDefSourceId); String interceptorId = ParsingUtils.registerInfrastructureComponent(securedElement, parserContext, interceptorBuilder); interceptors.put(MessageInterceptors.ENDPOINT_INTERCEPTOR.getOrder(), new RuntimeBeanReference(interceptorId));
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)); }
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); } }
static void mapOptionalAttributes(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, 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.addPropertyValue(propertyName, value); } } } }
ParsingUtils.mapOptionalAttributes(element, parserContext, builder, SERVICES_CONFIG_PATH_ATTR); ParsingUtils.mapOptionalBeanRefAttributes(element, builder, parserContext, CONFIGURATION_MANAGER_ATTR); builder.addPropertyValue(CONFIG_PROCESSORS_PROPERTY, configProcessors);
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); } }
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); } } } }
static String registerInfrastructureComponent(Element element, ParserContext parserContext, BeanDefinitionBuilder componentBuilder) { String beanName = parserContext.getReaderContext().generateBeanName(componentBuilder.getRawBeanDefinition()); ParsingUtils.registerInfrastructureComponent(element, parserContext, componentBuilder, beanName); return beanName; }
/** * * {@inheritDoc} */ @Override protected void parseAdapter(Element element, ParserContext parserContext, BeanDefinitionBuilder destinationBuilder) { ParsingUtils.mapOptionalAttributes(element, parserContext, destinationBuilder, SERVICE_ADAPTER_ATTR); }
private void registerExceptionTranslation(Element element, ParserContext parserContext, ManagedList<RuntimeBeanReference> advisors, ManagedSet<RuntimeBeanReference> translators, List<Element> exceptionTranslatorElements) { if (!CollectionUtils.isEmpty(exceptionTranslatorElements)) { Iterator<Element> i = exceptionTranslatorElements.iterator(); while (i.hasNext()) { Element exceptionTranslatorElement = i.next(); translators.add(new RuntimeBeanReference(exceptionTranslatorElement.getAttribute(REF_ATTR))); } } BeanDefinitionBuilder advisorBuilder = BeanDefinitionBuilder.genericBeanDefinition(SERVICE_MESSAGE_ADVISOR_CLASS_NAME); BeanDefinitionBuilder exceptionTranslationBuilder = BeanDefinitionBuilder.genericBeanDefinition(EXCEPTION_TRANSLATION_CLASS_NAME); exceptionTranslationBuilder.addPropertyValue(EXCEPTION_TRANSLATORS_PROPERTY, translators); ParsingUtils.mapOptionalBeanRefAttributes(element, exceptionTranslationBuilder, parserContext, EXCEPTION_LOGGER_ATTR); String exceptionTranslationId = ParsingUtils.registerInfrastructureComponent(element, parserContext, exceptionTranslationBuilder); advisorBuilder.addConstructorArgReference(exceptionTranslationId); String advisorId = ParsingUtils.registerInfrastructureComponent(element, parserContext, advisorBuilder); advisors.add(new RuntimeBeanReference(advisorId)); }
private void registerConfigMapEditorIfNecessary(Element source, ParserContext parserContext) { if (!parserContext.getRegistry().containsBeanDefinition(BeanIds.JSON_CONFIG_MAP_EDITOR_CONFIGURER)) { BeanDefinitionBuilder configurerBuilder = BeanDefinitionBuilder.genericBeanDefinition(CUSTOM_EDITOR_CONFIGURER_CLASS_NAME); ManagedMap<String, String> editors = new ManagedMap<String, String>(); editors.put(CONFIG_MAP_CLASS_NAME, JSON_CONFIG_MAP_EDITOR_CLASS_NAME); configurerBuilder.addPropertyValue(CUSTOM_EDITORS_PROPERTY, editors); ParsingUtils.registerInfrastructureComponent(source, parserContext, configurerBuilder, BeanIds.JSON_CONFIG_MAP_EDITOR_CONFIGURER); } }