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!

Advertisements

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

Where2007

La conferencia Where2007, de O’Reilly, se celebra entre hoy y mañana en San José, California, USA, y mi presencia allí (virtual :-P) está garantizada.

Intervendrán Christopher Schmidt y Schuyler Erle, de Metacarta. Ambos son dos de los pilares de OpenLayers.

Chris mostrará, además de TileCache (aprendiendo) y FeatureServer, el propio OpenLayers. Podéis ver el video a modo de slides que presentará aquí: OpenLayers on Where2007 [salgo entre el 00:48 y el 00:51 :_)]

Suerte en las demos 😀

Setting the environment

ArgoUML

Today I didn’t worked too much in ArgoUML, but I did some little things. I set up the homepage of argouml-sequence. It has no much contents, but at least it’s not the tigris default page.

Bob commited a launch file for the eclipse project, but I had some problems with it, so he commited also his project configuration for eclipse. With that I will debug in a comfortable way!

I had this problem with MaCMAS for a long time. I used to debug with sysout (I like very much Eclipse alias 🙂 ), and that’s a pain! He helped me sometime ago debugging some problems with MaCMAS, so he sent me his lauch file for MaCMAS, and with some little modifications, it worked for me too! So I can say that today has been a productive day.

I think that I won’t work too much in ArgoUML this week, because my main goal right now must be finishing MaCMAS. And one of the next steps in my GSoC work must be reading the UML specification documents, so I won’t commit anything for a while!


ArgoUML

Hoy no he trabajado demasiado en ArgoUML, pero he realizado ciertas pequeñas tareas. He creado la página principal de argouml-sequence. No tiene demasiado contenido, pero al menos no es la página por defecto de tigris.

Bob subió un archivo launch para el proyecto de eclipse, pero tuve ciertos problemas con él, por lo que subió también la configuración del proyecto de eclipse. ¡Con eso ya puedo depurar de una manera cómoda!

Tuve este problema con MaCMAS hasta ahora. Solía depurar con sysout (me encantan los alias de eclipse 🙂 ), ¡y eso duele! Me ayudó hace tiempo depurando algunos problemas con MaCMAS, por lo que me ha enviado su archivo lauch para MaCMAS, y con algunas ligeras modificaciones, ¡funcionó! Por tanto puedo decir que hoy ha sido un día productivo.

Creó que no trabajaré apenas en ArgoUML esta semana, porque mi objetivo principal ahora mismo debe ser terminar MaCMAS. Y uno de mis próximos pasos en mi trabajo para el GSoC debe ser leer la especificación de UML, ¡por lo que no subiré nada durante una temporada!