Hlavní menu

Nástroje

UvodDoKomponent / ParkovisteSpringDM

View (print) - Edit page | Recent changes - Page history

Updated 22 January 2015, 15:43 by PremekBrada

UvodDoKomponent.ParkovisteSpringDM History

Hide minor edits - Show changes to output

22 January 2015, 15:43 by PremekBrada -
Changed lines 1-11 from:
to:
!! Parkoviště ve Spring DM

Implementace ve Spring DM vychází z [[ParkovisteOsgi]]. Odstranili jsme ale Activatory a přidali jsme Springové konfigurační soubory. Proto zde budou informace pouze k těmto konfiguračním souborům. O eventách si přečtěte v [[ParkovisteOsgi]].

Springové konfigurační soubory musíme vytvořit s dvěmi XSD namespacy - beans a osgi.

!!! Základ všech konfiguračních souborů

V každém bundlu se samozřejmě vytvoří jedna beana, která se pak musí zaregistrovat podobně jako '''Konfigurace'''.

Changed lines 14-18 from:
to:

Každá služba se pak samozřejmě musí získat, aby se mohla použít. Podobně jako '''Konfigurace'''.
Changed lines 18-22 from:
to:

A pokud chceme tuto referenci použít jako konstruktorový argument, musíme použít následující zápis @@<constructor-arg ref="reference"/>@@, protože jinak mi Spring DM házel chybu.
Changed lines 25-31 from:
to:

!!! Získání EventAdmina

Abychom mohli používat eventy, musíme si zavolat službu na rozhranní EventAdmina. Provede se to naprosto stejně, jako volání jakékoliv jiné služby v Spring DM. Tedy:
Changed lines 31-44 from:
to:

!!! Eventy v konfiguračních souborech

Protože konfigurační soubory nahrazují Activatory a v těch jsme si registrovali listenery, určitě budeme muset něco registrovat i zde.


Při registraci EventHandlera jsme v Activatoru používali vytvořenou instanci listeneru a parametry.

Zde tedy použijeme referenci na beanu (což je vlastně ta instance listeneru).

A parametry službě nastavíme pomocí vnořeného uzlu @@<osgi:service-properties>@@, do kterého se vkládají parametry obdobně jako do hashovací tabulky, tedy pomocí @@<entry key="klic" value="hodnota" />@@
Changed lines 49-61 from:
to:

!!! Registrace služby na víc rozhranní

Stejně jako v OSGi implementaci, i zde Brana implementuje dvě rozhranní - IZapVyp a IPrijeloOdjelo.

V OSGi jsme se však nemuseli starat o způsob registrace služby. Zaregistrovali jsme ji na IZapVyp, ale bez problému šla přetypovat i na IPrijeloOdjelo.

To však ve Spring DM nejde. @@<osgi:service>@@ totiž odešle beanu pouze s tou informací, že jde o rozhranní, pod kterým jsme službu zaregistrovali. Přetypovat pak nejde.

Musíme ji tedy zaregistrovat pod několik rozhranní, jako v následujícím příkladu. Využijeme uzlu @@<osgi:interfaces>@@

Changed lines 70-76 from:
to:


!!! Použití filtru při výběru služby

Podobně jako v OSGi i zde můžeme použít filtr, když máme na jednom rozhranní zaregistrováno více služeb. Použití je ještě jednodušší - použije se atribut @@filter="(pravidlo)"@@
Deleted line 78:
=]
22 January 2015, 15:42 by PremekBrada -
Changed lines 1-10 from:
!! Parkoviště ve Spring DM

Implementace ve Spring DM vychází z [[ParkovisteOsgi]]. Odstranili jsme ale Activatory a přidali jsme Springové konfigurační soubory. Proto zde budou informace pouze k těmto konfiguračním souborům. O eventách si přečtěte v [[ParkovisteOsgi]].

Springové konfigurační soubory musíme vytvořit s dvěmi XSD namespacy - beans a osgi.

!!! Základ všech konfiguračních souborů

V každém bundlu se samozřejmě vytvoří jedna beana, která se pak musí zaregistrovat podobně jako '''Konfigurace'''.
to:
Changed lines 16-18 from:
Každá služba se pak samozřejmě musí získat, aby se mohla použít. Podobně jako '''Konfigurace'''.

=java122 [=
to:
Changed lines 22-24 from:
A pokud chceme tuto referenci použít jako konstruktorový argument, musíme použít následující zápis @@<constructor-arg ref="reference"/>@@, protože jinak mi Spring DM házel chybu.

=java122 [=
to:
Changed lines 31-35 from:
!!! Získání EventAdmina

Abychom mohli používat eventy, musíme si zavolat službu na rozhranní EventAdmina. Provede se to naprosto stejně, jako volání jakékoliv jiné služby v Spring DM. Tedy:

=java122 [=
to:
Changed lines 39-50 from:
!!! Eventy v konfiguračních souborech

Protože konfigurační soubory nahrazují Activatory a v těch jsme si registrovali listenery, určitě budeme muset něco registrovat i zde.


Při registraci EventHandlera jsme v Activatoru používali vytvořenou instanci listeneru a parametry.

Zde tedy použijeme referenci na beanu (což je vlastně ta instance listeneru).

A parametry službě nastavíme pomocí vnořeného uzlu @@<osgi:service-properties>@@, do kterého se vkládají parametry obdobně jako do hashovací tabulky, tedy pomocí @@<entry key="klic" value="hodnota" />@@

=java122 [=
to:
Changed lines 59-69 from:
!!! Registrace služby na víc rozhranní

Stejně jako v OSGi implementaci, i zde Brana implementuje dvě rozhranní - IZapVyp a IPrijeloOdjelo.

V OSGi jsme se však nemuseli starat o způsob registrace služby. Zaregistrovali jsme ji na IZapVyp, ale bez problému šla přetypovat i na IPrijeloOdjelo.

To však ve Spring DM nejde. @@<osgi:service>@@ totiž odešle beanu pouze s tou informací, že jde o rozhranní, pod kterým jsme službu zaregistrovali. Přetypovat pak nejde.

Musíme ji tedy zaregistrovat pod několik rozhranní, jako v následujícím příkladu. Využijeme uzlu @@<osgi:interfaces>@@

=java122 [=
to:
Changed lines 81-85 from:
!!! Použití filtru při výběru služby

Podobně jako v OSGi i zde můžeme použít filtr, když máme na jednom rozhranní zaregistrováno více služeb. Použití je ještě jednodušší - použije se atribut @@filter="(pravidlo)"@@

=java122 [=
to:
22 January 2015, 15:40 by PremekBrada -
Changed line 11 from:
=java122 [=
to:
[=
22 January 2015, 15:40 by PremekBrada -
16 December 2009, 14:55 by Snajberk -
Added lines 1-89:
!! Parkoviště ve Spring DM

Implementace ve Spring DM vychází z [[ParkovisteOsgi]]. Odstranili jsme ale Activatory a přidali jsme Springové konfigurační soubory. Proto zde budou informace pouze k těmto konfiguračním souborům. O eventách si přečtěte v [[ParkovisteOsgi]].

Springové konfigurační soubory musíme vytvořit s dvěmi XSD namespacy - beans a osgi.

!!! Základ všech konfiguračních souborů

V každém bundlu se samozřejmě vytvoří jedna beana, která se pak musí zaregistrovat podobně jako '''Konfigurace'''.

=java122 [=
<osgi:service id="KonfiguraceZarizeniService" ref="KonfiguraceZarizeni"
interface="cz.zcu.kiv.cosi.parkoviste.konfigurace.IKonfigurace" />
=]

Každá služba se pak samozřejmě musí získat, aby se mohla použít. Podobně jako '''Konfigurace'''.

=java122 [=
<osgi:reference id="KonfiguraceZarizeni" interface="cz.zcu.kiv.cosi.parkoviste.konfigurace.IKonfigurace" />
=]

A pokud chceme tuto referenci použít jako konstruktorový argument, musíme použít následující zápis @@<constructor-arg ref="reference"/>@@, protože jinak mi Spring DM házel chybu.

=java122 [=
<bean id="Parkoviste"
class="cz.zcu.kiv.cosi.parkoviste.parkoviste.Parkoviste">
<constructor-arg ref="KonfiguraceZarizeni"/>
</bean>
=]

!!! Získání EventAdmina

Abychom mohli používat eventy, musíme si zavolat službu na rozhranní EventAdmina. Provede se to naprosto stejně, jako volání jakékoliv jiné služby v Spring DM. Tedy:

=java122 [=
<osgi:reference id="EventAdmin" interface="org.osgi.service.event.EventAdmin" />
=]

!!! Eventy v konfiguračních souborech

Protože konfigurační soubory nahrazují Activatory a v těch jsme si registrovali listenery, určitě budeme muset něco registrovat i zde.


Při registraci EventHandlera jsme v Activatoru používali vytvořenou instanci listeneru a parametry.

Zde tedy použijeme referenci na beanu (což je vlastně ta instance listeneru).

A parametry službě nastavíme pomocí vnořeného uzlu @@<osgi:service-properties>@@, do kterého se vkládají parametry obdobně jako do hashovací tabulky, tedy pomocí @@<entry key="klic" value="hodnota" />@@

=java122 [=
<osgi:service id="BranaListenerService" ref="Brana"
interface="org.osgi.service.event.EventHandler" >
<osgi:service-properties>
<entry key="event.topics" value="parkoviste/plne" />
</osgi:service-properties>
</osgi:service>
=]

!!! Registrace služby na víc rozhranní

Stejně jako v OSGi implementaci, i zde Brana implementuje dvě rozhranní - IZapVyp a IPrijeloOdjelo.

V OSGi jsme se však nemuseli starat o způsob registrace služby. Zaregistrovali jsme ji na IZapVyp, ale bez problému šla přetypovat i na IPrijeloOdjelo.

To však ve Spring DM nejde. @@<osgi:service>@@ totiž odešle beanu pouze s tou informací, že jde o rozhranní, pod kterým jsme službu zaregistrovali. Přetypovat pak nejde.

Musíme ji tedy zaregistrovat pod několik rozhranní, jako v následujícím příkladu. Využijeme uzlu @@<osgi:interfaces>@@

=java122 [=
<osgi:service id="BranaService" ref="Brana">
<osgi:interfaces>
<value>cz.zcu.kiv.cosi.parkoviste.konfigurace.IZapVyp</value>
<value>cz.zcu.kiv.cosi.parkoviste.brana.IPrijeloOdjelo</value>
</osgi:interfaces>
<osgi:service-properties>
<entry key="type" value="brana" />
</osgi:service-properties>
</osgi:service>
=]

!!! Použití filtru při výběru služby

Podobně jako v OSGi i zde můžeme použít filtr, když máme na jednom rozhranní zaregistrováno více služeb. Použití je ještě jednodušší - použije se atribut @@filter="(pravidlo)"@@

=java122 [=
<osgi:reference id="Brana"
interface="cz.zcu.kiv.cosi.parkoviste.konfigurace.IZapVyp"
filter="(type=brana)" />
=]