Hola a todos:
Tras unas semanas de trabajo he podido subir una primera versión del módulo GenericWrapper. La finalidad de este módulo es la de bajarse todos los archivos que la forja disponga de los proyectos. Actualmente sólo trabaja con SourceForge y se descarga el fichero DOAP del proyecto y los ficheros asociados a los tickets y a las downloads. Como no sabemos cuantos ficheros de estos últimos tendrá cada proyecto he añadido un contador para que no se pisen. De esta manera, los ficheros se almacenan con un nombre que sigue la plantilla FORJA-Nombreproyecto-TIPO-NUM. Un ejemplo Sourceforge-firefoxtakeout-GENERAL-0. El campo tipo está limitado a GENERAL, TICKETS o DOWNLOADS.
Al descargar los tickets he tenido problemas ya que SourceForge no sigue siempre el mismo XML-Schema. Cuando no puede acceder, o no tiene, la información de un determinado ticket, devuelve un fichero XML que sigue el esquema sf:error. Pentaho trataba de leerlo como si fuera un fichero normal y el XPath fallaba. Para resolverlo he comprobado antes de extraer la información que el fichero cumple el Schema propio de un fichero RDF. Dicho Schema lo he subido en un fichero llamado rdf.xsd.
La codificación de los ficheros también me ha dado problemas. Según la cabecera de éstos, los ficheros siguen la codificación UTF-8. Sin embargo en su interior hay palabras con acentos y otros caracteres especiales. Pentaho fallaba en este paso independientemente de si lo ejecutaba en Windows o en Linux. Para solventarlo añadí una tarea que modifcaba la cabecera de los ficheros antes de guardarlos y les asignaba la codificación ISO-8859-1.
Como último problema tenemos el consumo de memoria. Tanto el Wrapper como el Discoverer consumen toda la memoria que le asigno a la máquina virtual de Java y empiezan a ralentizarse en su labor, llegando alguno a lanzar la excepción Java Heap Space. He aumentado la memoria de la máquina virtual hasta 2GB ya un así sigue fallando, aunque tarda más en llegar dicho fallo ¿Alguien tiene alguna idea?
Saludos.