Hlavní menu
Nástroje |
UvodDoKomponent.DeclarativeServices HistoryHide minor edits - Show changes to markup 05 January 2010, 15:10
by
- Changed lines 15-16 from:
Změny DSto:
Změny v DS05 January 2010, 15:09
by
- Changed lines 5-6 from:
TODO: doplnit to:
Je nejpodobnější Spring DM. Myšlenkou Declarative Services je rozšíření OSGi, aby byla jednodušší správa služeb. DS nám rovněž ve snadno přístupném konfiguračním souboru odkrývá všechny služby, které zveřejňuje a které potřebuje. Je vhodné přečíst si kapitoly o Springu a OSGi DS frameworkV tomto případě už snad ani nejde mluvit o frameworku jako u Spring DM. DS nám totiž poskytuje pouze lepší práci se službami. Mluvme tedy o DS jako o rozšíření OSGi frameworku. V tomto případě tedy můžeme vynechat i všechny další komponentové pojmy, protože ty zůstávají stejné jako u OSGi. Změny DSJe přidán nový konfigurační soubor. Vedle Využívá se nový namespace, který přímo reprezentuje komponentu - bundle.
Ukázka: <?xml version="1.0" encoding="UTF-8"?> <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" enabled="true" immediate="true" name="ParkovisteDSPult"> <implementation class="cz.zcu.kiv.cosi.parkoviste.pult.Pult"/> <service> <provide interface="org.osgi.service.event.EventHandler"/> </service> <property name="event.topics" value="parkoviste/*"/> <reference bind="setStatistika" cardinality="1..1" interface="cz.zcu.kiv.cosi.parkoviste.brana.IPrijeloOdjelo" name="IPrijeloOdjelo" policy="dynamic"/> </scr:component> 22 December 2009, 13:39
by
- Changed lines 3-4 from:
Declarative Servicesto:
Declarative ServicesTODO: doplnit Praktická částChanged lines 11-16 from:
Declarative services není plnohodnotný framework, ale pouze rozšíření OSGi. Při implementaci příkladů jsem vzal kompletní funkční část z OSGi - ale bez Activatorů. To je vlastně téměř jediný rozdíl v kódu oproti Osgi. Declarative Services umí vlastně úplně to samé jako SpringDM, pouze používá jiný přístup (mě osobně plně nevyhovoval). Místo activatorů jsou přítomny komponentové xml soubory, které je nahrazují. to:
Declarative services není plnohodnotný framework, ale pouze rozšíření OSGi. Při implementaci příkladů jsem vzal kompletní funkční část z OSGi - ale bez Activatorů. To je vlastně téměř jediný rozdíl v kódu oproti Osgi. Declarative Services umí vlastně úplně to samé jako SpringDM, pouze používá jiný přístup. Místo activatorů jsou zde komponentové xml soubory. 17 December 2009, 16:03
by
- Added lines 1-2:
16 December 2009, 13:06
by
- Changed lines 13-14 from:
Jednoduchá implementace HelloWorld. Výsledná implementace: Attach:HelloDS Δ to:
Jednoduchá implementace HelloWorld. Výsledná implementace: Attach:HelloWorldDS 16 December 2009, 13:06
by
- Changed lines 13-24 from:
Jednoduchá implementace HelloWorld. Výsledná implementace: [[Soubor:HelloDS? Příklad MessagePrinterDS pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Soubor:MessagePrinterDS.zip? Příklad ParkovisteDS pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Soubor:ParkovisteDS.zip? == Poznámky k DS == 1) Jakmile u komponenty registruji <code><service></code>, komponenta se okamžitě stává <code>delayed</code>, což znamená, že nebude nic dělat, dokud někdo nebude registrovanou službu chtít - pak teprve dojde k vytvoření dané komponenty. 2) Pokud chci spouštět komponentu s registrovanou službou okamžitě (mám v ní metodu activate), musím nastavit <code><scr:component immediate="true" ...></code> to:
Jednoduchá implementace HelloWorld. Výsledná implementace: Attach:HelloDS Δ Příklad MessagePrinterDS pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Attach:MessagePrinterDS Příklad ParkovisteDS pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Attach:ParkovisteDS Poznámky k DS1) Jakmile u komponenty registruji 2) Pokud chci spouštět komponentu s registrovanou službou okamžitě (mám v ní metodu activate), musím nastavit 16 December 2009, 13:05
by
- Added lines 1-27:
Declarative ServicesV těchto návodech pracuji s SpringSource Tool Suite, které je trochu odlišné od Eclipsu. Většina věcí je však stejná. Declarative services není plnohodnotný framework, ale pouze rozšíření OSGi. Při implementaci příkladů jsem vzal kompletní funkční část z OSGi - ale bez Activatorů. To je vlastně téměř jediný rozdíl v kódu oproti Osgi. Declarative Services umí vlastně úplně to samé jako SpringDM, pouze používá jiný přístup (mě osobně plně nevyhovoval). Místo activatorů jsou přítomny komponentové xml soubory, které je nahrazují. TutoriálDeclarativeServices na vytvoření nového projektu. Jednoduchá implementace HelloWorld. Výsledná implementace: [[Soubor:HelloDS? Příklad MessagePrinterDS pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Soubor:MessagePrinterDS.zip? Příklad ParkovisteDS pak dokumentuje jen technologicky specifické problémy. Výsledná implementace: Soubor:ParkovisteDS.zip? == Poznámky k DS == 1) Jakmile u komponenty registruji <code><service></code>, komponenta se okamžitě stává <code>delayed</code>, což znamená, že nebude nic dělat, dokud někdo nebude registrovanou službu chtít - pak teprve dojde k vytvoření dané komponenty. 2) Pokud chci spouštět komponentu s registrovanou službou okamžitě (mám v ní metodu activate), musím nastavit <code><scr:component immediate="true" ...></code> 3) Je třeba si dávat pozor, na obsah definičního souboru - každá drobnost může způsobit nefunkčnost a nehlásí žádnou chybu. 4) I když je nastaven okamžitý start u komponenty, která registruje službu (například EventHandler?), služba se prostě nezaregistruje. Něco takového asi prostě není možné :) |