Eclipse levert een aantal strategieën voor de ondersteuning van multiuser-installaties. Elke strategie voldoet aan een bepaald scenario. In dit document vindt u informatie over deze strategieën en wanneer u welke moet gebruiken. De doelgroep bestaat uit technici die het Eclipse-product voor distributie configureren, systeembeheerders die Eclipse-producten instellen voor gebruik op een netwerk en ontwikkelaars die plugins willen maken die goed functioneren binnen dit type installaties.
Laatst gewijzigd: 17 juni 2005
Zoals al eerder beschreven in het artikel Runtime-opties Eclipse, zijn er drie locaties die belangrijk zijn in de context van het in een multiuser-installatie in gebruik nemen van Eclipse:
Voordat Eclipse voor de eerste keer wordt uitgevoerd, is het configuratiegebied in feite een lege directory. Deze locatie wordt tijdens de Eclipse-sessies geleidelijk gevuld door de Eclipse-runtime en door andere plugins. De meeste metagegevens die worden bewaard door de Eclipse-runtime (bijvoorbeeld plugindependency's, het extensieregister) worden tijdens het afsluiten van de eerste sessie weggeschreven. Als geen wijzigingen worden aangebracht aan de geïnstalleerde plugins, hoeven geen gegevens te worden weggeschreven tijdens de opeenvolgende sessies. Dit wordt genoemd: de configuratie is geïnitialiseerd. Wanneer de configuratie zich in deze status bevindt, is het zelfs mogelijk het configuratiegebied alleen-lezen te maken. Het alleen-lezen maken van het configuratiegebied, is nuttig voor scenario's met bijvoorbeeld gedeelde configuraties (hierover later meer).
De opdrachtregeloptie -initialize
maakt het mogelijk het configuratiegebied te initialiseren zonder dat het nodig is dat een Eclipsetoepassing wordt uitgevoerd. Met de initialisatieprocedure wordt het maken van metagegevens afgedwongen die weggeschreven zijn naar de configuratielocatie tijdens de eerste Eclipse-sessie. Er worden echter ook andere bestanden in het configuratiegebied bewaard die alleen worden gemaakt wanneer deze nodig zijn. Voorbeelden zijn:
Platform.asLocalURL(URL)
aan. Het gevolg is dat, als de URL verwijst naar een bestand binnen een JAR, dit bestand geëxtraheerd wordt naar het bestandssysteem onder het configuratiegebied. Als een bestand eenmaal is uitgepakt, zijn de opeenvolgende aanroepen naar Platform.asLocalURL()
in staat om dit te vinden, zodat voor het betreffende bestand geen nieuwe extracties meer plaatsvinden. Een vergelijkbaar (in feite het oorspronkelijke) scenario, waarin Platform.asLocalURL
wordt gebruikt dat hetzelfde resultaat heeft, is gerelateerd aan het ervoor zorgen dat de inhoud op afstand (bijvoorbeeld een bestand dat toegankelijk is via een HTTP-URL) lokaal beschikbaar wordt. Voor deze gevallen (en andere die door plugins van derden kunnen worden geïntroduceerd) is de initialisatieprocedure niet toereikend om het configuratiegebied volledig te initialiseren. Er is nog behoefte aan het schrijven naar het configuratiegebied, hoewel deze behoefte gaandeweg verdwijnt naarmate alle uitvoeringspaden in de toepassing, die ervoor zorgen dat bestanden in het configuratiegebied worden gemaakt, worden bezocht. Pas daarna kan worden gezegd dat het configuratiegebied volledig is geïnitialiseerd en dat schrijftoegang nooit meer vereist zal zijn voor het verwerken van Eclipse.
Dit is in feite een scenario voor één enkele gebruiker. De Eclipse-installatie wordt gebruikt door één enkele gebruiker en deze gebruiker heeft bevoegdheid voor volledige toegang tot deze installatie. De locatie van het configuratiegebied is standaard de configuratiedirectory onder de installatielocatie.
De procedure voor het instellen van dit scenario vereist alleen dat ervoor wordt gezorgd dat de gebruiker de volledige rechten heeft op de installatielocatie.
In dit scenario wordt één enkel installatiegebied gemeenschappelijk gebruikt door vele gebruikers. De directory "configuration" onder het installatiegebied is alleen de hoofddirectory voor config.ini op het moment dat dit met het product wordt verzonden (wordt niet geïnitialiseerd). Elke gebruiker heeft een eigen lokale stand-alone configuratielocatie.
De instellingen voor dit scenario vereisen dat het installatiegebied alleen-lezen wordt gemaakt voor de reguliere gebruikers. Als een gebruiker Eclipse start, wordt het configuratiegebied automatisch verplaatst naar een directory onder de hoofddirectory van deze gebruiker. Als deze maatregel niet wordt genomen, belanden alle gebruikers op dezelfde locatie met hun configuratiegebied en dit wordt niet ondersteund.
Gebruikers delen hier niet alleen een installatiegebied, maar ook een masterconfiguratiegebied. De gebruikers hebben standaard nog steeds een eigen, persoonlijk configuratiegebied waarin kan worden geschreven. Het besloten configuratiegebied van de gebruiker wordt gedelegeerd naar de masterconfiguratie en bevat geen interessante gegevens als de masterconfiguratie volledig is geïnitialiseerd en geen wijzigingen hebben plaatsgevonden aan de set plugins die moet worden geïnstalleerd.
In dit scenario initialiseert de systeembeheerder de masterconfiguratie (meestal onder de installatielocatie) en zorgt ervoor dat de installatiegebieden en de configuratiegebieden voor de gebruikers alleen-lezen zijn. Wanneer gebruikers, omdat zij geen bevoegdheid voor schrijftoegang hebben voor het configuratiegebied onder het installatiegebied, een Eclipse-product uitvoeren vanaf een gedeelde installatielocatie, wordt automatisch een lokaal configuratiegebied berekend en geïnitialiseerd.
Hoe vollediger de initialisatie van de gedeelde configuratie is, hoe minder behoefte er is aan bestanden die moeten worden gemaakt onder de lokale configuratie.
De standaardlocatie van een besloten configuratiegebied is:
<user-home-dir>/.eclipse/<product-id>_<product-version>/configuration
De hoofddirectory van een gebruiker wordt bepaald door de Java-systeemeigenschap user.home
.
Het product-id en de versie worden uit het productmarkeringsbestand .eclipseproduct
onder de Eclipse-installatie gehaald.
Een niet-standaard configuratiegebied kan worden gedefinieerd door de systeemeigenschap osgi.configuration.area
in te stellen. Deze eigenschap kan worden ingesteld door de eindgebruiker, maar het is handiger deze in het bestand launcher.ini of in het bestand config.ini op de locatie van de basisconfiguratie in te stellen.
Plugins kunnen worden geïnstalleerd in/verwijderd uit de gedeelde configuratie. De eerstvolgende keer dat Eclipse wordt uitgevoerd, worden de wijzigingen kenbaar gemaakt aan de gebruiker. Het is noodzakelijk dat u ervoor zorgt dat de gebruikers die de gedeelde configuratie als masterconfiguratie gebruiken, niet bezig zijn met het uitvoeren van Eclipse.
Gebruikers kunnen het lokale configuratiegebied wijzigen door extra plugins te installeren. Dit wijzigt niets aan de gedeelde configuratie, zodat de andere gebruikers deze wijzigingen niet zien. Merk op dat de plugins die zijn geconfigureerd in de gedeelde configuratie niet kunnen worden verwijderd. Als dit wel gebeurt, worden deze de eerstvolgende keer dat het platform wordt gestart opnieuw geïnstalleerd.