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] ISSUE 3 - Local services expose implementation classes as theirtype


I'm OK with most of this but I don't agree with the paragraph starting 2). 
 The value of having @Local is that it makes the definition of local 
services explicit, either by @Service or @Local.  I don't think services 
should ever be generated from interfaces without an explicit indication 
that this was intended.

    Simon

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



"Michael Rowley" <mrowley@bea.com> 
18/10/2007 19:48

To
"Michael Rowley" <mrowley@bea.com>, <sca-j@lists.oasis-open.org>
cc

Subject
RE: [sca-j] ISSUE 3 - Local services expose implementation classes as 
their type






 
PROPOSAL:
 
Introduce a new interface annotation called @Local.  If a component 
implementation implements an interface that has been marked as @Local, 
then the component type will include a service whose type is that 
(non-remotable) interface.  In this way, the @Local annotation is similar 
to the @Remotable annotation, but without implying remote-call semantics.
 
The rules for generating services for a class that does not include the 
@Service annotation are the following:
 
1) If the class implements interfaces, generate services for each 
implemented interface that has been marked as either @Remotable or @Local, 
where the type of the service is that interface.  Any implemented 
interfaces that have not been marked as either @Remotable or @Local do not 
have services generated for them.
 
2) If none of the interfaces implemented by the class has been marked as 
@Remotable or @Local, then generate a service for each implemented 
interface that is not a ?marker interface? (i.e. an interface with no 
methods, like Serializable).
 
3) If the class implements no interfaces, then it offers a single service 
whose type is that class.
 
 
Michael
 
 

From: Barack, Ron [mailto:ron.barack@sap.com] 
Sent: Thursday, October 04, 2007 5:27 AM
To: sca-j@lists.oasis-open.org
Subject: [sca-j] ISSUE LOGGED: JAVA-3: Local services expose 
implementation classes as their type
 
http://www.osoa.org/jira/browse/JAVA-3
 

Von: Michael Rowley [mailto:mrowley@bea.com] 
Gesendet: Mittwoch, 26. September 2007 00:22
An: sca-j@lists.oasis-open.org
Betreff: [sca-j] NEW ISSUE: Local services expose implementation classes 
as their type
 
TARGET: Java Common Annotations and APIs specification
        Java Component Implementation Specification
            Section titled: ?Local and Remotable Services?
 
DESCRIPTION:
 
Currently, this section states the following:
 
If an implementation class has implemented interfaces that are not 
decorated with an @Remotable annotation, the class is considered to 
implement a single local service whose type is defined by the class.
 
This is unfortunate, since the extremely common pattern of:
 
   class FooImpl implements Foo {}
 
Will result in a component that offers a service whose type is FooImpl 
(assuming that Foo hasn?t been marked as @Remotable).
 
It should be possible for this pattern to result in a service whose type 
is the Foo interface.
 
PROPOSAL:
 
Introduce a new interface annotation called @Local.  If a component 
implementation implements an interface that has been marked as @Local, 
then the component type will include a service whose type is that 
interface.
 






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]