[jbossws-dev] New configuration options proposal

Alessio Soldano asoldano at redhat.com
Tue Sep 30 08:09:17 EDT 2014


Hi Rostislav,

On 30/09/14 13:51, Rostislav Svoboda wrote:
>> On 30/09/14 08:39, Jim Ma wrote:
>>> On 09/29/2014 11:02 PM, Alessio Soldano wrote:
>>> This said, I see your point on trying avoiding introducing further 
>>> descriptors, and carefully thinking about this we should also 
>>> consider that you can already set properties within the pre-defined 
>>> client configurations (and setting properties is the main reason why 
>>> we'd add the descriptor). An alternative idea would be to provide a 
>>> convention for automatically reading a pre-defined client 
>>> configuration, for instance based on the SEI class FQN. So for 
>>> instance, we could say that for a port retrieved as follows import 
>>> org.foo.ServiceIface; ... Service service = Service.create(new 
>>> URL("...?wsdl"), serviceQName); ServiceIface port = 
>>> (ServiceIface)service.getPort(portQName, ServiceIface.class); 
>>> instead of directly going and fetching the 
>>> "Standard-Client-Configuration" from the container webservices 
>>> management model we'd first try getting a configuration named 
>>> "org.foo.ServiceIface" (still in the webservices model) and only 
>>> fallback to the "Standard-Client-Configuration" if that's not found. 
>>> That would allow for different configurations to clients without 
>>> touching their code; the only requirement is the clients run 
>>> in-container. 
> 'clients run in-container' is quite strict requirement. How would you "customize" standalone clients ?
Well, AFAIK most of users relying on JBossWS actually run clients 
in-container (that is on JBoss AS / WildFly / EAP). In any case, 
similarly, we could also make our client always try resolving a 
"jaxws-client-config.xml" and look for a configuration named as the SEI 
class. Skipping this saves us a classloader resource lookup.

>>>> * Addition to the jboss-webservices.xml schema
>>>> ----------------------------------------------------------------------
>>>> In jboss-webservices.xml we currently allow setting deployment level
>>>> properties. We should evaluate setting properties also at endpoint/port
>>>> level, basically within the port-component section.
>>> I totally agree with this. I remembered we talked about this before
>>> and we need to remove this configuration limitation.
>> With the same spirit of the comment above, we could actually also avoid
>> this change. Properties are already in the predefined configs. And if
>> none is specified for an endpoint, the endpoint class FQN could be used
>> to pick one in the container model.
> +1 for this proposal ... as we are on server side
>
>>>> * Apache CXF interceptors setup through properties
>>>> ----------------------------------------------------------------------
>>>> Speaking of properties, currently specified in jboss-webservices.xml and
>>>> possibly in jboss-webservices-client.xml, we could start supporting two
>>>> additional props:
>>>> * org.apache.cxf.interceptor.InInterceptors, with the value string to be
>>>> parsed for getting a list of in-interceptor classnames; basically to
>>>> achieve the same we get with @InInterceptor
>>>> * org.apache.cxf.interceptor.OutInterceptors, with the value string to
>>>> be parsed for getting a list of out-interceptor classnames; basically to
>>>> achieve the same we get with @OutInterceptor
>>>> The interceptors would be attached either to the bus or to the
>>>> client/endpoint depending on where the property is declared.
>>>    +1
>> ok
> Would org.apache.cxf.interceptor.In/OutInterceptors props override @In/OutInterceptor defined in class file ? Or it would be just addition to already defined ones ?
Good question... I'd say it would be an addition; we can decide to warn 
the user if he's trying adding an interceptor that is already there.

Thanks for the feedback

Alessio

-- 
Alessio Soldano
Web Service Lead, JBoss



More information about the jbossws-dev mailing list