You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Dan Diephouse <da...@envoisolutions.com> on 2006/09/11 16:27:57 UTC

Guidelines for Separation of JAX-WS/Implementing classes

Hi All,

As there has been some confusion in the past and some confusion 
currently about the proper separation between the core, service model, 
and jax-ws, I thought I'd try to set forth a few guidelines. These 
should be relatively uncontentious, but feel free to +1/-1 and put me in 
my place if need be:

1. Do not reference the service class, service methods, or method 
parameter types outside of the Databinding & Invoker classes.
2. Do not use any JAX-WS classes outside of the jaxws module.
3. One exception to #2 is tests. Currently depend on testutils in the 
soap/core/etc modules, which depends on jaxws. So sometimes we have to 
depend on on jaxws if we're using generated artifacts. Try to minimize 
these references though.
4. Do not reference the implementing class outside of a particular 
invoker implementation.

These guidelines help us keep good separation between our modules, 
making it easy for non-jaxws frontends or different types of 
databindings to be added.

Cheers,
- Dan

-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com
http://netzooid.com/blog


Re: Guidelines for Separation of JAX-WS/Implementing classes

Posted by Daniel Kulp <da...@iona.com>.
On Monday September 11 2006 10:27 am, Dan Diephouse wrote:
> Hi All,
>
> As there has been some confusion in the past and some confusion
> currently about the proper separation between the core, service model,
> and jax-ws, I thought I'd try to set forth a few guidelines. These
> should be relatively uncontentious, but feel free to +1/-1 and put me in
> my place if need be:
>
> 1. Do not reference the service class, service methods, or method
> parameter types outside of the Databinding & Invoker classes.
> 2. Do not use any JAX-WS classes outside of the jaxws module.
> 3. One exception to #2 is tests. Currently depend on testutils in the
> soap/core/etc modules, which depends on jaxws. So sometimes we have to
> depend on on jaxws if we're using generated artifacts. Try to minimize
> these references though.
> 4. Do not reference the implementing class outside of a particular
> invoker implementation.

5.  Related to 2 - don't throw WebServiceException.   That's a JAX-WS thing.   
We should have proper subclasses of the Exception/UncheckedException from the 
common module that are thrown in all cases.   The JAX-WS frontend should 
catch those and map them to the proper WebServiceException.

>
> These guidelines help us keep good separation between our modules,
> making it easy for non-jaxws frontends or different types of
> databindings to be added.
>
> Cheers,
> - Dan

-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194   F:781-902-8001
daniel.kulp@iona.com