Mostrando las entradas con la etiqueta tomcat. Mostrar todas las entradas
Mostrando las entradas con la etiqueta tomcat. Mostrar todas las entradas

martes, 11 de agosto de 2009

Instalando Sonar usando MySQL en Tomcat 6

Sonar es una herramienta para administrar la calidad del código fuente en Java la cual se basa en otras herramientas de análisis como findbugs, PMD, cobertura, checkstyles, etc. Esta herramienta se encarga de recolectar los resultados de los diferentes análisis y los guarda en un histórico lo cual permite ver la evolución de un proyecto en el tiempo. 

La instalación por defecto de Sonar es muy sencilla, solo se debe descomprimir el instalador en formato zip y ejecutar el script asociado a la plataforma que se encuentra en la carpeta bin. La base de datos usada por la aplicación por defecto es Derby, aunque el equipo técnico de Sonar recomiendan usar otra BD para ambientes que no sean de pruebas. 

En este articulo voy a describir los pasos necesarios para instalarla en Tomcat usando como base de datos MySQL.

A continuación detallo los pasos a realizar:

Lo primero es crear la base de datos en MySQL y asignar los privilegios de acceso al usuario sonar (o cualquiera que se desee usar). Las tablas son creadas cuando se arranca la aplicación por primera vez



mysql -u root -p

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
grant all privileges on sonar.* to 'sonar'@'localhost' identified by 'password';
flush privileges;


El siguiente paso consiste en configurar Sonar. Para eso lo primero que hay que hacer es descomprimir en un directorio temporal el instalador. Luego buscamos el archivo sonar.properties en la carpeta conf y editamos los parámetros de conexión a la bd.



Se comenta la configuración de la bd Derby



#sonar.jdbc.url: jdbc:derby://localhost:1527/sonar;create=true
#sonar.jdbc.driverClassName: org.apache.derby.jdbc.ClientDriver
#sonar.jdbc.validationQuery: values(1)


Y se des-comenta y se ajustan los parámetros de MySQL



sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.driverClassName: com.mysql.jdbc.Driver
sonar.jdbc.validationQuery: select 1


sonar.jdbc.username: sonar
sonar.jdbc.password: password

El siguiente paso es la creación del war. Para eso debemos cambiarnos al directorio war dentro de la instalación de sonar y ejecutar el script build-war.sh

cd ../war
./build-war.sh

Si se usa tomcat 5 no hay necesidad de ajustar la configuración de tomcat ya que es soportado directamente por sonar. En nuestro caso vamos a usar Tomcat 6 (6.0.18 en mi caso) y para que funcione debemos hacer un pequeño cambio en el script $TOMCAT_HOME/bin/catalina.sh. Debemos editar el script y agregar la siguiente linea al principio

# Soporte Sonar
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -XX:PermSize=256m -Djava.awt.headless=true"

Hay otros sitios donde especifican el uso de otros parámetros pero a mi me funciono bien con la definición de arriba.


Ya lo único que nos queda es hacer deploy del war y configurar maven para que pueda registrar la información en la bd.


Para hacer deploy solo basta copiar el war en la carpeta $TOMCAT_HOME/webapps y reiniciar tomcat

$TOMCAT_HOME/bin/shutdown.sh
cp -p sonar.war $TOMCAT_HOME/webapps
$TOMCAT_HOME/bin/startup.sh

y para configurar maven solo debemos definir el siguiente perfil en el archivo {home}/.m2/settings.xml. La configuracion incluye los parametros de conexion a la bd.

<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- EXAMPLE FOR MYSQL -->
<sonar.jdbc.url>
jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>mipassword</sonar.jdbc.password>
<!-- SERVER ON A REMOTE HOST -->
<sonar.host.url>https://www.mycompany.com/sonar</sonar.host.url>
</properties>
</profile>
</profiles>

<activeProfiles>
<activeProfile>sonar</activeProfile>
</activeProfiles>



Lo único que nos falta es recopilar la información usando maven, lo cual lo podemos hacer con el siguiente comando

mvn clean package sonar:sonar

Y luego revisar la información desde sonar.







domingo, 28 de octubre de 2007

Integración continua usando Hudson

Hudson es otra herramienta de integración continua open source que se encarga de monitorear la ejecución de tareas repetidas ya sea la creación de un proyecto o la ejecución de tareas en un cron, es muy similar a Continuum y Cruise Control.

Entre las características de la herramienta tenemos:

  • Fácil de instalar. Se distribuye como war que se instala muy fácil en cualquier web container como tomcat. También se puede ejecutar como standalone ejecutando el comando
  • java -jar hudson.war

  • La administración se realiza totalmente usando una interfaz web lo cual facilita enormemente su configuración.
  • Soporta notificación via IM, e-mail y RSS.
  • Gran cantidad de reportes para JUnit y TestNG.
  • Extensión de la herramienta a través de plugins. Actualmente se cuentan con plugins de JIRA, findbugs, Plot, Polarion, Trac, Clover entre otros.
  • Soporta cvs y subversion como scm. También se puede trabar sin repositorio para control de versiones (scm) lo cual es útil cuando se tienen proyectos personales que se almacenan de forma local.

A continuación tenemos una serie de pantallas de la herramienta


  • Pagina principal


  • Agregar un nuevo proyecto





  • Opciones de administración


  • Detalle de un proyecto




  • Ejecución de un build





  • Opciones al agregar un proyecto


  • Estructura en disco





Powered by ScribeFire.

sábado, 27 de octubre de 2007

Continuum 1.1-beta-4 disponible

La versión 1.1 de Continuum ya llega al release beta-4, falta poco para tener la versión oficial disponible.

Pueden bajarlo en estos links


En este link tienen la guia de instalación, la cual incluye las versiones ejecutable, tomcat, jboss, geonimo y glassfish


- < Continuum 1.1-beta-4 started! >
- ---------------------------------
- \ ^__^
- \ (oo)\_______
- (__)\ )\/\
- ||----w |
- || ||
-
-


Powered by ScribeFire.

miércoles, 13 de junio de 2007

Como hacer debug remoto en Tomcat desde Eclipse

Para hacer debug remoto en Tomcat desde Eclipse lo primero que debemos hacer es configurar Tomcat para que trabaje en modo debug. Para eso solo falta crear las 2 siguientes variables de ambiente

JPDA_ADDRESS=<puerto de debug>
JPDA_TRANSPORT=dt_socket

Lo siguiente es levantar tomcat usando el script catalina.bat/catalina.sh pasando como parámetros jpda start.

set JPDA_ADDRESS=8099
set JPDA_TRANSPORT=dt_socket
catalina jpda start

Tomcat va a levantar y va a mostrar un mensaje indicando que esta listo para recibir conexiones de debug

Listening for transport dt_socket at address: 8099

El siguiente paso es configurar eclipse. Para eso seleccionamos Run - Open Debug Dialog ... , y seleccionamos New Remote Java Application. Alli llenamos los campos Host y Port con los valores localhost y 8099 (o el puerto seleccionado).




y luego lo ejecutamos en el botón Debug y listo, ya podemos poner breakpoints en nuestro código y navegar en el browser. Eclipse se detendrá cuando alcance un breakpoint.



Powered by ScribeFire.