Daniel Kulp wrote:
Eoghan,

On Thursday 11 September 2008 5:52:20 am Eoghan Glynn wrote:
Next question.
When I expose a service registered under multiple interfaces, what is it
supposed to do in today's codebase?
Will it somehow expose both interfaces over the wire or does it just
pick one?
The intention was to support the multi-interface case mapping to a
single endpoint by creating a java.lang.reflect.Proxy aggregating the
interfaces, and using this proxy as the service class on the
ServerBeanFactory.

However this introduces some complications around the namespace mapping
used the Aegis binding, particularly in ensuring that the namespace used
for client-originated payloads match that expected by the server-side.

So this approach will require some core CXF changes in order to work,
and isn't supported right now.

Actually, you shouldn't need to refactor any core CXF for this I think. If you write your own ServiceConfiguration object, there are methods for getting the qnames for the request/response wrappers and such where you can make sure you get the correct namespaces from the correct implementation. Just register your version before the default versions.


Nice one, thanks for the heads-up. We'll look at using this approach to simplify the multi-interface case.

Due to recent changes to the RFC 119 spec, we're not guaranteed that the client is made aware of all the interfaces exposed by the OSGi service, or even the fact that its a multi-interface service.

So for a service that exposes two interfaces, say foo.bar.I1 and sna.fu.I2, would it make sense to think of a server-side ServiceConfiguration that's capable of accepting incoming namespaces based on /either/ "foo.bar" or "sna.fu" (depending on which interface the client has resolved)?

Or would the correct approach be to use a client-side ServiceConfiguration to map onto some agreed namespace decoupled from both the foo.bar & sna.fu packages?

Cheers,
Eoghan


Dan



For the moment, maybe we should just take the simple approach of mapping
each interface onto a /separate/ endpoint.

/Eoghan

I'm looking at changing the behaviour of the org.osgi.remote.publish
property with the behaviour in the spec (instead of the value
'false|true' a list of interfaces or '*' for all published interfaces
should be provided).

Thanks,

David

----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland




----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland

Reply via email to