How to implement and add en extended service to EasyVIPER?
As EasyVIPER is an extensible engine, it is possible to add specific services, thanks to the com.ebmwebsourcing.easyviper.core.api.engine.thread.service.Service interface.
To create a new extended service, the basic thing is to develop a class implementing this interface, and then to add the service to a core instance of EasyVIPER.
A good way to perform this task follows these steps:
- Create an interface that extends Service with specific operations
- Create the class implementing MyExtendedService and extending the utility abstract class AbstractServiceImpl:
The method run() can be filled as in the example for a by default behaviour.
Once done the new MyExtendedServiceImpl service can be added to EasyVIPER core with the following code:
In order to call methods of the extended service you can use the following code:
Finally a good way to conceive an extended service is to start from a formal description of its interface, with a WSDL definition for example.
Then, the corresponding Java interface can be generated thanks to CXF wsdl2java facilities. The interface of MyExtendedService is then extending the EasyVIPER service and the description interface:
The implementation class development is then led by the formal description.