Hi Christian,
Current CXF configuration support the wildcard naming. If you want to
share the configuration between several endpoints' conduits, you could
using the * in the name attribute of conduit or destination.
I agree we could do improvement on the current CXF configuration which
doesn't provide a straight way for endpoint or client to configure the
transport level objects.
Since we have to support the old configure way for current user in the
coming up release version, adding a property on the EndpointInfo could
be a safe and quick way for the change.
Here is another question for doing the transport configure from WSDL ?
I don't do how could we put the transport configure property in the
WSDL, and we still need to support it in the CXF future release.
Regards,
Willem
Christian Schneider wrote:
Hi Willem,
if I understand it right there is always one conduit for each client
or endpoint. So I would not try to reference a conduit config via the
endpoint name like it is done now. The conduit can as well be
described as a parameter of client or endpoint. I really do not like
the way the old JMSConduit configured itself. Extracting the
configuration should be outside of the object to be configured.
The way camel does this is ok. But instead of referencing a jms
configuration in the address line I would simply set it as a parameter
in client or endpoint. If you want to centralize certain parts of the
config spring still has the ref="" to reference a central config bean.
Additionally we can use abstract config beans so several jms
configurations can share some common parts.
By simply being a property of the client or endpoint they can simply
add it to the endpointInfo. So the TransportFactory can extract it and
set the Conduit or Destination with it.
Greetings
Christian
Willem Jiang schrieb:
You could take a look at the configuration of camel transport for
CXF. we
inject the camel context (which could be an extension of
TransportConfig)
into the CamelTransportFactory or the {CamelConduit|CamelDestion}.
Endpoint can find the CamelTransportFactory by using the transport id or
transport perfix like 'camel:'. Each Conduit or Destination
configuration
has its own id, when the endpoint find the transport factory and
create the
conduit or destination, current CXF configuration will call the
'configure'
method which will seach the spring context and configure the conduit or
destination according the bean id.
If you want to add the TransportConfig into the endpoint , we need to
hack
the code of endpoint looking up the transport factory, and set the
TransportConfig into the transport factory or the {conduit|destination}.
Any thoughts?