UvodDoKomponent: TutoriálSpringDM |
from Wiki KIVu |
Oproti čistému Springu, či čistému OSGi je to činnost poprvé zdlouhavější. Je totiž nutné si pro Spring DM upravit celý workspace, konkrétněji importem několika Spring DM bundlů.
Doporučuji tedy přepnout do nového workspacu, který bude použit čistě pro Spring DM.
Vytvoření projektu se skládá ze dvou relativně jednoduchých kroků - importu potřebných bundlů a vytvoření prázdného OSGi projektu bez Activatoru.
K importu budete potřebovat poslední distribuci s dependencies, kterou můžete nalézt zde v sekci Downloads.
Při svém googlení jsem našel několik návodů, kde všechny říkaly, že se mají importovat následující bundly:
Ze složky C:\...cesta k rozbalené distribuci...\spring-osgi-verze\dist
importujte následující bundly:
org.springframeork.osgi.bundle.core
org.springframeork.osgi.bundle.extender
org.springframeork.osgi.bundle.io
A ze složky C:\...cesta k rozbalené distribuci...\spring-osgi-verze\lib
importujte následující bundly:
org.springframeork.bundle.spring.aop
org.springframeork.bundle.spring.beans
org.springframeork.bundle.spring.context
org.springframeork.bundle.spring.core
org.springframeork.osgi.aopalliance.osgi
Zdá se však, že v nové verzi Spring DM byly změněny názvy bundlů. Importoval jsem tedy následující bundly, s kterými mi vše fungovalo:
Ze složky C:\...cesta k rozbalené distribuci...\spring-osgi-verze\dist
importujte následující bundly:
org.springframeork.osgi.core
org.springframeork.osgi.extender
org.springframeork.osgi.io
A ze složky C:\...cesta k rozbalené distribuci...\spring-osgi-verze\lib
importujte následující bundly:
org.springframeork.aop
org.springframeork.beans
org.springframeork.context
org.springframeork.core
org.springframeork.osgi.catalina.osgi
1) V menu zvolte File -> Import
2) V otevřeném okně vyberte Plug-ins and Fragments a jděte dál
3) V novém okně vyberte v sekci Import from možnost Directory a zadejte cestu k bundlu, pokračujte Next.
4) Vlevo bude seznam dostupných bundlů, vyberte tedy ty, které potřebujete
(pro ilustraci importovací okno)
Pro zvýšení přehlednosti doporučuji zavést Working sety.
1) V pravém horním rohu Package Exploreru můžeme nalézt kontextové menu určené pro práci s Working sety.
2) Klikneme na Top level elements -> Working sets
3) V Configure working sets nastavíme vše tak, jak si přejeme.
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 odklepneme možnost Generate an Activator, a java class that controls ..., protože nechceme, aby se tento soubor generoval.
5) A projekt vytvoříme kliknutím na Finish
Spuštění je opět stejné jako u OSGi, viz popis Spuštění bundle. Je však nutné spouštět všechny bundly, které jsme importovali, tedy:
org.springframeork.osgi.core
org.springframeork.osgi.extender
org.springframeork.osgi.io
org.springframeork.aop
org.springframeork.beans
org.springframeork.context
org.springframeork.core
org.springframeork.osgi.catalina.osgi
A samozřejmě i s naším projektem.
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í)