Archive

Author Archive

ServiceMix 4.2 en Tomcat6

July 26th, 2010 Jorge Riquelme 3 comments

ServiceMix

Este fin de semana estuve “destripando” ServiceMix, específicamente la distribución 4.2.0-fuse-02-00 de Fuse. El objetivo era generar un war desplegable en Tomcat6, ya que la versión de Fuse sólo viene como aplicación standalone.

Al final fue no fue tan complicado, porque hay un ejemplo que facilita enormemente la tarea.

Al grano

Para ejecutivos de tiempo escaso, estos son los pasos a seguir.

Supuestos:

  • Linux, distribución Ubuntu Karmic x86_64.
  • Tomcat6 instalado vía apt (relevante, porque determina rutas, permisos y usuario tomcat6).
  • estar conectado a internet (se bajarán componentes en la instalación).

Pasos:

  • Baja el war karaf-smx-1.4.0-fuse-02-00.war
  • Como root, crea el directorio .karaf en el home de tomcat6: mkdir /usr/share/tomcat6/.karaf
  • Cambia el owner de .karaf a tomcat6: chown tomcat6:tomcat6 /usr/share/tomcat6/.karaf
  • Crea un link a etc en el directorio de trabajo de tomcat: ln -sf /var/lib/tomcat6/webapps/karaf-smx/WEB-INF/karaf/etc /var/lib/tomcat6/etc
  • Despliega el war: cp /path/to/karaf-smx-1.4.0-fuse-02-00.war /var/lib/tomcat6/webapps/karaf-smx.war

Ahora deberás esperar un buen rato, porque Karaf empezará a bajar e instalar los bundles de ServiceMix. Puedes ir vigilando lo que pasa en el log:

$ tail -f /var/lib/tomcat6/webapps/karaf-smx/WEB-INF/karaf/data/log/servicemix.log

Para verificar que todo está listo, abre una consola (el password es smx):

$ ssh -p 8101 -l smx localhost

Ejecuta el comando list, para ver los bundles instalados:

smx@root> list
START LEVEL 100
   ID   State         Blueprint      Spring    Level  Name
[   0] [Active     ] [            ] [       ] [    0] OSGi System Bundle (3.5.1.R35x_v20090827)
[   1] [Active     ] [            ] [       ] [    5] OPS4J Pax Url - mvn: (1.1.2)
[   2] [Active     ] [            ] [       ] [    5] OPS4J Pax Url - wrap: (1.1.2)
...
[ 173] [Active     ] [            ] [       ] [   60] Apache ServiceMix Bundles: commons-io-1.3.2 (1.3.2.3)
[ 174] [Active     ] [            ] [       ] [   60] camel-cxf (2.2.0.fuse-02-00)
[ 175] [Active     ] [            ] [       ] [   60] camel-jms (2.2.0.fuse-02-00)
smx@root>

Cuando sean 175 debería esta todo listo para la acción :D .

Read more…

Jar ejecutable con Maven

June 23rd, 2010 Jorge Riquelme No comments

Una pregunta común que hacen usuarios nuevos de Maven es cómo crear un jar ejecutable. Generalmente las soluciones propuestas van en la línea de generar un sólo jar gigante –con todas las dependencias dentro– utilizando algo como uberjar, fatjar o el descriptor jar-with-dependencies de maven-assembly-plugin. Esto, en mi opinión, es inconveniente y poco estético, por varias razones:

  • El jar resultante es una sopa de artefactos, ya que se mezclan todas las dependencias directas y transitivas con la aplicación misma.
  • No escala; para proyectos con muchas dependencias, el proceso de formar el “super jar” es lento, por lo que no es una opción viable para utilizar en tiempo de desarrollo (sólo al hacer un release).
  • Pueden haber problemas de licencia. Algunas dependencias pueden exigir que se mantenga la integridad de los binarios que distribuyen, prohibiendo “reempaques”.

Los requerimientos que deseo satisfacer son bastante simples:

  1. Generar un jar con el manifiesto necesario; esto es, que indique la clase con el punto de entrada main y las dependencias.
  2. Poder obtener todos los jars de las dependencias, directas y transitivas, en un directorio de salida aparte (lib, por ejemplo).
  3. Generar un pequeño script bash, que lance el jar con el classpath configurado.
  4. Obtener una distribución de la aplicación, o sea, copiar todo lo anterior en un directorio del sistema (o en target).
  5. Debe ser rápido!, ya que será ejecutado recurrentemente, en tiempo de desarrollo.

En algún momento del pasado lejano llegué a una configuración que satisface los objetivos listados, consistente en una combinación de maven-jar-plugin, maven-dependency-plugin y maven-resources-plugin. Read more…

Categories: Desarrollo de Software Tags: ,

Cha chaaan!

April 14th, 2010 Jorge Riquelme 3 comments

Para alegría de la internecz , he vuelto! (dejavú) :P . Claramente no tengo alma de bloguero, es cosa de ver haber visto las espaciadas fechas entre mis post cero-aporte. No es que la pereza me consuma o que no tenga nada que decir, si no que simplemente, hace rato, “no estoy ni ahí loco”. Desde hace un par de primaveras he estado más concentrado en mis propios afanes, que se reducen a la lectura y al perfeccionamiento de mis habilidades ninja en el área del desarrollo de software (y de forma marginal, a cosas más mundanas que no vale la pena mencionar). Digamos que, con los años, el espíritu voyerista de mi adolescencia se ha ido extinguiendo, y exteriorizar mis intimidades ha perdido todo el brillo que alguna vez tuvo. De hecho, releyendo vieeeeeeeejos post no he podido dejar de sentir un poco de vergüenza con algunos. Reflexionando al respecto, no puedo concluir otra cosa que, la culpable de mi arrebato de pudor, típico de vieja polleruda, es ni más ni menos que la adultez!. Si señores, los años no pasan en vano, y aunque las series de animé sigan estando en mi lista de descargas, cosas como ahorrar para un departamento y el que tu mamá hable de nietos es sintomático de que ya ha pasado harta agua bajo el puente. Read more…

Categories: Cotidianidad Tags: