Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added more callback questions

...

  • i can see some of the .composite configurations have moved to annotations. please confirm that the @Service and @Callback class level annotations are the equivalent of <service/> and <callback/>
  • is @Remotable enabling an interface to be injected remotely to another component? Why didn't it appear in the samples? Is this used by default for services?
  • just to make things clear, @Remotable and @Callback annotations at class level should be used on interfaces as they interfaces will get injected (or probably proxies to the implementation) and @Service annotation should be used on the implementation classes. Please confirm this as at first sight seemed to me odd that a @Service is not @Remotable (didn't notice the annotation on the interface). might be helpful for someone
  • @Callback annotation at class level denotes that the current interface will have a callback interface too and it might help somebody confused about this.nothing more. This is confusing as the first thing that comes into your mind when seeing an interface marked with @Callback is that it is a callback interface (naming on the interfaces helped that as well as they are very similar). And then you see it is implemented by the service provider and everything becomes unclear. What does this annotation help for? The callback interface is not a part of the service interface (methods cannot be called from outside), it's just about the internals of the service. Would be the @Callback annotation at instance variable level enough for injection? Is this used to facilitate the generation of configurations like
    <interface.java interface="somepackage.MyService"
    callbackInterface="somepackage.MyServiceCallback"/>
    Is this necessary so that when a component makes a call on that service and implements the callback interface to be aware of the fact that it should send a reference of it to be injected?

itest-callback-basic-ws

  • very good .composite. if updated with the 4th method might be a very good candidate to become a sample.

itest-callback-complex-type

  • what is this different than itest-callback-basic or itest-callback-api?

itest-callback-multiple-wires

  • what is @Scope annotation? what other values can it have?
  • what is @OneWay annotation?
  • explain what multiple wires refers to

general questions

  • how is tuscany runtime loaded in tomcat when deploying a war for instance. to be more specific, how is tomcat made aware of tuscany nature of the project?
    • SL - If you choose the package the Tuscany runtime inside the WAR then there is a Tuscany filter that's configured in the web.xml file. There is also some deeper Tuscany integration in which case the Tomcat runtime itself is updated to understand Tuscany contributions in which case you don't need to package the Tuscany runtime inside the contribution war
  • define the term tuscany contribution and other ways of "packaging" tuscany composites
  • if for a callback or a service no wiring is specified how is injection done? json? does tuscany choose a default wire?

general suggestions

  • the above questions have risen after trying to learn about tuscany exclusively browsing the website and the samples. meanwhile, i found the osoa website and specifications http://osoa.org/display/Main/Service+Component+Architecture+SpecificationsImage Added which i read after going through the samples and helped me answer many of my questions (especially the annotation ones). maybe it will be a good idea to have a special page on the tuscany website which would contain the up-to-date specifications from osoa. the documents were really helpful.