Eclipse Check for Updates (sick)

Si vives en el mundo Eclipse, probablemente estés familiarizado con RCP y hayas realizado algún proyecto cuyo resultado haya sido un producto de este tipo. RCP son las siglas de Rich Client Platform y básicamente proporciona una plataforma sobre la que construir aplicaciones (de escritorio). Esta plataforma está constituida principalmente por Equinox (la implementación de OSGi en Eclipse).

Si además tu producto basado en RCP tiene ya algún tiempo, es más que seguro que lo habrás actualizado en alguna ocasión. Quizá has evolucionado un poco el código y has vuelto a generar la aplicación desde cero. Cuando este es el caso, uno echa en falta poder disponer de los mecanismos de actualización que proporciona Eclipse, esas magníficas opciones Check for Updates e Install new software del menú Help.

Pues no hay que lamentarse más, porque RCP permite reutilizar el mismo mecanismo de actualización que trae el entorno Eclipse en nuestros productos. Además, la reutilización es bastante flexible. Por ejemplo, podemos restringir el uso exclusivamente para actualizaciones, impidiendo instalar nueva funcionalidad. O bien, podemos permitir que el usuario instale nueva funcionalidad pero sólo desde los repositorios p2 que le proporcionemos nosotros.

En esta página del wiki del proyecto Equinox se describe cómo hacerlo. El tutorial está soportado por una serie de proyectos que implementan los diferentes enfoques y que se pueden obtener del cvs con un simple checkout:

:pserver:anonymous@dev.eclipse.org:/cvsroot/rt

Es muy interesante también la sección Headless Updating on Startup, donde se describe cómo buscar actualizaciones del producto al arrancar.