## Instrucciones de despliegue e instalación
### 1. Crear esquema de base de datos y tablas:
Se utilizará la base de datos por defecto de postgres llamada "postgres", si se tuiliza otra deberá reflejarse en paso 3 a la hora de configurar el datasource.
También se asume que el servidor de postgres está ubicado en localhost (en la misma máquina donde se ejecutan los EJBs)
Se debe crear un esquema nuevo en PostgreSQL, el esquema debe llamarse "myhealth", se deben conceder permisos al usuario USER. Estas accione (crear el esquema y el usuario) las realiza el script incluido con la solución llamado:
* 01.CreateTables.sql

### 2. Inserción de datos iniciales:
Se debe ejecutar el script, incluido con la solución, que crea la tabla e inserta los datos de prueba:
* 02.Datos_prueba.sql

### 3. Creación del DataSource:
Para este proyecto se utilizará el mismo datasource que para el caso práctico, si no está creado debe añadirse al fichero JBOSS_HOME\standalone\configuration\standalone.xlm.
El usuario y contraseña de base de datos que se han utilizado en el datasource es USER con contraseña PASSWORD.

	<datasource jta="false" jndi-name="java:jboss/postgresDS" pool-name="postgresDS" 
		enabled="true" use-java-context="true" use-ccm="false" statistics-enabled="true">
		<connection-url>jdbc:postgresql://localhost:5432/postgres</connection-url>
		<driver-class>org.postgresql.Driver</driver-class>
		<driver>postgresql</driver>
		<security>
			<user-name>USER</user-name>
			<password>PASSWORD</password>
		</security>
	</datasource>

### 4. Configuración del driver de postgresql en JBOSS
Este proyecto utiliza el mismo driver que el utilizado en el caso practico del laboratorio. Si el entorno no está configurado, deberá configurarse el driver Postgresql en JBOSS. Para ello se debe añadir en el fichero JBOSS_HOME\standalone\configuration\standalone.xlm la siguiente configuración en el nodo <drivers>:

    <driver name="postgresql" module="org.postgresql">
        <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
    </driver>

Además, es necesario configurar la libreria (jar) de postgres en JBOSS. La configuración es la misma que para el caso practico. Crear el archivo modules.xml en el directorio /opt/wildfly/modules/system/layers/base/org/postgresql/main

    <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.0" name="org.postgresql">
        <resources>
            <resource-root path="postgresql-9.4.1209.jar"/>
        </resources>
        <dependencies>
            <module name="javax.api"/>
            <module name="javax.transaction.api"/>
        </dependencies>
    </module>

También se debe copiar el fichero postgresql-9.4.1209.jar en la misma ruta: /opt/wildfly/modules/system/layers/base/org/postgresql/main

### 5. Ejecutar la compilación y despliegue del proyecto
Acceder al directorio con el código fuente ([git-folder]/1.sources/MyHealth), y donde está ubicado el archivo de compilación de ant build.xml, ejecutar `ant` en este directorio, el proyecto debería compilarse y desplegarse automáticamente en el servidor JBOSS local.

## Instrucciones de despliegue alternativo con docker 

### pre-requisitos:
Instalar docker desktop

### Levantar ambiente con un solo comando:
Abrimos la consola y nos posicionamos en el root del proyecto donde se encuentra el archivo `docker-compose.yml` y mediante la ejecución del comando `docker-compose up` levantaremos un contenedor de postgresql con el schema, tablas y permisos configurado y un contenedor con jboss/wildfly también configurado en el que compilaremos la ultima versión del producto y la desplegaremos. 