[ 
https://issues.apache.org/jira/browse/TRINIDAD-1466?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12705734#action_12705734
 ] 

Andy Schwartz commented on TRINIDAD-1466:
-----------------------------------------

Note: the patch file was created off of trinidad-maven 1.2.10.1, rev 771321.

> Support xinclude'd property metadata
> ------------------------------------
>
>                 Key: TRINIDAD-1466
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1466
>             Project: MyFaces Trinidad
>          Issue Type: Improvement
>          Components: Build
>            Reporter: Andy Schwartz
>            Priority: Minor
>         Attachments: TRINIDAD-1466.patch
>
>
> Currently the Trinidad plugins support the use of xinclude to pull in 
> component metadata.  For example, looking at CoreCommandButton.xml, I see:
> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee";
>               xmlns:tr="http://myfaces.apache.org/trinidad";
>               xmlns:xi="http://www.w3.org/2001/XInclude";
>               xmlns:mfp="http://myfaces.apache.org/maven-faces-plugin";
>               xmlns:xhtml="http://www.w3.org/1999/xhtml";>
>   <component>
>      <!-- Snip -->
>     <xi:include href="includes/CommonAttrs.xml" 
> xpointer="/faces-config/component/*"/>
>     <xi:include href="includes/CoreJSEvents.xml" 
> xpointer="/faces-config/component/*"/>
>     <xi:include href="includes/LaunchSource.xml" 
> xpointer="/faces-config/component/*"/>
>     <!-- Snip -->
> </faces-config.xml>
> This pulls in component properties from various external sources, making it 
> possible to share component metadata across components.
> I have a case where I would like to include property-specific metadata, eg:
> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee";
>               xmlns:tr="http://myfaces.apache.org/trinidad";
>               xmlns:xi="http://www.w3.org/2001/XInclude";
>               xmlns:mfp="http://myfaces.apache.org/maven-faces-plugin";
>               xmlns:xhtml="http://www.w3.org/1999/xhtml";>
>   <component>
>     <property>
>       <property-name>Foo</property-name>
>       <xi:include href="includes/CommonFoo.xml" 
> xpointer="/faces-config/component/property/*"/>
>     </property>
> </faces-config.xml>
> The goal is to define property metadata once and then include this into 
> various property definitions that share common metadata.
> However, this does not currently work.  The issue is that FacesConfigParser. 
> addComponentDigesterRules() only provides support for includes that appear 
> within faces-config/component elements:
>     // XInclude rules
>     digester.setRuleNamespaceURI(XIncludeFilter.XINCLUDE_NAMESPACE);
>     digester.addFactoryCreate("faces-config/component/include",
>                               ComponentIncludeFactory.class);
> Includes underneath faces-config/component/property elements are ignored.  
> This prevents sharing of metadata across property definitions.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to