OSGi Remote Services Testing framework for ECF

Jasintha Kapilajith Dasanayake

Short description: ECF has provided an implementation for OSGI Remote service Specification and provides a good interface to develop OSGI Remote Services but there is no proper implementation for testing those services.The main goal of this project is to provide an annotation based extendible test framework for testing remote services which has been implemented using the ECF .

 

Abstract 

ECF has provided an implementation  for OSGI Remote service Specification. The OSGI remote service  specification 4.2 has been implemented in the latest release of the ECF.

Although ECF provides a good interface to develop OSGI Remote Services, there is no proper implementation for testing those services. We can write unit tests, but it isn't good enough to test remote services Therefore I am proposing a remote service testing framework for ECF.


Detailed Information 

The main goal of this project is to provide an annotation based extendible test framework for testing remote services which has been implemented using the ECF .

Following are the major tasks in implementing this framework. 

 

1. Introduce annotations

 

Introduce new annotations based on the remote service functionalities.

 e.g.: @hostService , @regService, etc. 

 

2 Process the annotations

 

Develop a processor to process above annotations and identify the meaning of the annotations.

The test class will be read using java reflection then those annotation will be processing using the java annotation tool framework which provide an annotation processor.

 

3 Invoke tests 

Start the test process according to the provided annotations.

 

Example 

Assume there is a service called FooService which has 3 operation calls  X, Y and Z. 

Using the proposed  test framework,  we can implement tests as follows,

 

In the test Class 

 

@hostService{ // ' provide the relevant parameters here ex.. IP of the host '}

 

@regService {//'provide the param which need to publish the  service in registy  ex: Service name... '}

 

@X

public void testXoperation(){

//implemetation

}

 

@Y

public void testYoperation(){

 

}

…………….

 

  @hostService - Host the Service  in the given server 

 

  @regservice - Register and publish the service in service registry 

 

  @X or @Y - provide the mapping to service operation 

 

 

 More information is available on the project wiki page

 

 

Background 

 

I expect to go through the ECF Remote service implementation  to get a better idea about 

how ECF support for implementing OSGI remote services. Also I will have to get a clear understand  the java annotation tool framework to use annotation processor. I will need lot s of help to understand the implementation of remote service specification in ECF

 

Timeline:

 April 25:

Getting familiar with  Remote Service Implementation  (I have already started this task)

Interact with the mentor and the ECF community is vital in this period.

May 23:

Start  the development of the framework (There is a high possibility to start this work earlier)

July 11:

Complete the functionalities of the hosting and registering the service using the annotation 

Testing the written code should be done throughout this period

 July 14:

Submit the code for midterm evaluations.

August 15:

Complete the functionalities of the operation mapping annotations    

Testing the written code should be done throughout this period

August 22:

Complete documentation

August 25:

Submit completed source code

 

Deliverable 

 Test framework implementation 

  Relevant Documentations and User Guides  

 

Expectations.

need to help to define the phases of the project also need to discuss what kind of things should provide as annotations 

 

Contact Information

Name: Jasintha Kapilajith Dasanayake

E-mail: jasinthad@gmail.com

 

I have more than one year working experience as Software Engineer at WSO2 Inc. which is based on the open source model. At there I involve in the projects of WSO2 eclipse tooling team. The tooling team develops eclipse plug-ins for their products. So I am very much familiar with Eclipse plug-in development.


 

I have a good experience with open source technologies and tools and working with open source communities.

 

My bachelor desertion was about the Service oriented Architecture in the Enterprise Resources Planing  

 

Possible Mentors: 

Scott Lewis 

Markus Kuppe

Harshana Martin