You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2007/05/02 20:29:15 UTC

[jira] Updated: (CXF-623) spring bean configuration should support simple wildcards

     [ https://issues.apache.org/jira/browse/CXF-623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully updated CXF-623:
---------------------------

    Attachment: patch-cxf-623.r534554.patch

Implementation of simple wildcarding for bean identifiers, config for multiplex address changes like so:

from:
     <bean name="{http://cxf.apache.org/factory_pattern}NumberPort.http-destination" 
abstract="true">
       <property name="multiplexWithAddress" value="true"/>
    </bean>

to:
    <bean name="*" abstract="true" class="JettyHTTPDestination">
       <property name="multiplexWithAddress" value="true"/>
     </bean>

Detail:
wildcards must start with * and can contain a only one *. The matching is based on simple endswith of the bean id.
The class is the SimpleName of the impl class, this makes writing easier/shorter with the possible downside of needing a more explicit wildcard in the event of duplicate class names (becasue of the missing package). The class is a must, otherwise a single wildcard would be checked for every configured bean which would slow down every configured object creation.

I could make the className optional but I think it helps to localise the wildcarding. The downside is that it exposes implementation detail in the config which is bad imho.

Limitation:
only a single wildcard is allowed per class, the first wins, the rest are logged as ignored with a warning. Should this be an error.

I have not gone down the road of idenitfying ids of the form {ns}port and allowing {*}port.*. This can be added later if needed.


> spring bean configuration should support simple wildcards
> ---------------------------------------------------------
>
>                 Key: CXF-623
>                 URL: https://issues.apache.org/jira/browse/CXF-623
>             Project: CXF
>          Issue Type: Improvement
>          Components: Configuration
>    Affects Versions: 2.0-RC
>            Reporter: Gary Tully
>         Attachments: patch-cxf-623.r534554.patch
>
>
> to apply configuration to a http destination I need to provide the following:
>     <bean name="{http://www.test.com}MyPort.http-destination" abstract="true">
>       <property name="multiplexWithAddress" value="true"/>
>     </bean> 
> which matches a single port by name.
> I would like to be able to provide
>     <bean name="*.http-destination" abstract="true">
>       <property name="multiplexWithAddress" value="true"/>
>     </bean> 
> to indicate to apply the config to all http-destinations. To make this work in practice a class attribute is required, otherwise any wildcard would be matched against all beanNames. The package is probably not required in the className attribute.
>     <bean name="*.http-destination" abstract="true" class="HttpDestination">
>       <property name="multiplexWithAddress" value="true"/>
>     </bean> 
> To get Spring to merge wildcard and beanName specific config may be a chalenge but it would be great. Possibly it is a case of configuring once with the wildcard match and once with the specific name.

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