UvodDoKomponent: HelloWorldOsgi

from Wiki KIVu

Hello World v OSGi

Vytvoření projektu

1) V menu vybereme File -> New -> Other

2) V otevřeném okně pak zvolíme Plug-in Project a pokračujeme do dalšího okna Next

3) V novém okně pak pouze vyplníme Project name a změníme parametr This plugin is targeted to run with: na hodnotu an OSGi framework: a pokračujeme dál Next

4) Na této stránce můžeme pokračovat rovnou dále Next. Nebo můžeme změnit automaticky vytvořený startovní package v políčku Activator: a zadáváme ve tvaru vas.package.Activator

Na této nové stránce si vybereme z vytvořených templatů Hello OSGi Bundle

Nejdůležitější soubory

V OSGi jsou dva - MANIFEST.MF (zde dochází k nastavení celé aplikace) a Activator, kde dochází ke spuštění OSGi bundle.

Activator obsahuje dvě metody start() (provede se při spouštění bundle) a stop() (provede se při ukončení bundle).

	public void start(BundleContext? context) throws Exception {
		System.out.println("Hello World!!");
	}

Spuštění bundle

1) Přes pravé tlačítko na název projektu se dostaneme ke kontextovému menu. Zde zvolíme Run As -> OSGi Framework (tímto se vytvoří nová spouštěcí konfigurace pro OSGi frameworky a defaultně se začnou spouštět všechny eclipsové bundly)

2) V menu tedy zvolíme Run -> Run configurations ...

3) Pokud vám okno už nenaběhlo na položku OSGi Framework, přepněte se na ni, uvidíte seznam všech spustitelných bundlů

4) Aby se nespouštěli všechny, musíme je nejprve vypnout kliknutím na checkbox (Target Platform) v seznamu bundlů

5) A abychom nezpůsobili nějaké problémy, přidáme potřebné bundly pomocí tlačítka Add Required Bundles

Okno by mělo vypadat následovně:

Pokud nyní spustíme Equinox, tak zjistíme, že se stále spouští všechny bundly, což nechceme, protože to hrozně zdržuje. (pokud chcete vědět, co je spuštěné, napište do konzole příkaz ss)

6) V konfiguraci tedy přepneme na záložku Settings a zaškrtneme checkbox Clear the configuration area before lauchin

(pokud nyní zkusíme příkaz ss uvidíme jen 5 spuštěných bundlů, nemluvě o podstatně větší rychlosti spouštění)

Retrieved from http://wiki.kiv.zcu.cz/UvodDoKomponent/HelloWorldOsgi
Content last modified on 22 January 2015, 16:09