You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Willem Jiang (JIRA)" <ji...@apache.org> on 2010/01/22 04:00:43 UTC

[jira] Created: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Split camel transport for cxf out of camel-cxf module
-----------------------------------------------------

                 Key: CAMEL-2389
                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
             Project: Apache Camel
          Issue Type: Task
            Reporter: Willem Jiang
            Assignee: Willem Jiang
             Fix For: Future


As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Commented: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Willem Jiang (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57060#action_57060 ] 

Willem Jiang commented on CAMEL-2389:
-------------------------------------

Since we don't change the code of camel transport, I think user to resolve this change issue by add a new dependency of cxf-camel-transport module.
Add a release note for it will be enough.

I'm planing to do it  after we finish the Camel 2.2 release.


> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Commented: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Sergey Beryozkin (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57061#action_57061 ] 

Sergey Beryozkin commented on CAMEL-2389:
-----------------------------------------

Willem, just FYI, one of the system tests depends on camel-cxf transport being in camel-cxf (camelcxf-smx-cxf) so you will probably need to update SMX camel-cxf feature to include the new camel  transport module as a result, once SMX features gets updated to depend on 2.2

> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Updated: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Christian Schneider (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Schneider updated CAMEL-2389:
---------------------------------------

    Attachment: camel-cxf-2010-01-22.patch

I just added a patch to refactor camel-cxf so that transport and transport.spring do not depend on any other packages from camel-cxf. So it should be easy to move them to separate component later. All tests in camel-cxf still work. I think you can apply this patch even before version 2.2. What do you think?



> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>         Attachments: camel-cxf-2010-01-22.patch
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Commented: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Christian Schneider (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57080#action_57080 ] 

Christian Schneider commented on CAMEL-2389:
--------------------------------------------

Hi Willem,

after thinking a little more about cxfbean it is probably not so bad if only for some users. If I understand it correctly it tries to figure out which frontend to use by looking at the bean to proxy and then wires the frontend to the transport.

I think it could be implemented better though perhaps with some help from the cxf project. The one place in cxfbean that is problematic is CxfBeanEndpoint.createServer. There JaxWsServerFactoryBean orJAXRSServerFactoryBean are explicitly created. Perhaps this could be done in cxf. Cxf could offer an API function to create a frontend for a bean by inspecting it. The implementation could go through the loaded frontends and decide which to use. So the camel part only needs to call a well known API function of CXF. This could be a solution for Camel 3.0.

Btw. my second patch still seems to have some flaws. I found that some CxfConstants also need to be moved. Interestingly structure101 did not see this. I guess because the constants are defined in an interface. Honestly I must say I also never saw constants being defined in this way before ;-)


> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>         Attachments: camel-cxf-2010-01-22.patch, camel-cxf-2010-01-23-with base.patch, camel-cxf-after-patch2.png, camel-cxf-after.png, camel-cxf-before.png
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Commented: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Christian Schneider (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57076#action_57076 ] 

Christian Schneider commented on CAMEL-2389:
--------------------------------------------

How about creating a new component cxf-camel-transport or some similar name. We move the packages transport and transport.spring to the new component. Then we add a dependency from camel-cxf to the new component. 

So people who use camel-cxf like before simply include camel-cxf and have all features. In fact I think they will not even notice somthing has changed. Someone who only wants the transport will only depend on the new component and have much less dependencies.

If you want to completely remove the dependency between camel-cxf and the new component you probably need a common base lib that both depend on. Currently CxfHeaderFilterStrategy, CxfHeaderHelper, SoapMessageHeaderFitler, MessageFilter and CXFSoapBinding seem to be the common classes needed by transport and cxf packages. I think it makes sense to already have a package for these classes. I will attach a new patch that implements this.

I first thought we could also move the cxfbean package to the new component project. In structure 101 it seems to depend only on transport. This not possible though as it directly references JaxWsServerFactoryBean and JAXRSServerFactoryBean. Honestly I think we should completely remove the cxfbean component and package in the long run. In my opinion it has practically no advantages compared to the camel transport and it creates very ugly dependencies that are better handled by spring. I will also ask this on the mailing list and try to get some opinions. 


> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>         Attachments: camel-cxf-2010-01-22.patch, camel-cxf-after.png, camel-cxf-before.png
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Updated: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Christian Schneider (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Schneider updated CAMEL-2389:
---------------------------------------

    Attachment: camel-cxf-after.png

> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>         Attachments: camel-cxf-2010-01-22.patch, camel-cxf-after.png
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Commented: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Willem Jiang (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57072#action_57072 ] 

Willem Jiang commented on CAMEL-2389:
-------------------------------------

Hi Christian

I just checked your change, you moved the CxfHeaderFilterStrategy into the transport package. 
In this way, if we split the cxf-camel-transport out of camel-cxf module, we still need to let the camel-cxf depends on cxf-camel-transport.

I think we need a big refactoring on current camel-transport to decouple this dependencies, 
I will do it next week, but I still want to commit it after camel 2.2 release, as I don't want this change hold the release process of camel 2.2 which will come out in few week.



> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>         Attachments: camel-cxf-2010-01-22.patch, camel-cxf-after.png, camel-cxf-before.png
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Updated: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Christian Schneider (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Schneider updated CAMEL-2389:
---------------------------------------

    Attachment: camel-cxf-before.png

> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>         Attachments: camel-cxf-2010-01-22.patch, camel-cxf-after.png, camel-cxf-before.png
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Commented: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Christian Schneider (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57054#action_57054 ] 

Christian Schneider commented on CAMEL-2389:
--------------------------------------------

I propose to already create the new module for the camel transport for cxf and leave the transport code also in the camel-cxf component but mark it as deprecated with a hint to the new component. So people can switch gradually.

> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Updated: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Christian Schneider (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Schneider updated CAMEL-2389:
---------------------------------------

    Attachment: camel-cxf-after-patch2.png
                camel-cxf-2010-01-23-with base.patch

Added new patch introducing a base package for stuff used by transport and other packages.


> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>         Attachments: camel-cxf-2010-01-22.patch, camel-cxf-2010-01-23-with base.patch, camel-cxf-after-patch2.png, camel-cxf-after.png, camel-cxf-before.png
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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


[jira] Commented: (CAMEL-2389) Split camel transport for cxf out of camel-cxf module

Posted by "Willem Jiang (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-2389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57078#action_57078 ] 

Willem Jiang commented on CAMEL-2389:
-------------------------------------

Hi Christian,

If we treat the cxf-transport-camel is a way to deploy the camel context into CXF container,  the cxfbean is a way to deploy CXF service impl into the Came.
Compare the cxf-transport-camel, the cxfbean provides a easy way that user don't need to touch the CXF transport configuration for the camel user who don't familiar with the CXF transport configuration. 

I just take a look at cxfbean package, found it dependents on the CamelDestination which is a part of camel cxf transport.
My plan is removing the CXF soap component first as we barely use it, then we can clean up the cxf-transport-camel a litter bit.
But consider the backward compatible,  we may do it in sandbox first and release it in Camel 3.0.



> Split camel transport for cxf out of camel-cxf module
> -----------------------------------------------------
>
>                 Key: CAMEL-2389
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2389
>             Project: Apache Camel
>          Issue Type: Task
>            Reporter: Willem Jiang
>            Assignee: Willem Jiang
>             Fix For: Future
>
>         Attachments: camel-cxf-2010-01-22.patch, camel-cxf-2010-01-23-with base.patch, camel-cxf-after-patch2.png, camel-cxf-after.png, camel-cxf-before.png
>
>
> As camel-transport for cxf independents from the cxf-rs and cxf component, we need to put it into other module to avoid unnecessary third party dependency.

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