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: [ISSUE 59] SCA Spring C & I specification does not state what happens whena Bean exposed as a service implements mutliple interfaces - UPDATEDPROPOSAL



Folks,

The following is a proposal to RESOLVE Java Issue 59.

Discussion:

There are 2 main cases to consider:

a) Where there is one or more <sca:service/> element declared in the Spring application context

b) Where there are no <sca:service/> elements declared in the Spring application context


For case a), I believe that the number of services and the interface used for each of them is entirely determined
by the <sca:service/> element(s).  So, if for example a Bean implements 2 service interfaces and the developer
would like to expose those interfaces as separate SCA services, then 2 <sca:service/> elements are used,
both pointing to the same Spring Bean, but each element declaring one of the service interfaces provided by the
Bean.  This continues to be the case even if the interface is typed by the Bean class itself (subject to the
resolution of Issue 167).

For case b), I now think that the simplest approach is that there exists a single <service/> in the componentType
whose interface is the set of all public methods exposed by the Bean (if we resolve Issue 167 we may be able to
say that the interface is typed by the Bean itself, as for unannotated POJOs). Such an interface will be local
UNLESS all the exposed methods are members of interface(s) which are all marked @Remotable.


Proposal: (Based on the current proposal for Issue 58 - sca-springci-draft-20070926_Issue58e.doc)
------------------------------------------------
The following text to be added after line 188 (the section dealing with <service/> elements in the componentType):

Where a Spring Bean implementation class implements more than one interface, the Bean can be exposed as
either a single service or as multiple services, through the use of explicit <sca:service/> elements, where each
<sca:service/> element references the same <bean/> element but where the @type attribute uses only one of
the interfaces provided by the bean.

Where there are no <sca:service/> elements, the bean is exposed as a single service with an interface that is
the defined by the bean class itself.

------------------------------------------------

I leave it to the resolution of Issue 167 to adjust the wording of lines 184/185 about the interface of the
service in the case where the <service/> is introspected from the bean class.


Yours,  Mike.

Strategist - Emerging Technologies, SCA & SDO.
Co Chair OASIS SCA Assembly TC.
IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
Phone & FAX: +44-1962-818014    Mobile: +44-7802-467431  
Email:  mike_edwards@uk.ibm.com
 

 




 

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



 








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]