From d3ec17d8f42a79f11066a06e4ad1b36d2887fad4 Mon Sep 17 00:00:00 2001 From: Ben Hale Date: Tue, 28 Aug 2007 09:14:16 +0000 Subject: [PATCH] One of these days I'll take my own advice about running the tests before committing. --- .../PhonebookFlowRegistryFactoryBean.java | 36 ++++++++++++++++--- .../PhonebookFlowRegistryFactoryBean.java | 36 ++++++++++++++++--- 2 files changed, 64 insertions(+), 8 deletions(-) diff --git a/spring-webflow-samples/phonebook-portlet/src/main/java/org/springframework/webflow/samples/phonebook/webflow/PhonebookFlowRegistryFactoryBean.java b/spring-webflow-samples/phonebook-portlet/src/main/java/org/springframework/webflow/samples/phonebook/webflow/PhonebookFlowRegistryFactoryBean.java index 451198e7..f7665342 100644 --- a/spring-webflow-samples/phonebook-portlet/src/main/java/org/springframework/webflow/samples/phonebook/webflow/PhonebookFlowRegistryFactoryBean.java +++ b/spring-webflow-samples/phonebook-portlet/src/main/java/org/springframework/webflow/samples/phonebook/webflow/PhonebookFlowRegistryFactoryBean.java @@ -15,18 +15,46 @@ */ package org.springframework.webflow.samples.phonebook.webflow; +import org.springframework.beans.factory.FactoryBean; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.webflow.definition.registry.FlowDefinitionHolder; import org.springframework.webflow.definition.registry.FlowDefinitionRegistry; -import org.springframework.webflow.engine.builder.AbstractFlowBuilderFlowRegistryFactoryBean; +import org.springframework.webflow.definition.registry.FlowDefinitionRegistryImpl; +import org.springframework.webflow.definition.registry.StaticFlowDefinitionHolder; +import org.springframework.webflow.engine.builder.FlowAssembler; +import org.springframework.webflow.engine.builder.FlowBuilder; /** - * Demonstrates how to populate a flow registry programatically. + * Demonstrates how to populate a flow registry programmatically. * * @author Keith Donald + * @author Ben Hale */ -public class PhonebookFlowRegistryFactoryBean extends AbstractFlowBuilderFlowRegistryFactoryBean { +public class PhonebookFlowRegistryFactoryBean implements FactoryBean, InitializingBean { - protected void doPopulate(FlowDefinitionRegistry registry) { + private FlowDefinitionRegistry registry; + + public void afterPropertiesSet() throws Exception { + this.registry = new FlowDefinitionRegistryImpl(); registerFlowDefinition(registry, "detail-flow", new PersonDetailFlowBuilder()); registerFlowDefinition(registry, "search-flow", new SearchPersonFlowBuilder()); } + + public Object getObject() throws Exception { + return registry; + } + + public Class getObjectType() { + return FlowDefinitionRegistry.class; + } + + public boolean isSingleton() { + return true; + } + + private void registerFlowDefinition(FlowDefinitionRegistry registry, String flowId, FlowBuilder flowBuilder) { + FlowAssembler assembler = new FlowAssembler(flowId, flowBuilder); + FlowDefinitionHolder holder = new StaticFlowDefinitionHolder(assembler.assembleFlow()); + registry.registerFlowDefinition(holder); + } } diff --git a/spring-webflow-samples/phonebook/src/main/java/org/springframework/webflow/samples/phonebook/webflow/PhonebookFlowRegistryFactoryBean.java b/spring-webflow-samples/phonebook/src/main/java/org/springframework/webflow/samples/phonebook/webflow/PhonebookFlowRegistryFactoryBean.java index 451198e7..f7665342 100644 --- a/spring-webflow-samples/phonebook/src/main/java/org/springframework/webflow/samples/phonebook/webflow/PhonebookFlowRegistryFactoryBean.java +++ b/spring-webflow-samples/phonebook/src/main/java/org/springframework/webflow/samples/phonebook/webflow/PhonebookFlowRegistryFactoryBean.java @@ -15,18 +15,46 @@ */ package org.springframework.webflow.samples.phonebook.webflow; +import org.springframework.beans.factory.FactoryBean; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.webflow.definition.registry.FlowDefinitionHolder; import org.springframework.webflow.definition.registry.FlowDefinitionRegistry; -import org.springframework.webflow.engine.builder.AbstractFlowBuilderFlowRegistryFactoryBean; +import org.springframework.webflow.definition.registry.FlowDefinitionRegistryImpl; +import org.springframework.webflow.definition.registry.StaticFlowDefinitionHolder; +import org.springframework.webflow.engine.builder.FlowAssembler; +import org.springframework.webflow.engine.builder.FlowBuilder; /** - * Demonstrates how to populate a flow registry programatically. + * Demonstrates how to populate a flow registry programmatically. * * @author Keith Donald + * @author Ben Hale */ -public class PhonebookFlowRegistryFactoryBean extends AbstractFlowBuilderFlowRegistryFactoryBean { +public class PhonebookFlowRegistryFactoryBean implements FactoryBean, InitializingBean { - protected void doPopulate(FlowDefinitionRegistry registry) { + private FlowDefinitionRegistry registry; + + public void afterPropertiesSet() throws Exception { + this.registry = new FlowDefinitionRegistryImpl(); registerFlowDefinition(registry, "detail-flow", new PersonDetailFlowBuilder()); registerFlowDefinition(registry, "search-flow", new SearchPersonFlowBuilder()); } + + public Object getObject() throws Exception { + return registry; + } + + public Class getObjectType() { + return FlowDefinitionRegistry.class; + } + + public boolean isSingleton() { + return true; + } + + private void registerFlowDefinition(FlowDefinitionRegistry registry, String flowId, FlowBuilder flowBuilder) { + FlowAssembler assembler = new FlowAssembler(flowId, flowBuilder); + FlowDefinitionHolder holder = new StaticFlowDefinitionHolder(assembler.assembleFlow()); + registry.registerFlowDefinition(holder); + } }