Subversion. Empezando a desarrollar con la 2.40

De wikijoan
Salta a la navegació Salta a la cerca

http://obtrainings.es/2008/06/29/empezando-a-desarrollar-con-la-240/

Voy a explicar como desarrollar con la versión 2.40 de OB de la rama principal de desarrollo(trunk) ya que llevo un tiempecito enredando con ella. Los procedimientos a utilizar en el desarrollo se han simplificado bastante en esta versión, ahora entenderéis porque me refiero a la rama principal y no a una captura de una revisión en concreto.

Nota: Me baso en que ya teníais un OB funcionando y por tanto la instalación y configuración de la pila de herramientas que necesita OB (jdk, ant, tomcat, postgresql/oracle) la doy por buena.

Empezaremos por construir OB a partir de la última revisión del subversion, lo primero que tendremos que hacer es un checkout.

svn co https://dev.openbravo.com/svn/openbravo/trunk/

Ahora debemos configurar OB desde el “config/Openbravo.properties”, en la 2.40 lo tenemos muy fácil porque se han creado una serie de asistentes para cada sistema operativo que nos crean este archivo. En mi caso utilizo el “config/setup-properties-linux.bin” puede que le tengáis que dar permisos de ejecución:

cd config
chmod +x setup-properties-linux.bin
./setup-properties-linux.bin

Seguimos el asistente y ya tendremos creado el archivo de configuración principal de OB. En este punto es recomendable utilizar una nueva base de datos vacia y un nuevo contexto y url para tomcat y así no machacar el de nuestra antigua instalación 2.3x.

Vale, ya podemos compilar, volvemos al raiz de los fuentes de OB y ejecutamos esta tarea ant:

cd ..
ant install.source

Si no recuerdo mal esta tarea debería haber creado la base de datos, haber compilado todo el código y haber creado el archivo war. Si este último paso no lo ha hecho no es un problema ya que un” ant war” no es muy costoso y en poco tiempo tendremos nuestro archivo war listo. Podemos comprobarlo viendo si existe el archivo “lib/nombre_de_contexto.war”.

Nos quedará hacer el despliegue del war, para esto podemos utilizar la tarea “ant deploy” o bien copiar el “lib/nombre_de_contexto.war” al webapps de nuestro tomcat y reiniciarlo.

Bueno ya tenemos nuestro flamante OB 2.40 rulando pero ahora queremos hacer nuestros desarrollos con él y no queremos perder nada cada vez que actualicemos la rama principal ¿cómo se hace esto?

En este momento podemos empezar a desarrollar creando nuestras tablas físicas en la base de datos, añadiéndolas al diccionario, creando las ventanas en el diccionario, etc. Todo como si esta revisión de la rama principal, que seguramente tendrá un capazo de bugs, fuera la buena. Pero llegará un momento en que queramos actualizarla a una revisión superior donde se hayan corregido muchos de estos bugs y aquí es donde entra en juego dbsorucesmanager que está basado en ddlutils.

Es muy importante que estos pasos los sigáis en este orden porque sinó no funcionará.

Primero exportamos el estado de nuestra base de datos al completo (datos de diccionario, datos, etc) a archivos xml. Dbsources manager te obliga a que la revisión de la base de datos sea la misma que la revisón de subversion por eso lo de que es tan importante el orden en los pasos (luego explicaré como solucionar el problema que surge cuando haces un update del código en subversión antes del export de la base de datos):

ant export.database

Una vez has hecho la exportación de la base de datos ya puedes hacer la actualización del código en el subversión. Lo bueno es que ahora a parte de unir (hacer merge) tu revisión del código con los cambios que has hecho con los de la última revisión de la rama principal, también va a unir el estado de tu base de datos con las modificaciones que han hecho en dicha rama. Total, que ahora lo tenemos todo coherente. Antes de seguir hay que comprobar que no tengamos ningún conflicto, este fallo me pasó a mi una vez y luego no me compilaba, normal.

De acuerdo, ahora ya tenemos todo listo y actualizado pero en forma de código, toca aplicar esos cambios en la base de datos y luego recompilar. Primero actualizamos la base de datos con la siguiente tarea ant:

ant update.database

Si todo ha ido bien podremos compilar con:

ant compile. complete

Y luego generar el war y desplegarlo:

ant war
ant deploy

Y ya tendremos nuestro OB 2.40 a la última y con todos nuestros desarrollos tal y como los teníamos antes de empezar a actualizar.

Como os comentaba antes si por un casual hacéis una actualización del subversion antes de exportar la base de datos cuando tiréis a hacer la exportación dbsourcesmanages se quejará diciéndoos que la revisión de la base de datos y la del código no coinciden. Bueno pues miramos que revisión tiene la base de datos y hacemos un:

svn -r revision_de_la_bd update

Para que todo vuelva a estar bien y repetimos el procedimiento. Esto lo que hace es desactualizar el código a la revisión que tiene la base de datos y así nos libramos de este escollo.

Y creo que eso es todo, espero que os sirva de ayuda.

Cheli