ATLAS ARQUETIPO JAR Versión 1.0.0 Área de Integración y Arquitectura de Aplicaciones Arquetipo Jar Fecha: Framework Atlas 10-abr-10 Hoja de Control Título Manual Arquetipo Jar Documento de Referencia Responsable Área de Integración y Arquitectura de Aplicaciones Versión 1.0.0 Fecha Versión 10/04/2010 Fecha 1 Revisado/Validado por: Revisión/Validación 2 Aprobado por: Fecha Aprobación 1 El Responsable de Mantenimiento realizará la revisión y validación del documento. 2 La aprobación del documento será realizada por el Director del Proyecto. Registro de Cambios Versión Causa del Cambio Responsable del Cambio Fecha del Cambio 1.0 Versión inicial del documento 1.1 Revisión Begoña Delgado 16/03/2009 1.2 Revisión ICM Manuel Pereira 21/05/2009 Pilar Roig 10/04/2010 1.0.0 Arquetipo jar 04/05/2010 Homogeneización de documentos 05/02/2009 Página 2 de 9 Arquetipo Jar Fecha: Framework Atlas 10-abr-10 Índice 1. INTRODUCCIÓN ................................................................................................................................................................ 4 2. AUDIENCIA OBJETIVO.................................................................................................................................................... 4 3. CONOCIMIENTOS PREVIOS........................................................................................................................................... 4 4. INFORMACIÓN SOBRE EL ARQUETIPO..................................................................................................................... 5 4.1. 4.2. 4.3. 4.4. CREACIÓN DE UNA APLICACIÓN PARTIENDO DEL ARQUETIPO .......................................................................................... 5 ESTRUCTURA DEL ARQUETIPO ......................................................................................................................................... 5 ESTRUCTURA DE DIRECTORIOS Y ARCHIVOS .................................................................................................................... 6 EJECUCIÓN DE LA APLICACIÓN ........................................................................................................................................ 7 5. VALIDACIÓN DE LA NORMATIVA Y GENERACIÓN DE LA DOCUMENTACIÓN............................................ 8 6. FUNCIONALIDADES NO INCLUIDAS EN EL ARQUETIPO ..................................................................................... 8 7. ENLACES RELACIONADOS ............................................................................................................................................ 9 Arquetipo jar 04/05/2010 Página 3 de 9 Arquetipo Jar Fecha: Framework Atlas 10-abr-10 1. INTRODUCCIÓN Los arquetipos son la plantilla para la generación de los distintos proyectos dentro del Framework Atlas 2.0. Estos arquetipos utilizan el plugin archetype de maven para generar la estructura de ficheros y directorios necesarios para nuestro proyecto gestionando las librerías que le indiquemos así como las dependencias entre ellas y las dependencias transitivas que se generen con otras librerías. Todas las librerías serán incluidas durante el empaquetado del proyecto, por lo que debe estar conectado al repositorio de artefactos de la Comunidad de Madrid (Artifactory). El framework Atlas versión 2.0 consta de cinco tipos de arquetipos - Arquetipo para proyectos de tipo web - Arquetipo para proyectos de tipo jar. - Arquetipo para proyectos de tipo webservice o servicios web - Arquetipo para proyectos de tipo batch - Arquetipo para proyectos de gestión documental (documentum) El Arquetipo para proyectos Jar se debe utilizar para generar proyectos de tipo librería con la estructura de directorios preparada para para comenzar a desarrollar. Al ser un arquetipo de tipo jar solo contiene las configuraciones básicas de cualquier proyecto (spring, hibernate, etc.). 2. AUDIENCIA OBJETIVO Este documento está dirigido a desarrolladores de proyectos java para ICM en los que se deseen crear una librería java utilizando el framework de desarrollo Atlas 2.0. 3. CONOCIMIENTOS PREVIOS Para un completo entendimiento del documento, el lector deberá tener conocimientos previos sobre las siguientes tecnologías: - Java - Spring Framework. - Hibernate - Maven - Eclipse Además, es necesario haber leído y seguido los pasos del “Manual Preparación Entorno Desarrollo” para tener el entorno de desarrollo preparado. Arquetipo jar 04/05/2010 Página 4 de 9 Arquetipo Jar Fecha: Framework Atlas 10-abr-10 4. INFORMACIÓN SOBRE EL ARQUETIPO 4.1. Creación de una aplicación partiendo del arquetipo Crear un proyecto Jar (librería) a partir de un arquetipo es similar a la creación de un proyecto Web, lo único que cambia es el nombre del arquetipo a utilizar. Para crear un proyecto a partir de un arquetipo maven puede consultar la guía paso a paso que se indica en el documento “Manual Preparacion Entorno Desarrollo”, según se indica en el apartado “Creación de una aplicación Web desde cero”, sustituyendo “atlas-arquetipos-generador-web” por “atlas-arquetiposgenerador-jar”. Desde eclipse, seleccionamos el arquetipo correspondiente: 4.2. Estructura del arquetipo Arquetipo jar 04/05/2010 Página 5 de 9 Arquetipo Jar Fecha: Framework Atlas 10-abr-10 Este arquetipo genera un proyecto de tipo jar en el que se incluye la configuración más simple posible de software desarrollado en Altas. Esta aplicación además viene preconfigurada para utilizar los módulos de trazas y monitorización (e incluye las dependiencias de spring e hibernate para utilizarlos dentro de la librería). 4.3. Estructura de directorios y archivos Una vez generado el proyecto nos generará una serie de directorios a estilo maven, donde ubicaremos los fuentes y recursos de las partes de java y test. Se generará la siguiente estructura: Fichero de configuración de maven del módulo core. De esta ruta cuelga la estructura de paquetes con el código fuente de la aplicación El paquete raíz va a llamarse igual que el nombre del módulo que se está desarrollando. Inicialmente el paquete raíz se llama xxxx, Dicho paquete se debe eliminar o renombrar a la ruta normal de paquetes de nuestro proyecto. Adicionalmente, para cada bloque funcional de nuestra aplicación debe crearse un subpaquete. En el arquetipo se genera un único bloque funcional cuyo paquete se denomina bloquefuncionaln. Este nombre deberá ser modificado según la naturaleza del bloque funcional. Interfaces de los servicios de negocio y sus implementaciones Ruta donde se generarán los recursos del proyecto, normalmente son ficheros de configuración y ficheros de propiedades. En nuestro caso contiene los siguientes ficheros: Fichero de configuración de log4j; lleva Arquetipo jar 04/05/2010 Página 6 de 9 Arquetipo Jar Fecha: Framework Atlas 10-abr-10 además configuración de los módulos de trazas y monitorización. Fichero de propiedades que contiene mediante clave y valor todos los valores susceptibles de ser modificados o configurados entre diferentes entornos de ejecución. Ruta donde se generarán el código fuente para los test de nuestro proyecto. Este código nunca deberá estar incluido en el jar final. Ruta donde se generarán los recursos para realizar las pruebas de test, normalmente son ficheros de configuración y ficheros de propiedades. En nuestro caso contiene los siguientes ficheros: Contiene la configuración básica de un bean de Spring de ejemplo para ejecutar el test de JUnit que viene preconfigurado. 4.4. Ejecución de la aplicación Este arquetipo no viene preparado para ejecución. Con las pruebas unitarias debe ser suficiente para probar su ejecución. Para realizar solo las pruebas de test: mvn test Para construir el proyecto generando el fichero jar podemos ejecutar maven con las tareas “clean install”. Puede hacerse desde eclipse, o por línea de comandos: mvn clean install Arquetipo jar 04/05/2010 Página 7 de 9 Arquetipo Jar Fecha: Framework Atlas 10-abr-10 5. VALIDACIÓN DE LA NORMATIVA Y GENERACIÓN DE LA DOCUMENTACIÓN Los arquetipos vienen preparados para automáticamente generar un web-site con la información de la aplicación, incluyendo el javadoc, información de dependencias, resultado de ejecución de los test, etc. También se ejecuta una herramienta automática que valida el cumplimiento de la normativa de Atlas, que genera un informe sobre los posibles incumplimientos de dicha normativa. Para ejecutar la creación del site completo se debe ejecutar en secuencia los siguientes comandos Maven: Commandos maven mvn site mvn dashboard:dashboard atlasfrm-validacionpdf:pdf mvn site:deploy ATENCION Se recomienda ejecutar estos comandos fuera de Eclipse ya que puede dar error de que se queda sin memoria Esto generará en la carpeta /sitedesplegado en la que estamos ejecutando Maven todos los ficheros necesarios para el site del proyecto. Para ver el site generado, puede accederse al fichero index.html dentro de esta carpeta. 6. FUNCIONALIDADES NO INCLUIDAS EN EL ARQUETIPO Este arquetipo solo contiene los componentes imprescindibles para realizar un proyecto jar (trazas y monitorización). Si desea configuraciones adicionales puede consultar la siguiente documentación: • Manual Usuario Auditoria – Si su aplicación almacena datos susceptibles de ser auditados por la LOPD (Ley Oficial de Protección de Datos). Arquetipo jar 04/05/2010 Página 8 de 9 Arquetipo Jar Fecha: Framework Atlas 10-abr-10 7. ENLACES RELACIONADOS Producto URL Versión Apache Maven http://maven.apache.org/ 2.0.9 Ajax4JSF http://www.jboss.org/jbossrichfaces/ 3.1.4.GA Barbecue http://barbecue.sourceforge.net/ 1.0.6d Commons BeanUtils commons.apache.org/beanutils/ 1.7.0 Commons Configurations http://commons.apache.org/configuration/ 1.3 Facelets https://facelets.dev.java.net/ 1.1.11 Hibernate http://www.hibernate.org/ 3.2.6.ga Hibernate Annotations http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/ 3.3.0.ga JAXB http://java.sun.com/webservices/jaxb/ 2.1 Jcaptcha jcaptcha.sourceforge.net/ 1.0-RC5 JPA http://java.sun.com/developer/technicalArticles/J2EE/jpa/ 1.0 JSF http://java.sun.com/javaee/javaserverfaces/ 1.1 JSFUnit http://www.jboss.org/jsfunit/ 1.0.GA Log4J http://logging.apache.org/log4j/ 1.2.14 MyFaces Core http://myfaces.apache.org/ 1.1.6 RichFaces http://www.jboss.org/jbossrichfaces/ 3.1.4.GA Spring http://www.springframework.org/ 2.5.5 Spring Security http://www.springframework.org/ 2.0.4 Tomahawk http://myfaces.apache.org/tomahawk/ 1.1.8 Velocity http://velocity.apache.org/ 1.5 Arquetipo jar 04/05/2010 Página 9 de 9