Mi idea sobre Javadoc
Como dije en mi anterior post sobre la herramienta Javadoc, había tenido una idea para un proyecto que me parecía interesante y había encontrado que alguien ya lo había hecho antes.
Se trata de aprovechar la estructura de doclet de Javadoc y hacer que la documentación se introduzca en una base de datos (separada en tablas para clases, métodos, etc.) en lugar de generar un html estático. Después se puede hacer una aplicación web que permita interrogar esa bbdd. Una ventaja de este sistema es que permite realizar referencias cruzadas entre distintas API. Te habrá pasado alguna vez que consultando el javadoc de, por ejemplo, el api de servlets, habrás encontrado un método que devuelve un Iterator. En otro lugar de tu disco duro se encuentra el javadoc del J2SE que incluye la interface Iterator, sin embargo no puedes pulsar sobre el Iterator para que te lleve a la documentación de este interface ya que se trata de dos javadocs distintos. Con una herramienta como la que propongo esta referencia cruzada se podría realizar en tiempo de consulta. Otra ventaja de esta herramienta sería el sistema de búsqueda que puede llegar a ser muy potente y muy específico (bucar, por ejemplo, solo aquellos métodos no deprecated, públicos y que devuelvan un String).
La buena noticia es que la herramienta ya existe y es de código abierto. La puedes ver en funcionamiento en www.dbdoc.org y el código fuente de la herramienta lo puedes encontrar en el proyecto ashkelon de Souceforge.
En la web donde lo tienen en funcionamiento se puede encontrar la referencia de varios apis populares siendo una buena referencia online. Curiosamente no tienen disponible el api del J2SE ya que es necesario un permiso explicito de sun para ponerlo en un sitio público en internet. Por otro lado si bajas la herramienta y la instalas en tu intranet o en local en tu máquina, puedes poner cualquier api incluyendo el J2SE y la documentación de tus propios proyectos.