Hlavní menu
Nástroje |
UvodDoKomponent.MessagePrinterOsgi HistoryHide minor edits - Show changes to markup 22 January 2015, 16:11
by
- Changed lines 47-48 from:
context.ungetService(context.getServiceReference("cz.zcu.kiv.cosi.msgtalk.IMsgGen?")); to:
context.ungetService(context.getServiceReference("cz.zcu.kiv.cosi.msgtalk.IMsgGen?"));
22 January 2015, 16:10
by
- Changed lines 5-6 from:
Základem je samozřejmě rozhranní to:
Základem je samozřejmě rozhraní 22 January 2015, 16:08
by
- Changed lines 17-20 from:
Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Export-Package: cz.zcu.kiv.cosi.msgtalk to:
Export-Package: cz.zcu.kiv.cosi.msgtalk Changed line 36 from:
=java122 [= to:
Changed lines 43-44 from:
=] to:
Deleted line 46:
=java122 [= Changed lines 48-49 from:
=] to:
Changed lines 57-60 from:
Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Import-Package: cz.zcu.kiv.cosi.msgtalk, to:
Import-Package: cz.zcu.kiv.cosi.msgtalk, Deleted line 66:
=java122 [= Changed lines 72-73 from:
=] to:
16 December 2009, 14:32
by
- Changed lines 46-51 from:
Při ukončování je pak slušností odhlásit službu, tedy v metodě <code>stop()</code> bude následující řádka: <source>context.ungetService(context.getServiceReference("cz.zcu.kiv.cosi.msgtalk.IMsgGen?"));</source> == Klient == to:
Při ukončování je pak slušností odhlásit službu, tedy v metodě context.ungetService(context.getServiceReference("cz.zcu.kiv.cosi.msgtalk.IMsgGen")); KlientChanged lines 56-60 from:
=== Import package === V MANIFESTu? se musí přidat import package, aby měl klient přístup k rozhranní <code>IMsgGen?</code>. <source> to:
Import packageV MANIFESTu? se musí přidat import package, aby měl klient přístup k rozhranní =java122 [= Changed lines 62-63 from:
</source> to:
=] Changed lines 66-69 from:
=== Activator === Abychom získali službu, musíme nejdříve získat referenci, to provedeme voláním metody <code>getServiceReference()</code> a díky referenci můžeme získat již přímo službu voláním metody <code>getService()</code>. to:
ActivatorAbychom získali službu, musíme nejdříve získat referenci, to provedeme voláním metody Changed line 72 from:
<source> to:
=java122 [= Changed lines 78-81 from:
</source> === Spuštění === to:
=] Spuštění16 December 2009, 14:30
by
- Changed lines 5-14 from:
Základem je samozřejmě rozhranní <code>IMsgGen?</code> jako ve Springové implementaci MessagePrinterSpring. Práce s OSGi v Eclipsu (STS) je na této úrovni velice příjemná, protože Eclipse napovídá řešení a je schopný modifikovat MANIFEST, dle potřeby. == Server == Rozhranní <code>IMsgGen?</code> je definováno v serverové části a díky exportu je přístupné i u klienta. Implementace tohoto rozhranní je velice primitivní a zajímavý pak už může být pouze Activator. Ten službu zaregistruje a vypíše hlášku o startu - server běží. === Export package === V MANIFESTu? se musí přidat export package, aby měl klient přístup k rozhranní <code>IMsgGen?</code>. to:
Základem je samozřejmě rozhranní ServerRozhranní Export packageV MANIFESTu? se musí přidat export package, aby měl klient přístup k rozhranní Changed line 17 from:
<source> to:
=java122 [= Changed lines 19-20 from:
</source> to:
=] Changed lines 23-24 from:
=== Activator === to:
ActivatorChanged lines 27-32 from:
1) Vytvoříme instanci <code>IMsgGen?</code> 2) Tuto službu zaregistrujeme pomocí metody <code>registerService()</code>. Jako první parametr je název rozhranní, které vytvořená třída implementuje. To se používá z důvodu nezávislosti na implementaci. Klient bude vždy chtít službu zaregistrovanou pod jménem <code>cz.zcu.kiv.cosi.msgtalk.IMsgGen?</code>. A server může zaregistrovat buď tuto implementaci <code>MsgGenImpl?</code>, nebo úplně jinou <code>MsgGenAnotherImpl?</code>. to:
1) Vytvoříme instanci 2) Tuto službu zaregistrujeme pomocí metody Jako první parametr je název rozhranní, které vytvořená třída implementuje. To se používá z důvodu nezávislosti na implementaci. Klient bude vždy chtít službu zaregistrovanou pod jménem Changed line 37 from:
<source> to:
=java122 [= Changed lines 44-45 from:
</source> to:
=] 16 December 2009, 14:28
by
- Changed lines 1-4 from:
= MessagePrinter? v OSGi = V tomto tutoriálu se používá [http://www.springsource.com/products/sts SpringSource? Tool Suite]. to:
MessagePrinter? v OSGiV tomto tutoriálu se používá SpringSource Tool Suite. 16 December 2009, 13:28
by
- Added lines 1-82:
= MessagePrinter? v OSGi = V tomto tutoriálu se používá [http://www.springsource.com/products/sts SpringSource? Tool Suite]. Základem je samozřejmě rozhranní <code>IMsgGen?</code> jako ve Springové implementaci MessagePrinterSpring. Práce s OSGi v Eclipsu (STS) je na této úrovni velice příjemná, protože Eclipse napovídá řešení a je schopný modifikovat MANIFEST, dle potřeby. == Server == Rozhranní <code>IMsgGen?</code> je definováno v serverové části a díky exportu je přístupné i u klienta. Implementace tohoto rozhranní je velice primitivní a zajímavý pak už může být pouze Activator. Ten službu zaregistruje a vypíše hlášku o startu - server běží. === Export package === V MANIFESTu? se musí přidat export package, aby měl klient přístup k rozhranní <code>IMsgGen?</code>. Zápis vypadá následovně: <source> Export-Package: cz.zcu.kiv.cosi.msgtalk </source> Ale je přístupný i přes GUI manifestu, záložka Runtime. V oblasti Exported Packages tlačítko Add a vybrat pomocí GUI. === Activator === V následujícím příkladu je vidět spuštění serveru: 1) Vytvoříme instanci <code>IMsgGen?</code> 2) Tuto službu zaregistrujeme pomocí metody <code>registerService()</code>. Jako první parametr je název rozhranní, které vytvořená třída implementuje. To se používá z důvodu nezávislosti na implementaci. Klient bude vždy chtít službu zaregistrovanou pod jménem <code>cz.zcu.kiv.cosi.msgtalk.IMsgGen?</code>. A server může zaregistrovat buď tuto implementaci <code>MsgGenImpl?</code>, nebo úplně jinou <code>MsgGenAnotherImpl?</code>. Jako druhý je aktivní objekt. A jako třetí je tabulka parametrů, v tomto případě prázdná. <source> public void start(BundleContext? context) throws Exception { System.out.println("Starting server..."); msgGen = new MsgGenImpl?(); context.registerService("cz.zcu.kiv.cosi.msgtalk.IMsgGen?", msgGen, new Hashtable()); System.out.println("MsgGen? registered..."); } </source> Při ukončování je pak slušností odhlásit službu, tedy v metodě <code>stop()</code> bude následující řádka: <source>context.ungetService(context.getServiceReference("cz.zcu.kiv.cosi.msgtalk.IMsgGen?"));</source> == Klient == Abychom mohli pracovat, musíme nejprve importovat package, který obsahuje rozhranní <code>IMsgGen?</code>. Pak budeme už jen zkoušet v Activatoru zavolat službu registrovanou na tento interface. === Import package === V MANIFESTu? se musí přidat import package, aby měl klient přístup k rozhranní <code>IMsgGen?</code>. <source> Import-Package: cz.zcu.kiv.cosi.msgtalk, </source> Ale je přístupný i přes GUI manifestu, záložka Dependencies. V oblasti Imported Packages tlačítko Add a vybrat pomocí GUI. === Activator === Abychom získali službu, musíme nejdříve získat referenci, to provedeme voláním metody <code>getServiceReference()</code> a díky referenci můžeme získat již přímo službu voláním metody <code>getService()</code>. To je vše k získání služby, s kterou se již může pracovat dál. <source> public void start(BundleContext? context) throws Exception { msgGen = (IMsgGen?) context.getService(context.getServiceReference("cz.zcu.kiv.cosi.msgtalk.IMsgGen?")); System.out.println("client started..."); System.out.println(msgGen.getMsg()); } </source> === Spuštění === V Run configurations ... je třeba zaškrtnout oba klienty Server i Klient a nastavit Serveru, aby se spouštěl před Klientem, tedy Start level menší než u Serveru. V Eclipsu i STS je defaultně Start level na 4, dá se změnit u Default start level. |