2.0.4 improvements: development mode, flow model parent registry fix, flow handler mapping, improved sample

This commit is contained in:
Keith Donald
2008-09-07 08:19:58 +00:00
parent 227b4a0276
commit e4b75c8228
34 changed files with 329 additions and 207 deletions

View File

@@ -45,15 +45,7 @@ public class FacesFlowBuilderServicesBeanDefinitionParser extends AbstractSingle
parseConversionService(element, definitionBuilder);
parseExpressionParser(element, definitionBuilder, parseEnableManagedBeans(element, definitionBuilder));
parseViewFactoryCreator(element, definitionBuilder);
}
private boolean parseEnableManagedBeans(Element element, BeanDefinitionBuilder definitionBuilder) {
String enableManagedBeans = element.getAttribute("enable-managed-beans");
if (StringUtils.hasText(enableManagedBeans)) {
return Boolean.valueOf(enableManagedBeans).booleanValue();
} else {
return false;
}
parseDevelopment(element, definitionBuilder);
}
private void parseConversionService(Element element, BeanDefinitionBuilder definitionBuilder) {
@@ -65,15 +57,6 @@ public class FacesFlowBuilderServicesBeanDefinitionParser extends AbstractSingle
}
}
private void parseViewFactoryCreator(Element element, BeanDefinitionBuilder definitionBuilder) {
String viewFactoryCreator = element.getAttribute("view-factory-creator");
if (StringUtils.hasText(viewFactoryCreator)) {
definitionBuilder.addPropertyReference("viewFactoryCreator", viewFactoryCreator);
} else {
definitionBuilder.addPropertyValue("viewFactoryCreator", new JsfViewFactoryCreator());
}
}
private void parseExpressionParser(Element element, BeanDefinitionBuilder definitionBuilder,
boolean enableManagedBeans) {
if (enableManagedBeans) {
@@ -122,4 +105,29 @@ public class FacesFlowBuilderServicesBeanDefinitionParser extends AbstractSingle
return definitionBuilder.getBeanDefinition().getPropertyValues().getPropertyValue("conversionService")
.getValue();
}
private boolean parseEnableManagedBeans(Element element, BeanDefinitionBuilder definitionBuilder) {
String enableManagedBeans = element.getAttribute("enable-managed-beans");
if (StringUtils.hasText(enableManagedBeans)) {
return Boolean.valueOf(enableManagedBeans).booleanValue();
} else {
return false;
}
}
private void parseViewFactoryCreator(Element element, BeanDefinitionBuilder definitionBuilder) {
String viewFactoryCreator = element.getAttribute("view-factory-creator");
if (StringUtils.hasText(viewFactoryCreator)) {
definitionBuilder.addPropertyReference("viewFactoryCreator", viewFactoryCreator);
} else {
definitionBuilder.addPropertyValue("viewFactoryCreator", new JsfViewFactoryCreator());
}
}
private void parseDevelopment(Element element, BeanDefinitionBuilder definitionBuilder) {
String development = element.getAttribute("development");
if (StringUtils.hasText(development)) {
definitionBuilder.addPropertyValue("development", development);
}
}
}

View File

@@ -55,6 +55,16 @@ The custom ViewFactoryCreator implementation to use produce ViewFactories capabl
<![CDATA[
When this attribute is set to true, a special EL expression parser will be enabled that allows access to JSF-managed beans
from EL expressions in flow definitions.
]]>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="development" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
<![CDATA[
Puts all flows in development mode.
When set to true, changes to a flow definition will be auto-detected and will result in a flow refresh.
]]>
</xsd:documentation>
</xsd:annotation>

View File

@@ -43,6 +43,7 @@ public class FacesFlowBuilderServicesBeanDefinitionParserTests extends TestCase
assertTrue(builderServices.getExpressionParser() instanceof WebFlowELExpressionParser);
assertTrue(builderServices.getViewFactoryCreator() instanceof JsfViewFactoryCreator);
assertTrue(builderServices.getConversionService() instanceof FacesConversionService);
assertFalse(builderServices.getDevelopment());
}
public void testEnableManagedBeans() {
@@ -51,6 +52,7 @@ public class FacesFlowBuilderServicesBeanDefinitionParserTests extends TestCase
assertTrue(builderServices.getExpressionParser() instanceof JsfManagedBeanAwareELExpressionParser);
assertTrue(builderServices.getViewFactoryCreator() instanceof JsfViewFactoryCreator);
assertTrue(builderServices.getConversionService() instanceof FacesConversionService);
assertFalse(builderServices.getDevelopment());
}
public void testFlowBuilderServicesAllCustomized() {
@@ -59,6 +61,7 @@ public class FacesFlowBuilderServicesBeanDefinitionParserTests extends TestCase
assertTrue(builderServices.getExpressionParser() instanceof WebFlowELExpressionParser);
assertTrue(builderServices.getViewFactoryCreator() instanceof TestViewFactoryCreator);
assertTrue(builderServices.getConversionService() instanceof TestConversionService);
assertTrue(builderServices.getDevelopment());
}
public void testFlowBuilderServicesConversionServiceCustomized() {
@@ -68,6 +71,7 @@ public class FacesFlowBuilderServicesBeanDefinitionParserTests extends TestCase
assertTrue(builderServices.getExpressionParser() instanceof WebFlowELExpressionParser);
assertTrue(((WebFlowELExpressionParser) builderServices.getExpressionParser()).getConversionService() instanceof TestConversionService);
assertTrue(builderServices.getViewFactoryCreator() instanceof JsfViewFactoryCreator);
assertFalse(builderServices.getDevelopment());
}
public static class TestViewFactoryCreator implements ViewFactoryCreator {

View File

@@ -15,7 +15,7 @@
<faces:flow-builder-services id="flowBuilderServicesAllCustom"
expression-parser="customExpressionParser"
view-factory-creator="customViewFactoryCreator"
conversion-service="customConversionService"/>
conversion-service="customConversionService" development="true" />
<faces:flow-builder-services id="flowBuilderServicesConversionServiceCustom"
conversion-service="customConversionService"/>