Szo$verfejlesztés Eclipse környezetben Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Szo$verfejlesztés kérdései Nagy szo$verprojektek o Sok fejlesztő o Hosszú fejlesztési idő Kezelni kell o Fejlesztési folyamat o Eszköztámogatás!
Eclipse Release Train Projektek szinkronizált kiadása o 2006 óta o Évente 1 nagy kiadás (új feature) 2 service release (javítások)
Projektek száma 40,000 39 33 31,875 23,750 23 21 15,625 10 7,500 Callisto (3.2) Europa (3.3) Ganymede (3.4) Galileo (3.5) Helios (3.6)
Projektméret (MLOC) 30,0 24 22,5 17 18 15,0 7,5 6 0 Callisto (3.2) Europa (3.3) Ganymede (3.4) Galileo (3.5)
Sok változat PlaUorm o Windows Win32 32/64 bit Early access WPF port is pillanatnyilag nem fejlesz\k o Linux GTK 32/64 bit GTK PPC/PPC64 bit Mo\f o Mac OSX Carbon 32 bit Cocoa 32/64 bit
Csomagok o Java o Java EE o Plug- in developer o C/C++ o Modeling o PHP o Sok változat
Eclipse Release Train Sok projekt, bonyolult folyamat A rendszeres release komoly kihívás Shipping is hard, that s why we do it 7 5mes a release.
Az óra tema\kája Fejlesztési folyamatok Fejlesztési gyakorlatok Eclipse környéki tool támogatás
Fejlesztési folyamatok
Szo$ver fejlesztési folyamat Fejlesztési filozófia o Alapelvek o Megközelítés Eszköztámogatás o Eszközök o Modellek o Tipikus gyakorla\ megvalósítások
Vízesés modell Folyamat szigorú lépéssorrenddel Alapfeltevés: o Előre megtervezhetünk minden fázist o Egy ellenőrzési fázis a végén Ritkán használatos
Vízesés modell Követelménye k Tervezés Megvalósítás Ellenőrzés Karbantartás
V modell Hasonló vízesés modellhez Alapfeltevés o Előre tervezünk o Ellenőrzés tervezési fázisokkal párba állítható Beágyazol környezetben gyakran használják o Jól látható a különböző ellenőrzések helye
V- modell Követelmények Specifikáció Tervezés Megvalósítás Modul tesztelés Integrációs tesztelés Elfogadtatás
Agilis módszerek Alapfeltevés o Követelményeket nem lehet előre felmérni o Iteranv fejlesztés Újabb követelmények későbbi fázisban Többféle eljárás o Scrum o RUP (Ra\onal Unified Process) o EDP (Eclipse Development Process)
Eclipse Development Process 7 fázis (milestone- okkal elválasztva) o M5: API freeze o M6: Feature freeze o M7: Code freeze (RC fázis) Szereplők o Project manager: o Commiler: belső fejlesztő o Contributor: külső hozzájáruló
Szellemi tulajdon védelme Nincs kiadás ellenőrzés nélkül o Contributor: Bugzilla- n keresztül commilál o Commiler: csinálhatja közvetlenül is Ő felel a kód \sztaságáért Kiadás elől ellenőrzés Függő kódok ellenőrzése o Engedélyezni kell Licensz: EPL o GPL- lel nem kompa\bilis!
Csoportmunka Gyakori technikák Verziókezelés o Központosítol o Elosztol Feladatlista kezelés o Hibák o Új funkciók
Csoportmunka Gyakori technikák Ellenőrzések o Code review o Unit tesztelés o Formális ellenőrzések Folytonos integráció (con\nous integra\on) o Integráció azonnal Fordítás, felépítés Tesztelés, analízis
Verziókezelő rendszerek
Verziókezelés Több változat ugyanabból a szo$verből o Windows XP, ill. különböző javítások, service packek o Eclipse kiadások Nem csak szo$ver o Változáskövetés (Word) o Wikilapok
Szo$ver verziókezelés Alapvetően szöveges fájlokra o Különbségszámítás Egyszerű Fejlesztő számára érthető o Akár parancssorból is Lehet bináris fájlra, modellekre o Különbségszámítás Bonyolultabb Nehezen értelmezhető a különbség o Gyakorla\lag csak támogatással
Szo$ver verziókezelő rendszerek Centralizált o Közös tároló szerveren o Lokálisan Working copy Szervert lehet lekérdezni Elosztol o Nincs (nem kell) közös tárhely o Lokálisan Teljes tároló Offline munka!
Centralizált verziókezelő rendszerek Alapfogalom o Változat (revision, version) Szerver: változatok sorozata Kliens: egy megjelölt változat Példák o CVS o SVN o Perforce
Verziószámok Minden változathoz azonosító o Tetszőleges, sorrendezhető érték Szám Verziószám (hierarchikus)
Centralizált verziókezelő rendszerek Repository A felhasználó B felhasználó Projekt - Fájl1 - Fájl2
Centralizált verziókezelő rendszerek share Repository A felhasználó B felhasználó Projekt - Fájl1 - Fájl2
Centralizált verziókezelő rendszerek share Repository Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) A felhasználó B felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) A felhasználó B felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository checkout Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) A felhasználó B felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository checkout Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) A felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) B felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) A felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) B felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) A felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) B felhasználó Projekt (r1) >Fájl1 (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository commit Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) A felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) B felhasználó Projekt (r1) >Fájl1 (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository commit Projekt (r2) - Fájl1 (r2) - Fájl2 (r1) A felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) B felhasználó Projekt (r1) (r2) >Fájl1 - Fájl1 (r2) (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r1) A felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) B felhasználó Projekt (r1) (r2) >Fájl1 - Fájl1 (r2) (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek update Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r1) A felhasználó Projekt (r1) - Fájl1 (r1) - Fájl2 (r1) B felhasználó Projekt (r1) (r2) >Fájl1 - Fájl1 (r2) (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek update Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r1) A felhasználó Projekt (r2) - Fájl1 (r2) - Fájl2 (r1) B felhasználó Projekt (r1) (r2) >Fájl1 - Fájl1 (r2) (r1) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r1) A felhasználó Projekt (r2) - Fájl1 (r2) - Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r1) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) - Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r1) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository commit Projekt (r2) - Fájl1 (r2) - Fájl2 (r1) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1)
Centralizált verziókezelő rendszerek Repository commit Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek update Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek update Repository A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) Konfliktus B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek commit Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek commit Repository A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) Konfliktus B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek Update & merge Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek Update & merge Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r1) (r3) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r3) A felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 (r3) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r4) A felhasználó Projekt (r2) - Fájl1 (r2) - Fájl2 (r4) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek Repository checkout Projekt (r2) - Fájl1 (r2) - Fájl2 (r4) A felhasználó Projekt (r2) - Fájl1 (r2) - Fájl2 (r4) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r3) (r1)
Centralizált verziókezelő rendszerek Repository checkout Projekt (r2) - Fájl1 (r2) - Fájl2 (r4) A felhasználó Projekt (r2) - Fájl1 (r2) - Fájl2 (r4) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r4) (r1)
Centralizált verziókezelő rendszerek Repository Projekt (r2) - Fájl1 (r2) - Fájl2 (r4) A felhasználó Projekt (r2) - Fájl1 (r2) - Fájl2 (r4) B felhasználó Projekt (r2) - Fájl1 (r2) >Fájl2 - Fájl2 (r4) (r1)
Munkamenet Working copy frissítés (Update) Munka Változtatások elvégzése o Op\mista Commit, és javítás, ha konfliktus van o Pesszimista Update, commit
Párhuzamos ágak Fejlesztés elágazik o Például kísérle\ fejlesztés Ne befolyásolja a fő ágat o Karbantartási változat Elágazás életciklus: o Branch: új ág létrehozása o Commit: változások az ágban o Merge: Ágak egyesítése
Merge Az egyesítés nehéz o Változhat fájlok Tartalma Neve o Konfliktusok Sok commit Nem egyértelmű, hogy pontosan mi okozza a konfliktust
Firefox: nincs merge!
Elosztol verziókezelő rendszerek Alapfogalom o Változtatás (changeset) Egyenrangú szereplők (nincs szerver) o Szerverfunkcionalitást az egyik kliens vehe\ át o Változat: változtatások sorozata Példák o Git o Mercurial (Hg) o Bazaar
Elosztol verziókezelő rendszerek Előnyök o Offline működés Verziótörténet elérése Több változtatás összeállítása Hátrányok o Bonyolultabb struktúra együlműködéshez o Nincs egyértelmű szerver Kiadásokhoz Új felhasználóknak
Nincs igazi verziószám o Párhuzamos fejlesztés! Verziószám Változtatások azonosítása o Helyele valamilyen hash kód Szülő változat hashkódja explicit szerepel o Ez sorrendez!
Működés Lokális tárolóval o Commit/update, mint centralizált esetben Másokkal o Pull: változások feltolása Tároló tulajdonosa adja a jogosultságokat o Push: távoli változások lekérése Tetszőleges tároló megadható, nincs előre rögzítve!
Egyesítés Egyesítés egyszerűbb o Megkeressük az első közös őst o Mindkét ágon a változtatásokat összegyűjtjük o És mindet alkalmazzuk a közös ősre Jóval megbízhatóbb, mint centralizált esetben
Centralizált vagy elosztol? Cégek o Többnyire centralizált Nyílt forrású projektek o Egyre inkább elosztol
Git munkamenet
Git munkamenet
Tooling A legtöbb eszközhöz parancssori felület van CVS, SVN o Régóta vannak o Sokféle GUI Elosztol rendszerek o GUI támogatás korlátozol
Ökölszabályok Commit early, commit o$en o Legyen mindenki számára elérhető az aktuális kép o Derüljön ki a párhuzamos munka Egy commit egy lényegi módosítás o Code review legkisebb egysége a commit o 2000 soros változáslista - > senki sem nézi át!
Ökölszabályok Ne csak a végső állapotot osszuk meg! o Sokáig tart a fejlesztés o Részleges implementáció a függő kód fejlesztéséhez Interfész Egyszerűsítel metódusok o Visszajelzés
Ökölszabály Commit komment fontos o Két sor, hogy mi változol o Esetleg külső link (bug tracker)
Eclipse Team Support
Eclipse Team Support Verziókezelő rendszerek támogatása o Cél: workspace <- > tárolók közöƒ szinkronizáció o Általános keretrendszer Tárolóspecifikus adapterek Megvalósítandó funkciók (független a megvalósítástól) Előzmény Commit/Update o Erre építeni lehet
Támogatol verziókezelő rendszerek CVS o Régi, kiforrol támogatás SVN o Jól használható o Telepítés nehézkes lehet Git o JGit és EGit projektek o Viszonylag új Hg o MercurialEclipse viszonylag új
További lehetőségek o Erőforráskezelés Eclipse Team Support Verziókezelő fájljainak elrejtése a plug- inek elől Származtatol erőforrások (derived) o Szinkronizáció Lehetőség helyi és távoli rendszer összevetésére Hol van újabb? Team Synchronize Perspec\ve
Eclipse Team Support Logikai modellintegráció o Workspace konzisztencia Frissítés után ellenőrzés/fordítás o Jelölők (Marker) Frissítési állapot megjelenítése o Szeman\kus összehasonlítás Nem csak szöveges összehasonlítás Compare Editor támogatás
UML Model Compare (RSA 7.5)
Java source compare
Team Synchronize
History View
Hibajegyek kezelése
Hibajegy kezelés Hibajegylista (issue \cket, bug \cket, stb.) o Egyfajta Todo list Legegyszerűbb változat o Mindenkinek előre kiadjuk a feladatokat o Feladatkiosztás informálisan Excel táblázat Speciális formájú email Formalizálható a feladatkiosztás
Feladatszerverek Fejlesztők és \cketek összerendelése o Adatbázis o Tipikusan webes felület Gyakori eszközök o Bugzilla o Trac o Jira o
Hibajegy Alapegység \cket o Egy hiba vagy új funkció leírása o Metaadat Határidő Felelős Prioritás Komponens azonosítás
Állapotok (példa) o Létrehozva o Elfogadva o Lezárva Javítva Érvénytelen Nem javítjuk Testre szabható o Új elemek o Kötöl sorrend/jelentés Jegy életciklus
Bugzilla hibajegy életciklus
Hibajegyek Állapotváltás: o Felhasználói beavatkozás hatására Lehetséges hibához hozzászólni o Kommunikáció o Állapotváltások indoklása Csatolmányok o Patch, screenshot, stb.
Miért éri meg használni? Menedzsment o Nyomonkövethetőség Funkciók állapota Ki mivel foglalkozik Felhasználó o Igénybejelentés o Nyomonkövethetőség Fejlesztő o Segít az időbeosztásban o Feladatok, határidők, prioritások
Integráció verziókezelő rendszerekkel Commit és \cket összekapcsolás o Tickethez hozzálinkelni változatot/változtatást o Változás/változtatáshoz \cketet Segí\ az állapot nyomonkövetését Példák o Trac- SVN o Google Code o
Mylyn Projekt Ticketkezelés Eclipse környezetben
Mylyn Hibajegyek kezelése Eclipse- ben o Általános megoldás Tetszőleges hibajegykezelőhöz csatolható Connectorok o Alapfogalmak Repository: hibajegykezelő Query: lekérdezés, eredménye jegyek listája Task: egy hibajegy
Mylyn Felhasználói felület View: taskok kezelése
Taszk editor Mylyn felhasználói felület
Task- focused interface Minden taszkhoz kontextus rendelhető o IDE integráció o Workspace elemek hozzárendelése a taszkhoz Taszk ak\váció o Kontextushoz nem tartozó elemek szűrése Navigatorból Megnyitol editorokból
Taszk ak\válása
Taszk ak\válása
Kontextuskezelés Kontextus a \ckethez csatolható (szerver) o Megosztható fejlesztők közöl o Nagyon precíz állapotmentés Később folytatható Más, kapcsolódó taszkhoz is felhasználható
Fordítás és terjesztés
Build Meglepően összetel folyamat o Tényleges fordítás o Ellenőrzések Sta\kus analízis Tesztelés o Csomagolás terjesztéshez Tömörítés Leíró fájlok előállítása Digitális aláírás
Fordítás Függőségek kezelése o Leíró fájlok Eclipse PDE Build o Függőségek explicit leírva Target PlaUorm o Plug- inek egy halmaza, amit alapként használunk
Eclipse PDE Build Bővíthető (Builder/Nature) o Sta\kus analízis FindBugs, PMD o Kódolási snlus ellenőrzés CheckStyle o Kódmetrikák gyűjtése Eclipse Metrics
Unit tesztelés Tesztek fulathatóak o Eredmény kiértékelésére van támogatás Bővíthető o Kód fedés mérés - EclEmma
Csomagolás Korlátozol támogatás o Nem egy- gombos megvalósítás o Update Site projekt Eredmény megosztható Update Site- ként
Target PlaUorm Plug- inek csoportja o Fordításhoz Elég a hivatkozol interfész o Fulatáshoz Kell teljes implementáció is Kapcsolódó beállítások o PlaUorm o JVM verzió o Saját plug- inek Target plauorm interfészek Target plauorm implementáció
Target PlaUorm szerkesztés
Plug- in források Telepítel Eclipse o Plug- in leírók felhasználása Update site o Normál webszerverre felhúzol fájlok o +metaadat Nyers plug- in fájlok o dropins mappa o Ezt a rendszer figyeli
Automa\kus fordítás és csomagolás
Gyakori agilis technika Con\nous integra\on Fejlesztések integrációja o Fordítás o Csomagolás o Tesztelés
Build server Eszköz, amely képes az automa\kus integrációra Cél: automa\kus működés Eszközök o Apache Con\nuum (Ant + Maven) o CruiseControl (Java,.NET, Ruby) o Hudson (Java)
Hudson Java servlet alapú eszköz o Tetszőleges Java alkalmazás szerver o Java beépítel szerver is! Nem végez tényleges fordítást o Időzítés o Menedzselés Beépülőkkel bővíthető Több különböző folyamatot tartalmazhat o Folyamatok közöl függőség
Hudson@eclipse.org
Trigger o Kiváltó esemény Munkafolyamat részei 1. Idő (Nightly build) Verziókezelő rendszer változásai Kézi Függő folyamat Bővíthető
Munkafolyamat részei 2. Build o Tényleges fordítási lépések o Beépítel támogatás Ant Shell script o Bővíthető Maven Buckminster
Post- build o Befejező lépések Munkafolyamat részei 3. Csomagolás Publikálás Függő buildek indítása Értesítések
Jól használható De: o Erőforrásigényes o Felállítani nem egyszerű
Eclipse build előállítása (2010.03.) Forrás beszerzése Digitális aláírás Director használata P2 repo- k előállítása Kiadások csomagolása Unit tesztelés 20 perc 1 óra 14 perc 20 perc 4 perc 30 perc 6 óra 40 perc
Eclipse plug- in fordítás
Plug- inek automa\kus fordítása Build lassú folyamat o Ne fusson minden a fejlesztő gépén o Build szerver IDE grafikus felület nem használható
Build végrehajtó motorok Leggyakoribb eszközök o Make o Ant C/C++ környékén Make file Javahoz, XML alapokon o Maven Egységes forrás letöltés és fordítás
Probléma
OSGi függőségek kezelése Több különböző megoldás o Ant4Eclipse PDE/Build teljes elkerülése o Pax, Tycho Maven felkészítése OSGi függőségekre o Headless mód PDE/Build Ant scripteket generál
Headless mód Fulatható Eclipse példány o GUI nélkül o Parancssori használat Feltétel o Toolok megfelelő csomagolása Core és gui plug- inek Parancssori interfész Segítség o OSGi konzol
Komponens összeállítás Buckminster Magas szintű eszköz o Meglevő eszközök felel fut Ami Eclipse- ben fordítható, az Buckminsterrel is! o Leírók segítsége Eclipse plug- inekhez nagyrészt automa\kus Egyébként szerkesztési támogatás
IDE támogatás o Leírók szerkesztése o Fulatás is Headless mód Hudson támogatás Felhasználás
Forrás beszerzés o Eclipse Team Support o Target PlaUorm Buckminster Fordítás több eszköz segítségével o PDE/Build o Ant o Maven Csomagolás o Target PlaUorm o P2 Update site
Komponens o Egy egység Buckminster komponensek o Műveletek értelmezhetőek rajta Részben előre definiáltak Pl. Update site készítés Bővíthetőek
Főbb leírók Erőforrás térkép (Resource map) o Plug- in források megadása Komponens lekérdezés (Component Query) o Adatlekérés (Materializa\on) Komponens leíró (Component Specifica\on) o Leírófájl komponensekhez
Források kijelölése o Update site o Eclipse telepítés Resource map o Workspace o Team Support: CVS/SVN/Git o Maven Név alapján lehet választani
Resource map
Adatlekérdezés o Mit kell megszerezni? Component query o Azonosító + Resource map Opcionális paraméterek o Forrás vagy bináris? o Branchek/tagek, stb. o Release/Nightly build repository
Component query
Akciók OSGi komponenseknél cél o Egyszerű fordítás (fájlrendszer) o P2 update site o Target PlaUorm o Workspace Általános o Ant script
Buckminster és Hudson Hudson beépülő o Buckminster fogalomkészlet megjelenik Hudsonban o Azonosíthatóak szükséges elemek