Table of Contents

Configurar OpenXava 2.X para Postgres
Comprobar el funcionamiento de la BD Postgres
Configurar la Base de datos (substitución del punto 2.2 de la guía de referencia)
Modificar el fichero “build.xml”
Dejar el driver JDBC de Postgres accesible al Tomcat
Crear el fichero “tomcat-postgres.properties”
Modificar el fichero “hibernate/hibernate-junit.cfg.xml”
Reanudamos nuestro “primer proyecto” a partir del punto 2.3 de la guía de referencia

Configurar OpenXava 2.X para Postgres

En esta versión solo modificaremos los ficheros del proyecto generado en el punto 2.1 de la guía de referencia de OX.
Supondremos que la carpeta donde está instalado OpenXava es openxava2.X.
Por tanto tendreis que cambiar cualquier referencia a la carpeta openxava2.X a vuestra carpeta real de ubicacion del OpenXava.!!!

Comprobar el funcionamiento de la BD Postgres

Hemos de comprobar que el gestor de bases de datos Postgres esté en marcha y que sea accesible desde nuestra máquina. La mejor forma es entrar en el pgAdmin. Si no se tiene, es muy conveniente tenerlo instalado (se obtiene de la Web de Postgres).
postgres01.gif



Una vez abierto, se debe intentar conectar (si no nos deja entrar, ya no podemos seguir adelante).Con el botón derecho del ratón sobre el servidor seleccionamos conectar.
postgres02.gif



A continuación le damos la contraseña que hayamos dado para el usuario “postgres”.
postgres03.png



Una vez dentro, creamos una base de datos, por ejemplo MIBD (en mayúsculas) y creamos un esquema por ejemplo gestion (en minúsculas)
postgres04.gif



Por tanto vamos a trabajar en la base de datos “MIBD” y el esquema “gestion
Observaciones:
NUNCA debéis poner en la base de datos Postgres los nombres de esquemas o tablas en MAYÚSCULAS. Siempre en MINÚSCULAS.! ya que postgres sobre hibernate mapea los nombres de tablas y esquemas en minúsculas.

Configurar la Base de datos (substitución del punto 2.2 de la guía de referencia)



Suponemos que ya hemos creado nuestro primer proyecto según las indicaciones de la guía de referencia en su punto 2.1.
En la carpeta openxava2.x/portal/conf editamos el fichero context.xml y añadimos la siguiente entrada
<Resource name="jdbc/MiGestionDS" auth="Container" type="javax.sql.DataSource"
    maxActive="20" maxIdle="5" maxWait="10000"
    username="postgres" password="mi_password_de_postgres"
    driverClassName="org.postgresql.Driver"
    url="jdbc:postgresql:localhost:5432/MIBD"/>
 
Donde:
mi_password_de_postgres” es la contraseña que tengamos de acceso a Postgres.
url="jdbc:postgresql:localhost:5432/MIBD" es donde definimos el acceso a la base de datos, siendo “localhost” la dirección IP o nombre del servidor donde resida e gestor de base de datos y MIBD es el nombre de nuestra base de datos que hayamos creado en Postgres.
||
Observaciones:
Hay que distinguir entre aquellos que trabajen arrancando el Tomcat desde fuera del Eclipse (ejecutando start-portal desde el directorio de instalación del OpenXava) y los que arranquen el Tomcat desde el Eclipse tal como se explica en http:www.gestion400.com/web/guest/wtp
Para los primeros el fichero context.xml está en “portal/conf”.
Para los segundos en “openxaca2.X/workspace/Servers/Tomcat v5.5 Server @ localhost-config
Si el nivel os lo permite, se aconseja trabajar dentro de Eclipse, ya que se consigue una mayor velocidad y menor cambio de pantallas. Cuanto más nos centremos en lo que hacemos, y menos cambios de pantallas tengamos, reduciremos las probabilidades de tener cometer errores!

Modificar el fichero “build.xml”

Buscamos una línea que tenga tomcat-hypersonic y la cambiamos por otra que hace referencia a un nuevo fichero de configuración tomcat-postgres que crearemos en el siguiente apartado. En este caso se ha puesto comentarios.
<!-- Comentario
<property name="configuration" value="tomcat-hypersonic"/>
-->
<property name="configuration" value="tomcat-postgres"/>
Además indicamos cual es nuestro origen de datos

<property name="datasource" value="MiGestionDS"/>
Buscamos la tarea ant //actualizarEsquema//.
• Ponemos el valor correcto para //schema.path//, en este caso **LA RUTA ABSOLUTA DONDE DEL JAR DEL JDBC DE POSTGRES** ( en mi caso particular y en Windows XP en C:/POSTGRES/postgresql-8.3dev-601.jdbc3.jar )
<!-- Comentario
<property name="schema.path" value="[PUT HERE THE PATH OF YOUR JDBC DRIVER]"/>
-->
<property name="schema.path" value="C:/POSTGRES/postgresql-8.3dev-601.jdbc3.jar"/>
Guardamos los cambios.

Dejar el driver JDBC de Postgres accesible al Tomcat

Para ello guardamos el fichero de los drivers JDBC de Postgres postgresql-8.3dev-601.jdbc3.jar u otro mas recietne al directrorio openxava-2.X/portal/common/lib

Crear el fichero “tomcat-postgres.properties”

Copiamos el contenido del fichero tomcat-hypersonic.properties en un nuevo fichero tomcat-postgres.properties. A continuación cambiamos todo aquello que nos interesa. En este ejemplo modificaremos el separador que lo cambiaremos de “_” a “.”.
También se modificará el dialecto a PostgreSQLDialect.

separator=.
organization_es=Gestión cuatrocientos, s.l.
organization_ca=Gestió quatre-cents, s.l.
organization_en=Management four hundred, limited
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
datasource.prefix=java:comp/env/jdbc

Modificar el fichero “hibernate/hibernate-junit.cfg.xml”

Tenemos que comentar todo lo relativo a HSQLDB (que estaba etiquetado como Hypersonic) y crear nuevas definiciones para Postgres (que se ha etiquetado como Postgres), quedando:
<session-factory>
<!-- Hypersonic comentado
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="hibernate.connection.url">jdbc:hsqldb:hsql:localhost:1666</property>
-->
 
<!-- Postgres-->
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.url">jdbc:postgresql:localhost:5432/MIBD</property>
 
Donde el servidor nuestro es //localhost (pero vosotros teneis que indicar el nombre de la máquina donde reside el servidor Postgres o la dirección), 5432 es el puerto que normalmente está asociado el servicio de BD Postgres i MIBD es el nombre de nuestra base de datos (pero vosotros tenéis que indicar la vuestra).

Además hay que cambiar todo lo relativo a usuarios y contraseñas. Tenemos que poner comentarios al famoso usuario “SA” sin contraseña, y meter el usuario “postgres” (o el que sea) con su contraseña “mi_password_de_postgres” (OJO: la que tu hayas definido o conozcas!)

Además debemos meter entre comentarios el acceso a Hypersonic que es lo que había antes e introducir el nuevo Acceso Postgres lo que hemos añadido después.
<!-- Acceso Hypersonic comentado
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.show_sql">false</property>
-->
 
<!-- Acceso Postgres -->
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.connection.password">mi_password_de_postgres</property>
<property name="hibernate.show_sql">false</property>
 
Y guardamos los cambios.
Ahora ya solo nos queda

Reanudamos nuestro “primer proyecto” a partir del punto 2.3 de la guía de referencia

Ahora realizamos la parte 2.3 de la guía y del componente Almacen.xml el cual repetimos su contenido, podemos decir que:
<!DOCTYPE componente SYSTEM "dtds/componente.dtd">
 
<componente nombre="Almacen">
    <entidad>
        <propiedad nombre="codigo" tipo="String" clave="true"
            longitud="5" requerido="true"/>
        <propiedad nombre="nombre" tipo="String"
            longitud="40" requerido="true"/>
    </entidad>
 
    <mapeo-entidad tabla="GESTION@separator@ALMACENES">
        <mapeo-propiedad propiedad-modelo="codigo" columna-tabla="CODIGO"/>
        <mapeo-propiedad propiedad-modelo="nombre" columna-tabla="NOMBRE"/>
    </mapeo-entidad>
</componente>
GESTIONes el esquema que hemos creado en la base de datos Postgres (MIBD, que no aparece por ningún lado del componente), y “ALMACENES” la tabla a crear. OJO: Cuando hibernate haga el mapeo a Postgres pasará a MINUSCULAS el esquema!
Le damos a las tareas Ant “
generarCodigo” (Nos situamos en eclipse sobre el fichero build.xml de nuestro proyecto, con el botón derecho del ratón seleccionamos “Run As” - “3 Ant build ..” y deseleccionamos “todo” y seleccionamos “generarCodigo”.
Mas tarde nos colocamos sobre la carpeta del proyecto creado en Eclipse y le damos a la tecla F5 para que refresque los ficheros generados.
No estaría mal darle al icono para que compile nuestro proyecto cuando generamos o regeneramos código. (Y también es aconsejable ejecutar la tarea Ant “
reconstruir//”)
Ejecutamos la tarea ant actualizarEsquema tal como hemos hecho en el apartado anterior
Observamos que está creando nuestra tabla ALMACENES.