sábado, 27 de septiembre de 2008

Actualizando Apache Continuum de 1.1 a 1.2

La versión 1.2 de Apache Continuum contiene una gran cantidad de mejoras con respecto a la versión anterior por lo que se recomienda su actualización.

A continuación describo los pasos necesarios para hacerlo:

  1. Instalar la versión 1.2

  2. Lo primero que debemos hacer es bajar el instalador y descomprimirlo en la ubicación deseada. La aplicación quedará instalada en el directorio

    apache-continuum-1.2

  3. Copiar la configuración de correos y puerto de ejecución.

  4. En la versión 1.1 esta configuración se encontraba en el archivo

    continuum-1.1/conf/plexus.xml

    Ahora se encuentra en el archivo

    apache-continuum-1.2/conf/jetty.xml

    Para cambiar los valores del servidor de correo debemos actualizar esta sección. Aquí colocamos los valores del servidor y del usuario si se requiere autenticación.



    <!-- continuum configuration -->
    <!-- START SNIPPET: mail -->
    <New id="validation_mail" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>mail/Session</Arg>
    <Arg>
    <New class="org.mortbay.naming.factories.MailSessionReference">
    <Set name="user"></Set>
    <Set name="password"></Set>
    <Set name="properties">
    <New class="java.util.Properties">
    <Put name="mail.smtp.host">localhost</Put>
    </New>
    </Set>
    </New>
    </Arg>
    </New>
    <!-- END SNIPPET: mail -->

    En el mismo archivo podemos cambiar el puerto de ejecución el cual tiene por defecto el valo 8080, cambiando la entrada de jetty.port


    <!-- START SNIPPET: jetty_port -->
    <Call name="addConnector">
    <Arg>
    <New class="org.mortbay.jetty.nio.SelectChannelConnector">
    <Set name="host"><SystemProperty name="jetty.host" /></Set>
    <Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
    <Set name="maxIdleTime">30000</Set>
    <Set name="Acceptors">2</Set>
    <Set name="statsOn">false</Set>
    <Set name="confidentialPort">8443</Set>
    <Set name="lowResourcesConnections">5000</Set>
    <Set name="lowResourcesMaxIdleTime">5000</Set>
    </New>
    </Arg>
    </Call>
    <!-- END SNIPPET: jetty_port -->

  5. Personalizar los correos


  6. Al igual que en la versión 1.1, esta configuración se encuentra en el archivo

    apache-continuum-1.2/apps/continuum/webapp/WEB-INF/classes/META-INF/plexus/application.xml

    Las entradas que podemos personalizar aquí son

    Dirección de envio y asunto del correo

    <from-mailbox>midireccion@miserver.com</from-mailbox>
    <from-name>Integracion Continua</from-name>
    <timestamp-format>EEE d MMM yyyy HH:mm:ss Z</timestamp-format>
    <subject-format>[continuum] BUILD ${state}: ${project.projectGroup.name} - ${project.name} - ${build.buildDefinition.description}</subject-format>

    Contenido del correo. Se debe colocar en true los valores que se quieran activar

    <includeBuildResult>true</includeBuildResult>
    <includeBuildSummary>true</includeBuildSummary>
    <includeTestSummary>true</includeTestSummary>
    <includeOutput>true</includeOutput>
    <alwaysSend>false</alwaysSend>

  7. Configurar los directorios de trabajo

  8. Se debe editar el siguiente archivo

    apache-continuum-1.2/conf/continuum.xml

    y agregarlas siguientes entradas con los valores correspondientes al ambiente local

    <?xml version="1.0" encoding="UTF-8"?>
    <continuum-configuration>
    <baseUrl>http://localhost:8085/continuum</baseUrl>
    <buildOutputDirectory>/export/home/myuser/apache-continuum-1.2/target/build-output-directory</buildOutputDirectory>
    <workingDirectory>/export/home/myuser/apache-continuum-1.2/target/working-directory</workingDirectory>
    <releaseOutputDirectory>/export/home/myuser/apache-continuum-1.2/target/release-output-directory</releaseOutputDirectory>
    </continuum-configuration>

  9. Copiar la base de datos

  10. Debemos copiar las bases de datos de proyectos y usuarios de 1.1 a 1.2

    Creamos directorios de datos


    cd ~/apache-continuum-1.2/
    mkdir data
    mkdir data/databases
    cd data/databases
    mkdir continuum
    mkdir users

    Proyectos

    cd ~/continuum-1.1/data/continuum/database
    tar -cvf continuum.tar *
    cd ~/apache-continuum-1.2/data/databases/continuum
    rm -fr *
    tar -xvf ~/continuum-1.1/data/continuum/database/continuum.tar

    Usuarios

    cd ~/continuum-1.1/data/users/database
    tar -cvf users.tar *
    cd ~/apache-continuum-1.2/data/databases/users
    rm -fr *
    tar -xvf ~/continuum-1.1/data/users/database/users.tar

    * NOTA WINDOWS: no se porque pero en mi ambiente la base de datos siempre se crea en el directorio apache-continuum-1.2/logs/data. Quizas sea un defecto de la aplicación.

  11. Arrancar Continuum 1.2

  12. A diferencia de la versión 1.1 donde había un script por cada tipo de ambiente, en esta versión hay un solo script para ejecutar: continuum. Este comando requiere Java 5 o superior para correr.

    Linux

    cd ~/apache-continuum-1.2/bin
    ./continuum start

    Windows (se debe instalar como servicio primero)

    cd apache-continuum-1.2/bin
    continuum.bat install
    continuum.bat start

    Se puede verificar la salida en el archivo logs/continuum.log

    cd apache-continuum-1.2/logs
    tail -100f continuum.log

  13. Agregar los roles nuevos a usuarios ya existentes

  14. Una vez que se hace login a la aplicación con un usuario administrador, se debe entrar a la opción de administración de usuarios y agregar los nuevos roles definidos en la versión 1.2 a cada usuario. Si no se hace esto las opciones local repositories y purge configuration no apareceran en el menu.

Como punto final, si la versión 1.1 desde donde se esta actualizando no era la 1.1 final sino una versión alfa o beta lo mas seguro es que el defecto CONTINUUM-1688 este presente. Para arreglarlo debemos hacer lo siguiente

Si no se tiene Derby Db instalado debemos bajar el instalador y descomprimirlo.

Definimos la variable de ambiente DERBY_HOME apuntando al directorio donde instalamos derby.

Usando ij ejecutamos el script que altera la bd


cd $DERBY_HOME/bin
ij

ij version 10.4
ij> connect 'jdbc:derby:~/apache-continuum-1.2/data/continuum/database';
ij> select count(*) from sa.CHANGESET;
1
-----------
2894

1 row selected

ij> alter table SA.CHANGESET alter column CHANGECOMMENT SET DATA TYPE varchar(8192);
0 rows inserted/updated/deleted

ij>exit;


Publicar un comentario