You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Gyorgy Orban (JIRA)" <ji...@apache.org> on 2007/10/05 10:27:50 UTC

[jira] Created: (CXF-1090) SpringBeanMap class modification for better extensibility

SpringBeanMap class modification for better extensibility
---------------------------------------------------------

                 Key: CXF-1090
                 URL: https://issues.apache.org/jira/browse/CXF-1090
             Project: CXF
          Issue Type: Improvement
          Components: Configuration
            Reporter: Gyorgy Orban


SpringBeanMap in method processBeans(ApplicationContext beanFactory) goes through the beans of a certain type and retrieves all the items from the property designated by idsProperty, and  injects these to itself as keys with the bean as the value associated with it.  It would be nice if the for loop went in reverse order. This way user spring configs would be able to override classes in cxf,  e.g. if I extend the class org.apache.cxf.binding.soap.SoapBindingFactory and put it in a config like this:

    <bean class="msjava.cxfutils.binding.MSSoapBindingFactory" >
        <property name="activationNamespaces">
            <set>
                <value>http://schemas.xmlsoap.org/soap/</value>
                <value>http://schemas.xmlsoap.org/wsdl/soap/</value>
                <value>http://schemas.xmlsoap.org/wsdl/soap12/</value>
                <value>http://www.w3.org/2003/05/soap/bindings/HTTP/</value>
                <value>http://schemas.xmlsoap.org/wsdl/soap/http</value>
            </set>
        </property>
        <property name="bus" ref="cxf"/>
    </bean>

then, for now, this bean is processed before the original SoapBindingFactory, so my items in activationNamespaces will be overridden by the original items. This way I can't replace the original class with mine (only programmatically).

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


[jira] Commented: (CXF-1090) SpringBeanMap class modification for better extensibility

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12532674 ] 

Daniel Kulp commented on CXF-1090:
----------------------------------


Is there any chance you could build trunk and give that a try?

I made VERY significant changes in the SpringBeanMap thing earlier this week.    One of the things that was done was to get the lazy-init stuff actually working.   The old SpringBeanMap stuff ended up resolving all the beens immediately.   With the new stuff, you could set lazy-init="false" to force yours to load ASAP.   In your subclass, you can then have a @PostContruct method that registers directly with the BindingManager from the bus.   If you register explicitely, it wipes out the list of stuff from the BeanMap and uses yours.   Thus, the "base" one wouldn't load.



> SpringBeanMap class modification for better extensibility
> ---------------------------------------------------------
>
>                 Key: CXF-1090
>                 URL: https://issues.apache.org/jira/browse/CXF-1090
>             Project: CXF
>          Issue Type: Improvement
>          Components: Configuration
>            Reporter: Gyorgy Orban
>            Assignee: Daniel Kulp
>
> SpringBeanMap in method processBeans(ApplicationContext beanFactory) goes through the beans of a certain type and retrieves all the items from the property designated by idsProperty, and  injects these to itself as keys with the bean as the value associated with it.  It would be nice if the for loop went in reverse order. This way user spring configs would be able to override classes in cxf,  e.g. if I extend the class org.apache.cxf.binding.soap.SoapBindingFactory and put it in a config like this:
>     <bean class="msjava.cxfutils.binding.MSSoapBindingFactory" >
>         <property name="activationNamespaces">
>             <set>
>                 <value>http://schemas.xmlsoap.org/soap/</value>
>                 <value>http://schemas.xmlsoap.org/wsdl/soap/</value>
>                 <value>http://schemas.xmlsoap.org/wsdl/soap12/</value>
>                 <value>http://www.w3.org/2003/05/soap/bindings/HTTP/</value>
>                 <value>http://schemas.xmlsoap.org/wsdl/soap/http</value>
>             </set>
>         </property>
>         <property name="bus" ref="cxf"/>
>     </bean>
> then, for now, this bean is processed before the original SoapBindingFactory, so my items in activationNamespaces will be overridden by the original items. This way I can't replace the original class with mine (only programmatically).

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


[jira] Assigned: (CXF-1090) SpringBeanMap class modification for better extensibility

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp reassigned CXF-1090:
--------------------------------

    Assignee: Daniel Kulp

> SpringBeanMap class modification for better extensibility
> ---------------------------------------------------------
>
>                 Key: CXF-1090
>                 URL: https://issues.apache.org/jira/browse/CXF-1090
>             Project: CXF
>          Issue Type: Improvement
>          Components: Configuration
>            Reporter: Gyorgy Orban
>            Assignee: Daniel Kulp
>
> SpringBeanMap in method processBeans(ApplicationContext beanFactory) goes through the beans of a certain type and retrieves all the items from the property designated by idsProperty, and  injects these to itself as keys with the bean as the value associated with it.  It would be nice if the for loop went in reverse order. This way user spring configs would be able to override classes in cxf,  e.g. if I extend the class org.apache.cxf.binding.soap.SoapBindingFactory and put it in a config like this:
>     <bean class="msjava.cxfutils.binding.MSSoapBindingFactory" >
>         <property name="activationNamespaces">
>             <set>
>                 <value>http://schemas.xmlsoap.org/soap/</value>
>                 <value>http://schemas.xmlsoap.org/wsdl/soap/</value>
>                 <value>http://schemas.xmlsoap.org/wsdl/soap12/</value>
>                 <value>http://www.w3.org/2003/05/soap/bindings/HTTP/</value>
>                 <value>http://schemas.xmlsoap.org/wsdl/soap/http</value>
>             </set>
>         </property>
>         <property name="bus" ref="cxf"/>
>     </bean>
> then, for now, this bean is processed before the original SoapBindingFactory, so my items in activationNamespaces will be overridden by the original items. This way I can't replace the original class with mine (only programmatically).

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