The first is that osl.service.Service is now an abstract class rather than an interface. This had to be done so that we could support the second change, which is an alteration of how services are invoked. The service invocation interface has been changed so that it is easier for services to offer a variety of different functions. The programmer is also forced to demultiplex arguments in cases where a service may export several different functions. The new service invocation interface is very similar to the new version of actor extensions described above.
Registration is done by calling Service.serviceRegisterMethod .
The method Service.serviceInvoke is hardcoded to use the reflection packages to automatically look up and invoke the appropriate registered method in the service. Any result is returned back to the caller as usual, with ServiceException wrapping any errors. See osl.exmaples.remoteping.PingBoot for an example of the new syntax in action. Unfortunately, service invocations may be called from several areas within the foundry, so this change had to be propagated to ActorManager , ActorImpl and Actor . The YP service is now capable of mapping an ActorName to the ActorManagerName of the manager which currently manages the actor.