Eclipse er en platform, der er udviklet fra grunden til brug for bygning af integreret web og programudviklingsværktøjer. Som udgangspunkt indeholder platformen ikke en stor del brugerfunktionalitet. Det er værdien af platform, der er spændende: hurtig udvikling af integrerede funktioner baseret på en plugin-model.
Eclipse stiller en fælles brugergrænseflademodel til rådighed til brug for arbejde med værktøjer. Den er udviklet til at kunne udføres på flere forskellige styresystemer, mens den yder robust integration med hvert underliggende operativsystem. Der kan programmeres plugins til Eclipses portable-API'er, og de kan udføres uændret på alle understøttede styresystemer.
I Eclipses kerne findes en arkitektur til brug for dynamisk opsporing, indlæsning og udførelse af plugins. Platformen håndterer logistikken mht. at finde og udføre den korrekte kode. Platformens grænseflade stiller en standard brugernavigationsmodel til rådighed. Hver plugin kan derefter fokusere på at udføre et mindre antal opgaver godt. Hvilke type opgaver? Definition, test, animering, publicering, kompilering, fejlfinding, oprettelse af diagrammer - din fantasi er den eneste begrænsning.
Eclipse-platformen definerer en åben arkitektur, så hvert plugin-udviklingsteam kan fokusere på sit ekspertiseområde. Overlad bygning af backends til opbevaringsstedeksperterne og bygningen af slutbrugerværktøjer til eksperterne i brugervenlighed. Hvis platformen er designet godt, kan nye vigtige funktioner og integrationsniveauer tilføjes uden indvirkning på andre værktøjer.
Eclipse-platformen bruger den almindelige arbejdsbænkmodel til at integrere værktøjer fra slutbrugerens synspunkt. Værktøjer, som du udvikler, kan installeres på arbejdsbænken vha. veldefinerede hooks, der kaldes udvidelsespunkter.
Selve platformen består af plugin-lag, hvor hver enkelt definerer udvidelser til udvidelsespunkterne for plugins på lavere niveauer, og efter tur definerer de deres egne udvidelsespunkter, som kan tilpasses yderligere. Ved hjælp af denne udvidelsesmodel kan udviklere tilføje en række funktioner til basisværktøjsplatformen. Artefaktene for hvert værktøj, f.eks. filer og andre data, koordineres i henhold til en generel platformressourcemodel.
Platformen giver brugerne en fælles måde at arbejde med værktøjer på og stiller integreret styring til rådighed til brug for styring af de ressourcer, de opretter med plugins.
Plugin-udviklere nyder også gavn af denne arkitektur. Platformen styrer de forskellige runtime-miljøers kompleksitet, f.eks. styresystemer eller arbejdsgruppeservermiljøer. Plugin-udviklere kan fokusere på deres specifikke opgaver i stedet for at bekymre sig om integrationsproblemer.
Selve Eclipse-platformen er struktureret som forekomster, der er implementeret i en eller flere plugins. Forekomsterne er bygget oven på et lille runtime-program. Figuren herunder giver et forenklet billede.
De plugins, der udgør forekomsten, definerer udvidelsespunkterne til brug for tilføjelse af funktionalitet til platformen. Følgende tabel beskriver de vigtigste af platformens runtime-komponenter, som implementeres som en eller flere plugins.
Platform-runtime |
Definerer udvidelsespunktet og plugin-modellen. Den opdager dynamisk plugins og vedligeholder oplysninger om plugins og deres udvidelsespunkter i en platformregistreringsdatabase. Plugins startes, når der er behov for det iht. de brugerhandlinger, der foretages på platformen. Runtime implementeres vha. OSGi-rammen. |
Ressourcestyring (arbejdsområde) |
Definerer API til brug for oprettelse og styring af ressourcer (projekter, filer og foldere), som produceres af værktøjer og opbevares i filsystemet. |
Arbejdsbænkens grænseflade |
Implementerer brugerens cockpit til brug for navigation af platformen. Den definerer udvidelsespunkter til brug for tilføjelse af grænsefladekomponenter, f.eks. oversigter eller menufunktioner. Den stiller yderligere værktøjskasser til rådighed (JFace and SWT) til bygning af brugergrænseflader. UI-serviceprogrammerne er strukturerede således, at en delmængde af UI-plugins kan bruges til at bygge Rich Client-programmer, der er uafhængige af ressourcestyringen og arbejdsområdemodellen. Plugins af typen IDE-centric definerer yderligere funktionalitet til brug for navigation og manipulation af ressourcer. |
Hjælp |
Definerer udvidelsespunkter for plugins for at stille hjælp eller anden dokumentation som bøger til rådighed. |
Understøttelse af team |
Definerer en teamprogrammeringsmodel til brug for styring og versionsopdatering af ressourcer. |
Understøttelse af fejlfinding |
Definerer et sproguafhængig fejlfindingsmodel og grænsefladeklasser til brug for bygning af fejlfindings- og startprogrammer. |
Andre funktioner |
Andre funktions-plugins leverer funktionalitet, f.eks. til brug for søgning og sammenligning af ressourcer, udførelse af byggeopgaver vha. XML-konfigurationsfiler og dynamisk opdatering af platformen fra en server. |
Lig ud af æske - eller lige hentet fra nettet - basisplatformen er et integreret udviklingsmiljø (IDE) til brug for alt og ikke noget i særdeleshed.
Det er plugins, der bestemmer platformens endelige funktionalitet. Det er derfor, at Eclipse SDK leveres med yderligere plugins til brug for forbedring af SDK-funktionaliteten.
Plugins kan stille understøttelse til rådighed for redigering og manipulation af yderligere typer ressourcer, f.eks. Java-filer, C-programmer, Word-dokumenter, HTML-sider og JSP-filer.