ATLAS
PREPARACION DEL ENTORNO DE
DESARROLLO
Versión 1.7
Área de Aplicaciones Especiales y Arquitectura de
Software
Preparación de Entorno de Desarrollo
Hoja de Control
Título PREPARACION DEL ENTORNO DE DESARROLLO
Documento de
Referencia NORMATIVA FRAMEWORK ATLAS
Responsable Área de Aplicaciones Especiales y Arquitectura de Software
Versión 1.7 Fecha Versión 25/08/2011
Registro de Cambios
Versión Causa del Cambio Responsable del Cambio Fecha del Cambio
1.0 Versión inicial del documento
Área de Integración y Arquitectura de
Aplicaciones 24/05/2010
1.1
Se añade el apartado 4.2: Renombrado de paquetes
Área de Integración y Arquitectura de
Aplicaciones 07/07/2010
1.2
Se renombran las unidades según la nueva estructura de ICM.
Se cambia la jdk de Sun a jrockit.
Se incluye información para el despliegue en servidor weblogic en local
Área de Integración y Arquitectura de
Preparación de Entorno de Desarrollo
Versión Causa del Cambio Responsable del Cambio Fecha del Cambio
1.3
- Generación inicial de arquetipo de proyecto antes del web. - Modificado apartado 3.4.3. Establecer UTF-8 para ficheros de propiedades.
- Apartado 4.2: renombrado de paquetes
- Actualizada versión de weblogic a 10.3.3
- Actualizado perfil de weblogic a weblogic-local, no desarrollo. - Modificada línea de ejecución para generar el pdf durante generación de site
- Modificada versión de jrockit
Área de Integración y Arquitectura de
Aplicaciones 14/09/2010
1.4
- Apartado 3.4.7, actualizada la versión del plugin de Checkstyle
Área de Integración y Arquitectura de
Aplicaciones 30/09/2010
1.5
- Modificado nombre de
aplicación de ejemplo a ejpl_app - Modificaciones para versión de ATLAS 1.1.0
Área de Integración y Arquitectura de
Aplicaciones 15/02/2011
1.6
- Cambiada la forma de invocar al plugin de pdf
Área de Integración y Arquitectura de
Aplicaciones 24/05/2011
1.7
Las preguntas frecuentes se consultarán en el portal de arquitectura.
Área de Integración y Arquitectura de
Aplicaciones 05/07/2011
Advertencias de configuración de checkstyle.
Se actualiza imagen del portal
Área de Integración y Arquitectura de
Aplicaciones 05/08/2011
Modificada versión de m2eclipse a la 0.12.1.20110112-1712 Modificada versión de plugin de checkstyle a la
5.3.0.201012121300
Metida en la introducción una referencia al DVD con el entorno instalado
Se modifica el nombre del área
Área de Aplicaciones Especiales y
Preparación de Entorno de Desarrollo
Índice
1. INTRODUCCION ... 5
1.1. AUDIENCIA OBJETIVO ... 5
1.2. CONOCIMIENTOS PREVIOS ... 5
2. INFORMACIÓN GENERAL SOBRE DESARROLLO ... 6
2.1. HERRAMIENTAS DE DESARROLLO ... 6 2.1.1. JDK ... 6 2.1.2. Eclipse ... 6 2.1.3. Maven ... 7 2.1.4. Servidores de aplicaciones ... 8 2.1.5. Base de datos ... 8 2.2. SERVICIOS DE ICM ... 9
2.2.1. Artifactory: Repositorio Maven ... 9
2.2.2. Portal para el desarrollo de aplicaciones ... 10
2.3. INTEGRACIÓN ENTRE PROVEEDOR E ICM ... 12
3. CONFIGURACIÓN DEL ENTORNO DE DESARROLLO ... 14
3.1. INSTALACIÓN DE LA JDK ... 14
3.1.1. Configuración de variables de entorno: ... 14
3.2. INSTALACIÓN DEL SERVIDOR DE APLICACIONES ... 15
3.3. INSTALACIÓN DE MAVEN ... 16
3.4. INSTALACIÓN Y CONFIGURACIÓN DE ECLIPSE ... 19
3.4.1. Selección de jdk en Eclipse ... 20
3.4.2. Inserción de Espacios en lugar de Tabuladores ... 20
3.4.3. Selección de UTF-8 como encoding por defecto ... 21
3.4.4. Desactivación de “Spelling” para acelerar el entorno ... 23
3.4.5. Configuración del editor de JSP’s para archivos XHTML (validación de taglibs)... 24
3.4.6. Configuración de PROXY ... 26
3.4.7. Instalación plugin CkechStyle ... 27
3.4.8. Formateador de código para checkstyle. ... 32
3.4.9. Limpieza de código para Checkstyle ... 33
3.4.10. Instalación plugin PMD ... 34
3.4.11. Instalación del plugin de Subversion (Opcional) ... 38
3.4.12. Instalar el plugin de Maven para Eclipse (M2Eclipse) ... 41
3.4.13. Configuración del catálogo de arquetipos ... 45
4. CREACIÓN DE UNA APLICACIÓN WEB DESDE CERO ... 46
4.1. GENERAR UN PROYECTO A PARTIR DE UN ARQUETIPO DE PROYECTOS MAVEN ... 47
4.2. GENERAR UN SUBPROYECTO WEB A PARTIR DE UN ARQUETIPO MAVEN ... 50
4.3. CONFIGURACIÓN DE PROPIEDADES DE ACCESO A DATOS ... 58
4.3.1. Propiedades de base de datos Oracle ... 58
4.3.2. Esquema de pruebas ... 58
4.4. COMPILACIÓN Y DESPLIEGUE ... 62
4.4.1. Jetty ... 62
4.4.2. WebLogic 10.3.3 ... 64
4.5. VISUALIZACIÓN DE LA APLICACIÓN DESPLEGADA ... 73
4.6. RENOMBRADO DE CLASES DE FACHADA PARA EL BLOQUE FUNCIONAL ... 74
5. VALIDACIÓN DE LA NORMATIVA Y GENERACIÓN DE LA DOCUMENTACIÓN ... 76
6. PREGUNTAS MÁS FRECUENTES ... 78
Preparación de Entorno de Desarrollo
1. INTRODUCCION
En este documento se indica cómo realizar la configuración del entorno para un desarrollador que se dispone a realizar aplicaciones utilizando el framework Atlas. Para ello, se enumeran las herramientas a utilizar así como su instalación y configuración inicial.
En el portal para el desarrollo de aplicaciones existe un fichero ZIP preparado con todo lo necesario para comenzar a desarrollar (incluida la JDK, Maven, Eclipse con todos sus plugins, etc.). Si no se desea instalar el entorno paso a paso, puede hacerse uso de este fichero ZIP, en cuyo caso no es necesario seguir los pasos descritos en este documento.
En el apartado de información general sobre desarrollo se describen, de manera general, los flujos de trabajo durante un desarrollo sobre el framework Atlas, así como las herramientas que se deben utilizar.
1.1. AUDIENCIA OBJETIVO
Este documento está destinado a personas que deseen desarrollar aplicaciones basadas en el framework Atlas de Informática y Comunicaciones de la Comunidad de Madrid (en adelante ICM). Utilizando este manual, cualquier desarrollador debe ser capaz de configurar su entorno para desarrollar y crear una aplicación a partir de una plantilla (arquetipo).
1.2. CONOCIMIENTOS PREVIOS
Para un completo entendimiento del documento, el lector deberá tener conocimientos previos sobre las siguientes tecnologías:
- Lenguaje Java
- JavaServer Faces (JSF) - Spring Framework. - Hibernate
- Web Services (Axis1 y Axis2) - Eclipse
- Maven 2
- Gestor de Base de datos Oracle - SQL
Para saber más sobre dichas tecnologías, consultar los accesos referenciados en el apartado de este documento, “Enlaces Relacionados”.
Preparación de Entorno de Desarrollo
2. INFORMACIÓN GENERAL SOBRE DESARROLLO
A continuación se incluye la información general sobre el desarrollo de aplicaciones Atlas, desde las herramientas necesarias hasta la interacción con los servicios que proporciona ICM.
2.1. Herramientas de desarrollo
A continuación se listan las herramientas que serán necesarias para el desarrollo de aplicaciones con Atlas.
2.1.1. JDK
JDK es el acrónimo de "Java Development Kit", es decir Kit de desarrollo de Java. Se puede definir como un conjunto de herramientas, utilidades, documentación y ejemplos para desarrollar aplicaciones Java. En el caso de Atlas, se desarrollará con la jdk jrockit versión 1.6.0_20, concretamente la versión certificada es una de las incluidas con el servidor de aplicaciones Weblogic 10.3.3, es decir, la jdk denominada jrockit 1_6.0_20 (*notar que Weblogic también incluye otra jdk – la de SUN -, pero no es la que se utilizará para aplicaciones Atlas).
2.1.2. Eclipse
Eclipse es un entorno de desarrollo integrado de código abierto multiplataforma para desarrollar todo tipo de aplicaciones. Concretamente se utiliza Eclipse para el desarrollo de aplicaciones Java para el framework Atlas. La distribución de Eclipse con la que se realizan las pruebas e integraciones en ICM es Eclipse Galileo V3.5.X. Además de los módulos iniciales, eclipse posee una serie de extensiones mediante plugins para integración con tecnologías que no provee en la distribución base. En los siguientes apartados se indica cómo instalar y configurar algunos de estos plugins para el desarrollo de aplicaciones para Atlas.
Entorno Desarrollo
Eclipse + plugin Maven (+ plugin subversion)
Maven Base de Datos (Oracle 9i) Servidor de Aplicaciones (WebLogic-Tomcat) Repositorio Local
Preparación de Entorno de Desarrollo
2.1.3. Maven
Maven es una herramienta software para la gestión y construcción de proyectos Java. Controla la construcción del proyecto, compila, ejecuta test unitarios, genera paquetes, informes y documentación. Se basa en un fichero de configuración en XML y una serie de plugins que pueden ser oficiales o desarrollados por terceros. Trata de forma automática las dependencias del proyecto con un repositorio local. Una de sus características más importantes es su actualización en línea mediante servidores de repositorios.
En la versión 2 (que es la que utilizaremos) el fichero de configuración XML es llamado pom.xml (Project-Object-Model) y la página oficial del proyecto es http://maven.apache.org/.
Para el desarrollo de aplicaciones Atlas utilizaremos el plugin que integra Maven con el entorno de desarrollo Eclipse (M2Eclipse). Tool bar Perspective and Fast View bar Resource Navigator view Stacked views Properties view Tasks view Outline view Bookmarks view Menu bar Message area Editor Status area Text editor
*
Preparación de Entorno de Desarrollo
2.1.4. Servidores de aplicaciones
Un servidor de aplicaciones es un software que se encarga de ejecutar aplicaciones Web. Por lo general el acceso a estas aplicaciones se realiza utilizando un browser a través de Internet y utilizando el protocolo http. A
continuación se enumeran tres de los servidores de aplicaciones existentes en el mercado. El primero de ellos (weblogic) será el utilizado en todos los entornos de ICM, y por tanto sobre el que se certificarán las aplicaciones. Los otros dos (tomcat y jetty) pueden ser utilizados para el desarrollo local, pero la validación final ha de
realizarse en weblogic:
2.1.4.1. Weblogic 10.3.3
BEA WebLogic es un servidor de aplicaciones J2EE y también un servidor web http. El servidor weblogic provee, entre otras muchas, las siguientes características:
Conexión a base de datos mediante JDBC. Compatibilidad con WS-Security.
Cumplimiento de los estándares de J2EE 1.3 desde su versión 7 y con la J2EE 1.4 desde su versión 9 y JEE 5 para las versiones 9.2 y 10.x.
Dos Jdk incluídas, la jdk 1.6.0_20 de SUN y la JRockit 1.6.0_20, una máquina virtual Java (JVM) para CPUs de Intel. Para proyectos Atlas se utilizará la jRockit.
Manejo automático de grandes sesiones con persistencia en base de datos
2.1.4.2. Tomcat 6.X
Tomcat es un servidor de aplicaciones con soporte de servlets y JSPs. Incluye el compilador Jasper, que compila JSPs convirtiéndolas en servlets. Las versiones más recientes son las 6.x, que implementan las especificaciones de Servlet 2.5 y de JSP 2.1. Dentro de la arquitectura Atlas se puede utilizar como servidor de desarrollo al ser un servidor más ligero que weblogic aunque no provea todas sus capacidades como servidor de aplicaciones. En cualquier caso, para la validación final de una aplicación se utilizará Weblogic.
2.1.4.3. Jetty 7.X
Jetty es un servidor de aplicaciones muy ligero, especialmente diseñado para el rápido desarrollo por su pequeño tamaño y su capacidad para ser empotrado en aplicaciones Java. En Atlas, jetty es utilizado para realizar algunas de las pruebas de componentes web a través de Selenium. En cualquier caso, para la validación final de una aplicación se utilizará Weblogic.
2.1.5. Base de datos
Dentro de la arquitectura Atlas la capa de acceso a base de datos se tiene que implementar con Hibernate. Esto nos independiza hasta un cierto punto de la base de datos final utilizada siempre que no se utilicen sentencias sql nativas para el acceso a través de Hibernate. La base de datos de los entornos de integración y producción será Oracle 9i (a no ser que se especifique lo contrario por requisitos del proyecto) por lo que los ejemplos se
Preparación de Entorno de Desarrollo
Por requerimientos específicos del proyecto, se podrá especificar que la base de datos a utilizar sea la versión 10g de Oracle. En tal caso habrá que modificar la configuración de Hibernate para utilizar esta base de datos.
2.2. Servicios de ICM
Dentro de la infraestructura de ICM se proporcionan una serie de servicios que proveen documentación y software necesario para todo el ciclo de vida del software que se desarrolle dentro de la arquitectura Atlas. Entre estos servicios se incluyen la disponibilidad de un repositorio de artefactos, así como una web con toda la
documentación relativa a Atlas. En los siguientes apartados se describen estos servicios.
2.2.1. Artifactory: Repositorio Maven
La herramienta Maven precisa de repositorios de software para su uso durante las diferentes fases del proyecto. Por lo tanto existe un repositorio Maven accesible desde Internet que requiere autenticación mediante usuario y contraseña y al cual se accede en modo consulta (consulta y descarga de software). El repositorio que provee ICM esta publicado con la herramienta Artifactory que publica dos tipos de elementos:
o Artefactos o Arquetipos
url del artifactory de ICM
http://gestiona.madrid.org/artifactory/atlas
2.2.1.1. Artefactos
Los artefactos de Maven son elementos de software que se almacenan en el repositorio y pueden ser utilizados por las aplicaciones (típicamente un artefacto es una librería en forma de fichero jar). Cada artefacto consta de las siguientes propiedades:
groupId – grupo de aplicaciones en las que se engloba el artefacto artifactId – nombre del artefacto
version – versión del software (normalmente en Maven se especifican con 3 números, por ejemplo, 1.0.0). Si después del ultimo número siguen un sufijo “-SNAPSHOT” significa que no es una versión final y puede sufrir cambios.
type(o packaging) – Especifica el tipo de software. Los principales son: o pom: elemento de configuración maven
o jar: librería java
o war: aplicación web java
o archetype: arquetipo maven (plantilla de proyecto de ejemplo)
o maven-plugin: plugin de maven que se puede enlazar en la ejecución del ciclo de vida maven o por si solo a través de su nombre y ejecución.
Preparación de Entorno de Desarrollo
como los de terceros. Además solamente se encuentran las versiones de las librerías homologadas o autorizadas para su utilización.
Nota
En el repositorio de Atlas todos los artefactos propios del framework tienen como groupId el valor atlasfrm.
2.2.1.2. Arquetipos
Los arquetipos son plantillas de proyectos Maven que se utilizarán como punto de partida de cualquier proyecto Atlas. Actualmente se dispone de los siguientes arquetipos dentro del framework Atlas:
ARQUETIPOS DESCRIPCION
atlasfrm-arquetipos-generador-web Genera un proyecto Maven preparado para el desarrollo de aplicaciones web con JSF, Spring e Hibernate.
atlasfrm-arquetipos-generador-servicioweb
Genera un proyecto Maven de tipo web listo para desplegar un servicio web con Axis2, Spring e Hibernate.
atlasfrm-arquetipos-generador-documentumweb
Genera un proyecto Maven de tipo web listo para ser utilizado con aplicaciones que se integren con Documentum.
atlasfrm-arquetipos-generador-batch Genera un proyecto Maven preparado para el desarrollo de aplicaciones de tipo batch, con sus scripts de ejecución preparada para distribución. Contiene configuraciones de Spring e Hibernate.
atlasfrm-arquetipos-generador-jar Genera un proyecto Maven preparado para el desarrollo de librerías (jar).
2.2.2. Portal para el desarrollo de aplicaciones
Se dispone de una web de ayuda y soporte al desarrollo, que incluye los siguientes contenidos:
o Normativa y Metodología de desarrollo: Incluye documentación sobre la normativa para el desarrollo de aplicaciones con Atlas.
o Documentación de componentes: Incluye los manuales y javadoc de los distintos componentes del framework, así como la posibilidad de navegar por el código fuente, acceder a diagramas de clases y objetos, etc.
Preparación de Entorno de Desarrollo
o Ejemplos de uso: Incluye distintas aplicaciones de ejemplo basadas en Atlas, así como acceso al código fuente de dichas aplicaciones.
o Consultas e Incidencias relativas al desarrollo: Incluye un sistema de realización y seguimiento de consultas e incidencias sobre el framework.
Preparación de Entorno de Desarrollo
2.3. Integración entre proveedor e ICM
En el siguiente esquema se muestra la manera de trabajar de un proveedor que desea realizar aplicaciones con Atlas. Para ello, el proveedor tiene acceso a los distintos servicios que provee ICM, como el repositorio de artefactos, la web de documentación o el servidor ftp.
Describimos a continuación los componentes del diagrama anterior:
Entornos de ejecución – diferenciamos claramente los entornos de ejecución de ICM con respecto al proveedor a fin de establecer las interfaces de intercambio de información.
Unidad de Arquitectura y Soporte de Aplicaciones – Se identifica esta unidad como la encargada de establecer la normativa de desarrollo y proporcionar la documentación necesaria para la consecución del proyecto. Será además la encargada de mantener actualizado el Portal para el desarrollo de aplicaciones. Artifactory – Repositorio de artefactos de software necesarios tanto para el desarrollo como para la ejecución de dichos proyectos. Se encuentra publicado en la URL:
http://gestiona.madrid.org/artifactory/atlas
atlasfrm-arquetipos – Arquetipos o plantillas de proyectos a partir de los cuales se generaran los nuevos proyectos.
Eclipse+Maven – Entorno básico necesario para el desarrollo de una aplicación con Atlas
Repositorio local – Copia realizada por maven de los elementos de software ubicados en artifactory u otro repositorio público necesarios para el desarrollo y ejecución del proyecto.
Unidad de Recepción de Aplicaciones – Unidad encargada de recibir las entregas (que realiza el proveedor por ftp) e instalar el proyecto en el entorno de integración continua para su construcción.
Preparación de Entorno de Desarrollo
El ciclo de vida de un proyecto consta de los siguientes pasos:
1. El desarrollador configura su entorno de trabajo en local, estableciendo la conexión con el servidor artifactory de ICM. Para trabajar con el proyecto durante el ciclo de vida los
desarrolladores deben tener acceso al repositorio de artefactos para que maven pueda bajar a sus repositorios locales las librerías adecuadas para cada proyecto.
2. Una vez montado el entorno, se genera un nuevo proyecto partiendo de un arquetipo (plantilla).
3. Una vez generado el arquetipo se recomienda versionar el proyecto inicial con algún sistema de control de versiones (se recomienda Subversion).
4. Para realizar una entrega del proyecto, ICM habilitará un directorio en un servidor ftp al que el proveedor deberá subir el código del proyecto. Este proyecto será versionado en el entorno de integración y se montará en una herramienta de integración continua para su construcción, en caso de existir problemas el proveedor recibirá por correo electrónico un reporte con la ejecución fallida de la entrega.
5. Una vez instalado el proyecto, pasará por una fase de certificación para asegurar que cumple con la normativa y directrices de ICM.
Preparación de Entorno de Desarrollo
3. CONFIGURACIÓN DEL ENTORNO DE DESARROLLO
En este apartado se incluye información sobre la instalación y la configuración del entorno de desarrollo, describiendo en detalle la instalación de la jdk, maven, y eclipse con sus distintos plugins.
ATENCION: Existe un ZIP con el entorno instalado preparado para desarrollar
En el portal para el desarrollo de aplicaciones existe un fichero ZIP preparado con todo lo necesario para comenzar a desarrollar (incluida la JDK, Maven, Eclipse con todos sus plugins, etc.).
Si no se desea instalar el entorno paso a paso, puede hacerse uso de este fichero ZIP, en cuyo caso no es necesario seguir los pasos descritos en este documento.
3.1. Instalación de la JDK
Antes de proceder a instalar Eclipse deberemos tener instalada una jdk jrockit 1.6.0_20. Aunque puede utilizarse cualquier jdk para el desarrollo, la certificación de proyectos se hará utilizando la jdk denominada jdk jrockit
1.6.0_20 que viene incluida con la distribución de Weblogic 10.3.3.
ATENCION: Para comprobar la versión de jdk que tenemos instalada
En línea de comandos ejecutar: java – version. La salida debe ser algo similar a lo siguiente:
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Oracle JRockit(R) (build R28.0.1-21-133393-1.6.0_20-20100512-2132-windows-ia32,
compiled mode)
Nota: Puede descargarse la versión de jockit descargando “Oracle JRockit Misión Control 4.0.1” de la página http://www.oracle.com/technetwork/middleware/jrockit/downloads/index.html (Descargar la versión para nuestro sistema operativo “for Java version 6”).
3.1.1. Configuración de variables de entorno:
Es necesario que la variable de entorno JAVA_HOME apunte al directorio de instalación de nuestra jdk. Teclear en un Terminal el comando:
Comando windows echo %JAVA_HOME% Comando linux echo $JAVA_HOME
Si no contiene valor tendremos que definirlas en el sistema operativo para cargar su valor durante el inicio de sesión:
Preparación de Entorno de Desarrollo
añadiremos unas líneas como:
export JAVA_HOME=/home/myUser/software/jrockit1.6.0_20 export PATH=${JAVA_HOME}/jre/bin:$PATH
En caso de entornos Windows podremos añadir dichas variables en Panel de Control -> Propiedades de Sistema -> Opciones Avanzadas -> Variables de Entorno
Asegurarse de que existe la variable de entorno JAVA_HOME, y si no es así crearla. Asegurarse además de que en la variable de entorno PATH existe un acceso a la ruta de los ejecutables dentro del
JAVA_HOME:
JAVA_HOME C:\myJDKPath
PATH %JAVA_HOME%/jre/bin;%PATH%
3.2. Instalación del Servidor de Aplicaciones
Para poder desplegar aplicaciones web desarrolladas con Atlas es necesario disponer de un servidor de aplicaciones. Aunque puede utilizarse cualquiera de los disponibles en el mercado (incluidos jetty y tomcat), la certificación de aplicaciones en ICM se realizará utilizando Weblogic 10.3.3 por lo tanto la aplicación ha de ser validada por parte del proveedor en sus instalaciones previamente a realizar la entrega para garantizar
Preparación de Entorno de Desarrollo
el correcto funcionamiento en este servidor de aplicaciones.
Si se desea utilizar el servidor de aplicaciones jetty durante el desarrollo no será necesario instalarlo, ya que los arquetipos vienen configurados por defecto con un servidor de este tipo. Para instalar cualquier otro servidor de aplicaciones consultar el manual correspondiente de dicho servidor.
3.3. Instalación de Maven
Se puede obtener de la página oficial de maven (http://maven.apache.org/download.html) el archivo comprimido que contiene la versión 2.2.1, para descomprimirlo en nuestro directorio de trabajo.
Para su configuración es necesario realizar los siguientes pasos:
Añadir a nuestra variable de entorno $PATH nuestra instalación de Maven. Para ello seguiremos los pasos añadiremos en las variables de entorno lo siguiente:
Variable Path
M2_HOME <nuestra ruta>/apache-maven-2.2.1
MAVEN_OPTS -Xmx700m
PATH (windows) %M2_HOME%/bin;%PATH%
PATH (linux) $M2_HOME/bin:$PATH
Maven almacena en local los jar que utilice en cada uno de sus proyectos para así tenerlos todos centralizados y almacenados una sola vez compartidos para todos ellos. Estos jar son
denominados artefactos. Este almacén se denomina repositorio local y podemos configurar la ruta donde queremos que se localice. Por defecto maven lo ubicará en ${HOME}/.m2/repository para cambiar el comportamiento debemos modificar en el fichero de configuración settings.xml
contenido en $M2_HOME/conf añadiendo la etiqueta <localRepository>< ruta de nuestro repositorio ></localRepository> si la carpeta indicada no existe se creara una nueva la primera vez que ejecutemos Maven.
Preparación de Entorno de Desarrollo
Los usuarios de Windows deberán cambiar el valor para evitar que la ruta final del repositorio contenga espacios (por ejemplo “Documents and Settings”) ya que dichas rutas entran en conflicto con algunos plugins de maven. Por tanto se deberá configurar una ruta sin espacios.
Ejemplo:
<localRepository>C:/maven/repo</localRepository>
Los artefactos o librerías que Maven necesita para los proyectos serán descargados directamente del repositorio propio de ICM llamado artifactory. La configuración de acceso al artifactory se hace en el fichero settings.xml.
El fichero settings.xml está disponible en el portal para el desarrollo de aplicaciones. Este fichero solamente se debe cambiar para modificar los valores propios del entorno que se esté montando (marcados en amarillo abajo). No se podrán incluir accesos a otros respositorios públicos ni privados ya que de esta forma garantizamos que solamente se accede a librerías homologadas o autorizadas dentro del framework.
$M2_HOME/conf/settings.xml
<settings>
<localRepository>C:/maven/repo</localRepository>
<proxies> </proxies> <servers> <server> <id>artifactory</id> <username>xxxxx</username>
<password>yyyyyy</password>
</server> </servers> <mirrors> <mirror> <id>artifactory</id> <mirrorOf>*</mirrorOf>
<name>Artifactory de atlas-icm</name>
<url>http://gestiona.madrid.org/artifactory/atlas</url>
</mirror>
</mirrors>
<profiles>
</profiles> </settings>
Usuario y password de acceso al artifactory
Para poder tener acceso al artifactory se necesita de un usuario y password que se debe solicitar al jefe de proyecto.
Preparación de Entorno de Desarrollo
En el caso de que para salir a Internet se tenga que hacer a través de un Proxy se debe incluir en el fichero settings.xml de la siguiente forma (en el fichero settings.xml que se proporciona como ejemplo ya está incluido el grupo <proxies> introducir dentro de este grupo la configuración <proxy>).
Preparación de Entorno de Desarrollo
Añadir al fichero settings.xml lo siguiente:
<proxy>
<id>optional</id> <active>true</active> <protocol>http</protocol>
<username>myProxyUser</username> <password>myProxyPassword</password> <host>myHost</host>
<port>80</port>
<nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> </proxy>
Los datos marcados en Amarillo deben ser sustituidos por los valores del proxy.
ATENCION
Cuidado con poner como separador de nonProxyHosts algo distinto a la barra vertical “|”, puesto que no resolvería los repositorios de ICM necesario, para montar nuestros proyectos
3.4. Instalación y configuración de Eclipse
La versión recomendada para el desarrollo de aplicaciones Atlas es Eclipse Galileo V3.5.X. Puede obtenerse una versión para instalarlo en la URL: http://www.eclipse.org/galileo/.
Para más información sobre la instalación consultar dicha web.
Posteriormente a la instalación de Eclipse, deberán de realizarse unas configuraciones adicionales descritas en los siguientes apartados. Estas configuraciones son muy importantes ya que conseguiremos homogeneizar el formato del código y facilitaremos el cumplimiento de la normativa de estilo de código.
Para realizar estas configuraciones va a ser necesario descargar una serie de ficheros disponibles en el portal de contenidos de Atlas, y que se listan a continuación:
ATLAS_JAVA_CC_CS.xml
ATLAS_JAVA_CC_ECLIPSE_CLEANUP_PROFILE.xml ATLAS_JAVA_CC_ECLIPSE_FORMATTER_PROFILE.xml ATLAS_JAVA_CC_PMD.xml
En los siguientes apartados se muestra cómo configurar correctamente Eclipse, y cómo utilizar cada uno de estos ficheros descargados.
Preparación de Entorno de Desarrollo
3.4.1. Selección de jdk en Eclipse
La normativa de Atlas impone que se utilice la jdk 1.6 o superior, por lo que habrá que verificar que esta jdk se encuentra instalada en Eclipse. Para ello iremos a Window->Preferences->Java->JRE instaladas y
verificaremos la jdk que se encuentra instalada.
Si la jdk no está instalada pulsaremos sobre Add para añadir la jdk correspondiente. Se recomienda que la jdk utilizada sea la incluida en la distribución de Oracle Weblogic 10.3.3 (que incluye la jdk jRockit V1.6.0_20).
3.4.2. Inserción de Espacios en lugar de Tabuladores
Según la normativa de Atlas, el código del proyecto no debe contener tabuladores, sino espacios en blanco. Con la configuración que se realizará en los pasos posteriores para Checkstyle Eclipse insertará espacios en blanco en lugar de tabuladores en los ficheros con extensión Java, pero no en el resto de ficheros (txt, etc.).
Para configurar que Eclipse inserte espacios en lugar de tabuladores también en el resto de ficheros (no sólo en ficheros Java), debemos acceder al menú “Window -> Preferences" y ahí acceder a la opción “General -> Editors -> Text Editors”.
Preparación de Entorno de Desarrollo
En esta pantalla activamos la casilla “Insert spaces for tabs” según se muestra en la siguiente figura:
3.4.3. Selección de UTF-8 como encoding por defecto
Todos los ficheros de un proyecto Atlas deben estar en encoding UTF-8 tal y como se indica en la normativa del framework Atlas.
Para que al crear un nuevo fichero Eclipse lo cree automáticamente en dicho encoding, es necesario acceder al menú “Window -> Preferences”. Ahí desplegaremos la opción “General -> Workspace”, y en la pantalla que aparece seleccionaremos la opción “Other -> UTF-8” en el apartado “Text file encoding”, según se muestra en la siguiente pantalla:
Preparación de Entorno de Desarrollo
Acceder al apartado “Content Types”. Expandir el nodo y seleccionar la opción „Java Properties File‟. En la parte inferior de la pantalla, en el campo „Default encoding‟, escribir „UTF-8‟ y pulsar el botón „Update‟. De esta forma habremos configurado Eclipse para que los ficheros „.properties‟ se creen en formato UTF-8.
Preparación de Entorno de Desarrollo
3.4.4. Desactivación de “Spelling” para acelerar el entorno
Para que el entorno Eclipse vaya más rápido en la edición de documentos y código, es recomendable desactivar la corrección ortográfica tanto en ficheros de texto como en los comentarios javadoc. Para ello es necesario acceder al menú “Window > Preferences”. Ahí desplegaremos la opción “General > Editors > Text Editors -> Spelling ”, y en la pantalla que aparece desactivaremos la casilla “Enable spell checking”, según se muestra en la siguiente imagen:
Preparación de Entorno de Desarrollo
3.4.5. Configuración del editor de JSP’s para archivos XHTML (validación de taglibs)
Para que funcionen las validaciones que Eclipse hace en los ficheros JSP también en los ficheros con extensión XHTML (como por ejemplo validar y autocompletar los taglibs), es necesario realizar una modificación en Eclipse para indicarle que por defecto utilice el editor de JSP‟s para los ficheros con extensión xhtml.
Para ello hay que realizar varias modificaciones en la configuración de Eclipse.
En “Window -> Preferences -> General -> Content Types” seleccionamos Text->JSP, y añadimos la extensión “*.xhtml” en la zona de “File associations”.
Además escribimos “UTF-8” en la caja inferior donde se indica el “Default encoding”, y pulsamos sobre el botón “Update”, según se muestra en la siguiente figura:
Preparación de Entorno de Desarrollo
Además, en “Window -> Preferences -> General -> Editors -> File Associations” pulsamos sobre la extensión “*.xhtml”, y en la zona de “Associated editors” pulsamos sobre “JSP Editor” y hacemos clic sobre el botón “Default”, para que este sea el editor que utilice por defecto para los ficheros con extensión XHTML (al pulsar sobre “Default”, el JSP Editor pasa a ocupar la primera posición en la lista):
Preparación de Entorno de Desarrollo
Con estas modificaciones en la configuración nos aseguramos de que podemos utilizar la verificación de sintaxis y la función de auto-completar de eclipse para los taglibs en nuestros ficheros con extensión XHTML (facelets).
3.4.6. Configuración de PROXY
Si nuestro ordenador necesita acceder a Internet a través de un Proxy, deberemos configurar Eclipse para utilizarlo en “Window -> Preferences -> General -> Network Connections”.
Preparación de Entorno de Desarrollo
3.4.7. Instalación plugin CkechStyle
Checkstyle es una herramienta que valida el estilo del código. Podemos instalar en Eclipse el plugin de
CheckStyle para que tengamos conocimiento de los errores de estilo según vamos implementando nuestro código.
La forma recomendada para la instalación del plugin de CheckStyle es mediante la url de update de plugin http://eclipse-cs.sf.net/update/ tal y como se indica a continuación.
Dentro de Eclipse vamos a la opción Help->Install New Software, y en la pantalla que aparece pulsamos sobre “Add…” para agregar una nueva dirección:
Preparación de Entorno de Desarrollo
En la caja de texto añadimos la dirección http://eclipse-cs.sf.net/update y pulsamos sobre “Ok”.
En el desplegable “Work with” seleccionamos el sitio que acabamos de crear, y seleccionamos la versión del plugin de checkstyle a instalar (en nuestro caso la 5.3.0.XXX) y presionamos Next:
Preparación de Entorno de Desarrollo
En las siguiente pantalla verificamos lo seleccionado y volvemos a pulsar “Next”, y luego “Finish” para aceptar los términos de la licencia y terminar de instalar el plugin.
* Es posible que eclipse en este momento nos solicite reiniciarse para terminar con la instalación. Aceptaremos a reiniciar si nos lo sugiere.
Una vez que está instalado el plugin hay que configurarlo para que coja el fichero de reglas del framework Atlas. Este fichero se llama “ATLAS_JAVA_CC_CS.XML“ encuentra disponible en el Portal para el desarrollo de aplicaciones.
Para configurar el plugin de CheckStyle para aplicar las reglas de convenciones de codificación JAVA en ICM deberemos seleccionar la opción “Preferences” del menú “Window” y una vez dentro seleccionar CheckStyle como muestra la imagen siguiente:
Preparación de Entorno de Desarrollo
Pulsamos el botón New y aparecerá la siguiente ventana en la que seleccionaremos un fichero de configuración externo, con nombre “Atlas Checkstyle” para la nueva configuración y seleccionaremos la ruta al archivo
“ATLAS_JAVA_CC_CS.XML“ que hemos descargado del portal de contenidos de Atlas.
Preparación de Entorno de Desarrollo
marcamos la nueva configuración como la utilizada por defecto, seleccionándola y pulsando sobre “Set as Default”.
Atención: Configuración en cada proyecto
En Eclipse cada proyecto puede tener una configuración distinta de Checkstyle.
Por lo tanto cuando creemos un nuevo proyecto deberemos modificar su configuración para que se realice la comprobación correcta de checkstyle en tiempo de desarrollo.
Es importante además asegurarnos que todos los módulos de nuestro proyecto están correctamente configurados.
Preparación de Entorno de Desarrollo
Configuración propia de checkstyle para cada proyecto:
Para configurar un proyecto, seleccionaremos la opción de menú Project Properties y una vez dentro seleccionaremos la opción Checkstyle como muestra la imagen siguiente:
En esta pantalla es necesario activar la opción Checkstyle active for this Project y elegir el fichero de configuración que hemos creado para Atlas en el combo Simple-use the following check configuration for all files.
Además se hará el checkeo solamente en los ficheros java para ello nos aseguramos que en las opciones de
Exclude from checking aparece la opción all file types except: java
Una vez realizada la configuración anterior en las clases java donde no se cumpla alguna de las reglas aparecerá la línea marcada en rojo y todos los errores de checkstyle aparecerán en la pestaña de Problems. Existen además vistas propias de checkstyle en Eclipse que podemos revisar.
3.4.8. Formateador de código para checkstyle.
Es posible configurar Eclipse para que formatee automáticamente el código de forma que cumpla el máximo número posible de objetivos de checkstyle, para hacer esto deberemos ir al menú de preferencias de Eclipse (Window -> Preferences) y una vez hay ir al menú Java Code Style Formater, como puede verse en la siguiente imagen:
Preparación de Entorno de Desarrollo
Una vez dentro de esta opción pulsaremos el botón “Import…” (“Importar”) e importaremos el archivo que podemos descargar del portal de Atlas llamado “ATLAS_JAVA_CC_ECLIPSE_FORMATTER_PROFILE.xml”. Pulsaremos “Ok” para confirmar los cambios.
3.4.9. Limpieza de código para Checkstyle
Además del formateador es posible configurar Eclipse para que al hacer una limpieza de código este haga los cambios de acuerdo con los objetivos de Checkstyle, para ello deberemos seleccionar de nuevo la opción
“Preferences” del menú “Window” y una vez dentro seleccionar Java Code Style Clean Up como puede verse en esta imagen:
Preparación de Entorno de Desarrollo
En esta pantalla seleccionaremos “Import…” (Importar) e importaremos el archivo descargado “ATLAS_JAVA_CC_ECLIPSE_CLEANUP_PROFILE.xml”.
* Cuando tengamos un proyecto y queramos realizar una limpieza automática del código, pulsaremos con el botón derecho sobre la carpeta “src/main/java” y elegiremos “Source->Clean Up”.
3.4.10. Instalación plugin PMD
PMD es una herramienta que valida el estilo del código. Podemos instalar en Eclipse el plugin de PMD para que tengamos conocimiento de los errores de estilo según vamos implementando nuestro código.
La forma recomendada para la instalación del plugin de PMD es mediante la url de update de plugin http://pmd.sourceforge.net/eclipse tal y como se indica a continuación.
Dentro de Eclipse vamos a la opción Help->Install New Software, y en la pantalla que aparece pulsamos sobre “Add…” para agregar una nueva dirección:
Preparación de Entorno de Desarrollo
En la caja de texto añadimos la dirección http://pmd.sourceforge.net/eclipse y pulsamos sobre “Ok”.
En el desplegable “Work with” seleccionamos el sitio que acabamos de crear, y seleccionamos la versión del plugin de PMD a instalar (en nuestro caso la PMD for Eclipse 3) y presionamos Next:
Preparación de Entorno de Desarrollo
En la siguiente pantalla verificamos lo seleccionado y pulsamos sobre “Finish” para terminar de instalar el plugin.
* Es posible que eclipse en este momento nos solicite reiniciarse para terminar con la instalación. Aceptaremos a reiniciar si nos lo sugiere.
Una vez que está instalado el plugin hay que configurarlo para que coja el fichero de reglas del framework Atlas. Este fichero se llama “ATLAS_JAVA_CC_PMD.XML” y se encuentra disponible en el Portal para el desarrollo de aplicaciones.
Para configurar el plugin de PMD para aplicar las reglas de convenciones de codificación JAVA en ICM
deberemos seleccionar de nuevo la opción “Preferences” del menú “Window” y una vez dentro seleccionar PMD Rules configuration como muestra la imagen siguiente
Preparación de Entorno de Desarrollo
Pulsaremos la opción “Clear all” para quitar las reglas anteriores. A continuación pulsaremos el botón “Import rule set…” , seleccionaremos el fichero pmd.xml que hemos descargado del portal de Atlas y pulsamos OK en ambas ventanas.
* Cuando creemos un proyecto y queramos aplicar las reglas de PMD sobre nuestro código seleccionamos nuestro proyecto pulsamos botón derecho del ratón y pulsamos sobre la opción PMD Check Code With PMD.
Preparación de Entorno de Desarrollo
A continuación PMD chequeará el código y se abrirá la perspectiva PMD donde en las distintas ventanas se mostrarán las reglas que no se cumplen.
3.4.11. Instalación del plugin de Subversion (Opcional)
Para que desde Eclipse se pueda acceder a proyectos que se encuentran en un repositorio de subversion es necesario instalar un plugin para Subversion llamado subclipse. Esto es opcional, ya que la normativa de Atlas no obliga a utilizar ningún repositorio de código concreto.
La forma recomendada para la instalación del plugin de Subclipse es mediante la url de update de plugin http://subclipse.tigris.org/update_1.6.x tal y como se indica a continuación.
Dentro de Eclipse vamos a la opción Help->Install New Software, y en la pantalla que aparece pulsamos sobre “Add…” para agregar una nueva dirección:
Preparación de Entorno de Desarrollo
Preparación de Entorno de Desarrollo
Cuando nos aparezcan las actualizaciones o instalaciones a realizar puede que alguna necesite la instalación previa de otro plugin. Bastará con deshabilitar dicha característica en el desplegable que nos aparece.
Una vez instalado desde la perspectiva java por defecto seleccionaremos en el menú la opción Window->Show View->Other->SVN y seleccionaremos la opción SVN repositories.
Entonces se abrirá una vista llamada “SVN Repositories” en la que, pulsando con el botón derecho, podemos añadir un nuevo repositorio SVN con “New -> Repository Location”.
Preparación de Entorno de Desarrollo
3.4.12. Instalar el plugin de Maven para Eclipse (M2Eclipse)
Para la completa integración de Maven con Eclipse se ha de instalar el plugin M2Eclipse.
La forma recomendada para la instalación del plugin de M2Eclipse es mediante la url de update de plugin http://m2eclipse.sonatype.org/sites/m2e/ tal y como se indica a continuación.
Dentro de Eclipse vamos a la opción Help->Install New Software, y en la pantalla que aparece pulsamos sobre “Add…” para agregar una nueva dirección:
En la caja de texto añadimos la URL http://m2eclipse.sonatype.org/sites/archives/m2e-0.12.1.20110112-1712/, y pulsamos sobre “Ok”.
En el desplegable “Work with” seleccionamos el sitio que acabamos de crear, y seleccionamos el plugin a instalar (en nuestro caso la Maven Integration for Eclipse v0.12.1.20110112-1712) y presionamos Next:
Preparación de Entorno de Desarrollo
En la siguiente pantalla verificamos lo seleccionado y volvemos a pulsar “Next”, y luego “Finish” para aceptar los términos de la licencia y terminar de instalar el plugin.
* Es posible que eclipse en este momento nos solicite reiniciarse para terminar con la instalación. Aceptaremos a reiniciar si nos lo sugiere.
Una vez instalado deberemos configurar en el eclipse la ruta donde tenemos instalado maven. Para ello accedemos a “Window->Preferencies->Maven ->Installations”, según se muestra en la siguiente figura:
Preparación de Entorno de Desarrollo
Aquí pulsamos sobre “Add” y le indicaremos la ruta a donde apunte nuestra variable $M2_HOME (la ruta donde instalamos Maven), marcando esta nueva instalación para su uso por defecto en lugar de la instalación embebida:
Preparación de Entorno de Desarrollo
Posteriormente seleccionaremos la opción “User Settings”, y pulsando sobre “Browse” seleccionaremos el archivo settings.xml que hemos descargado del portal de Atlas, y que configuramos al instalar maven:
Preparación de Entorno de Desarrollo
Pulsando sobre “Ok” habremos finalizado con la instalación del plugin.
3.4.13. Configuración del catálogo de arquetipos
Tal y como hemos comentado anteriormente las aplicaciones de Atlas se generan a partir de un arquetipo o plantilla. Para utilizar los arquetipos que proporciona Atlas se deberá disponer del fichero archetype-catalog.xml que se encuentra disponible en el Portal para el desarrollo de aplicaciones.
Es necesario configurar Eclipse con este fichero para ello entraremos en Window/Preferentes y seleccionamos Maven/Archetypes.
Preparación de Entorno de Desarrollo
En la ventana que nos aparece se debe pulsar el botón Add Local Catalog e indicar la ruta donde tenemos en nuestro pc el fichero archetype-catalog.xml.
Pulsamos sobre “Ok” para finalizar con la instalación del catálogo local de arquetipos.
4. CREACIÓN DE UNA APLICACIÓN WEB DESDE CERO
En este apartado se incluye información sobre cómo, una vez configurado el entorno, se puede generar un proyecto web desde cero y configurarlo para que se ejecute correctamente en nuestro entorno, partiendo de dos arquetipos:
- Un arquetipo de proyecto que crea la estructura general para un proyecto ATLAS.
- Un arquetipo web, que crea un subproyecto web (módulo de aplicación web) dentro de nuestro proyecto ATLAS.
Preparación de Entorno de Desarrollo
Si se desea información sobre cómo generar cualquier otro tipo de aplicación desde cero (Jar, Batch, Web
Service, etc.) consultar el manual específico de cada arquetipo. En cualquier caso se recomienda leer previamente este apartado.
4.1. Generar un proyecto a partir de un arquetipo de Proyectos Maven
Una vez que ya hemos realizado todas las instalaciones y configuraciones indicadas en el apartado 3 ya podemos comenzar a crear nuevos proyectos Atlas. Se trate del tipo de proyecto que se trate (un proyecto con una única aplicación web, un proyecto con varias librerías y una aplicación web, un proyecto con una aplicación batch, etc.), lo primero que debemos hacer es generar un proyecto ATLAS a partir de un arquetipo de proyecto.
Para ello entramos en File->New->Project y seleccionamos dentro de la carpeta Maven -> Maven Project.
Una vez que ya hemos realizado todas las instalaciones y configuraciones indicadas en el apartado 3 ya podemos comenzar a crear nuevos proyectos Atlas.
Tenemos que crear un proyecto Maven para ello entramos en File->New->Project y seleccionamos dentro de la carpeta Maven -> Maven Project.
Preparación de Entorno de Desarrollo
En la siguiente pantalla dejar activada la casilla “Use default workspace location” y pulsar sobre “Next”:
En la siguiente ventana seleccionar el catálogo de arquetipos de Atlas y aparecerá la lista de todos los arquetipos de atlas (la versión que aparece dependerá de la versión del framework ATLAS a utilizar):
Preparación de Entorno de Desarrollo
Seleccionamos atlasfrm-arquetipos-generador-proyecto y rellenamos los parámetros para la generación del proyecto:
Una vez finalizado veremos en el Eclipse el proyecto generado y listo empezar a crear subproyectos (módulos) dentro de él.
ATENCION – NOMENCLATURA
Es muy importante utilizar en esta pantalla los valores que cumplan la normativa de Atlas:
groupId: Nombre del proyecto
(Normalmente es de 4 caracteres y es un código que se le dá a un proyecto. Todos los módulos de un proyecto tendrán el mismo groupId y se corresponderá con el nombre del proyecto.
artifactId: Nombre del proyecto. Para subsiguientes sub-proyectos que creemos, cada uno tendrá su
identificador propio. En este caso, como se trata del proyecto en general, el artifactId coincide con el groupId. Version: La primera versión será 1.0.0 package: El nombre del paquete java sera el nombre del proyecto (y por tanto igual que el groupId).
Todos los nombres deben ir en minúsculas.
Preparación de Entorno de Desarrollo
ATENCION
Si es el primer proyecto Maven que generamos puede tardar varios minutos en generarse debido a que maven se encarga de bajar todos las librerías del proyecto del artifactory de ICM. Debe esperar a que terminen las tareas de actualización de Maven antes de continuar.
4.2. Generar un subproyecto web a partir de un arquetipo Maven
Una vez que ya hemos creado nuestro arquetipo para el proyecto en general, podemos ir creando distintos módulos dentro de éste. Concretamente en este apartado vamos a explicar cómo crear un proyecto de tipo aplicación Web.
Para ello tenemos que pulsar con el botón derecho sobre el proyecto padre en el que deseamos crear el nuevo módulo y seleccionamos New->Other y ahí seleccionamos dentro de la carpeta Maven -> Maven Module.
Preparación de Entorno de Desarrollo
En la siguiente pantalla debemos escribir el nombre del módulo que deseamos crear (en el ejemplo, el
módulo se llamará ejpl_app):
Preparación de Entorno de Desarrollo
Pulsamos sobre el botón “Next” y en la siguiente ventana seleccionar el catálogo de arquetipos de Atlas y aparecerá la lista de todos los arquetipos de atlas:
Preparación de Entorno de Desarrollo
Seleccionamos atlasfrm-arquetipos-generador-web y rellenamos los parámetros para la generación del módulo:
Una vez finalizado veremos en el Eclipse el proyecto generado y listo empezar a programar.
En el caso del arquetipo para aplicaciones web se trata de un proyecto multimodular, por lo que veremos que en eclipse se crean tres proyectos, uno padre y dos proyectos hijos: Uno para la parte web, y otro para las pruebas de integración (basado en Selenium):
ATENCION – NOMENCLATURA
Es muy importante utilizar en esta pantalla los valores que cumplan la normativa de Atlas: groupId: Nombre del proyecto (Normalmente es de 4 caracteres y es un código que se le dá a un proyecto. Todos los módulos de un proyecto tendrán el mismo groupId y se corresponderá con el nombre del proyecto. artifactId: Nombre del módulo. (En el caso de aplicaciones web el nombre del módulo será: xxxx_yyyy donde xxxx se corresponde con el groupId indicado y yyyy el texto que
identifique a este modulo y lo diferencie de otros: Ejemplo: ejpl_app
Están prohibidos los sufijos web y test ya que son utilizados por el propio framework. Version: La primera versión será 1.0.0 package: El nombre del paquete java será el groupId, seguido de un punto y el nombre del bloque funcional dentro de la aplicación (para aplicaciones grandes se crearán varios bloques funcionales).
Preparación de Entorno de Desarrollo
Antes de comenzar a visualizar la estructura del nuevo proyecto web generado, debemos realizar un ajuste en el fichero pom.xml del nuevo proyecto creado. Para ello, debemos abrir el fichero “ejpl\ejpl_app\pom.xml”, eliminar la sección <parent> existente y descomentar la sección <parent> que aparece comentada.
Preparación de Entorno de Desarrollo
Después de eliminar:
Una vez configurado el proyecto general y el subproyecto (módulo de tipo aplicación web), ya podemos seguir viendo la estructura del subproyecto para la aplicación web que acabamos de generar.
Preparación de Entorno de Desarrollo
La estructura del proyecto generado es similar a la siguiente:
ATENCION
Si al desplegar “Maven Dependencies” en el árbol de proyecto de la vista de paquetes no se encuentra ninguna dependencia o aparecen como inconsistentes deberemos comprobar que la variable de entorno M2_REPO esté correctamente configurada y apuntando a nuestro repositorio local de Maven.
Esto lo podemos comprobar en Propiedades de proyecto > Java build path > Libraries > New Variable : Debe aparecer correctamente configurada esta variable. En caso contrario volver a revisar la configuración de Maven como se indica en el punto correspondiente de este manual.
Además debemos asegurarnos que la JRE que está utilizando es la que hemos configurado, observando el valor entre corchetes que aparece al lado de “Java Resources -> Libraries -> JRE System Library [XXX]”:
Preparación de Entorno de Desarrollo
Si no es así, podemos modificarlo para que se utilice la jdk configurada en nuestro entorno, pulsando con el botón derecho sobre el nombre de cada proyecto y seleccionando “Build Path->Configure Build Path”:
Preparación de Entorno de Desarrollo
En la pestaña “Libraries” eliminaremos la JRE no existente, y añadiremos la nuestra pulsando sobre “Add Library”.
4.3. Configuración de propiedades de acceso a datos
Cuando generamos una aplicación a partir del arquetipo correspondiente, esta llevará una configuración por defecto que deberemos modificar, para adaptarlo a nuestro entorno de trabajo. Esto se realizará modificando unas propiedades que se configurarán en el fichero src/main/resources/environment.properties de nuestro proyecto.
A continuación se muestra una descripción de las variables básicas a modificar para configurar la aplicación en un entorno de desarrollo (variables de conexión a la base de datos Oracle, y creación del esquema de pruebas):
4.3.1. Propiedades de base de datos Oracle
Para aplicaciones web en producción se utilizará un datasource obtenido del jndi, sin embargo para las pruebas de los diferentes módulos en desarrollo se deberá configurar la base de datos de desarrollo mediante las siguientes propiedades del archivo environment.properties:
Environment.properties jdbc.url=jdbc:oracle:thin:@icm21.icm.es:1521:denivel2
jdbc.username=CONFIGURAR
jdbc.password=CONFIGURAR
En la configuración anterior debe editar los campos: jdbc.username – Usuario de base de datos jdbc.password – Contraseña de base de datos
jdbc.url - Url de conexión a la base de datos Oracle (sustituir el nombre de la máquina y la instancia de base de datos).
4.3.2. Esquema de pruebas
Para ver funcionar el arquetipo web correctamente debe crear una serie de tablas en el esquema de base de datos que haya configurado en el punto anterior. El script para crear dichas tablas se encuentra en el fichero src/test/resources/schema_arquetipo_oracle.sql, y se muestra a continuación:
Preparación de Entorno de Desarrollo
--
--- Autor : ICM
-- Descripcion : Este script permite crear el el schema necesario para poder ejecutar -- el arquetipo de forma local.
-- El schema debe tener asociado un usuario como el siguiente: -- usuario = usuario_ok
-- password = password_ok.
-- Nota : El script tambien contiene un ejemplo de tabla para que el componente -- de calendario funcione de forma correcta. Esta tabla no sera necesaria -- si se trabaja desde la intranet de ICM, pero sera necesario crearla si -- se trabaja de manera externa (contiene datos sobre localidades y festivos).
--
---DROP TABLE "EJPL_CLIENTES";
DROP SEQUENCE "EJPL_SECUENCIA_ID_CLIENTE";
DROP TABLE "EJPL_ESTADO_CIVIL";
DROP SEQUENCE "EJPL_SECUENCIA_ID_ESTADO_CIVIL";
CREATE TABLE EJPL_ESTADO_CIVIL (
ID_ESTADO_CIVIL NUMBER(9) NOT NULL, ESTADO_CIVIL VARCHAR2(20) NOT NULL
);
ALTER TABLE EJPL_ESTADO_CIVIL ADD CONSTRAINT PK_ESTADO_CIVIL PRIMARY KEY
(ID_ESTADO_CIVIL);
CREATE SEQUENCE EJPL_SECUENCIA_ID_ESTADO_CIVIL minvalue 0 maxvalue 99999999 start
with 1 increment by 1 cache 5 order;
CREATE TABLE EJPL_CLIENTES (
ID_CLIENTE NUMBER(9) not null, NOMBRE VARCHAR2(50) not null, APELLIDO1 VARCHAR2(50) not null, APELLIDO2 VARCHAR2(50) not null, DIRECCION VARCHAR2(100),
TELEFONO VARCHAR2(15), FC_NACIMIENTO DATE,
FK_ESTADO_CIVIL NUMBER(9) );
ALTER TABLE EJPL_CLIENTES ADD CONSTRAINT PK_CLIENTE PRIMARY KEY (ID_CLIENTE);
ALTER TABLE EJPL_CLIENTES ADD CONSTRAINT FK_CLIENTE_ESTADO FOREIGN KEY(FK_ESTADO_CIVIL) REFERENCES EJPL_ESTADO_CIVIL(ID_ESTADO_CIVIL);
CREATE SEQUENCE EJPL_SECUENCIA_ID_CLIENTE minvalue 0 maxvalue 99999999 start with
Preparación de Entorno de Desarrollo
INSERT INTO EJPL_ESTADO_CIVIL (ID_ESTADO_CIVIL, ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_ESTADO_CIVIL.NEXTVAL, 'Soltero');
INSERT INTO EJPL_ESTADO_CIVIL (ID_ESTADO_CIVIL, ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_ESTADO_CIVIL.NEXTVAL, 'Casado');
INSERT INTO EJPL_ESTADO_CIVIL (ID_ESTADO_CIVIL, ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_ESTADO_CIVIL.NEXTVAL, 'Viudo');
INSERT INTO EJPL_ESTADO_CIVIL (ID_ESTADO_CIVIL, ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_ESTADO_CIVIL.NEXTVAL, 'Divorciado');
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Jose', 'Perez', 'Martinez', 'C/Maria Fontaneda, S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Luisa', 'Gomez', 'Prieto', 'C/Jose Abascal, 2', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Maria Antonia', 'Jimenez', 'De la Osa', 'C/Manoteras, 13 S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Luis', 'Perez', 'Martinez', 'C/Maria Fontaneda, S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Mariano', 'Gomez', 'Prieto', 'C/Jose Abascal, 2', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Jose Antonio', 'Jimenez', 'De la Osa', 'C/Manoteras, 13 S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Jose Vicente', 'Perez', 'Martinez', 'C/Maria Fontaneda, S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Luisa Fernanda', 'Gomez', 'Prieto', 'C/Jose Abascal, 2', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Maria Josefa', 'Jimenez', 'De la Osa', 'C/Manoteras, 13 S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Luis Miguel', 'Perez', 'Martinez', 'C/Maria Fontaneda, S/N', '5555555', SYSDATE, 1);
Preparación de Entorno de Desarrollo
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Mariano Jose', 'Gomez', 'Prieto', 'C/Jose Abascal, 2', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Jose Luis', 'Jimenez', 'De la Osa', 'C/Manoteras, 13 S/N', '5555555', SYSDATE, 1);
COMMIT;
-- Ejemplo de tabla para que funcione el calendario con localidades y festivos
create table CATA_V_FESTIVOS_MUNICIPIO (
CDMUNI VARCHAR2(3) not null, CDENTIDAD VARCHAR2(2),
ANNO VARCHAR2(4),
FECHA DATE not null, DSFIESTA VARCHAR2(35) );
Preparación de Entorno de Desarrollo
4.4. Compilación y Despliegue 4.4.1. Jetty
Para construir el proyecto desde Eclipse pulsamos con el botón derecho sobre el proyecto padre del arquetipo web que acabamos de generar (Ej: ejpl_app), y en el menú contextual seleccionamos “Run as -> Maven Build”:
Aparecerá un cuadro de diálogo en el que debemos indicar que se ejecuten los goals “clean install”, y pulsar sobre el botón “Run”:
Preparación de Entorno de Desarrollo
Tras la ejecución de este comando quedará generado el fichero war en la ruta web/target/nombreFichero.war.
ATENCION
Si es la primera vez que compilamos el proyecto puede tardar varios minutos en generarse debido a que Maven se encarga de bajar todas las librerías del proyecto del artifactory de ICM.
Para desplegar el war en nuestro servidor de aplicaciones podemos coger el fichero de la carpeta en la que se ha generado (web/target/nombreFichero.war), o podemos utilizar un servidor Jetty local que viene preconfigurado en el arquetipo.
Para ejecutarlo sobre jetty sobre el sub-modulo NombreModulo_web (por ejemplo ejpl_app_web) desde Eclipse seleccionamos “Run As->Maven build” y en el goal indicamos jetty:run
ATENCION
Al ejecutar desde Eclipse, es importante que la casilla “Resolve
Workspace artifacts” no esté activada, si lo está es posible que Maven produzca un error de ejecución del estilo: “Could not explode webapp…”.
Preparación de Entorno de Desarrollo
Si todo ha ido correctamente ya podemos acceder a la aplicación web desplegada, en la URL: http://localhost:9080
4.4.2. WebLogic 10.3.3
Antes de desplegar una aplicación en el servidor de aplicaciones Weblogic tenemos que crear el Data Source que usará la aplicación. En la consola de administración del Weblogic se accede a Servicios -> JDBC -> Orígenes de Datos.
Preparación de Entorno de Desarrollo
A continuación pulsaremos sobre el botón “Nuevo” y rellenaremos el “Nombre” y el “Nombre de JNDI” del Data Source. Deberemos seleccionar la opción “Oracle” en la lista desplegable “Tipo de Base de Datos”.
ATENCION
Es muy importante utilizar en esta pantalla los valores que cumplan la normativa de Atlas para el nombre del Data Source y el nombre del JNDI.
Preparación de Entorno de Desarrollo
En la siguiente pantalla seleccionaremos el controlador de base de datos “Oracle’s Driver (Thin) for Instante connections; Versions:9.0.1,9.2.0,10,11” en la lista desplegable.
Para continuar con la configuración pulsaremos sobre el botón “Siguiente”, en la nueva pantalla dejamos los valores por defecto y pulsamos nuevamente sobre “Siguiente”.
En este paso se rellenarán las propiedades para conectarse a la base de datos y pulsaremos sobre el botón “Sigiuente”.
Preparación de Entorno de Desarrollo
A continuación se muestra el resumen de los datos de conexión que se han añadido y el test de conexión. Si la configuración es correcta se pulsará sobre el botón “Siguiente” y en caso contrario pulsaremos “Atrás”.
Preparación de Entorno de Desarrollo
A continuación pulsaremos sobre la opción “Activar Cambios” en la parte superior izquierda de la pantalla para terminar la creación del DataSource:
Para evitar problemas al desplegar las aplicaciones cambiaremos las políticas de seguridad. Pulsaremos sobre el nombre del Data Source que hemos creado. Una vez seleccionado, accederemos a la pestaña “Seguridad”, y dentro de ella a la subpestaña “Políticas”.
Preparación de Entorno de Desarrollo
Verificaremos que el menú desplegable “Métodos de Administrador” tiene el valor “TODOS” y presionaremos en el botón “Agregar Condiciones” del apartado “Condiciones de Política” . En la nueva ventana seleccionaremos del menú desplegable “Lista de predicados” la opción “Allow access to everyone” :
Preparación de Entorno de Desarrollo
conditions” puede observarse que se ha incluido el nuevo predicado.
Pulsamos sobre el botón “Guardar” y con esto el Data Source queda ya configurado.
Para construir el proyecto desde Eclipse pulsamos con el botón derecho sobre el proyecto padre que acabamos de generar, y en el menú contextual seleccionamos “Run as -> Maven Build”: