Tengo una aplicación RCP construida de varios plug-ins personalizados.
Para varios de los de nivel inferior (pero no más bajo nivel) plug-ins, todas las clases de archivos se extraen del plug-in de cántaro en la memoria caché de OSGi bulto bajo la carpeta org.eclipse.osgi en el osgi.configuration.area .
El primer lanzamiento usando esa área de configuración es lento. Los lanzamientos posteriores son rápidos. No sé si la culpa de este almacenamiento en caché para el primero, o el crédito por este último.
PREGUNTAS
- ¿Puedo controlar si un plug-in de las clases se extraen en la memoria caché?
- ¿Quiero?
DETALLES
Esto no está sucediendo en la mayoría de los plug-ins. El tamaño no parece importar. No son los plug-ins de nivel más bajo. No es el conjunto de plug-ins que contienen Bundle-NativeCode.
Si un plug-in utiliza la API FileLocator.toFileURL esto puede descomprimir el código. El Javadoc dice:
El contenido de la URL pueden ser extraídos en una memoria caché en el sistema de archivos con el fin de obtener una dirección de fichero.
A veces se puede evitar llamar toFileURL
simplemente usando el URL.openStream
método para leer el recurso sin desembalar. API como la JFace ImageDescriptor.createFromURL
también no requieren la URL del archivo.