private List<FlowLocation> parseLocations(Element element) { List<Element> locationElements = DomUtils.getChildElementsByTagName(element, "flow-location"); if (locationElements.isEmpty()) { return Collections.emptyList(); } List<FlowLocation> locations = new ArrayList<>(locationElements.size()); for (Element locationElement : locationElements) { String id = locationElement.getAttribute("id"); String path = locationElement.getAttribute("path"); locations.add(new FlowLocation(id, path, parseAttributes(locationElement))); } return locations; }
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder definitionBuilder) { CompositeComponentDefinition componentDefinition = new CompositeComponentDefinition(element.getLocalName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(componentDefinition); parseFlowBuilderServices(element, parserContext, definitionBuilder); String parent = element.getAttribute("parent"); if (StringUtils.hasText(parent)) { definitionBuilder.addPropertyReference("parent", parent); } String basePath = element.getAttribute("base-path"); if (StringUtils.hasText(basePath)) { definitionBuilder.addPropertyValue("basePath", basePath); } definitionBuilder.addPropertyValue("flowLocations", parseLocations(element)); definitionBuilder.addPropertyValue("flowLocationPatterns", parseLocationPatterns(element)); definitionBuilder.addPropertyValue("flowBuilders", parseFlowBuilders(element)); parserContext.popAndRegisterContainingComponent(); }
private void parseFlowBuilderServices(Element element, ParserContext context, BeanDefinitionBuilder definitionBuilder) { String flowBuilderServices = element.getAttribute("flow-builder-services"); if (!StringUtils.hasText(flowBuilderServices)) { BeanDefinitionBuilder flowBuilderServicesBuilder = BeanDefinitionBuilder .genericBeanDefinition(FLOW_BUILDER_SERVICES_CLASS_NAME); BeanDefinitionBuilder conversionServiceBuilder = BeanDefinitionBuilder .genericBeanDefinition(DEFAULT_CONVERSION_SERVICE_CLASS_NAME); String conversionService = registerInfrastructureComponent(element, context, conversionServiceBuilder); flowBuilderServicesBuilder.addPropertyReference("conversionService", conversionService); BeanDefinitionBuilder springElExpressionParserBuilder = BeanDefinitionBuilder .genericBeanDefinition(SPRING_EL_EXPRESSION_PARSER_CLASS_NAME); BeanDefinitionBuilder webFlowElExpressionParserBuilder = BeanDefinitionBuilder .genericBeanDefinition(WEB_FLOW_SPRING_EL_EXPRESSION_PARSER_CLASS_NAME); webFlowElExpressionParserBuilder .addConstructorArgValue(springElExpressionParserBuilder.getBeanDefinition()); String expressionParser = registerInfrastructureComponent(element, context, webFlowElExpressionParserBuilder); flowBuilderServicesBuilder.addPropertyReference("expressionParser", expressionParser); BeanDefinitionBuilder viewFactoryCreatorBuilder = BeanDefinitionBuilder .genericBeanDefinition(MVC_VIEW_FACTORY_CREATOR_CLASS_NAME); String viewFactoryCreator = registerInfrastructureComponent(element, context, viewFactoryCreatorBuilder); flowBuilderServicesBuilder.addPropertyReference("viewFactoryCreator", viewFactoryCreator); flowBuilderServices = registerInfrastructureComponent(element, context, flowBuilderServicesBuilder); } definitionBuilder.addPropertyReference("flowBuilderServices", flowBuilderServices); }
public void init() { registerBeanDefinitionParser("flow-executor", new FlowExecutorBeanDefinitionParser()); registerBeanDefinitionParser("flow-execution-listeners", new FlowExecutionListenerLoaderBeanDefinitionParser()); registerBeanDefinitionParser("flow-registry", new FlowRegistryBeanDefinitionParser()); registerBeanDefinitionParser("flow-builder-services", new FlowBuilderServicesBeanDefinitionParser()); } }
public void init() { registerBeanDefinitionParser("flow-executor", new FlowExecutorBeanDefinitionParser()); registerBeanDefinitionParser("flow-execution-listeners", new FlowExecutionListenerLoaderBeanDefinitionParser()); registerBeanDefinitionParser("flow-registry", new FlowRegistryBeanDefinitionParser()); registerBeanDefinitionParser("flow-builder-services", new FlowBuilderServicesBeanDefinitionParser()); } }
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder definitionBuilder) { CompositeComponentDefinition componentDefinition = new CompositeComponentDefinition(element.getLocalName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(componentDefinition); parseFlowBuilderServices(element, parserContext, definitionBuilder); String parent = element.getAttribute("parent"); if (StringUtils.hasText(parent)) { definitionBuilder.addPropertyReference("parent", parent); } String basePath = element.getAttribute("base-path"); if (StringUtils.hasText(basePath)) { definitionBuilder.addPropertyValue("basePath", basePath); } definitionBuilder.addPropertyValue("flowLocations", parseLocations(element)); definitionBuilder.addPropertyValue("flowLocationPatterns", parseLocationPatterns(element)); definitionBuilder.addPropertyValue("flowBuilders", parseFlowBuilders(element)); parserContext.popAndRegisterContainingComponent(); }
private List<FlowBuilderInfo> parseFlowBuilders(Element element) { List<Element> builderElements = DomUtils.getChildElementsByTagName(element, "flow-builder"); if (builderElements.isEmpty()) { return Collections.emptyList(); } List<FlowBuilderInfo> builders = new ArrayList<>(builderElements.size()); for (Element builderElement : builderElements) { String id = builderElement.getAttribute("id"); String className = builderElement.getAttribute("class"); builders.add(new FlowBuilderInfo(id, className, parseAttributes(builderElement))); } return builders; }
public void init() { registerBeanDefinitionParser("flow-executor", new FlowExecutorBeanDefinitionParser()); registerBeanDefinitionParser("flow-execution-listeners", new FlowExecutionListenerLoaderBeanDefinitionParser()); registerBeanDefinitionParser("flow-registry", new FlowRegistryBeanDefinitionParser()); registerBeanDefinitionParser("flow-builder-services", new FlowBuilderServicesBeanDefinitionParser()); } }
private void parseFlowBuilderServices(Element element, ParserContext context, BeanDefinitionBuilder definitionBuilder) { String flowBuilderServices = element.getAttribute("flow-builder-services"); if (!StringUtils.hasText(flowBuilderServices)) { BeanDefinitionBuilder flowBuilderServicesBuilder = BeanDefinitionBuilder .genericBeanDefinition(FLOW_BUILDER_SERVICES_CLASS_NAME); BeanDefinitionBuilder conversionServiceBuilder = BeanDefinitionBuilder .genericBeanDefinition(DEFAULT_CONVERSION_SERVICE_CLASS_NAME); String conversionService = registerInfrastructureComponent(element, context, conversionServiceBuilder); flowBuilderServicesBuilder.addPropertyReference("conversionService", conversionService); BeanDefinitionBuilder springElExpressionParserBuilder = BeanDefinitionBuilder .genericBeanDefinition(SPRING_EL_EXPRESSION_PARSER_CLASS_NAME); BeanDefinitionBuilder webFlowElExpressionParserBuilder = BeanDefinitionBuilder .genericBeanDefinition(WEB_FLOW_SPRING_EL_EXPRESSION_PARSER_CLASS_NAME); webFlowElExpressionParserBuilder .addConstructorArgValue(springElExpressionParserBuilder.getBeanDefinition()); String expressionParser = registerInfrastructureComponent(element, context, webFlowElExpressionParserBuilder); flowBuilderServicesBuilder.addPropertyReference("expressionParser", expressionParser); BeanDefinitionBuilder viewFactoryCreatorBuilder = BeanDefinitionBuilder .genericBeanDefinition(MVC_VIEW_FACTORY_CREATOR_CLASS_NAME); String viewFactoryCreator = registerInfrastructureComponent(element, context, viewFactoryCreatorBuilder); flowBuilderServicesBuilder.addPropertyReference("viewFactoryCreator", viewFactoryCreator); flowBuilderServices = registerInfrastructureComponent(element, context, flowBuilderServicesBuilder); } definitionBuilder.addPropertyReference("flowBuilderServices", flowBuilderServices); }
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder definitionBuilder) { CompositeComponentDefinition componentDefinition = new CompositeComponentDefinition(element.getLocalName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(componentDefinition); parseFlowBuilderServices(element, parserContext, definitionBuilder); String parent = element.getAttribute("parent"); if (StringUtils.hasText(parent)) { definitionBuilder.addPropertyReference("parent", parent); } String basePath = element.getAttribute("base-path"); if (StringUtils.hasText(basePath)) { definitionBuilder.addPropertyValue("basePath", basePath); } definitionBuilder.addPropertyValue("flowLocations", parseLocations(element)); definitionBuilder.addPropertyValue("flowLocationPatterns", parseLocationPatterns(element)); definitionBuilder.addPropertyValue("flowBuilders", parseFlowBuilders(element)); parserContext.popAndRegisterContainingComponent(); }
private List<FlowBuilderInfo> parseFlowBuilders(Element element) { List<Element> builderElements = DomUtils.getChildElementsByTagName(element, "flow-builder"); if (builderElements.isEmpty()) { return Collections.emptyList(); } List<FlowBuilderInfo> builders = new ArrayList<>(builderElements.size()); for (Element builderElement : builderElements) { String id = builderElement.getAttribute("id"); String className = builderElement.getAttribute("class"); builders.add(new FlowBuilderInfo(id, className, parseAttributes(builderElement))); } return builders; }
private void parseFlowBuilderServices(Element element, ParserContext context, BeanDefinitionBuilder definitionBuilder) { String flowBuilderServices = element.getAttribute("flow-builder-services"); if (!StringUtils.hasText(flowBuilderServices)) { BeanDefinitionBuilder flowBuilderServicesBuilder = BeanDefinitionBuilder .genericBeanDefinition(FLOW_BUILDER_SERVICES_CLASS_NAME); BeanDefinitionBuilder conversionServiceBuilder = BeanDefinitionBuilder .genericBeanDefinition(DEFAULT_CONVERSION_SERVICE_CLASS_NAME); String conversionService = registerInfrastructureComponent(element, context, conversionServiceBuilder); flowBuilderServicesBuilder.addPropertyReference("conversionService", conversionService); BeanDefinitionBuilder expressionParserBuilder = BeanDefinitionBuilder .genericBeanDefinition(DEFAULT_EXPRESSION_PARSER_FACTORY_CLASS_NAME); expressionParserBuilder.setFactoryMethod("getExpressionParser"); expressionParserBuilder.addConstructorArgReference(conversionService); String expressionParser = registerInfrastructureComponent(element, context, expressionParserBuilder); flowBuilderServicesBuilder.addPropertyReference("expressionParser", expressionParser); BeanDefinitionBuilder viewFactoryCreatorBuilder = BeanDefinitionBuilder .genericBeanDefinition(MVC_VIEW_FACTORY_CREATOR_CLASS_NAME); String viewFactoryCreator = registerInfrastructureComponent(element, context, viewFactoryCreatorBuilder); flowBuilderServicesBuilder.addPropertyReference("viewFactoryCreator", viewFactoryCreator); flowBuilderServices = registerInfrastructureComponent(element, context, flowBuilderServicesBuilder); } definitionBuilder.addPropertyReference("flowBuilderServices", flowBuilderServices); }
private List<FlowLocation> parseLocations(Element element) { List<Element> locationElements = DomUtils.getChildElementsByTagName(element, "flow-location"); if (locationElements.isEmpty()) { return Collections.emptyList(); } List<FlowLocation> locations = new ArrayList<>(locationElements.size()); for (Element locationElement : locationElements) { String id = locationElement.getAttribute("id"); String path = locationElement.getAttribute("path"); locations.add(new FlowLocation(id, path, parseAttributes(locationElement))); } return locations; }
private List parseLocations(Element element) { List locationElements = DomUtils.getChildElementsByTagName(element, "flow-location"); if (locationElements.isEmpty()) { return Collections.EMPTY_LIST; } List locations = new ArrayList(locationElements.size()); for (Iterator it = locationElements.iterator(); it.hasNext();) { Element locationElement = (Element) it.next(); String id = locationElement.getAttribute("id"); String path = locationElement.getAttribute("path"); locations.add(new FlowLocation(id, path, parseAttributes(locationElement))); } return locations; }
private List parseFlowBuilders(Element element) { List builderElements = DomUtils.getChildElementsByTagName(element, "flow-builder"); if (builderElements.isEmpty()) { return Collections.EMPTY_LIST; } List builders = new ArrayList(builderElements.size()); for (Iterator it = builderElements.iterator(); it.hasNext();) { Element builderElement = (Element) it.next(); String id = builderElement.getAttribute("id"); String className = builderElement.getAttribute("class"); builders.add(new FlowBuilderInfo(id, className, parseAttributes(builderElement))); } return builders; }