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