← Prev in month ← Prev in thread
Next in thread → Next in month →

[ISSUE 59] SCA Spring C & I specification does not state what happens whena Bean exposed as a service implements mutliple interfaces - UPDATEDPROPOSAL

From
Mike Edwards <>
Date
2009-07-17T08:34:51+00:00
ID
Thread
[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:  

 

 

 

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
← Prev in month ← Prev in thread
Next in thread → Next in month →