Spring integration using @Configuration @ComponentScan annotations
Hi, in order to integrate CXF with Spring developers need to go through an XML file, right (i.e. http://cxf.apache.org/docs/writing-a-service-with-spring.html)? Is it possible out-of-the box to integrate CXF with Spring using annotation-driven context configuration? I am talking about @org.springframework.context.annotation.Configuration and @org.springframework.context.annotation.ComponentScan annotations (http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Configuration.html). Are they supported by CXF integration? The goal is to avoid any XML configuration. If it's not part of CXF I may help because I just implemented such integration (few lines of code, really), and I find it pretty useful. Please let me know what you think? I wanted to open a JIRA issue straight away but I prefer to ask you before. Cheers, Przemyslaw Bielicki -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561.html Sent from the cxf-dev mailing list archive at Nabble.com.
Re: Spring integration using @Configuration @ComponentScan annotations
We have some factory classes but they are often not as convenient to use as the namespaces. In any case it would be interesting to see what you did. Can you open a jira and attach your code as a patch? If it is just a few lines you can also just paste the code or point to a github repo or similar. Christian On 09.12.2013 15:05, pbielicki wrote: Hi, in order to integrate CXF with Spring developers need to go through an XML file, right (i.e. http://cxf.apache.org/docs/writing-a-service-with-spring.html)? Is it possible out-of-the box to integrate CXF with Spring using annotation-driven context configuration? I am talking about @org.springframework.context.annotation.Configuration and @org.springframework.context.annotation.ComponentScan annotations (http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Configuration.html). Are they supported by CXF integration? The goal is to avoid any XML configuration. If it's not part of CXF I may help because I just implemented such integration (few lines of code, really), and I find it pretty useful. Please let me know what you think? I wanted to open a JIRA issue straight away but I prefer to ask you before. Cheers, Przemyslaw Bielicki -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561.html Sent from the cxf-dev mailing list archive at Nabble.com. -- Christian Schneider http://www.liquid-reality.de Open Source Architect http://www.talend.com
Re: Spring integration using @Configuration @ComponentScan annotations
sure, no problem - I will file a jira issue and attach my changes as the code is not public On Mon, Dec 9, 2013 at 3:14 PM, cschneider [via CXF] ml-node+s547215n5737562...@n5.nabble.com wrote: We have some factory classes but they are often not as convenient to use as the namespaces. In any case it would be interesting to see what you did. Can you open a jira and attach your code as a patch? If it is just a few lines you can also just paste the code or point to a github repo or similar. Christian On 09.12.2013 15:05, pbielicki wrote: Hi, in order to integrate CXF with Spring developers need to go through an XML file, right (i.e. http://cxf.apache.org/docs/writing-a-service-with-spring.html)? Is it possible out-of-the box to integrate CXF with Spring using annotation-driven context configuration? I am talking about @org.springframework.context.annotation.Configuration and @org.springframework.context.annotation.ComponentScan annotations ( http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Configuration.html). Are they supported by CXF integration? The goal is to avoid any XML configuration. If it's not part of CXF I may help because I just implemented such integration (few lines of code, really), and I find it pretty useful. Please let me know what you think? I wanted to open a JIRA issue straight away but I prefer to ask you before. Cheers, Przemyslaw Bielicki -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561.html Sent from the cxf-dev mailing list archive at Nabble.com. -- Christian Schneider http://www.liquid-reality.de Open Source Architect http://www.talend.com -- If you reply to this email, your message will be added to the discussion below: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561p5737562.html To unsubscribe from Spring integration using @Configuration @ComponentScan annotations, click herehttp://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=5737561code=cGJpZWxpY2tpQGdtYWlsLmNvbXw1NzM3NTYxfC0xODU3NDYzNDAz . NAMLhttp://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561p5737563.html Sent from the cxf-dev mailing list archive at Nabble.com.
Re: Spring integration using @Configuration @ComponentScan annotations
sure, no problem - I will file a jira issue and attach my changes as the code is not public On Mon, Dec 9, 2013 at 3:14 PM, cschneider [via CXF] ml-node+s547215n5737562...@n5.nabble.com wrote: We have some factory classes but they are often not as convenient to use as the namespaces. In any case it would be interesting to see what you did. Can you open a jira and attach your code as a patch? If it is just a few lines you can also just paste the code or point to a github repo or similar. Christian On 09.12.2013 15:05, pbielicki wrote: Hi, in order to integrate CXF with Spring developers need to go through an XML file, right (i.e. http://cxf.apache.org/docs/writing-a-service-with-spring.html)? Is it possible out-of-the box to integrate CXF with Spring using annotation-driven context configuration? I am talking about @org.springframework.context.annotation.Configuration and @org.springframework.context.annotation.ComponentScan annotations ( http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Configuration.html). Are they supported by CXF integration? The goal is to avoid any XML configuration. If it's not part of CXF I may help because I just implemented such integration (few lines of code, really), and I find it pretty useful. Please let me know what you think? I wanted to open a JIRA issue straight away but I prefer to ask you before. Cheers, Przemyslaw Bielicki -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561.html Sent from the cxf-dev mailing list archive at Nabble.com. -- Christian Schneider http://www.liquid-reality.de Open Source Architect http://www.talend.com -- If you reply to this email, your message will be added to the discussion below: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561p5737562.html To unsubscribe from Spring integration using @Configuration @ComponentScan annotations, click herehttp://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=5737561code=cGJpZWxpY2tpQGdtYWlsLmNvbXw1NzM3NTYxfC0xODU3NDYzNDAz . NAMLhttp://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
Re: Spring integration using @Configuration @ComponentScan annotations
Hi I added a prototype to the JAX-RS frontend, http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java (based on the code fragment from Vladimir Kulev) I think the similar thing can be done for all frontends indeed We probably should get https://issues.apache.org/jira/browse/CXF-5439 fixed first Sergey On 09/12/13 14:13, Christian Schneider wrote: We have some factory classes but they are often not as convenient to use as the namespaces. In any case it would be interesting to see what you did. Can you open a jira and attach your code as a patch? If it is just a few lines you can also just paste the code or point to a github repo or similar. Christian On 09.12.2013 15:05, pbielicki wrote: Hi, in order to integrate CXF with Spring developers need to go through an XML file, right (i.e. http://cxf.apache.org/docs/writing-a-service-with-spring.html)? Is it possible out-of-the box to integrate CXF with Spring using annotation-driven context configuration? I am talking about @org.springframework.context.annotation.Configuration and @org.springframework.context.annotation.ComponentScan annotations (http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Configuration.html). Are they supported by CXF integration? The goal is to avoid any XML configuration. If it's not part of CXF I may help because I just implemented such integration (few lines of code, really), and I find it pretty useful. Please let me know what you think? I wanted to open a JIRA issue straight away but I prefer to ask you before. Cheers, Przemyslaw Bielicki -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561.html Sent from the cxf-dev mailing list archive at Nabble.com. -- Sergey Beryozkin Talend Community Coders http://coders.talend.com/ Blog: http://sberyozkin.blogspot.com
Re: Spring integration using @Configuration @ComponentScan annotations
Hi Sergey, I'm not sure CXF-5439 https://issues.apache.org/jira/browse/CXF-5439 is a really great idea. For me all CXF components should be just annotated with @javax.inject.Named and then injected using @javax.inject.Inject or @javax.annotation.Resource. I prefer to use a well established standards instead of multiplying annotations - but maybe I am not aware of some limitations, issue you mentioned could solve. Anyway, my solution uses only javax.inject annotations and it works pretty well. I will file the jira issue soon (probably not today), and it should be clear then. Cheers, Przemyslaw On Mon, Dec 9, 2013 at 3:20 PM, Sergey Beryozkin [via CXF] ml-node+s547215n5737565...@n5.nabble.com wrote: Hi I added a prototype to the JAX-RS frontend, http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java (based on the code fragment from Vladimir Kulev) I think the similar thing can be done for all frontends indeed We probably should get https://issues.apache.org/jira/browse/CXF-5439 fixed first Sergey On 09/12/13 14:13, Christian Schneider wrote: We have some factory classes but they are often not as convenient to use as the namespaces. In any case it would be interesting to see what you did. Can you open a jira and attach your code as a patch? If it is just a few lines you can also just paste the code or point to a github repo or similar. Christian On 09.12.2013 15:05, pbielicki wrote: Hi, in order to integrate CXF with Spring developers need to go through an XML file, right (i.e. http://cxf.apache.org/docs/writing-a-service-with-spring.html)? Is it possible out-of-the box to integrate CXF with Spring using annotation-driven context configuration? I am talking about @org.springframework.context.annotation.Configuration and @org.springframework.context.annotation.ComponentScan annotations ( http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Configuration.html). Are they supported by CXF integration? The goal is to avoid any XML configuration. If it's not part of CXF I may help because I just implemented such integration (few lines of code, really), and I find it pretty useful. Please let me know what you think? I wanted to open a JIRA issue straight away but I prefer to ask you before. Cheers, Przemyslaw Bielicki -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561.html Sent from the cxf-dev mailing list archive at Nabble.com. -- Sergey Beryozkin Talend Community Coders http://coders.talend.com/ Blog: http://sberyozkin.blogspot.com -- If you reply to this email, your message will be added to the discussion below: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561p5737565.html To unsubscribe from Spring integration using @Configuration @ComponentScan annotations, click herehttp://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=5737561code=cGJpZWxpY2tpQGdtYWlsLmNvbXw1NzM3NTYxfC0xODU3NDYzNDAz . NAMLhttp://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
Re: Spring integration using @Configuration @ComponentScan annotations
Basically I also like to use standard annotations instead of our custom ones. The problem is though that CXF should also be able to run in a CDI environment. In such an environment CXF annotation processing may conflict with CDI annotation processing. So I think using @Inject is great but we should leave the annotation processing to the CDI framework the user chooses. I have not tested how this works with the current CXF code but I think we should try to make it compatible with CDI. Does anyone have some experience with this? Christian On 09.12.2013 15:26, Przemysław Bielicki wrote: Hi Sergey, I'm not sure CXF-5439 https://issues.apache.org/jira/browse/CXF-5439 is a really great idea. For me all CXF components should be just annotated with @javax.inject.Named and then injected using @javax.inject.Inject or @javax.annotation.Resource. I prefer to use a well established standards instead of multiplying annotations - but maybe I am not aware of some limitations, issue you mentioned could solve. Anyway, my solution uses only javax.inject annotations and it works pretty well. I will file the jira issue soon (probably not today), and it should be clear then. Cheers, Przemyslaw On Mon, Dec 9, 2013 at 3:20 PM, Sergey Beryozkin [via CXF] ml-node+s547215n5737565...@n5.nabble.com wrote: Hi I added a prototype to the JAX-RS frontend, http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java (based on the code fragment from Vladimir Kulev) I think the similar thing can be done for all frontends indeed We probably should get https://issues.apache.org/jira/browse/CXF-5439 fixed first Sergey On 09/12/13 14:13, Christian Schneider wrote: We have some factory classes but they are often not as convenient to use as the namespaces. In any case it would be interesting to see what you did. Can you open a jira and attach your code as a patch? If it is just a few lines you can also just paste the code or point to a github repo or similar. Christian On 09.12.2013 15:05, pbielicki wrote: Hi, in order to integrate CXF with Spring developers need to go through an XML file, right (i.e. http://cxf.apache.org/docs/writing-a-service-with-spring.html)? Is it possible out-of-the box to integrate CXF with Spring using annotation-driven context configuration? I am talking about @org.springframework.context.annotation.Configuration and @org.springframework.context.annotation.ComponentScan annotations ( http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Configuration.html). Are they supported by CXF integration? The goal is to avoid any XML configuration. If it's not part of CXF I may help because I just implemented such integration (few lines of code, really), and I find it pretty useful. Please let me know what you think? I wanted to open a JIRA issue straight away but I prefer to ask you before. Cheers, Przemyslaw Bielicki -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561.html Sent from the cxf-dev mailing list archive at Nabble.com. -- Sergey Beryozkin Talend Community Coders http://coders.talend.com/ Blog: http://sberyozkin.blogspot.com -- If you reply to this email, your message will be added to the discussion below: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561p5737565.html To unsubscribe from Spring integration using @Configuration @ComponentScan annotations, click herehttp://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=5737561code=cGJpZWxpY2tpQGdtYWlsLmNvbXw1NzM3NTYxfC0xODU3NDYzNDAz . NAMLhttp://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml -- Christian Schneider http://www.liquid-reality.de Open Source Architect http://www.talend.com
Re: Spring integration using @Configuration @ComponentScan annotations
It should also work in Spring only, yes. I don't mind much against the Named/etc. As long as using it is as simple as working with the CXF annotations. For example, for JAX-RS, I don;t need Named friends to get root JAX-RS resources providers discovered, the idea of the unification of the annotations is good but it may not always be realistic to apply it consistently Sergey On 09/12/13 14:37, Przemysław Bielicki wrote: Christian, what is CDI for you? You mean javax.inject (fully supported by Spring) or javax.enterprise.inject (supported by Java EE containers) On Mon, Dec 9, 2013 at 3:32 PM, cschneider [via CXF] ml-node+s547215n5737569...@n5.nabble.com wrote: Basically I also like to use standard annotations instead of our custom ones. The problem is though that CXF should also be able to run in a CDI environment. In such an environment CXF annotation processing may conflict with CDI annotation processing. So I think using @Inject is great but we should leave the annotation processing to the CDI framework the user chooses. I have not tested how this works with the current CXF code but I think we should try to make it compatible with CDI. Does anyone have some experience with this? Christian On 09.12.2013 15:26, Przemysław Bielicki wrote: Hi Sergey, I'm not sure CXF-5439 https://issues.apache.org/jira/browse/CXF-5439 is a really great idea. For me all CXF components should be just annotated with @javax.inject.Named and then injected using @javax.inject.Inject or @javax.annotation.Resource. I prefer to use a well established standards instead of multiplying annotations - but maybe I am not aware of some limitations, issue you mentioned could solve. Anyway, my solution uses only javax.inject annotations and it works pretty well. I will file the jira issue soon (probably not today), and it should be clear then. Cheers, Przemyslaw On Mon, Dec 9, 2013 at 3:20 PM, Sergey Beryozkin [via CXF] [hidden email] http://user/SendEmail.jtp?type=nodenode=5737569i=0 wrote: Hi I added a prototype to the JAX-RS frontend, http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java (based on the code fragment from Vladimir Kulev) I think the similar thing can be done for all frontends indeed We probably should get https://issues.apache.org/jira/browse/CXF-5439 fixed first Sergey On 09/12/13 14:13, Christian Schneider wrote: We have some factory classes but they are often not as convenient to use as the namespaces. In any case it would be interesting to see what you did. Can you open a jira and attach your code as a patch? If it is just a few lines you can also just paste the code or point to a github repo or similar. Christian On 09.12.2013 15:05, pbielicki wrote: Hi, in order to integrate CXF with Spring developers need to go through an XML file, right (i.e. http://cxf.apache.org/docs/writing-a-service-with-spring.html)? Is it possible out-of-the box to integrate CXF with Spring using annotation-driven context configuration? I am talking about @org.springframework.context.annotation.Configuration and @org.springframework.context.annotation.ComponentScan annotations ( http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Configuration.html). Are they supported by CXF integration? The goal is to avoid any XML configuration. If it's not part of CXF I may help because I just implemented such integration (few lines of code, really), and I find it pretty useful. Please let me know what you think? I wanted to open a JIRA issue straight away but I prefer to ask you before. Cheers, Przemyslaw Bielicki -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561.html Sent from the cxf-dev mailing list archive at Nabble.com. -- Sergey Beryozkin Talend Community Coders http://coders.talend.com/ Blog: http://sberyozkin.blogspot.com -- If you reply to this email, your message will be added to the discussion below: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561p5737565.html To unsubscribe from Spring integration using @Configuration @ComponentScan annotations, click here . NAML http://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml -- Christian Schneider http://www.liquid-reality.de Open Source Architect http://www.talend.com -- If you reply to this email, your message will be added to the discussion below: http
Re: Spring integration using @Configuration @ComponentScan annotations
I was mainly talking about the javax.inject.Inject annotation. It is evaluated by CDI frameworks like openwebbeans (see: http://openwebbeans.apache.org/cdi_explained.html ). So if CXF and openwebbeans evaluate the injection we might easily get into trouble. If a user works with CDI he will have some CXF related beans as well as non cxf related beans. Probably he will expect that the injections work in both cases. I know we are currently implementing annotation processing for some annotations in cxf itself. I am not sure if this is a good idea. I think it would be better to leave this to the users injection framework. Christian On 09.12.2013 15:37, Przemysław Bielicki wrote: Christian, what is CDI for you? You mean javax.inject (fully supported by Spring) or javax.enterprise.inject (supported by Java EE containers) -- Christian Schneider http://www.liquid-reality.de Open Source Architect http://www.talend.com
Re: Spring integration using @Configuration @ComponentScan annotations
What I could imagine for CDI is to implement a CDI extension for CXF in deltaspike (http://deltaspike.apache.org/). This way we could make sure it plays nicely with the cdi frameworks. It also would have the advantage that we would not have to do the annotation processing ourselves and instead can use the cdi framework code for that. Christian On 09.12.2013 15:47, Sergey Beryozkin wrote: It should also work in Spring only, yes. I don't mind much against the Named/etc. As long as using it is as simple as working with the CXF annotations. For example, for JAX-RS, I don;t need Named friends to get root JAX-RS resources providers discovered, the idea of the unification of the annotations is good but it may not always be realistic to apply it consistently Sergey On 09/12/13 14:37, Przemysław Bielicki wrote: Christian, what is CDI for you? You mean javax.inject (fully supported by Spring) or javax.enterprise.inject (supported by Java EE containers) On Mon, Dec 9, 2013 at 3:32 PM, cschneider [via CXF] ml-node+s547215n5737569...@n5.nabble.com wrote: Basically I also like to use standard annotations instead of our custom ones. The problem is though that CXF should also be able to run in a CDI environment. In such an environment CXF annotation processing may conflict with CDI annotation processing. So I think using @Inject is great but we should leave the annotation processing to the CDI framework the user chooses. I have not tested how this works with the current CXF code but I think we should try to make it compatible with CDI. Does anyone have some experience with this? Christian On 09.12.2013 15:26, Przemysław Bielicki wrote: Hi Sergey, I'm not sure CXF-5439 https://issues.apache.org/jira/browse/CXF-5439 is a really great idea. For me all CXF components should be just annotated with @javax.inject.Named and then injected using @javax.inject.Inject or @javax.annotation.Resource. I prefer to use a well established standards instead of multiplying annotations - but maybe I am not aware of some limitations, issue you mentioned could solve. Anyway, my solution uses only javax.inject annotations and it works pretty well. I will file the jira issue soon (probably not today), and it should be clear then. Cheers, Przemyslaw On Mon, Dec 9, 2013 at 3:20 PM, Sergey Beryozkin [via CXF] [hidden email] http://user/SendEmail.jtp?type=nodenode=5737569i=0 wrote: Hi I added a prototype to the JAX-RS frontend, http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/spring/SpringResourceServer.java (based on the code fragment from Vladimir Kulev) I think the similar thing can be done for all frontends indeed We probably should get https://issues.apache.org/jira/browse/CXF-5439 fixed first Sergey On 09/12/13 14:13, Christian Schneider wrote: We have some factory classes but they are often not as convenient to use as the namespaces. In any case it would be interesting to see what you did. Can you open a jira and attach your code as a patch? If it is just a few lines you can also just paste the code or point to a github repo or similar. Christian On 09.12.2013 15:05, pbielicki wrote: Hi, in order to integrate CXF with Spring developers need to go through an XML file, right (i.e. http://cxf.apache.org/docs/writing-a-service-with-spring.html)? Is it possible out-of-the box to integrate CXF with Spring using annotation-driven context configuration? I am talking about @org.springframework.context.annotation.Configuration and @org.springframework.context.annotation.ComponentScan annotations ( http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Configuration.html). Are they supported by CXF integration? The goal is to avoid any XML configuration. If it's not part of CXF I may help because I just implemented such integration (few lines of code, really), and I find it pretty useful. Please let me know what you think? I wanted to open a JIRA issue straight away but I prefer to ask you before. Cheers, Przemyslaw Bielicki -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561.html Sent from the cxf-dev mailing list archive at Nabble.com. -- Sergey Beryozkin Talend Community Coders http://coders.talend.com/ Blog: http://sberyozkin.blogspot.com -- If you reply to this email, your message will be added to the discussion below: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561p5737565.html To unsubscribe from Spring integration using @Configuration @ComponentScan annotations, click here . NAML http://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace
Re: Spring integration using @Configuration @ComponentScan annotations
I think the problem here is that CXF allows to run in very many environments. For users this is very nice but it creates a lot of complexity in CXF. Of course annotation processing is just a few lines of code for each case. The problem is though that this code is scattered throughout the whole cxf code. This is of course only my personal opinion. We currently already support a lot of annotations. So adding the ones you planned to add does not really make things worse. I just think we should perhaps discuss to aproach this differently for cxf 3 or cxf 4. In any case I think it is better to define our own annotations if we plan to parse them ourselfves. Christian On 09.12.2013 16:00, Sergey Beryozkin wrote: Hi Christian Sure, let the external frameworks do what they can do well. What I've found though over the years is that the users which do not want to depend on those external frameworks miss on the features which can easily be done without those external dependencies. For example, I'd like to have CXF interceptors easily discovered within Blueprint deployments. It is not that important for JAX-RS endpoints for example, CXF interceptors are not part of JAX-RS model, but nice to have for the completeness. To be honest, it is always good to keep multiple options open. Some CXF users work with Spring, some now with CDI, some with Blueprint and some do not use the injections frameworks, and I'd like to have a code in place that would would work with or without Spring for discovering simple interceptors features. For me, addressing CXF-5439 is about few lines of code. I don't mind if it won't be considered a standard approach, because using a standard approach (Named, etc) to create non-portable deployments (CXF interceptors will obviously won't work without CXF) is not exactly a standard approach in the end Sergey -- Christian Schneider http://www.liquid-reality.de Open Source Architect http://www.talend.com
Re: Spring integration using @Configuration @ComponentScan annotations
I just created a jira issue: https://issues.apache.org/jira/browse/CXF-5448 I hope it's clear. Cheers, Przemyslaw On Mon, Dec 9, 2013 at 3:14 PM, cschneider [via CXF] ml-node+s547215n5737562...@n5.nabble.com wrote: We have some factory classes but they are often not as convenient to use as the namespaces. In any case it would be interesting to see what you did. Can you open a jira and attach your code as a patch? If it is just a few lines you can also just paste the code or point to a github repo or similar. Christian On 09.12.2013 15:05, pbielicki wrote: Hi, in order to integrate CXF with Spring developers need to go through an XML file, right (i.e. http://cxf.apache.org/docs/writing-a-service-with-spring.html)? Is it possible out-of-the box to integrate CXF with Spring using annotation-driven context configuration? I am talking about @org.springframework.context.annotation.Configuration and @org.springframework.context.annotation.ComponentScan annotations ( http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Configuration.html). Are they supported by CXF integration? The goal is to avoid any XML configuration. If it's not part of CXF I may help because I just implemented such integration (few lines of code, really), and I find it pretty useful. Please let me know what you think? I wanted to open a JIRA issue straight away but I prefer to ask you before. Cheers, Przemyslaw Bielicki -- View this message in context: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561.html Sent from the cxf-dev mailing list archive at Nabble.com. -- Christian Schneider http://www.liquid-reality.de Open Source Architect http://www.talend.com -- If you reply to this email, your message will be added to the discussion below: http://cxf.547215.n5.nabble.com/Spring-integration-using-Configuration-ComponentScan-annotations-tp5737561p5737562.html To unsubscribe from Spring integration using @Configuration @ComponentScan annotations, click herehttp://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=5737561code=cGJpZWxpY2tpQGdtYWlsLmNvbXw1NzM3NTYxfC0xODU3NDYzNDAz . NAMLhttp://cxf.547215.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
Re: Spring integration
Topics of interest. http://cxf.547215.n5.nabble.com/re-CXF-with-Sprint-Integration-td5501007.html http://cxf.547215.n5.nabble.com/CXF-embedded-within-a-SpringIntegration-Context-td5158465.html On Wed, Apr 10, 2013 at 8:25 PM, Jason Pell ja...@pellcorp.com wrote: Is there any plans to add namespace support for jaxws endpoint and client to spring integration? I am envisioning ability to define jaxws:client as a gateway with a queue channel in between to provide decoupling of client from transport And endpoint as a end of a channel - service activator maybe. There is camel support for cxf not sure how that works I am looking at using spring integration for async support rather than jms
Re: Spring integration
I am thinking that for a jaxws:client, the easiest will be to define a integration gateway which uses the same interface as the client. On the other end of the channel can be a service activator that executes the actual jaxws:client. For a jaxws:endpoint, instead of using the actual impl, I also define a integration gateway for the interface which also ends in a service activator which executes the original impl. The jaxws:endpoint will reference the gateway instead of the impl. Now I think I only have to worry about message serialisation when using a message-store. Will see how I go. On Fri, Apr 12, 2013 at 10:27 AM, Jason Pell ja...@pellcorp.com wrote: Topics of interest. http://cxf.547215.n5.nabble.com/re-CXF-with-Sprint-Integration-td5501007.html http://cxf.547215.n5.nabble.com/CXF-embedded-within-a-SpringIntegration-Context-td5158465.html On Wed, Apr 10, 2013 at 8:25 PM, Jason Pell ja...@pellcorp.com wrote: Is there any plans to add namespace support for jaxws endpoint and client to spring integration? I am envisioning ability to define jaxws:client as a gateway with a queue channel in between to provide decoupling of client from transport And endpoint as a end of a channel - service activator maybe. There is camel support for cxf not sure how that works I am looking at using spring integration for async support rather than jms
Re: Spring integration
Yeah, you are not the first one who has this idea. I think the easiest way is implement a transport of sprint integration, you can setup the {Input|Output} channel for the conduit or destination. The difficult part could how to implement the CXF Continuation API with spring integration async support. BTW, CXF supports the Servlet3 async invocation API out of box. -- Willem Jiang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://www.fusesource.com | http://www.redhat.com Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English) http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: 姜宁willem On Friday, April 12, 2013 at 8:27 AM, Jason Pell wrote: Topics of interest. http://cxf.547215.n5.nabble.com/re-CXF-with-Sprint-Integration-td5501007.html http://cxf.547215.n5.nabble.com/CXF-embedded-within-a-SpringIntegration-Context-td5158465.html On Wed, Apr 10, 2013 at 8:25 PM, Jason Pell ja...@pellcorp.com (mailto:ja...@pellcorp.com) wrote: Is there any plans to add namespace support for jaxws endpoint and client to spring integration? I am envisioning ability to define jaxws:client as a gateway with a queue channel in between to provide decoupling of client from transport And endpoint as a end of a channel - service activator maybe. There is camel support for cxf not sure how that works I am looking at using spring integration for async support rather than jms
Re: Spring integration
Yes, I also realised my approach will not work for multiple methods as the service-activator expects a method name. Back to doing more reading in the spring integration docs and samples. On Fri, Apr 12, 2013 at 1:06 PM, Willem jiang willem.ji...@gmail.comwrote: Yeah, you are not the first one who has this idea. I think the easiest way is implement a transport of sprint integration, you can setup the {Input|Output} channel for the conduit or destination. The difficult part could how to implement the CXF Continuation API with spring integration async support. BTW, CXF supports the Servlet3 async invocation API out of box. -- Willem Jiang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://www.fusesource.com | http://www.redhat.com Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English) http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: 姜宁willem On Friday, April 12, 2013 at 8:27 AM, Jason Pell wrote: Topics of interest. http://cxf.547215.n5.nabble.com/re-CXF-with-Sprint-Integration-td5501007.html http://cxf.547215.n5.nabble.com/CXF-embedded-within-a-SpringIntegration-Context-td5158465.html On Wed, Apr 10, 2013 at 8:25 PM, Jason Pell ja...@pellcorp.com (mailto: ja...@pellcorp.com) wrote: Is there any plans to add namespace support for jaxws endpoint and client to spring integration? I am envisioning ability to define jaxws:client as a gateway with a queue channel in between to provide decoupling of client from transport And endpoint as a end of a channel - service activator maybe. There is camel support for cxf not sure how that works I am looking at using spring integration for async support rather than jms
Re: Spring integration
I can see what you were getting at, and that certainly makes sense. I guess I can model this on the camel transport. http://camel.apache.org/better-jms-transport-for-cxf-webservice-using-apache-camel.html http://camel.apache.org/camel-transport-for-cxf.html I might spend some time on this and see how difficult it would be. On Fri, Apr 12, 2013 at 1:19 PM, Jason Pell ja...@pellcorp.com wrote: Yes, I also realised my approach will not work for multiple methods as the service-activator expects a method name. Back to doing more reading in the spring integration docs and samples. On Fri, Apr 12, 2013 at 1:06 PM, Willem jiang willem.ji...@gmail.comwrote: Yeah, you are not the first one who has this idea. I think the easiest way is implement a transport of sprint integration, you can setup the {Input|Output} channel for the conduit or destination. The difficult part could how to implement the CXF Continuation API with spring integration async support. BTW, CXF supports the Servlet3 async invocation API out of box. -- Willem Jiang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://www.fusesource.com | http://www.redhat.com Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English) http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: 姜宁willem On Friday, April 12, 2013 at 8:27 AM, Jason Pell wrote: Topics of interest. http://cxf.547215.n5.nabble.com/re-CXF-with-Sprint-Integration-td5501007.html http://cxf.547215.n5.nabble.com/CXF-embedded-within-a-SpringIntegration-Context-td5158465.html On Wed, Apr 10, 2013 at 8:25 PM, Jason Pell ja...@pellcorp.com(mailto: ja...@pellcorp.com) wrote: Is there any plans to add namespace support for jaxws endpoint and client to spring integration? I am envisioning ability to define jaxws:client as a gateway with a queue channel in between to provide decoupling of client from transport And endpoint as a end of a channel - service activator maybe. There is camel support for cxf not sure how that works I am looking at using spring integration for async support rather than jms
Spring integration
Is there any plans to add namespace support for jaxws endpoint and client to spring integration? I am envisioning ability to define jaxws:client as a gateway with a queue channel in between to provide decoupling of client from transport And endpoint as a end of a channel - service activator maybe. There is camel support for cxf not sure how that works I am looking at using spring integration for async support rather than jms
cxf-spring integration questions
Hi, I would like to ask for some guidance on using CXF together with Spring, more specifically in terms of lifecycle management. There seems to be two ways how CXF can be integrated with Spring: 1) It can be embedded in Spring as outlined in http://cwiki.apache.org/CXF20DOC/deploymentspring.html. In this case, the user's application context imports the cxf spring configuration and the CXF runtime will be in the same context as the application. For servlet environment, this seems to be the only option. 2) CXF can start up a separate context (bus application context) for its runtime. Config example for this can be found at http://cwiki.apache.org/CXF20DOC/jax-ws-configuration.html (first config, no imports). CXF seems to have its own lifecycle manager component implemented in CXFBusLifeCycleManager, which can control the spring context through org.apache.cxf.bus.spring.SpringBusFactory.BusApplicationContextLifeCycleListener in case 2). However, if a user chooses to embed cxf in the spring context (case 1) of his application there seems to be no default mapping from some of the spring lifecycle events to the bus events. For example, CXFBusImpl.shutdown() does not get called when spring closes the context because it does not hook into Spring's destroy callback, which leaves servers running after the user application context is shut down. Is there any reason why that is not done automatically? For example, we need to do this now to get servers shut down properly: public class CXFBusSpringLifecycleBridge implements InitializingBean, DisposableBean { @Resource(name = org.apache.cxf.buslifecycle.BusLifeCycleManager) private org.apache.cxf.buslifecycle.BusLifeCycleManager busLifeCycleManager; @Resource(name = Bus.DEFAULT_BUS_ID) private Bus bus; ... @Override public void destroy() throws Exception { ((CXFBusImpl) bus).shutdown(true); } } Also, could you please advise on what would be the best way of delegating Spring's org.springframework.context.Lifecycle start() and stop() events to cxf servers? org.apache.cxf.endpoint.Server.start() and stop() seems to have the same semantics as Lifecycle.start() and stop(), so could CXF maybe implement the spring Lifecycle interface directly? Another problem around spring integration seems to be that it includes a Jsr250BeanPostProcessor by default, which pollutes the user's config in case 1. Should that be maybe made optional similarly to the extensions? Thanks, Gyorgy NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error.
Re: cxf-spring integration questions
On Thursday 09 October 2008 11:49:28 am Orban, Gyorgy (IT) wrote: 1) It can be embedded in Spring as outlined in http://cwiki.apache.org/CXF20DOC/deploymentspring.html. In this case, the user's application context imports the cxf spring configuration and the CXF runtime will be in the same context as the application. For servlet environment, this seems to be the only option. 2) CXF can start up a separate context (bus application context) for its runtime. Config example for this can be found at http://cwiki.apache.org/CXF20DOC/jax-ws-configuration.html (first config, no imports). This can be done in the servlet case as well with a WEB-INF/cxf-servlet.xml. Not too popular though as it does limit what can be configured. CXF seems to have its own lifecycle manager component implemented in CXFBusLifeCycleManager, which can control the spring context through org.apache.cxf.bus.spring.SpringBusFactory.BusApplicationContextLifeCycleLi stener in case 2). However, if a user chooses to embed cxf in the spring context (case 1) of his application there seems to be no default mapping from some of the spring lifecycle events to the bus events. For example, CXFBusImpl.shutdown() does not get called when spring closes the context because it does not hook into Spring's destroy callback, which leaves servers running after the user application context is shut down. Is there any reason why that is not done automatically? For example, we need to do this now to get servers shut down properly: A bug probably should be logged here.It probably should have a shutdown hook registered with spring. (and patch would be nice too with the grant to apache box checked ;-) Also, could you please advise on what would be the best way of delegating Spring's org.springframework.context.Lifecycle start() and stop() events to cxf servers? org.apache.cxf.endpoint.Server.start() and stop() seems to have the same semantics as Lifecycle.start() and stop(), so could CXF maybe implement the spring Lifecycle interface directly? Many parts of CXF need to be usable without the spring jars so they cannot implement them directly.HOWEVER, we also use spring specific subclasses in a bunch of cases that COULD implement them.For example, in the org.apache.cxf.jaxws.spring.EndpointDefinitionParser class that handles the jaxws:endpoint things, it parsed into a special SpringEndpointImpl. That COULD (and does) implement spring specific stuff. This could be expanded to other areas as well.Again, jira's and patches are quite welcome. Another problem around spring integration seems to be that it includes a Jsr250BeanPostProcessor by default, which pollutes the user's config in case 1. Should that be maybe made optional similarly to the extensions? Well, there is a lot of stuff in CXF itself that is wired together with the @Resource/@PostConstruct annotations that that bean post processor handles. Thus, a lot of stuff will fail if it it's not there. What's the problem with it? I know one issue is that if you have Springs jsr250 processor enabled, the stuff gets called twice.One option I want to try for that is to add: @Resource Bus bus to the Jsr250BeanPostProcessor. If bus is not null in the process methods, then the Spring 250 processor is enabled (and has injected the Bus) and will handle things. If it IS null, then the spring one is not enabled and we need to handle it. I definitely need to verify that though and probably run the full test suite with the spring processor turned on to make sure the bus is completely setup properly. -- Daniel Kulp [EMAIL PROTECTED] http://dankulp.com/blog