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

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

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

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

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

Warning: Cannot modify header information - headers already sent by (output started at /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php:564) in /home/system/www/apache/wiki.kiv.zcu.cz/index.php on line 885
Wiki KIVu > UvodDoKomponent > MessagePrinterDS

UvodDoKomponent: MessagePrinterDS

from Wiki KIVu

Message Printer v Declarative Services

Implementace v DS vychází z MessagePrinterOsgi. Odstranili jsme ale Activatory a přidali jsme komponentové definiční soubory.

Serverový definiční soubor

Abychom mohli v OSGi zaregistrovat službu pomocí DS, musíme udělat dva kroky:

1) Vytvořit si komponentový definiční soubor pro implementaci konkrétního rozhranní

2) Pomocí tagu <service> implementaci zaregistrovat jako službu na rozhranní:

Tato registrace je tedy ještě jednodušší než ve Spring DM.

<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="MessagePrinterDSServer">
<implementation class="cz.zcu.kiv.cosi.msgtalk.server.MsgGenImpl"/>
<service>
<provide interface="cz.zcu.kiv.cosi.msgtalk.IMsgGen"/>
</service>
</scr:component>

Klientský konfigurační soubor

Protože chceme získat službu, která je zaregistrovaná na rozhranní cz.zcu.kiv.cosi.msgtalk.IMsgGen? použijeme notaci <reference interface="cz.zcu.kiv.cosi.msgtalk.IMsgGen?" ...> s následujícími důležitými atributy:

Cardinality určuje vazbu mezi definovanou komponentou a referenční komponentou. První číslo určuje zda musí být referenční komponenta již definována, či nám na tom nezáleží. Druhé číslo definuje kolik referenčních komponent chceme - zda jednu, nebo víc.

<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="MessagePrinterDSClient">
<implementation class="cz.zcu.kiv.cosi.msgtalk.client.Client"/>
<reference bind="run" cardinality="1..1" interface="cz.zcu.kiv.cosi.msgtalk.IMsgGen" name="MsgGen" policy="static" />
</scr:component>
Retrieved from http://wiki.kiv.zcu.cz/UvodDoKomponent/MessagePrinterDS
Content last modified on 16 December 2009, 15:04