Hi Johannes,

I digged a bit deeper into the CXF DOSGi code now.

The real core of the Remote Service Admin support (the spec part) is in the package org.apache.cxf.dosgi.dsw.service.

So I think there are two ways to handle this:

1.Extract this code from the dsw-cxf bundle and make CXF just one implementation of it. This has the advantage that more code is shared but the disadvantage that the interfaces to make it extensible
are not covered by the spec.

2. Copy that package into your own code and see how you can integrate it with your code. This should allow to mix the existing zookeeper discovery support and TopologyManager with your
implementation of RemoteServiceAdmin.
So this is a little code duplication but your apart from this you are only coding against the spec. So this should make
you code very portable.
See https://cxf.apache.org/dosgi-architecture.html

In both cases your code could become a part of CXF-DOSGi if you want.

As a further step we can then even split off the CXF part and have a core Remote Services impl and your slim RMI binding that could be evolved and deployed separately from the
CXF DSW code.

Ideally I would like to see ECF and CXF-DOSGi to be interoperable on that level. I am not sure if that is possible though.

Christian

On 22.02.2016 11:21, Johannes Utzig wrote:
2016-02-22 9:15 GMT+01:00 Christian Schneider <ch...@die-schneider.net>:

About CXF DOSGi. I would be interested in extending CXF DOSGi to more
protocols. I currently can not put bigger amounts
of time into it but I will help as good as I can.

I created a pull request. https://github.com/apache/cxf-dosgi/pull/2


So if you want to provide a pull request or discuss the design I can help.
We just have to make sure to do it in a way that does not require the CXF
libs but I think that should be possible.
We also have to bring the design discussion to CXF dev at some point but
we can first discuss this together.


It might work fine within JBoss without modifying anything, I just noticed
when looking at the code base that a lot of the dependencies are not
strictly needed. One way to do it would be to make some of the dependencies
optional and only activate the respective ConfigurationTypeHandlers if the
classes are available.
Another approach could be to split it into two bundles, RSA and CXF
distribution providers.
The only problem I see is that there is a direct dependency to CXF in
ConfigurationTypeHandler (Server, Endpoint,...) but one could e.g. copy the
interfaces and create a delegating wrapper or something like that.
I will look some more into this at a later point...

Johannes



--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to