minor structure polishing / naming conventions
This commit is contained in:
@@ -8,8 +8,8 @@
|
||||
<application>
|
||||
<action-listener>org.springframework.faces.webflow.FlowActionListener</action-listener>
|
||||
<action-listener>org.springframework.faces.model.SelectionTrackingActionListener</action-listener>
|
||||
<variable-resolver>org.springframework.faces.expression.CompositeFlowVariableResolver</variable-resolver>
|
||||
<property-resolver>org.springframework.faces.expression.CompositeFlowPropertyResolver</property-resolver>
|
||||
<variable-resolver>org.springframework.faces.webflow.FlowVariableResolver</variable-resolver>
|
||||
<property-resolver>org.springframework.faces.webflow.FlowPropertyResolver</property-resolver>
|
||||
<state-manager>org.springframework.faces.webflow.FlowViewStateManager</state-manager>
|
||||
<view-handler>org.springframework.faces.webflow.FlowViewHandler</view-handler>
|
||||
</application>
|
||||
|
||||
@@ -19,9 +19,9 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
|
||||
import org.springframework.beans.factory.xml.BeanDefinitionParser;
|
||||
import org.springframework.binding.expression.el.DefaultExpressionFactoryUtils;
|
||||
import org.springframework.faces.expression.LegacyJSFELExpressionParser;
|
||||
import org.springframework.faces.model.converter.FacesConversionService;
|
||||
import org.springframework.faces.webflow.JsfViewFactoryCreator;
|
||||
import org.springframework.faces.webflow.JsfManagedBeanAwareELExpressionParser;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.webflow.engine.builder.support.FlowBuilderServices;
|
||||
import org.springframework.webflow.expression.el.WebFlowELExpressionParser;
|
||||
@@ -54,7 +54,7 @@ public class FacesFlowBuilderServicesBeanDefinitionParser extends AbstractSingle
|
||||
protected void doParse(Element element, BeanDefinitionBuilder definitionBuilder) {
|
||||
boolean enableManagedBeans = parseEnableManagedBeans(element, definitionBuilder);
|
||||
if (enableManagedBeans) {
|
||||
definitionBuilder.addPropertyValue(EXPRESSION_PARSER_PROPERTY, new LegacyJSFELExpressionParser(
|
||||
definitionBuilder.addPropertyValue(EXPRESSION_PARSER_PROPERTY, new JsfManagedBeanAwareELExpressionParser(
|
||||
DefaultExpressionFactoryUtils.createExpressionFactory()));
|
||||
} else {
|
||||
parseExpressionParser(element, definitionBuilder);
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.Map;
|
||||
import javax.faces.component.UIComponent;
|
||||
import javax.faces.context.FacesContext;
|
||||
|
||||
import org.springframework.faces.ui.resource.FlowResourceHelper;
|
||||
import org.springframework.faces.ui.resource.ResourceHelper;
|
||||
|
||||
public abstract class BaseDojoParentComponentRenderer extends BaseSpringFacesParentComponentRenderer {
|
||||
|
||||
@@ -19,7 +19,7 @@ public abstract class BaseDojoParentComponentRenderer extends BaseSpringFacesPar
|
||||
|
||||
private String springDojoJsResourceUri = "/spring/Spring-Dojo.js";
|
||||
|
||||
private FlowResourceHelper resourceHelper = new FlowResourceHelper();
|
||||
private ResourceHelper resourceHelper = new ResourceHelper();
|
||||
|
||||
public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
|
||||
super.encodeBegin(context, component);
|
||||
|
||||
@@ -5,13 +5,13 @@ import java.io.IOException;
|
||||
import javax.faces.component.UIComponent;
|
||||
import javax.faces.context.FacesContext;
|
||||
|
||||
import org.springframework.faces.ui.resource.FlowResourceHelper;
|
||||
import org.springframework.faces.ui.resource.ResourceHelper;
|
||||
|
||||
public abstract class BaseSpringFacesParentComponentRenderer extends BaseParentComponentRenderer {
|
||||
|
||||
private String springJsResourceUri = "/spring/Spring.js";
|
||||
|
||||
private FlowResourceHelper resourceHelper = new FlowResourceHelper();
|
||||
private ResourceHelper resourceHelper = new ResourceHelper();
|
||||
|
||||
public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
|
||||
|
||||
|
||||
@@ -24,14 +24,14 @@ import javax.faces.component.ValueHolder;
|
||||
import javax.faces.context.FacesContext;
|
||||
import javax.faces.context.ResponseWriter;
|
||||
|
||||
import org.springframework.faces.ui.resource.FlowResourceHelper;
|
||||
import org.springframework.faces.ui.resource.ResourceHelper;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
public class DojoAdvisorRenderer extends DojoRenderer {
|
||||
|
||||
private static final String SCRIPT_ELEMENT = "script";
|
||||
|
||||
private FlowResourceHelper resourceHelper = new FlowResourceHelper();
|
||||
private ResourceHelper resourceHelper = new ResourceHelper();
|
||||
|
||||
public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import java.util.Map;
|
||||
import javax.faces.component.UIComponent;
|
||||
import javax.faces.context.FacesContext;
|
||||
|
||||
import org.springframework.faces.ui.resource.FlowResourceHelper;
|
||||
import org.springframework.faces.ui.resource.ResourceHelper;
|
||||
|
||||
public class DojoRenderer extends SpringFacesRenderer {
|
||||
|
||||
@@ -34,7 +34,7 @@ public class DojoRenderer extends SpringFacesRenderer {
|
||||
|
||||
private String springDojoJsResourceUri = "/spring/Spring-Dojo.js";
|
||||
|
||||
private FlowResourceHelper resourceHelper = new FlowResourceHelper();
|
||||
private ResourceHelper resourceHelper = new ResourceHelper();
|
||||
|
||||
public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ import java.io.IOException;
|
||||
import javax.faces.component.UIComponent;
|
||||
import javax.faces.context.FacesContext;
|
||||
|
||||
import org.springframework.faces.ui.resource.FlowResourceHelper;
|
||||
import org.springframework.faces.ui.resource.ResourceHelper;
|
||||
|
||||
public class ExtJsRenderer extends SpringFacesRenderer {
|
||||
|
||||
@@ -30,7 +30,7 @@ public class ExtJsRenderer extends SpringFacesRenderer {
|
||||
|
||||
private static final String SPRING_EXT_SCRIPT = "/spring/Spring-Ext.js";
|
||||
|
||||
private FlowResourceHelper resourceHelper = new FlowResourceHelper();
|
||||
private ResourceHelper resourceHelper = new ResourceHelper();
|
||||
|
||||
public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
|
||||
|
||||
|
||||
@@ -21,13 +21,13 @@ import javax.faces.component.UIComponent;
|
||||
import javax.faces.context.FacesContext;
|
||||
import javax.faces.render.Renderer;
|
||||
|
||||
import org.springframework.faces.ui.resource.FlowResourceHelper;
|
||||
import org.springframework.faces.ui.resource.ResourceHelper;
|
||||
|
||||
public class SpringFacesRenderer extends Renderer {
|
||||
|
||||
private String springJsResourceUri = "/spring/Spring.js";
|
||||
|
||||
private FlowResourceHelper resourceHelper = new FlowResourceHelper();
|
||||
private ResourceHelper resourceHelper = new ResourceHelper();
|
||||
|
||||
public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
|
||||
|
||||
|
||||
@@ -25,9 +25,6 @@ import java.util.Set;
|
||||
import javax.faces.context.FacesContext;
|
||||
import javax.faces.context.ResponseWriter;
|
||||
|
||||
import org.springframework.webflow.execution.RequestContext;
|
||||
import org.springframework.webflow.execution.RequestContextHolder;
|
||||
|
||||
/**
|
||||
* Helper used by Spring Faces component renderers to add links to javascript and css resources. The resource links will
|
||||
* be rendered in the correct format for the requests to be handled by Web Flow and routed to a special "resources" flow
|
||||
@@ -36,7 +33,7 @@ import org.springframework.webflow.execution.RequestContextHolder;
|
||||
* @author Jeremy Grelle
|
||||
*
|
||||
*/
|
||||
public class FlowResourceHelper {
|
||||
public class ResourceHelper {
|
||||
|
||||
private static final String RENDERED_RESOURCES_KEY = "org.springframework.faces.RenderedResources";
|
||||
|
||||
@@ -58,31 +55,20 @@ public class FlowResourceHelper {
|
||||
* @throws IOException
|
||||
*/
|
||||
public void renderScriptLink(FacesContext facesContext, String scriptPath, Map attributes) throws IOException {
|
||||
|
||||
if (alreadyRendered(facesContext, scriptPath)) {
|
||||
return;
|
||||
}
|
||||
|
||||
RequestContext requestContext = RequestContextHolder.getRequestContext();
|
||||
|
||||
ResponseWriter writer = facesContext.getResponseWriter();
|
||||
|
||||
writer.startElement("script", null);
|
||||
|
||||
writer.writeAttribute("type", "text/javascript", null);
|
||||
|
||||
Iterator i = attributes.keySet().iterator();
|
||||
while (i.hasNext()) {
|
||||
String key = (String) i.next();
|
||||
writer.writeAttribute(key, attributes.get(key), null);
|
||||
}
|
||||
|
||||
String src = requestContext.getExternalContext().getContextPath() + "/resources" + scriptPath;
|
||||
|
||||
String src = facesContext.getExternalContext().getRequestContextPath() + "/resources" + scriptPath;
|
||||
writer.writeAttribute("src", src, null);
|
||||
|
||||
writer.endElement("script");
|
||||
|
||||
markRendered(facesContext, scriptPath);
|
||||
}
|
||||
|
||||
@@ -93,26 +79,16 @@ public class FlowResourceHelper {
|
||||
* @throws IOException
|
||||
*/
|
||||
public void renderStyleLink(FacesContext facesContext, String cssPath) throws IOException {
|
||||
|
||||
if (alreadyRendered(facesContext, cssPath)) {
|
||||
return;
|
||||
}
|
||||
|
||||
RequestContext requestContext = RequestContextHolder.getRequestContext();
|
||||
|
||||
ResponseWriter writer = facesContext.getResponseWriter();
|
||||
|
||||
writer.startElement("link", null);
|
||||
|
||||
writer.writeAttribute("type", "text/css", null);
|
||||
writer.writeAttribute("rel", "stylesheet", null);
|
||||
|
||||
String src = requestContext.getExternalContext().getContextPath() + "/resources" + cssPath;
|
||||
|
||||
String src = facesContext.getExternalContext().getRequestContextPath() + "/resources" + cssPath;
|
||||
writer.writeAttribute("href", src, null);
|
||||
|
||||
writer.endElement("link");
|
||||
|
||||
markRendered(facesContext, cssPath);
|
||||
}
|
||||
|
||||
@@ -123,21 +99,14 @@ public class FlowResourceHelper {
|
||||
* @throws IOException
|
||||
*/
|
||||
public void renderDojoInclude(FacesContext facesContext, String module) throws IOException {
|
||||
|
||||
if (alreadyRendered(facesContext, module)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ResponseWriter writer = facesContext.getResponseWriter();
|
||||
|
||||
writer.startElement("script", null);
|
||||
|
||||
writer.writeAttribute("type", "text/javascript", null);
|
||||
|
||||
writer.writeText("dojo.require('" + module + "');", null);
|
||||
|
||||
writer.endElement("script");
|
||||
|
||||
markRendered(facesContext, module);
|
||||
}
|
||||
|
||||
@@ -13,22 +13,20 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.faces.expression;
|
||||
package org.springframework.faces.webflow;
|
||||
|
||||
import javax.el.CompositeELResolver;
|
||||
import javax.faces.el.PropertyResolver;
|
||||
|
||||
import org.springframework.binding.expression.el.MapAdaptableELResolver;
|
||||
import org.springframework.webflow.expression.el.RequestContextELResolver;
|
||||
import org.springframework.webflow.expression.el.ScopeSearchingELResolver;
|
||||
import org.springframework.faces.expression.ELDelegatingPropertyResolver;
|
||||
|
||||
/**
|
||||
* Assembles {@link RequestContextELResolver} and {@link ScopeSearchingELResolver} into a composite that may be used
|
||||
* with JSF 1.1 and higher for property resolution.
|
||||
* For resolving MapAdaptable properties with JSF 1.1 or >.
|
||||
*
|
||||
* @author Jeremy Grelle
|
||||
*/
|
||||
public class CompositeFlowPropertyResolver extends ELDelegatingPropertyResolver {
|
||||
public class FlowPropertyResolver extends ELDelegatingPropertyResolver {
|
||||
|
||||
private static final CompositeELResolver composite = new CompositeELResolver();
|
||||
|
||||
@@ -36,7 +34,7 @@ public class CompositeFlowPropertyResolver extends ELDelegatingPropertyResolver
|
||||
composite.add(new MapAdaptableELResolver());
|
||||
}
|
||||
|
||||
public CompositeFlowPropertyResolver(PropertyResolver nextResolver) {
|
||||
public FlowPropertyResolver(PropertyResolver nextResolver) {
|
||||
super(nextResolver, composite);
|
||||
}
|
||||
}
|
||||
@@ -13,11 +13,12 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.faces.expression;
|
||||
package org.springframework.faces.webflow;
|
||||
|
||||
import javax.el.CompositeELResolver;
|
||||
import javax.faces.el.VariableResolver;
|
||||
|
||||
import org.springframework.faces.expression.ELDelegatingVariableResolver;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.webflow.expression.el.ImplicitFlowVariableELResolver;
|
||||
import org.springframework.webflow.expression.el.RequestContextELResolver;
|
||||
@@ -26,26 +27,25 @@ import org.springframework.webflow.expression.el.SpringBeanWebFlowELResolver;
|
||||
import org.springframework.webflow.expression.el.SpringSecurityELResolver;
|
||||
|
||||
/**
|
||||
* Assembles {@link RequestContextELResolver} and {@link ScopeSearchingELResolver} into a composite that may be used
|
||||
* with JSF 1.1 and higher for variable resolution.
|
||||
* For resolving flow request context variables with JSF 1.1 or >.
|
||||
*
|
||||
* @author Jeremy Grelle
|
||||
*/
|
||||
public class CompositeFlowVariableResolver extends ELDelegatingVariableResolver {
|
||||
public class FlowVariableResolver extends ELDelegatingVariableResolver {
|
||||
|
||||
private static final CompositeELResolver composite = new CompositeELResolver();
|
||||
|
||||
static {
|
||||
composite.add(new RequestContextELResolver());
|
||||
composite.add(new ImplicitFlowVariableELResolver());
|
||||
composite.add(new ScopeSearchingELResolver());
|
||||
if (ClassUtils.isPresent("org.springframework.security.context.SecurityContextHolder")) {
|
||||
composite.add(new SpringSecurityELResolver());
|
||||
}
|
||||
composite.add(new SpringBeanWebFlowELResolver());
|
||||
composite.add(new ImplicitFlowVariableELResolver());
|
||||
composite.add(new ScopeSearchingELResolver());
|
||||
}
|
||||
|
||||
public CompositeFlowVariableResolver(VariableResolver nextResolver) {
|
||||
public FlowVariableResolver(VariableResolver nextResolver) {
|
||||
super(nextResolver, composite);
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.faces.expression;
|
||||
package org.springframework.faces.webflow;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -43,9 +43,9 @@ import org.springframework.webflow.expression.el.SpringSecurityELResolver;
|
||||
*
|
||||
* @author Jeremy Grelle
|
||||
*/
|
||||
public class LegacyJSFELExpressionParser extends ELExpressionParser {
|
||||
public class JsfManagedBeanAwareELExpressionParser extends ELExpressionParser {
|
||||
|
||||
public LegacyJSFELExpressionParser(ExpressionFactory expressionFactory) {
|
||||
public JsfManagedBeanAwareELExpressionParser(ExpressionFactory expressionFactory) {
|
||||
super(expressionFactory);
|
||||
putContextFactory(RequestContext.class, new RequestContextELContextFactory());
|
||||
putContextFactory(MutableAttributeMap.class, new AttributeMapELContextFactory());
|
||||
@@ -63,7 +63,7 @@ public class LegacyJSFELExpressionParser extends ELExpressionParser {
|
||||
customResolvers.add(new SpringSecurityELResolver());
|
||||
}
|
||||
customResolvers.add(new SpringBeanWebFlowELResolver(context));
|
||||
customResolvers.add(new LegacyJSFBeanResolver());
|
||||
customResolvers.add(new JsfManagedBeanResolver());
|
||||
ELResolver resolver = new DefaultELResolver(target, customResolvers);
|
||||
return new WebFlowELContext(resolver);
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.faces.expression;
|
||||
package org.springframework.faces.webflow;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
@@ -32,7 +32,7 @@ import org.springframework.webflow.execution.RequestContextHolder;
|
||||
*
|
||||
* @author Jeremy Grelle
|
||||
*/
|
||||
public class LegacyJSFBeanResolver extends ELResolver {
|
||||
public class JsfManagedBeanResolver extends ELResolver {
|
||||
|
||||
public Class getCommonPropertyType(ELContext context, Object base) {
|
||||
return Object.class;
|
||||
@@ -3,10 +3,10 @@ package org.springframework.faces.config;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.faces.expression.LegacyJSFELExpressionParser;
|
||||
import org.springframework.faces.model.converter.FacesConversionService;
|
||||
import org.springframework.faces.webflow.JSFMockHelper;
|
||||
import org.springframework.faces.webflow.JsfViewFactoryCreator;
|
||||
import org.springframework.faces.webflow.JsfManagedBeanAwareELExpressionParser;
|
||||
import org.springframework.webflow.engine.builder.support.FlowBuilderServices;
|
||||
import org.springframework.webflow.expression.el.WebFlowELExpressionParser;
|
||||
|
||||
@@ -36,7 +36,7 @@ public class FacesFlowBuilderServicesBeanDefinitionParserTests extends TestCase
|
||||
public void testEnableManagedBeans() {
|
||||
builderServices = (FlowBuilderServices) context.getBean("flowBuilderServicesLegacy");
|
||||
assertNotNull(builderServices);
|
||||
assertTrue(builderServices.getExpressionParser() instanceof LegacyJSFELExpressionParser);
|
||||
assertTrue(builderServices.getExpressionParser() instanceof JsfManagedBeanAwareELExpressionParser);
|
||||
assertTrue(builderServices.getViewFactoryCreator() instanceof JsfViewFactoryCreator);
|
||||
assertTrue(builderServices.getConversionService() instanceof FacesConversionService);
|
||||
}
|
||||
|
||||
@@ -6,17 +6,11 @@ import java.io.StringWriter;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.apache.shale.test.mock.MockResponseWriter;
|
||||
import org.easymock.EasyMock;
|
||||
import org.springframework.faces.webflow.JSFMockHelper;
|
||||
import org.springframework.webflow.context.ExternalContext;
|
||||
import org.springframework.webflow.execution.RequestContext;
|
||||
import org.springframework.webflow.execution.RequestContextHolder;
|
||||
|
||||
public class FlowResourceHelperTests extends TestCase {
|
||||
|
||||
RequestContext requestContext = (RequestContext) EasyMock.createMock(RequestContext.class);
|
||||
ExternalContext externalContext = (ExternalContext) EasyMock.createMock(ExternalContext.class);
|
||||
FlowResourceHelper resourceHelper = new FlowResourceHelper();
|
||||
ResourceHelper resourceHelper = new ResourceHelper();
|
||||
|
||||
StringWriter writer = new StringWriter();
|
||||
|
||||
@@ -24,9 +18,8 @@ public class FlowResourceHelperTests extends TestCase {
|
||||
|
||||
protected void setUp() throws Exception {
|
||||
jsf.setUp();
|
||||
// TODO figure out how to set the context path
|
||||
jsf.facesContext().setResponseWriter(new MockResponseWriter(writer, "text/html", "UTF-8"));
|
||||
EasyMock.expect(requestContext.getExternalContext()).andStubReturn(externalContext);
|
||||
RequestContextHolder.setRequestContext(requestContext);
|
||||
}
|
||||
|
||||
protected void tearDown() throws Exception {
|
||||
@@ -36,17 +29,11 @@ public class FlowResourceHelperTests extends TestCase {
|
||||
public final void testRenderScriptLink() throws IOException {
|
||||
|
||||
String scriptPath = "/dojo/dojo.js";
|
||||
String expectedUrl = "/context/resources/dojo/dojo.js";
|
||||
|
||||
EasyMock.expect(externalContext.getContextPath()).andReturn("/context");
|
||||
|
||||
EasyMock.replay(new Object[] { requestContext, externalContext });
|
||||
String expectedUrl = "null/resources/dojo/dojo.js";
|
||||
|
||||
resourceHelper.renderScriptLink(jsf.facesContext(), scriptPath);
|
||||
resourceHelper.renderScriptLink(jsf.facesContext(), scriptPath);
|
||||
|
||||
EasyMock.verify(new Object[] { externalContext });
|
||||
|
||||
String expectedOutput = "<script type=\"text/javascript\" src=\"" + expectedUrl + "\"/>";
|
||||
|
||||
assertEquals(expectedOutput, writer.toString());
|
||||
@@ -56,17 +43,11 @@ public class FlowResourceHelperTests extends TestCase {
|
||||
public final void testRenderStyleLink() throws IOException {
|
||||
|
||||
String scriptPath = "/dijit/themes/dijit.css";
|
||||
String expectedUrl = "/context/resources/dijit/themes/dijit.css";
|
||||
|
||||
EasyMock.expect(externalContext.getContextPath()).andReturn("/context");
|
||||
|
||||
EasyMock.replay(new Object[] { requestContext, externalContext });
|
||||
String expectedUrl = "null/resources/dijit/themes/dijit.css";
|
||||
|
||||
resourceHelper.renderStyleLink(jsf.facesContext(), scriptPath);
|
||||
resourceHelper.renderStyleLink(jsf.facesContext(), scriptPath);
|
||||
|
||||
EasyMock.verify(new Object[] { externalContext });
|
||||
|
||||
String expectedOutput = "<link type=\"text/css\" rel=\"stylesheet\" href=\"" + expectedUrl + "\"/>";
|
||||
|
||||
assertEquals(expectedOutput, writer.toString());
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
package org.springframework.webflow.engine.builder.xml;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.beans.factory.support.StaticListableBeanFactory;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.faces.webflow.JSFMockHelper;
|
||||
import org.springframework.faces.webflow.JsfViewFactoryCreator;
|
||||
import org.springframework.webflow.engine.Flow;
|
||||
import org.springframework.webflow.engine.builder.FlowAssembler;
|
||||
import org.springframework.webflow.test.MockFlowBuilderContext;
|
||||
|
||||
public class JsfXmlFlowBuilderTests extends TestCase {
|
||||
|
||||
private XmlFlowBuilder builder;
|
||||
private JSFMockHelper jsf = new JSFMockHelper();
|
||||
|
||||
protected void setUp() throws Exception {
|
||||
jsf.setUp();
|
||||
StaticListableBeanFactory beanFactory = new StaticListableBeanFactory();
|
||||
beanFactory.addBean("bean", new Object());
|
||||
}
|
||||
|
||||
protected void tearDown() throws Exception {
|
||||
jsf.tearDown();
|
||||
}
|
||||
|
||||
public final void testBuildJsfFlow() {
|
||||
ClassPathResource resource = new ClassPathResource("jsf-flow.xml", getClass());
|
||||
builder = new XmlFlowBuilder(resource);
|
||||
MockFlowBuilderContext builderContext = new MockFlowBuilderContext("jsf-flow");
|
||||
builderContext.getFlowBuilderServices().setViewFactoryCreator(new JsfViewFactoryCreator());
|
||||
FlowAssembler assembler = new FlowAssembler(builder, builderContext);
|
||||
Flow flow = assembler.assembleFlow();
|
||||
assertEquals("jsf-flow", flow.getId());
|
||||
assertEquals("viewState1", flow.getStartState().getId());
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<flow xmlns="http://www.springframework.org/schema/webflow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
|
||||
|
||||
<view-state id="viewState1" view="view1">
|
||||
<transition on="event1" to="endState1"/>
|
||||
</view-state>
|
||||
|
||||
<end-state id="endState1" view="endView1"/>
|
||||
|
||||
</flow>
|
||||
Reference in New Issue
Block a user