Hi,

From what's quoted below from JSR-181,  I think we can reuse some of the code. 
My understanding is:

* if the Service Implementation Bean doesn't reference a Service Endpoint 
Interface, we will use the bean class as the SCA service interface
* if the Service Implementation Bean references a Service Endpoint Interface 
(SEI), we will use the SEI as the SCA service interface
* We'll use the same introspection code to parse the JSR181 and JAX-WS 
annotations
* We could even derive the "binding.ws" in the componentType service from the 
Service Implementation Bean as it really represents a WS endpoint. 

Thanks,
Raymond

3.1 Service Implementation Bean
A developer who implements Web Services with JSR-181 is responsible for
implementing the service implementation bean containing the Web Service’s 
business
logic. A JSR-181 service implementation bean MUST meet the following 
requirements:
· The implementation bean MUST be an outer public class, MUST NOT be final,
and MUST NOT be abstract.
· The implementation bean MUST have a default public constructor.
· The implementation MUST NOT define a finalize() method.
· The implementation bean MUST include a @WebService class-level annotation,
indicating that it implements a Web Service. More information on the
@WebService annotation may be found in 4.1Annotation: javax.jws.WebService.
· The implementation bean MAY reference a service endpoint interface by using
the @WebService.endpointInterface annotation. If the implementation bean
references a service endpoint interface, it MUST implement all the methods on
the service endpoint interface. If the implementation bean references a service
endpoint interface, that service endpoint interface is used to determine the 
abstract
WSDL contract (portType and bindings). In this case, the service implementation
bean MUST NOT include any JSR-181 annotations other than @WebService
and @HandlerChain. In addition, the @WebService annotation MUST NOT
include the name annotation element. More information on the
@WebService.endpointInterface annotation element may be found in 4.1
Annotation: javax.jws.WebService.
· If the implementation bean does not implement a service endpoint interface and
there are no @WebMethod annotations in the implementation bean (excluding
@WebMethod annotations used to exclude inherited @WebMethods), all public
methods other than those inherited from java.lang.Object will be exposed as Web
Service operations, subject to the inheritance rules specified in Common
Annotations for the Java Platform [12], section 2.1.
3.2 Service Endpoint Interface
A JSR-181 service implementation bean MAY reference a service endpoint 
interface,
thus separating the contract definition from the implementation. A JSR-181 
service
endpoint interface MUST meet the requirements specified in JAX-WS 2.0 [5], 
section
3.4, with the following exceptions:
· The service endpoint interface MUST be an outer public interface.
· The service endpoint interface MUST include a @WebService annotation,
indicating that it is defining the contract for a Web Service.
14
· The service endpoint interface MAY extend java.rmi.Remote either directly or
indirectly, but is not REQUIRED to do so.
· All methods on the service endpoint interface, including methods inherited 
from
super-interfaces, are mapped to WSDL operations regardless of whether they
include a @WebMethod annotation. A method MAY include a @WebMethod
annotation to customize the mapping to WSDL, but is not REQUIRED to do so.
· The service endpoint interface MAY include other JSR-181 annotations to 
control
the mapping from Java to WSDL.
· The service endpoint interface MUST NOT include the JSR-181 annotation
elements portName, serviceName and endpointInterface of the annotation
@WebService.

________________________________________________________________ 
Raymond Feng
[email protected]
Apache Tuscany PMC member and committer: tuscany.apache.org
Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com
Personal Web Site: www.enjoyjava.com
________________________________________________________________

On Aug 2, 2010, at 9:32 AM, Simon Laws wrote:

> re. TUSCANY-3641
> 
> There are new POJO (JCI) otests that exercise the runtime's ability to
> process JAXWS annotations in Java implementation classes. We don't at
> the moment which I'm a little surprised about. There is quite a bit of
> code in the Java interface processor that deals with JAXWS
> annotations. I added some code at r981585 as an indication of intent.
> If anyone else thinks this is already done or that the JAXWS interface
> code is re-used in some clever way that I'm not yet aware of I'd be
> interested to know.
> 
> Simon
> 
> -- 
> Apache Tuscany committer: tuscany.apache.org
> Co-author of a book about Tuscany and SCA: tuscanyinaction.com

Reply via email to