← 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
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 →