You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Christian Schneider (JIRA)" <ji...@apache.org> on 2016/11/07 15:24:58 UTC

[jira] [Updated] (DOSGI-251) Allow to export services with less service properties

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

Christian Schneider updated DOSGI-251:
--------------------------------------
    Description: 
Currently it is necessary to define 3 service properties to export a SOAP or REST service:
service.exported.interfaces=*
service.exported.configs=org.apache.cxf.rs
org.apache.cxf.rs.address=/tasks

SOAP service:
service.exported.interfaces=*
service.exported.configs=org.apache.cxf.ws
org.apache.cxf.ws.address=/taskservice

This can be simplified by using the Aries RSA ExportPolicy.

CXF-DOSGi can define an ExportPolicy service that just looks for the address property and then adds the other two properties.
This policy has to be configured as a system property to work:
rsa.export.policy.filter=(name=cxf)

This makes the TopologyManager pick up the policy.

Using the ExportPolicy it will then be possible to export services like this:
REST service:
org.apache.cxf.rs.address=/tasks

SOAP service:
org.apache.cxf.ws.address=/taskservice

I also considered to make it work by just using the @Webservice and @Path annotations but this does not work as CXF needs an address for the service to export.
An option would be to create a custom annoation for the address but this would require the user to use a proprietary API. If anyone has a good idea how to improvide this I would be very interested.


  was:
Currently it is necessary to define 3 service properties to export a SOAP or REST service:
service.exported.interfaces=*
service.exported.configs=org.apache.cxf.rs
org.apache.cxf.rs.address=/tasks

SOAP service:
service.exported.interfaces=*
service.exported.configs=org.apache.cxf.ws
org.apache.cxf.ws.address=/taskservice

This can be simplified by using the Aries RSA ExportPolicy.

CXF-DOSGi can define an ExportPolicy service that just looks for the address property and then adds the other two properties.
This policy has to be configured as a system property to work:
rsa.export.policy.filter=(name=cxf)

This makes the TopologyManager pick up the policy.

Using the ExportPolicy it will then be possible to export services like this:
REST service:
org.apache.cxf.rs.address=/tasks

SOAP service:
org.apache.cxf.ws.address=/taskservice



> Allow to export services with less service properties
> -----------------------------------------------------
>
>                 Key: DOSGI-251
>                 URL: https://issues.apache.org/jira/browse/DOSGI-251
>             Project: CXF Distributed OSGi
>          Issue Type: Improvement
>          Components: DSW
>    Affects Versions: 2.0.0
>            Reporter: Christian Schneider
>            Assignee: Christian Schneider
>             Fix For: 2.1.0
>
>
> Currently it is necessary to define 3 service properties to export a SOAP or REST service:
> service.exported.interfaces=*
> service.exported.configs=org.apache.cxf.rs
> org.apache.cxf.rs.address=/tasks
> SOAP service:
> service.exported.interfaces=*
> service.exported.configs=org.apache.cxf.ws
> org.apache.cxf.ws.address=/taskservice
> This can be simplified by using the Aries RSA ExportPolicy.
> CXF-DOSGi can define an ExportPolicy service that just looks for the address property and then adds the other two properties.
> This policy has to be configured as a system property to work:
> rsa.export.policy.filter=(name=cxf)
> This makes the TopologyManager pick up the policy.
> Using the ExportPolicy it will then be possible to export services like this:
> REST service:
> org.apache.cxf.rs.address=/tasks
> SOAP service:
> org.apache.cxf.ws.address=/taskservice
> I also considered to make it work by just using the @Webservice and @Path annotations but this does not work as CXF needs an address for the service to export.
> An option would be to create a custom annoation for the address but this would require the user to use a proprietary API. If anyone has a good idea how to improvide this I would be very interested.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)