You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by de...@apache.org on 2017/09/17 18:05:45 UTC
[myfaces-trinidad-maven] 08/17: TRINIDAD-1466 - Support xinclude'd
property metadata
This is an automated email from the ASF dual-hosted git repository.
deki pushed a commit to branch 1.2.10.1-branch
in repository https://gitbox.apache.org/repos/asf/myfaces-trinidad-maven.git
commit 780369fe027895d52da2878165e023a0efa97d69
Author: Matthias Wessendorf <ma...@apache.org>
AuthorDate: Tue May 5 06:39:32 2009 +0000
TRINIDAD-1466 - Support xinclude'd property metadata
Thanks for the patch, Andy Schwartz
---
.../plugin/faces/parse/FacesConfigParser.java | 73 ++++++++++++++++------
1 file changed, 55 insertions(+), 18 deletions(-)
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigParser.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigParser.java
index 404a484..9e05b61 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigParser.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigParser.java
@@ -109,13 +109,7 @@ public class FacesConfigParser
// faces-config/component/property
digester.addObjectCreate("faces-config/component/property", PropertyBean.class);
- digester.addBeanPropertySetter("faces-config/component/property/property-name",
- "propertyName");
- digester.addBeanPropertySetter("faces-config/component/property/property-class",
- "propertyClass");
- digester.addBeanPropertySetter("faces-config/component/property/description");
- digester.addBeanPropertySetter("faces-config/component/property/default-value",
- "defaultValue");
+ addComponentPropertyDigesterRules(digester);
digester.addSetNext("faces-config/component/property", "addProperty",
PropertyBean.class.getName());
@@ -205,6 +199,37 @@ public class FacesConfigParser
digester.addSetNext("faces-config/component/component-extension/event", "addEvent",
EventRefBean.class.getName());
+ // jsr-276 metadata rules
+ digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee/faces/design-time-metadata");
+ digester.addBeanPropertySetter("faces-config/component/property/property-extension/property-metadata/required");
+ digester.addBeanPropertySetter("faces-config/component/property/property-extension/property-metadata/value-expression", "valueExpression");
+
+ // XInclude rules
+ digester.setRuleNamespaceURI(XIncludeFilter.XINCLUDE_NAMESPACE);
+ digester.addFactoryCreate("faces-config/component/include",
+ ComponentIncludeFactory.class);
+ digester.addFactoryCreate("faces-config/component/property/include",
+ ComponentPropertyIncludeFactory.class);
+ }
+
+ // Add component property-related digster rules
+ protected static void addComponentPropertyDigesterRules(Digester digester)
+ {
+ String oldNamespace = digester.getRuleNamespaceURI();
+
+ digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee");
+
+ digester.addBeanPropertySetter("faces-config/component/property/property-name",
+ "propertyName");
+ digester.addBeanPropertySetter("faces-config/component/property/property-class",
+ "propertyClass");
+ digester.addBeanPropertySetter("faces-config/component/property/description");
+ digester.addBeanPropertySetter("faces-config/component/property/default-value",
+ "defaultValue");
+
+ // Maven Faces Plugin
+ digester.setRuleNamespaceURI("http://myfaces.apache.org/maven-faces-plugin");
+
// faces-config/component/property/property-extension
digester.addBeanPropertySetter("faces-config/component/property/property-extension/state-holder",
"stateHolder");
@@ -252,15 +277,7 @@ public class FacesConfigParser
digester.addBeanPropertySetter("faces-config/component/property/property-extension/property-metadata/deprecated");
digester.addCallMethod("faces-config/component/property/property-extension/property-metadata/no-op", "makeNoOp");
- // jsr-276 metadata rules
- digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee/faces/design-time-metadata");
- digester.addBeanPropertySetter("faces-config/component/property/property-extension/property-metadata/required");
- digester.addBeanPropertySetter("faces-config/component/property/property-extension/property-metadata/value-expression", "valueExpression");
-
- // XInclude rules
- digester.setRuleNamespaceURI(XIncludeFilter.XINCLUDE_NAMESPACE);
- digester.addFactoryCreate("faces-config/component/include",
- ComponentIncludeFactory.class);
+ digester.setRuleNamespaceURI(oldNamespace);
}
protected static void addConverterDigesterRules(Digester digester)
@@ -456,7 +473,8 @@ public class FacesConfigParser
return digester;
}
- static public class ComponentIncludeFactory extends AbstractObjectCreationFactory
+ // Base class for include factories
+ abstract static public class AbstractIncludeFactory extends AbstractObjectCreationFactory
{
public Object createObject(
Attributes attributes) throws Exception
@@ -469,7 +487,7 @@ public class FacesConfigParser
URL included = new URL(master, href);
Digester includedDigester = createEmptyDigester();
- addComponentDigesterRules(includedDigester, false);
+ addDigesterRules(includedDigester);
includedDigester.push(included);
includedDigester.push(digester.peek());
@@ -481,5 +499,24 @@ public class FacesConfigParser
// We don't really want the included object - but return it anyway
return included;
}
+
+ abstract public void addDigesterRules(Digester includedDigester);
}
+
+ // Factory for component includes
+ static public class ComponentIncludeFactory extends AbstractIncludeFactory
+ {
+ public void addDigesterRules(Digester digester) {
+ addComponentDigesterRules(digester, false);
+ }
+ }
+
+ // Factory for component property includes
+ static public class ComponentPropertyIncludeFactory extends AbstractIncludeFactory
+ {
+ public void addDigesterRules(Digester digester) {
+ addComponentPropertyDigesterRules(digester);
+ }
+ }
+
}
--
To stop receiving notification emails like this one, please contact
"commits@myfaces.apache.org" <co...@myfaces.apache.org>.