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

        

Reply via email to