2009-02-17 10 views
6

Mon application RCP Eclipse nécessite un fichier de configuration contenant des informations permettant de se connecter à une base de données distante. Où est le meilleur emplacement pour stocker ce fichier de configuration? Puis-je utiliser le répertoire de configuration par défaut (où 'config.ini' est généralement stocké) à cette fin? Si oui, comment puis-je obtenir une instance de fichier à cet emplacement par programme? Je note également que ce répertoire n'existe pas dans mon IDE Eclipse.Eclipse RCP: Utilisation du répertoire de configuration

Merci.

Répondre

0

Habituellement, j'aime cacher les fichiers de configuration dans un répertoire "bin", ou quelque part pas dans le répertoire racine. Vous devriez probablement le garder dans un sous-répertoire de votre projet afin de ne pas encombrer un emplacement aléatoire sur le système. Si vous avez besoin d'obtenir une poignée au fichier, vous pouvez simplement faire:

File configFile = new File("./bin/remoteDbConfig.ini"); 

Ensuite, si son véritable fichier ini, vous pouvez utiliser Properties.load() pour charger et utiliser les valeurs du fichier ini.

Vous pouvez également utiliser l'API Préférences pour stocker les données dont vous avez besoin pour la connexion à distance.

+0

L'utilisateur peut-il modifier les paramètres ou doit-il être relativement codé en dur? –

+0

Vous pouvez modifier les paramètres par programme, mais vous devez donner à l'utilisateur un moyen de le faire. (Option de préférence d'interface graphique comme eclipse, argument de ligne cmd, etc.) Properties.setProperty (key, val), suivi de Properties.store (stream, header) –

1

Jetez un oeil à l'extension des ressources - pourrait vous donner ce que vous cherchez:

http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/resInt_filesystem.htm

+0

Ceci est un ensemble assez important de plugins que le RCP n'a peut-être pas déjà. Cela fournit une implémentation du magasin de préférences, uniquement pour permettre aux préférences d'être stockées dans un espace de travail. Votre lien ne va pas non plus à quelque chose de centré sur les préférences. :( – jamesh

5

Vous avez, comme toujours, un certain nombre d'options, en fonction de vos besoins.

  • utilisez le Runtime Preferences pour stocker dans un PreferenceStore avec un PreferenceInitializer approprié. Une API assez vaste et étendue avec beaucoup de réflexion. Les préférences ne sont pas exposées à l'utilisateur ou à l'administrateur par défaut, vous devez donc travailler pour exposer une page de préférences ou écrire dans un fichier de propriétés.

Pour les travaux moins avancés/moins, surtout si vous n'avez pas accès aux préférences Eclipse (par exemple côté serveur OSGi):

  • ensemble comme une propriété du système, dans le RCP.ini. Non modifiable par l'utilisateur après le lancement, nécessite un accès au fichier RCP.ini (eclipse.ini) qui peut être possible, surtout si vous ne contribuez pas à l'IDE.
  • défini en tant que propriété système, en tant qu'argument dans le raccourci. Cela dépend de l'utilisateur qui utilise le raccourci. Un raccourci spécialisé doit être généré au moment de l'installation.

Si l'accessibilité du système de fichiers est vraiment important, alors j'envisager d'utiliser l'une des méthodes ci-dessus pour définir un répertoire etc, et laissez vos faisceaux générer des propriétés par défaut des fichiers dans le répertoire etc si elles n'existent pas lors de la première utilisation. Cela consiste essentiellement à faire rouler votre propre magasin de préférences, donc si vous avez un paquet de préférences d'accès, vous feriez peut-être mieux de le faire. Ce plutôt vieux User Settings FAQ peut également être utile. Je me souviens d'une interview d'Erich Gamma (comme dans Gang of Four, et JDT technique) dans laquelle il dit qu'il existe environ sept mécanismes de préférences différents, et il ne savait jamais lequel utiliser.

0

Pour obtenir l'emplacement du fichier du répertoire de configuration, exécutez:

nouvelle org.eclipse.core.runtime.preferences.ConfigurationScope() getLocation() toFile();..

2

Comme déjà souligné, l'API de préférences est quelque chose à regarder. Il existe également l'API de préférences sécurisées, qui permet de stocker les noms d'utilisateur et les mots de passe cryptés sur le disque.

Une autre option consiste à utiliser le service OSGi 'org.eclipse.osgi.service.datalocation.Location'. Cela donne accès aux différents emplacements disponibles.

Une troisième option consiste à définir une propriété système dans 'config.ini' qui pointe vers le fichier avec vos informations de connexion en utilisant des espaces réservés: '[email protected]/mysettings.ini'. '@ config.dir' est un espace réservé qui est remplacé par le chemin d'accès réel au répertoire de configuration.

Questions connexes