El autoalojamiento simple resulta adecuado para la mayoría de las situaciones autónomas, especialmente para desarrollar con respecto a productos de gran tamaño como destinos. Sin embargo, existen escenarios en los que es necesaria una solución más avanzada:
Los conectores externos no están en el área de trabajo y, por ello, no forman parte del ámbito de la búsqueda. Por lo tanto, en diversas búsquedas (de referencias de clase e interfaz, implementaciones, etcétera) se devuelven menos resultados de los que cabría esperar. Para el conector Java solo están visibles las bibliotecas externas que forman parte de la vía de acceso de clases de los conectores del área de trabajo.
Estrechamente relacionado con el primer punto, solo es posible examinar el código fuente de los conectores externos en el caso de que sean necesarios para los conectores del área de trabajo. Los otros conectores no están visibles.
La vía de acceso de clases no es estable. Si trabaja en diversos conectores interdependientes en el área de trabajo, el PDE expresará estas dependencias como referencias de proyecto. En cambio, las dependencias de conectores externos se expresarán mediante la variable ECLIPSE_HOME y los archivos JAR externos. Si estos proyectos se comparten mediante el depósito, los otros desarrolladores se verán obligados a replicar este complemento aunque no necesiten todos los conectores existentes en el área de trabajo.
La conclusión obvia es que, si todos los conectores se encontraran en el área de trabajo, se solucionarían todos estos problemas. La búsqueda funcionaría como cabría esperar, el código fuente estaría visible para todas las clases, y la vía de acceso de clases sería uniforme, es decir, solo contendría referencias de proyecto. Sin embargo, si siempre se tuviera que añadir la totalidad del producto desde un depósito compartido en formato fuente, los procesos de bajada y compilación se desarrollarían con una lentitud inaceptable. Por esta razón, se ha elaborado el concepto de proyecto binario.
Los proyectos binarios son proyectos de conector normales que no contienen código fuente. Como tales, se pasan por alto durante la compilación y solo se utilizan para solucionar los problemas indicados más arriba. Los conectores externos se trasladan al área de trabajo mediante el asistente de importación del PDE.
Antes de importar proyectos binarios, es importante configurar el PDE para el autoalojamiento de proyectos binarios. Dado que no utilizaremos conectores externos en las referencias resueltas, debemos inhabilitarlos en las preferencias. Después, se invoca el asistente Importar seleccionando Archivo->Importar...->Conectores y fragmentos externos.
La mayoría de las veces, aceptará los valores por omisión de la primera página. Por omisión, importará los conectores externos del entorno de trabajo de tiempo de ejecución destino según lo establecido en las preferencias. La primera página del asistente de importación le permite cambiar la ubicación del entorno de trabajo de tiempo de ejecución, proporcionando un acceso directo a la página Desarrollo de conectores->Plataforma destino por medio del botón Cambiar...
La importación de proyectos binarios puede hacer crecer el tamaño del área de trabajo, y la propia operación de importación podría prolongarse demasiado, aunque ello depende del número de conectores que se importen y de su contenido. Para salir al paso de estos problemas, el PDE ha elaborado el concepto de importar con enlace. Si quita la marca del recuadro de selección 'Copiar contenido de conector en la ubicación del área de trabajo', el PDE no importará el contenido de los conectores seleccionados en el área de trabajo. En vez de ello, creará proyectos para esos conectores en el área de trabajo, y creará un recurso enlazado para cada archivo que se hubiese importado. Los recursos enlazados señalan hacia los archivos reales del directorio de instalación, y se mostrarán en el área de trabajo igual que si se hubieran importado explícitamente. Podrá examinarlos, pero no modificarlos, ya que la modificación de esos archivos provocaría la modificación de los archivos originales. Naturalmente, si suprime un proyecto binario, se suprimirían todos los archivos enlazados contenidos en él.
La acción de conectar automáticamente código fuente a un archivo JAR y la opción de extraer archivadores fuente exigen que el PDE localice el archivo zip que contiene el fuente. El PDE tiene dos requisitos para esta tarea:
1. Hay que denominar el archivo zip adecuadamente. Si el nombre de la biblioteca es xyz.jar, el archivo zip que contiene el fuente de esa biblioteca se debe llamar xyzsrc.jar.
2. El archivo zip debe estar junto al archivo JAR o en una de las ubicaciones de código fuente declaradas. En Eclipse, el código fuente se empaqueta en conectores aparte, y las ubicaciones del código fuente se declaran mediante el punto de extensión 'org.eclipse.pde.core.source'. El PDE explora automáticamente todas las extensiones de la plataforma destino, calcula todas las ubicaciones de código fuente que hay en esa plataforma, y las añade a la página de preferencias de Desarrollo de conectores->Ubicaciones de código fuente.
Si importa desde una ubicación que no sea la plataforma destino, según lo especificado en la página de preferencias de Desarrollo de conectores->Plataforma destino, y su código fuente se empaqueta utilizando los puntos de extensión 'org.eclipse.pde.core.source', no olvide añadir manualmente esas ubicaciones de código fuente a la página Desarrollo de conectores->Ubicaciones de código fuente, para que el PDE pueda localizar el fuente satisfactoriamente.
A veces, las vías de acceso de las bibliotecas contienen variables, como $ws$. El PDE utiliza los valores establecidos en la página Desarrollo de conectores->Entorno destino para sustituir estas variables. Si dichos valores son incompatibles con la plataforma desde la que está importando, la primera página del asistente de importación proporciona un acceso directo a esa página de preferencias mediante el botón Cambiar..., que le permite modificar los valores en esa página de preferencias.
Al pulsar Siguiente, el asistente calculará todos los candidatos a la importación y hará que estén disponibles en una lista de recuadros de selección. El conjunto real de conectores que seleccione dependerá del tipo de autoalojamiento.
Si está trabajando en conectores que todavía no están presentes en la plataforma destino, le interesará seleccionar todas las opciones (Seleccionar todo). Si alguno de los conectores de la lista ya se encuentra en el área de trabajo en formato fuente, le interesará pulsar Proyectos existentes y, después, Invertir selección. Esto hará que se seleccionen todos los conectores que todavía no estén en el área de trabajo.
Cuando pulse Finalizar, los conectores seleccionados se importarán al área de trabajo. El PDE también establecerá la vía de acceso de clases de los conectores y asociará los archivadores fuente a las bibliotecas, para que sea posible examinarlos o depurarlos.
Si existe un gran número de proyectos binarios en el área de trabajo, es difícil distinguirlos de los proyectos fuente. El PDE proporciona dos formas complementarias de manejar este problema. Proporciona un decorador de etiquetas que recubre el icono de proyecto normal con un icono de 'binario' para marcar claramente el proyecto binario. Puede activarlo en la página de preferencias, en 'Entorno de trabajo->Decoraciones de etiqueta'. Además, el PDE, a modo de contribución, aporta un filtro de proyectos binarios a la vista Explorador Java. Si se activa, ocultará los proyectos binarios y solo dejará aquellos en los que esté trabajando.