OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

sca-j message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [sca-j] Introspecting services offered by a Java implementation classwithout @Service

Minor nit: the @OneWay annotation applies to a method, not to an interface.  Your example should be updated to show this.

In your example, these services are local.  Issue JAVA-3 has proposed a new annotation @Local that could be used on Interface1and Interface2 to allow them to be recognized by the introspection algorithm.

I believe this discussion can be handled under JAVA-3 and there is no need to create a new issue.


Simon C. Nash, IBM Distinguished Engineer
Member of the IBM Academy of Technology
Tel. +44-1962-815156  Fax +44-1962-818999

Raymond Feng <rfeng@us.ibm.com>

25/08/2008 17:25

[sca-j] Introspecting services offered by a Java implementation class without @Service


In Java Component Implementation Specification 1.00, we have the following statements:

143 Introspecting services offered by a Java implementation

144 In the cases described below, the services offered by a Java implementation class may be determined

145 through introspection, eliding the need to specify them using @Service. The following algorithm is used to

146 determine how services are introspected from an implementation class:

147 If the interfaces of the SCA services are not specified with the @Service annotation on the implementation

148 class, it is assumed that all implemented interfaces that have been annotated as @Remotable are the

149 service interfaces provided by the component. If none of the implemented interfaces is remotable, then by

150 default the implementation offers a single service whose type is the implementation class.

What if an interface is annotated with SCA annotations such as @OneWay or @Callback?

For example:

public class MyServiceImpl implements Interface1, Interface2 {



public interface Interface1 {



public interface Interface2 {


By the spec, there is only one service named MyServiceImpl. But isn't it more natural that we should find two SCA services: Interface1 and Interface2? Please clarify.



Raymond Feng
Senior Software Engineer, Open Source SCA Development, Apache Tuscany Project

IBM Bay Area Lab, 1001 E Hillsdale Blvd, Suite 400, Foster City, CA 94404, USA
rfeng@us.ibm.com, Notes: Raymond Feng/Burlingame/IBM, Tel: 650-645-8117, T/L: 367-8117
Web & Blog
www.enjoyjava.com - The Cyber Cafeteria to Enjoy Java

Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]