Archiva 1.2.1 sobre JBoss AS 4.0.5 en Windows 64

El primer paso es descargar JBoss 4.05 de la web de descargas de la comunidad de JBoss. Se descomprime en C:\ y se descarga el utilitario para instalarlo como servicio. Esta parte es muy simple y se explica en la siguiente url: http://www.jboss.org/community/wiki/JBossNativeWindows.

Una vez hecho esto, procedemos a montar Apache Archiva. Como vamos a usar de base de datos Derby, debemos copiar derby-10.1.3.1.jar y derbytools-10.1.3.1.jar en la carpeta server\default\lib.
Extraemos archiva-1.2.1.war en la carpeta server\default\deploy\archiva.war.

Creamos el archivo server\default\deploy\derby-ds.xml, con el siguiente contenido:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
     <jndi-name>users2</jndi-name>
     <connection-url>jdbc:derby:database/archiva;create=true</connection-url>
     <driver-class>org.apache.derby.jdbc.EmbeddedDriver</driver-class>
     <user-name>sa</user-name>
     <password></password>
     <min-pool-size>5</min-pool-size>
     <max-pool-size>20</max-pool-size>
     <idle-timeout-minutes>5</idle-timeout-minutes>
     <track-statements/>
  </local-tx-datasource>
  <local-tx-datasource>
     <jndi-name>archiva</jndi-name>
     <connection-url>jdbc:derby:database/archiva;create=true</connection-url>
     <driver-class>org.apache.derby.jdbc.EmbeddedDriver</driver-class>
     <user-name>sa</user-name>
     <password></password>
     <min-pool-size>5</min-pool-size>
     <max-pool-size>20</max-pool-size>
     <idle-timeout-minutes>5</idle-timeout-minutes>
     <track-statements/>
  </local-tx-datasource>
</datasources>

Necesitamos crear también el server\default\deploy\archiva.war\META-INF\context.xml:

<Context path="/archiva" docBase="/">
  <Resource name="jdbc/users" auth="Container" 
            type="javax.sql.DataSource" username="sa" password=""  
            driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
            url="jdbc:derby:database/users;create=true" />
  <Resource name="jdbc/archiva" auth="Container"
            type="javax.sql.DataSource" username="sa" password=""
            driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
            url="jdbc:derby:database/archiva;create=true" />
  <Resource name="mail/Session" auth="Container"
            type="javax.mail.Session"
            mail.smtp.host="localhost"/>
</Context> 

En server\default\deploy\archiva.war\WEB-INF\classes\application.properties tenemos que añadir appserver.home y appserver.base:

user.agent=Apache Archiva/1.2.1
appserver.base=
appserver.home=

Y por último, añadimos el server\default\deploy\archiva.war\WEB-INF\jboss-web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
 <resource-ref>
   <res-ref-name>jdbc/users</res-ref-name>
   <jndi-name>java:/users2</jndi-name>
 </resource-ref>
 <resource-ref>
   <res-ref-name>jdbc/archiva</res-ref-name>
   <jndi-name>java:/archiva</jndi-name>
 </resource-ref>
 <resource-ref>
   <res-ref-name>mail/Session</res-ref-name>
   <jndi-name>java:/Mail</jndi-name>
 </resource-ref> 
</jboss-web>

Profit!

Google Summer of Code final track

Google Summer of Code

Ya estamos en el último mes de la beca Google Summer of Code. Es hora de analizar cosas.

Antes de comenzar con el proyecto, pensaba escribir ciertas entradas sobre mi trabajo. Al final no ha sido así. Quizá, involuntariamente, haya pasado más tiempo haciendo cosas que hablando. Eso no es del todo malo, salvo que en todo proyecto se debe documentar algo (por si te pilla un autobús), y los blogs son una manera de hacerlo.

Así que, aunque no me vaya a meter en temas de código, si quiero dejar constancia de algunas cosillas.

En primer lugar, participar en un proyecto del cual no conoces todo asusta. Al principio me fue algo complicado comenzar, pero gracias a código similar de otros diagramas o de la antigua implementación (recordemos que estoy reprogramando algo existente) se acaba tirando hacia adelante. Sin embargo, tengo la certeza de que este es el diagrama más “especial” de los que abarca actualmente ArgoUML, por lo que ha sido muy importante la guía del mentor.

Sobre el mentor, Bob, sólo tengo buenas palabras. A pesar de que se nota que no me dedica todo el tiempo que le gustaría (cosa bastante común con los mentores en el programa SoC), su ayuda resulta indispensable. Una de las cosas que más me asustaba de adentrarme en ArgoUML es que no es la comunidad más comunicativa que he visto. O al menos eso pensaba antes. Sin embargo, he recibido feedback de algunos desarrolladores, e incluso algún parche.

Sobre el proyecto, me he dado cuenta de lo que fastidia la incertidumbre. El no tener en la cabeza cómo debe ser el resultado final hace que todos tus balances tiendan a ser pesimistas, o al menos eso me ocurre a mí. Al menos, que Bob sí lo tuviera muy claro ha hecho que el proyecto avance sin demasiada dilación. Él siempre ha tenido una visión más optimista acerca del estado del proyecto. A estas alturas, yo tengo la sensación de que para cuando termine el plazo de la beca no estará terminado el proyecto. Sin embargo, creo que el resultado actual posee la mayor parte de las características de la versión antigua (excepto las no deseadas, claro está).

Sobre la manera de trabajar con un proyecto Java sí que he aprendido mucho. Sobre Eclipse he aprendido millones de trucos, incluso le he perdido el asco al Subclipse (siempre fuí partidario de TortoiseSVN, pero me he obligado a usar Subclipse). Sin lugar a dudas, lo que más me ha gustado ha sido utilizar Checklipse. Checklipse no es más que un plugin para Eclipse que utiliza CheckStyle. Gracias a esto, saltarse las normas de estilo se puede considerar un fallo de compilación, o un warning, con lo que se mantiene el código con un estilo coherente constantemente.

Sobre la infraestructura de Tigris, me he adaptado bien. Sin embargo, he echado en falta la interfaz amigable de Trac, así como la posibilidad de añadir hooks al repositorio de Subversion.

Para el futuro, cuento con terminar la implementación del diagrama, así como añadir la sincronización con el diagrama de colaboración, soporte para ingeniería inversa al diagrama de secuencias, así como alguna sorpresa que mejor me guardo.

Espero dentro de un mes volver a escribir sobre el tema, y que todo sean cosas positivas. Por mi parte, estoy seguro de ello 🙂

Dilbert & OpenSource

Dilbert & OpenSource

Microsoft Shared Source

Microsoft ha enviado sus licencias Shared Source para que sean reconocidas por la OSI (Open Source Initiative) y ha abierto un nuevo sitio para reunir todas sus actuaciones relacionadas con el OpenSource (http://www.microsoft.com/opensource/default.mspx).

Puedes leer más en los siguientes enlaces:
Bill Hilf: http://port25.technet.com/archive/2007/07/18/open-source-at-microsoft.aspx
Tim O’ Reilly: http://radar.oreilly.com/archives/2007/07/microsoft_to_su_1.html
Miguel de Icaza: http://tirania.org/blog/archive/2007/Jul-27.html
Microsoft: http://www.microsoft.com/opensource/default.mspx

Producing OpenSource Software

Los participantes del GSoC hemos recibido un regalito de Google: “Producing OpenSource Software”, de Karl Fogel.
Paquete Producing OpenSource Software, Fogel
Producing OpenSource Software, Fogel

Viene firmado 🙂
Producing OpenSource Software, firmado por Fogel
“Happy hacking! Karl Fogel”

Además, me ha llegado ya el “Rapid Development”, de Steve McConnell, que pedí recientemente a Amazon, así que tengo el verano más que completo de lecturas.
Rapid Development, McConnell