Un workspace Eclipse est le répertoire où toutes les métadonnées des fichiers de préférences sont stockées (sous la forme de fichiers spécifiques Eclipse). Dans une application RCP, il se situe à la racine de l’application, dans le répertoire workspace.
Le problème en RCP, c’est que la plupart du temps, on a pas « réellement » besoin de ce répertoire (face à un client, « plugins », « feature » et « configuration », ça se justife… mais là ?!).
L’idée est donc de court-circuiter la création de ce répertoire pour le définir « à la main » lors du runtime.
Le paramètre magique
Il suffit tout simplement d’ajouter un paramètre à la ligne de command d’Eclipse pour lui indiquer que l’on va nous même lui spécifier l’emplacement du workspace.
Evidemment, il faut le positionner dès le lancement de l’application sinon Eclipse va sortir en exception en indiquant qu’aucun workspace n’a été positionné.
Ce fameux « Program Argument » s’appelle -data @noDefault.
De manière à ce que l’application RCP prenne en compte toute seule ce changement, il suffit de l’indiquer dans votre .product (Onglet « Launching »):

Il peut également être utile de le positionner dans les paramètres de lancement du Run:

Modification du répertoire
Maintenant qu’Eclipse est déchargé de l’initialisation du workspace, on va simplement lui indiquer où se répertoire se trouve maitenant.
Pour être sûr que ce paramétrage fonctionne sous Linux & Merdow$, on va le créer dans le répertoire temporaire; ce dernier se récupère via les propriétés Java: System.getProperty("java.io.tmpdir")
Comme je l’ai dit précédemment, il faut faire cela très tôt… on va donc le faire dans notre classe
Application (qui implémente org.eclipse.equinox.app.IApplication):
-
/**
-
* {@inheritDoc}
-
*/
-
public Object start(final IApplicationContext pContext) throws Exception {
-
// set location to the temporary folder
-
Platform.getInstanceLocation().set(new URL("file",
-
null, System.getProperty("java.io.tmpdir")),
-
false);
-
[…]
-
}
Et c’est tout…
Voilà, maintenant notre application RCP n’est plus parasitée par ce répertoire…




Commentaires
Ecrire un commentaire Trackback