Difference between revisions of "Teams Winter 2011/team1/OSGI/Implement the Service Consumer"
Line 22: | Line 22: | ||
6. You should have three bundles now: <br /> | 6. You should have three bundles now: <br /> | ||
[[Image: Consumer1.jpg | 300px ]] | [[Image: Consumer1.jpg | 300px ]] | ||
+ | <br/>7. Open your consumer's '''Activator''' and get the servers's reference in it's start() method: <br/> | ||
+ | <pre> | ||
+ | public void start(BundleContext context) throws Exception { | ||
+ | Activator.context = context; | ||
+ | |||
+ | ServiceReference reference = context | ||
+ | .getServiceReference(Ticketing.class.getName()); | ||
+ | if (reference != null) { | ||
+ | tkg = (Ticketing) context.getService(reference); | ||
+ | </pre> | ||
+ | <br/>8. Add code for your GUI and use this service functionalities in it. In order to use it(reference) create a static field in your GUI: <br/> | ||
+ | <code>static Ticketing tkg;</code> | ||
+ | <br/>9. |
Revision as of 16:13, 16 February 2011
3. Implement the Service Consumer
1. You need service interface and service provider bundles to run your consumer
2. Create a new Plug-in-Project Ticketing Consumer (File -> New -> Other -> Plug-in-Project)
3. Give it a distinctive name and accept all defaults for the next screens. Click Finish
4. Your project is created and MANIFEST file opens. Click on Dependences and add interface bundle
5. Check your manifest file:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Consumer
Bundle-SymbolicName: cs.ecl.osgi.lab.ticketing.consumer
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: cs.ecl.osgi.lab.ticketing.consumer.Activator
Bundle-Vendor: Team1
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Import-Package: cs.ecl.osgi.lab.ticketing,
org.osgi.framework;version="1.3.0"
6. You should have three bundles now:
7. Open your consumer's Activator and get the servers's reference in it's start() method:
public void start(BundleContext context) throws Exception { Activator.context = context; ServiceReference reference = context .getServiceReference(Ticketing.class.getName()); if (reference != null) { tkg = (Ticketing) context.getService(reference);
8. Add code for your GUI and use this service functionalities in it. In order to use it(reference) create a static field in your GUI:
static Ticketing tkg;
9.