Changes

Jump to: navigation, search

Teams Winter 2011/team1/OSGI/Implement the Service Consumer

1,123 bytes added, 17:28, 16 February 2011
no edit summary
=== 3. Implement the Service Consumer ===
1. You need service interface and service provider bundles to run your consumer<br />2. Create a new Plug-in-Project '''Ticketing Consumer''' (''File -> New -> Other -> Plug-in-Project'')<br />3. Give it a distinctive name and accept all defaults for the next screens. Click ''Finish''<br />4. Your project is created and MANIFEST file opens. Click on ''Dependences'' and add interface bundle<br />65. Check your manifest file:<br /> <code> '''Manifest-Version:''' 1.0 <br /> '''Bundle-ManifestVersion:''' 2 <br /> '''Bundle-Name:''' Consumer <br /> '''Bundle-SymbolicName:''' cs.ecl.osgi.lab.ticketing.consumer <br /> '''Bundle-Version:''' 1.0.0.qualifier <br /> '''Bundle-Activator:''' cs.ecl.osgi.lab.ticketing.consumer.Activator <br /> '''Bundle-Vendor:''' Team1 <br /> '''Require-Bundle:''' org.eclipse.ui, <br /> org.eclipse.core.runtime <br /> '''Bundle-RequiredExecutionEnvironment:''' JavaSE-1.6 <br /> '''Bundle-ActivationPolicy:''' lazy <br /> '''Import-Package:''' cs.ecl.osgi.lab.ticketing, <br /> org.osgi.framework;version="1.3.0" <br /></code> 6. You should have three bundles now: <br />[[Image: Consumer1.jpg | 300px ]]<br/>7. Open your consumer's '''Activator''' and get the servers's reference in it's start() method: <br/>
<pre>
'''Manifest-Version:''' 1public void start(BundleContext context) throws Exception { Activator.0context = context; '''Bundle-ManifestVersion:''' 2 '''Bundle-Name:''' Consumer ServiceReference reference = context '''Bundle-SymbolicName:''' cs .eclgetServiceReference(Ticketing.osgiclass.labgetName()); if (reference != null) { tkg = (Ticketing) context.ticketinggetService(reference);</pre><br/>8.consumer '''Bundle-VersionAdd code for your GUI(get it from repository [https:''' 1.0.0.qualifier '''Bundle-Activator//ecl500_111a11:''' cspmGN9329@zenit.eclsenecac.osgion.labca/svn/ecl500_111rep1/Lab2/branches/Consumer/] ) and use this service functionalities in it.ticketingIn order to use it(reference) create a static field in your GUI: <br/><code>static Ticketing tkg;</code><br/>9.Run your consumer.Activator '''BundleRight click -Vendor:''' Team1 '''Require> Run as -Bundle:''' org> Run Configuration.eclipse.ui, org.eclipse.core.runtime '''Bundle-RequiredExecutionEnvironment:> OSGi Framework''' JavaSE-1.6 Select all three bundles and click Add Required bundles. Click ''OK'Bundle-ActivationPolicy:''' lazy '''Import-Package:''' cs.ecl.osgi.lab.ticketing, org.osgi.framework;version="1.3.0" <br/pre>510. You should have three bundles nowNow you can test your provider services:<br/>[[Image | Consumer1: Consumer2.jpg : | 500px ]]
1
edit

Navigation menu