2009-02-17 11 views
6

Mi aplicación Eclipse RCP requiere un archivo de configuración que contiene cierta información para conectarse a una base de datos remota. ¿Dónde está la mejor ubicación para almacenar este archivo de configuración?Eclipse RCP: haciendo uso del directorio de configuración

¿Se puede utilizar el directorio de configuración predeterminado (donde generalmente se almacena "config.ini") para este fin? Si es así, ¿cómo puedo obtener una instancia de archivo en esta ubicación mediante programación? También observo que este directorio no existe en mi Eclipse IDE.

Gracias.

Respuesta

0

Normalmente, me gusta ocultar los archivos de configuración en un directorio "bin", o en algún lugar que no esté en el directorio raíz. Probablemente deberías mantenerlo en un subdirectorio de tu proyecto para que no ocupe un lugar aleatorio en el sistema. Si usted necesita para obtener un identificador para el archivo, sólo se puede hacer:

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

Entonces, si es un verdadero archivo INI, puede utilizar Properties.load() para cargar y utilizar los valores del archivo INI.

También podría usar la API de Preferencias para almacenar los datos que necesita para la conexión remota.

+0

¿Puede el usuario cambiar la configuración, o están relativamente codificados? –

+0

Puede cambiar la configuración de forma programática, pero debe dar al usuario una manera de hacerlo. (Opción de preferencia de la GUI como eclipse, línea de cmd arg, etc.) Properties.setProperty (clave, val), seguido de Properties.store (secuencia, encabezado) –

1

Tome una mirada en el plugin de recursos - podría darle lo que usted está buscando:

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

+0

Este es un conjunto bastante importante de complementos que el RCP puede no tener. Esto proporciona una implementación del almacén de preferencias, solo para permitir que las preferencias se almacenen en un espacio de trabajo. Su enlace no va a nada centrado en las preferencias tampoco. :( – jamesh

5

que tiene, como siempre, una serie de opciones, dependiendo de sus necesidades.

  • utilice el Runtime Preferences para almacenar en un PreferenceStore con un PreferenceInitializer adecuado. Una API extensa y extensa con bastante pensamiento. Las preferencias no están expuestas por defecto al usuario o al administrador, por lo que deberá realizar un trabajo para exponer una página de preferencias o escribir en un archivo de propiedades.

Por menos trabajo/menos avanzada, especialmente si usted no tiene acceso a las preferencias de Eclipse (por ejemplo, del lado del servidor OSGi):

  • conjunto como una propiedad del sistema, en el RCP.ini. No es modificable por el usuario después del lanzamiento, requiere acceso al archivo RCP.ini (eclipse.ini), que puede ser posible especialmente si no está contribuyendo con el IDE.
  • establecer como una propiedad del sistema, como un argumento en el acceso directo. Depende del usuario que use el atajo. El acceso directo especializado debe generarse en el momento de la instalación.

Si la accesibilidad del sistema de ficheros es realmente importante, entonces me plantearía usando uno de los métodos anteriores para establecer un directorio etc, y la deje que sus paquetes generan propiedades por defecto los archivos en el directorio etc si no existen en el primer uso. Esto es básicamente hacer rodar su propia tienda de preferencia, por lo que si tiene un paquete de preferencias de acceso, es mejor que lo haga. Este bastante viejo User Settings FAQ también puede ser útil.

Recuerdo una entrevista de Erich Gamma (como en Gang of Four, y JDT technical lead) en la que dice que hay alrededor de siete mecanismos de preferencia diferentes, y que nunca supo cuál usar.

0

Para obtener la ubicación del archivo del directorio de configuración, ejecute:

nueva org.eclipse.core.runtime.preferences.ConfigurationScope() getLocation() TOFILE();..

2

Como ya se señaló, la API de preferencias es algo que se debe tener en cuenta. También está la API de Preferencias seguras que es adecuada para almacenar nombres de usuario y contraseñas cifradas en el disco.

Otra opción es utilizar el servicio OSGi 'org.eclipse.osgi.service.datalocation.Location'. Esto proporciona acceso a las diferentes ubicaciones disponibles.

Una tercera opción es definir una propiedad del sistema en 'config.ini' que apunta a un archivo con su información de conexión utilizando marcadores de posición: 'my[email protected]/mysettings.ini'. '@ config.dir' es un marcador de posición que se reemplaza con la ruta real al directorio de configuración.

Cuestiones relacionadas