Support @Remotable on implementation class, reference field, or reference
setter method
---------------------------------------------------------------------------------------
Key: TUSCANY-3948
URL: https://issues.apache.org/jira/browse/TUSCANY-3948
Project: Tuscany
Issue Type: Bug
Affects Versions: Java-SCA-2.0
Reporter: Greg Dritschler
Priority: Minor
The Java CAA spec says this about @Remotable:
3177 The @Remotable annotation has no attributes. When placed on a Java service
interface, it indicates that
3178 the interface is remotable. When placed on a Java service implementation
class, it indicates that all SCA
3179 service interfaces provided by the class (including the class itself, if
the class defines an SCA service
3180 interface) are remotable. When placed on a service reference, it indicates
that the interface for the
3181 reference is remotable.
I tried using @Remotable in this way...
@Reference
@Remotable
public Service1 reference1;
... but it fails with a compile error: annotation type not applicable to this
kind of declaration.
The Remotable annotation class in Tuscany has @Target(TYPE).
The spec says it is supposed to be @Target(TYPE,METHOD,FIELD,PARAMETER).
I also notice that ReferenceProcessor doesn't have any code to deal with
Remotable.
I also discovered that while ServiceProcessor tries to propagate @Remotable on
an implementation class to the service interfaces, it doesn't work because it
marks the interface remotable after introspection is done. This doesn't work
because some introspectors behave differently for local vs remote interfaces.
I am submitting a patch to fix the above problems.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira