OSGI component support in Service Creation

From Eclipsepedia

Revision as of 03:50, 27 December 2007 by Johnson.ma.iona.com (Talk | contribs)

Jump to: navigation, search

This wiki is aiming to discuss how to support OSGI based service component development in STP. Johnson Ma, Dec 27, 2007

Contents

Introduction

As more and more Middleware servers becomes OSGI based. We need to support users to create service component in the format of OSGI bundle in an Service Oriented Approach.

We will use ServiceMix 4.0 as a reference SOA runtime here, which is based on Apache Felix OSGI implementation.

Existing OSGI tooling

PDE OSGI tooling support

"Eclipse PDE UI also provides comprehensive OSGi tooling, which makes it an ideal environment for component programming, not just Eclipse plug-in development."

Apache Felix integration with Eclipse

Felix integration with eclipse from felix site, is a solution to integrate Felix with Eclipse IDE by

*Check out felix projects into Eclipse workspace
*Add the felix.jar to java project's classpath
*Create java launch config to run org.apache.felix.main

Spring OSGI Eclipse integration

How to create a Spring OSGI bundle proejct in Eclipse

Setting up Eclipse for Spring Dynamic Modules development


Requirements for OSGI tooling from Service Creation point for view

*Replaceable OSGI runtime:Should define extension point to locate osgi runtime
*Easy dependency configuration::Help user to setup dependencies to existing bundle/service loaded in the runtime
*Manifest Editor: user friendly manifest editor following OSGI spec. Try to reuse the Manifest editor from PDE here.
*Run and Debug support::  
*OSGI Console support: should show the osgi console in eclipse 


How to create a OSGI service component

How to deploy OSGI component to runtime

There maybe two ways for the deployment: I prepare the WTP based solution. since it can better integrate with SOAS in stp.

Deploy to WTP server

*Define a WTP server extension for OSGI runtime (ServiceMix for example)
*Users can start/stop the runtime from WTP server view
*Deploy user created osgi bundle to the server

Deploy using PDE?

org.eclipse.pde.ui.osgiFrameworks extension

Create a new osgi framework extension. The following example will create a new Apache Felix OSGI framework in eclipse

<plugin>
  <extension
        point="org.eclipse.pde.ui.osgiFrameworks">
     <framework
           id="org.eclipse.stp.sc.osgi.FelixFramework"
           initializer="org.eclipse.stp.sc.internal.osgi.launcher.FelixInitializer"
           launcherDelegate="org.eclipse.stp.sc.osgi.felix.FelixLaunchConfiguration"
           name="Felix OSGI Framework">
     </framework>
  </extension>

</plugin>

  • Create launch configuration under Run>OSGI framework.

How to test and debug

OSGI Console in eclipse

Since we start ServiceMix using WTP server framework. The OSGI console should show in the console view in Eclipse. Thus users can send commands, such as ss, start, stop, shutdown...etc.

User Scenarios

Spring meta data editor

The ServiceMix runtime is based on the Spring framework. We should looking into how to help users to create spring configuration --- a Spring metadata editor. (reuse editor from SpringIDE?)