Hasta el momento, hemos visto las diferentes extensiones proporcionadas por la herramienta readme. Veamos ahora la definición general del plug-in de esta herramienta.
El plug-in de la herramienta readme se define en el archivo MANIFEST.MF.
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Plugin.name Bundle-SymbolicName: org.eclipse.ui.examples.readmetool; singleton:=true Bundle-Version: 3.2.0.qualifier Bundle-ClassPath: readmetool.jar Bundle-Activator: org.eclipse.ui.examples.readmetool.ReadmePlugin Bundle-Vendor: %Plugin.providerName Bundle-Localization: plugin Require-Bundle: org.eclipse.ui, org.eclipse.core.resources, org.eclipse.core.runtime, org.eclipse.ui.views, org.eclipse.ui.ide, org.eclipse.jface.text, org.eclipse.text, org.eclipse.ui.workbench.texteditor, org.eclipse.ui.editors Eclipse-AutoStart: true Eclipse-AutoStart-comment: Utilizar Eclipse-AutoStart en lugar de Eclipse-LazyStart, ya que el ejemplo de readme debe ejecutarse en 3.1 además de en 3.2.
La definición del plug-in incluye el nombre de paquete compuesto (Bundle-Name), el nombre simbólico del paquete compuesto (Bundle-SymbolicName) (id de plug-in), la versión del paquete compuesto (Bundle-Version) y el proveedor del paquete compuesto (Bundle-Vendor) del plug-in. Ya hemos visto la mayoría de estos parámetros, cuando examinamos el plug-in Hello World. La herramienta readme también define una clase de plug-in especializada, ReadmePlugin.
También se proporciona el nombre del archivo jar. Los nombres de archivo especificados en Bundle-ClassPath son relativos al directorio del plug-in, y por tanto el archivo jar de la herramienta readme debe localizarse directamente en el directorio del plug-in.
El elemento Require-Bundle informa a la plataforma de las dependencias de la herramienta readme. Los plug-ins de la UI del entorno de trabajo figuran como plug-ins necesarios, junto con los diversos plug-ins del núcleo, jface y de texto.
La clase ReadmePlugin representa el plug-in de la herramienta readme y gestiona el ciclo de vida del plug-in. Tal como vimos en el ejemplo de Hello World, no es necesario especificar una clase de plug-in. La plataforma le proporcionará una. En este caso, el plug-in necesita inicializar los datos relacionados con la UI cuando se inicia. La clase AbstractUIPlugin de la plataforma proporciona una estructura para gestionar los recursos de la UI y se amplía mediante ReadmePlugin.
AbstractUIPlugin utiliza los métodos de inicio y conclusión genéricos para gestionar las imágenes, los valores de diálogo y un almacén de preferencias durante el ciclo de vida del plug-in. Veremos los elementos específicos de la clase ReadmePlugin cuando trabajemos con los diálogos y las preferencias.