viernes, julio 25, 2008

Buscando un problema

Había un problema y yo estaba buscando uno. Así empiezan muchas historias y no todas acaban bien.

Hace unas semanas mi pila de cosas del "para ayer" se quedó vacía. Le siguió la pila de "para ya" y luego la de "para dentro de poco".

Me quedé sin qué hacer y como tengo internet capado en el curro, apliqué esta cita: "Cuando un guerrero no tiene con quien pelear, afila sus armas", recientemente reformulada como "uno de los motores del software libre es rascarte lo que te pica".

En el trabajo uso un framework libre "fuertemente adaptado" a las necesidades de mi empresa actual (hicieron un fork que cada vez está más desactualizado), así que fui dando vueltas a las cosas que más me hacen odiarlo. Llegué a lo que llegué porque no puedo cambiar unilateralmente el sistema de control de versiones usado.

Os pongo en situación del entorno de mi proyecto:

  • Como sistema de scripting para compilación y ensamblado usamos maven, en su versión 1.x, y un porrón de plugins hechos en casa para que medio funcione.
  • El proyecto se divide en módulos que se comunican por medio de SOAP.
  • Todos los módulos tienen una interfaz más inestable que Debian Sid cuando tiene uno de esos días.
  • En ninguna parte del repositorio de código hay copia de los WSDL de cada módulo, pero es posible generarlos compilando cada módulo.
  • Es muyyy frecuente que falle una subida a entornos de mantenimiento por no ajustarse el WSDL esperado y el realmente presente para varios módulos.

Alguien tenía que solucionar esto, pero Alguien sí tenía curro y me lo acabé asignando.

No sé si conocéis la página del proyecto Apache. Es como ver la portada de SourceForge. Nunca encuentras lo que buscas. Innumerables proyectos, solapándose en su funcionalidad y reemplazando unos a otros, pero sin una visión de conjunto ni noticias útiles. Proyectos abandonados. Documentación inencontrable. Todo lo que de verdad sería útil está en las mail-list (¡que no tenían buscador hasta hace una semana!) y en blogs de gente que se ha perdido antes en esa web.

Después de preguntar en muchos garitos, conseguí enterarme de JBoss sigue la sana costumbre de permitirte ver los WSDL en una URL, qué plugin debía modificar para consultar los WSDL on-line en vez de los locales e incluso en qué lenguaje van los plugins de Maven. Sí, amigos, usan un lenguaje poco conocido, con syntaxis en XML y un nombre tan común que cuesta encontrar cosas útiles en Google.

El engendro se llama Jelly y es ¡otro! proyecto dentro de Apache. Pasadas más horas descubrí que estaba empezando a oler a muerto y que los chicos de Maven tardaron en darse cuenta. Dejaron de usarlo en la versión 2.x.

Mientras hacía estas pesquisas conseguí al menos lo que quería:
  • Una solución parcial al problema de los WSDL (funciona!).
  • Aprender algo que no conocía.
  • Muy posiblemente ser una de las 20 personas que más saben de ello en el mundo.
  • Matar el rato.

Moraleja: Desconfiad de los Apaches.