<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    Recent changes on CXF integration
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/alessio.soldano%40jboss.com">Alessio Soldano</a> in <i>JBoss Web Services Development</i> - <a href="http://community.jboss.org/message/535401#535401">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Folks,</p><p><span>due to the requirements for </span><a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBWS-2971" target="_blank">https://jira.jboss.org/jira/browse/JBWS-2971</a><span> , I had to review a bit the current cxf stack integration.</span></p><p>Basically, we used to depend on CXFServlet triggering the Bus creation and have the servlet's loadBus method overwritten to also load our additional beans from jboss-cxf.xml.</p><p><span>This recently turned up to be a problem as the CXF Bus creation needs to happen at deploy time for some kind of operation to be possible; JBWS-2971 is an example, but more generally, depending on a servlet only for the bus creation is wrong (think about JMS endpoints, </span><a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBWS-2987" target="_blank">https://jira.jboss.org/jira/browse/JBWS-2987</a><span>).</span></p><p><span>So, first of all I added a deployment aspect in the jbws-cxf stack for eagerly parsing the cxf.xml and our (provided or generated) jboss-cxf.xml into a Bus during deployment (</span><a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBWS-2974" target="_blank">https://jira.jboss.org/jira/browse/JBWS-2974</a><span>). The Bus is then attached to the endpoint and the CXFServletExt checks it's already available before trying creating it.</span></p><p><span>An interesting question now is whether we want this to be the default behaviour or not. Currently there's a system property for choosing when to load the bus, the default is lazy behaviour (load in servlet). Anyway, a decision on this might also be related to how we properly review and fix the jms integration with cxf stack (</span><a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBWS-2987" target="_blank">https://jira.jboss.org/jira/browse/JBWS-2987</a><span>).</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Besides this, it's probably interesting to note that for fixing JBWS-2971 I started using another integration hook, ie. the Spring NamespaceHandlerSupport configuration. As you know, we're generating the jboss-cxf.xml file at deploy time and basically leveraging the spring configuration of CXF (in order to allow both stack agnostic deployments and cxf specific deployments to work seamlessly).</p><p>CXF has spring.handler configuration files that map namespaces for elements in the spring xml to default beans. We're now using a custom mapping for the jaxws.endpoint elements, which in the end allows us to overwrite the CXF org.apache.cxf.jaxws.EndpointImpl giving us control over the endpoint start/stop/publish/etc. while still delegating to the CXF one for the core processing.</p><p>Generally speaking, customizing the spring namespace handler configuration for loading different bean parsers is a powerful integration hook, to be considered in addition to the already used setup of CXF Configurer in the Bus.</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/535401#535401">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Web Services Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2047">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>