Open main menu

CDOT Wiki β

Changes

OSGi : Install Eclipse Plugins

2,542 bytes added, 15:17, 23 January 2011
no edit summary
[[Category:ECL_Activities]]__NOTOC__
{{Ecl_installation|type=OSGi|type-small=osgi|name=Eclipse Classic|install=Follow this [http://www.vogella.de/articles/OSGi/article.html tutorial to build OSGi bundels after you install Elcipse Classic]}}
 
<h3>Steps for Building the first Bundle</h3>
 
<h4>1. Study the Interfaces</h4>
 
* [http://www.osgi.org/javadoc/r4v42/org/osgi/framework/Bundle.html Bundle]
* [http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleContext.html BundleContext]
* [http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleActivator.html BundleActivator]
----------
 
<h4>2. Define the BundleActivator class</h4>
 
The ''BundleActivator'' customizes the starting and stopping of a bundle.
 
''BundleActivator'' is an interface that may be implemented when a bundle is started or stopped. The Framework can create instances of a bundle's ''BundleActivator'' as required. If an instance's ''BundleActivator.start'' method executes successfully, it is guaranteed that the same instance's ''BundleActivator.stop'' method will be called when the bundle is to be stopped. The Framework must not concurrently call a BundleActivator object.
 
''BundleActivator'' is specified through the Bundle-Activator Manifest header.
<source lang="java">
package cs.ecl.osgi.simple.helloworld;
 
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
 
public class Activator implements BundleActivator {
 
private static BundleContext context;
 
static BundleContext getContext() {
return context;
}
public void start(BundleContext bundleContext) throws Exception {
Activator.context = bundleContext;
System.out.println("Hello World from OSGi - start method in BundleActivator!");
}
public void stop(BundleContext bundleContext) throws Exception {
Activator.context = null;
System.out.println("Goodby World from OSGi - stop method in BundleActivator!");
}
 
}
</source>
 
<h4>2. Define the MANIFEST.MF</h4> for the ''cs.ecl.osgi.simple.helloworld'' bundle
 
<source lang="xml">
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Helloworld
Bundle-SymbolicName: cs.ecl.osgi.simple.helloworld
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: cs.ecl.osgi.simple.helloworld.Activator
Bundle-Vendor: Seneca College - Eclipse Course
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.osgi.framework;version="1.3.0"
Bundle-ActivationPolicy: lazy
</source>
 
The file defines:
1. The bundle identity by headers value of Bundle-SymbolicName and Bundle-Version
 
cs.ecl.osgi.simple.helloworld & 1.0.0.qualifier
 
2. The bundle requirements by header value of Import-Package
 
org.osgi.framework;version="1.3.0"
 
3. The bundle activator by header value Bundle-Activator
 
cs.ecl.osgi.simple.helloworld.Activator