[ 
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)

Reply via email to