Difference between revisions of "Teams Winter 2011/team4/lab2"

From CDOT Wiki
Jump to: navigation, search
(Create the Service Interface)
(Implement the Service Provider)
Line 39: Line 39:
 
* Now click Run in the bottom right of your workspace, if everything went correctly, you will see a message saying '''osgi> TimeZones System Registered !'''
 
* Now click Run in the bottom right of your workspace, if everything went correctly, you will see a message saying '''osgi> TimeZones System Registered !'''
  
==Implement the Service Provider==
 
===Register the service in the class Activator===
 
===Define the MANIFEST.MF for the service provider bundle===
 
===Install and run the Service Provider Bundle===
 
 
==Implement the Service Consumer==
 
==Implement the Service Consumer==
 
===Define the MANIFEST.MF for the service consumer bundle===
 
===Define the MANIFEST.MF for the service consumer bundle===

Revision as of 22:25, 16 February 2011

Lab 2


Tutorial

Create the Service Interface

Define the service interface

  • First download Eclipse Classic from here

Create the Interface Bundle

  • We now need to create a new plugin project, to do so do the following: File->New->Plug-in Project
  • After selecting Plug-in Project from the options, give the Project a name according to the lab structure defined in the previous tutorial (cs.ecl.lab.<name here>

T4L2-1.png

  • After doing so, click next, where you will be presented with a screen that provides you with the project ID, version, name, ect. There will be an options section at the bottom of the window, be sure to unclick generate an activator, as it is not needed for the lab as the bundel is just interfaces and it is not run
  • You will now be presented with a screen that looks like the following:

T4L2-2.png

Creating the Interface

  • We will now add a package to the src folder of our project. Once you have done this you will add a class TimeZones and an Interface name Times to your package.
  • Enter code in both TimeZones and Times according to the following:

T4L2-3.png T4L2-5.png

  • If we want to use our package, we must export it in the interface bundle. First select MANIFEST.MF, then click on the runtime tab, and select "Add", then select your package. (Refer to Image below)

T4L2-4.png

  • Congratulations! You have successfully exported your package and we are ready to move onto step 2, implementing the Service Provider.

Implement the Service Provider

Create the Provider Bundle

  • Essentially, the strating steps to creating the service provider are almost identical to the starting steps of creating the service interface
  • The only difference here is after creating your plugin project (refer to previous steps for how-to) before clicking finish this time you MUST make sure generate an activator is checked, as we will need it this time.
  • By selecting generate activator, when Eclipse creates your plugin, it also creates an activator class which is used to handle the lifecycle of the plug-in and provides access to both the underlying OSGi system and the content of the plug-in.
  • In the previous step we exported our package for later use, it is now time to import this package. To do so, click on your MANIFEST.MF file, select the dependencies tab, and under the the right heading Imported Packages, select the add button (refer to picture below)
  • Like before, enter the name of your package and select ok.

Run the Service Provider Bundle

  • It is now time to run the service provider bundle we have created
  • Right click on your MANIFEST.MF and select Run As->Run Configuration
  • Now RIght click OSGi Framework and select New
  • Your workspace should now be populated with numerous options
  • Uncheck target platform (by default it is selected) then click Add required bundles, and then click the checkbox Only show selected
  • Your workspace should look similar to this:
  • Now click Run in the bottom right of your workspace, if everything went correctly, you will see a message saying osgi> TimeZones System Registered !

Implement the Service Consumer

Define the MANIFEST.MF for the service consumer bundle

Use the class Activator to find the service

Implement a class where one can consume the service

Install and run the Service Consumer Bundle