You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Andy Schwartz (JIRA)" <de...@myfaces.apache.org> on 2009/05/04 22:45:30 UTC

[jira] Commented: (TRINIDAD-1466) Support xinclude'd property metadata

    [ 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.