Download título - Madrid.org

Document related concepts
no text concepts found
Transcript
ATLAS
PREPARACION DEL ENTORNO DE
DESARROLLO ATLAS LUNA
Versión 1.3
Arquitectura de Software
1
Preparación del Entorno de Desarrollo Atlas Luna
Hoja de Control
Título
PREPARACION DEL ENTORNO DE DESARROLLO ATLAS LUNA
Documento de
PREPARACION DEL ENTORNO DE DESARROLLO
Referencia
Responsable
Arquitectura de Software
Versión
1.3
Versión del Framework
1.3.0
Fecha Versión
04/01/2016
Registro de Cambios
Versión
1.0
Causa del Cambio
Responsable del Cambio
Versión inicial del documento
Unidad de Arquitectura de Software
Fecha del Cambio
24/09/2014
- Se modifica el apartado 3.3.2
para configurar indentación en
los editores de eclipse.
1.1
Unidad de Arquitectura de Software
- Se añade el apartado 3.3.1:
Formateador de código
JavaScript
- Se modifica la configuración e
instalación del plugin PMD para
adaptarlo a la nueva versión 1.8
1.2
- Se añade en la hoja de control
Unidad de Arquitectura de Software
04/01/2016
Unidad de Arquitectura de Software
25/01/2017
la versión del framework a la que
aplica este documento.
- Añadimos instrucciones para
1.3
configurar Maven 3
Página 2 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Índice
1.
INTRODUCCION ................................................................................................................................................................5
1.1.
1.2.
2.
AUDIENCIA OBJETIVO ..............................................................................................................................................5
CONOCIMIENTOS PREVIOS......................................................................................................................................5
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 ..........................................................................................................................................................8
2.2.1.
Artifactory: Repositorio Maven ..............................................................................................................................8
2.2.2.
Portal para el desarrollo de aplicaciones ............................................................................................................10
2.3.
INTEGRACIÓN ENTRE PROVEEDOR E ICM .....................................................................................................................11
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 DE MAVEN ..............................................................................................................................................15
3.3.
INSTALACIÓN Y CONFIGURACIÓN DE ECLIPSE ..............................................................................................................19
3.3.1.
Selección de jdk en Eclipse ...................................................................................................................................19
3.3.2.
Inserción de Espacios en lugar de Tabuladores ...................................................................................................20
3.3.3.
Selección de UTF-8 como encoding por defecto ..................................................................................................24
3.3.4.
Desactivación de “Spelling” para acelerar el entorno ........................................................................................27
3.3.1.
Formateador de código JavaScript ......................................................................................................................28
3.3.2.
Configuración del editor de archivos XHTML .....................................................................................................30
3.3.3.
Configuración del editor de archivos EJS ............................................................................................................31
3.3.4.
Configuración de la creación de nuevos ficheros Web ........................................................................................32
3.3.5.
Exclusión del fichero weblogic.xml de la validación XML...................................................................................34
3.3.6.
Mostrar estado de la pila de memoria ..................................................................................................................35
3.3.7.
Configuración de PROXY .....................................................................................................................................36
3.3.8.
Instalación plugin CkechStyle ..............................................................................................................................37
3.3.9.
Formateador de código para checkstyle. .............................................................................................................44
3.3.10. Limpieza de código para Checkstyle ....................................................................................................................45
3.3.11. Instalación plugin PMD .......................................................................................................................................46
3.3.12. Instalación del plugin de Subversion ....................................................................................................................51
3.3.13. Configuración del plugin de Maven para Eclipse (M2E) .....................................................................................55
3.3.14. Configuración del catálogo de arquetipos ...........................................................................................................60
3.3.15. Instalar el plugin de JBoss Hibernate Tools para Eclipse ...................................................................................60
3.3.16. Instalar plugin JBoss Tool RichFaces ..................................................................................................................62
3.3.17. Instalar plugin StartExplorer ............................................................................................................................... 67
3.3.18. Instalar plugins de Spring IDE .............................................................................................................................69
3.3.19. Instalar plugin JD-Eclipse....................................................................................................................................70
3.3.20. Creación de perspectiva de eclipse personalizada ............................................................................................... 72
3.3.21. Configuración de la paleta de componentes WEB ............................................................................................... 75
4.
CREACIÓN DE UNA APLICACIÓN WEB DESDE CERO ........................................................................................87
4.1.
GENERAR UN PROYECTO A PARTIR DE UN ARQUETIPO DE PROYECTOS MAVEN .............................................................87
4.2.
GENERAR UN SUBPROYECTO WEB A PARTIR DE UN ARQUETIPO MAVEN .......................................................................91
4.3.
CONFIGURACIÓN DE PROPIEDADES DE ACCESO A DATOS ............................................................................................... 99
4.3.1.
Propiedades de base de datos Oracle ..................................................................................................................99
4.3.2.
Esquema de pruebas ...........................................................................................................................................100
4.4.
COMPILACIÓN Y DESPLIEGUE......................................................................................................................................104
4.5.
DEPURACIÓN DE LA APLICACIÓN .................................................................................................................................105
4.6.
VISUALIZACIÓN DE LA APLICACIÓN DESPLEGADA ......................................................................................................106
Página 3 de 113
Preparación del Entorno de Desarrollo Atlas Luna
4.7.
RENOMBRADO DE CLASES DE FACHADA PARA EL BLOQUE FUNCIONAL .......................................................................107
5.
GENERACIÓN DEL SITE .............................................................................................................................................109
6.
PREGUNTAS MÁS FRECUENTES .............................................................................................................................. 112
7.
ENLACES RELACIONADOS........................................................................................................................................113
Página 4 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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”.
Página 5 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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
Entorno Desarrollo
Eclipse + plugin Maven (+ plugin subversion)
Maven
Repositorio
Local
Base de Datos
(Oracle 9i)
Servidor de
Aplicaciones
(WebLogic-Tomcat)
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 Luna V4.4.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.
Página 6 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Menu bar
Text
editor
Tool bar
Perspective
and
Fast View
bar
Outline
view
Resource
Navigator
view
Bookmarks
view
Properties
view
Message
area
Stacked
views
2.1.3.
Tasks
view
Editor
Status
area
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-ObjectModel) 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).
Página 7 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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 dos de los servidores de aplicaciones existentes en el mercado. El primero de ellos
(tomcat) será el utilizado en todos los entornos de ICM, y por tanto sobre el que se certificarán las aplicaciones. El
otro (jetty) puede ser utilizado para el desarrollo local, pero la validación final ha de realizarse en tomcat:
2.1.4.1.
Tomcat 7.X
Tomcat es un servidor de aplicaciones con soporte de servlets y JSPs. Incluye el compilador Jasper, que compila
JSPs convirtiéndolas en servlets. 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.
2.1.4.2.
Jetty 8.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.
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
proveerán con configuraciones de acceso a dicha base de datos.
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
Página 8 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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 último 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.
En Atlas se definen todos los posibles artefactos que una aplicación puede utilizar, tanto los propios del framework
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.
Página 9 de 113
Preparación del Entorno de Desarrollo Atlas Luna
atlasfrm-arquetipos-generador-
Genera un proyecto Maven de tipo web listo para desplegar
servicioweb
un servicio web con Axis2, Spring e Hibernate.
atlasfrm-arquetipos-generador-
Genera un proyecto Maven de tipo web listo para ser
documentumweb
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.
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.
Página 10 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
Página 11 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
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
Página 12 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
6. Cuando el proyecto esté listo y certificado, se procederá a su puesta en producción.
Página 13 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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-2132windows-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:
Página 14 de 113
Preparación del Entorno de Desarrollo Atlas Luna
En el caso de entornos Linux editaremos el archivo .profile que se encuentra en nuestro home y al que
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:
3.2.
JAVA_HOME
C:\myJDKPath
PATH
%JAVA_HOME%\bin;%PATH%
Instalación de Maven
Dependiendo de la versión de atlas estamos usando Maven 2 o Maven 3 para el desarrollo de los proyectos. Se
instauró la versión de Maven 3.2.5 a partir de la versión de Atlas 1.3.0, si estamos en una versión anterior de Atlas
solamente necesitaríamos la versión 2.2.1. Puede darse el caso de que necesitemos tener configuradas ambas
Página 15 de 113
Preparación del Entorno de Desarrollo Atlas Luna
versiones 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 [3.2.5 o 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-3.2.5
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.
Importante
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.
Página 16 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
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>).
Añadir al fichero settings.xml lo siguiente:
Página 17 de 113
Preparación del Entorno de Desarrollo Atlas Luna
<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>
<activeProfiles>
<!-- make the profile active all the time -->
<activeProfile>unsecurecentral</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>unsecurecentral</id>
<!-- Override the repository (and pluginRepository) "central" from the
Maven Super POM -->
<repositories>
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>base</id>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
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
Página 18 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.
Instalación y configuración de Eclipse
La versión recomendada para el desarrollo de aplicaciones Atlas es Eclipse Luna V4.4.X con la distribución
Eclipse IDE for Java EE Developers. Puede obtenerse una versión para instalarlo en la URL:
http://www.eclipse.org/luna/. En el DVD del entorno de desarrollo se descomprime el contenido de la carpeta
eclipse en C:\Producto\eclipseLuna. Para más información sobre la instalación consultar la web anterior.
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.
3.3.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.
Página 19 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.3.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 todos los ficheros.
Para configurar que Eclipse inserte espacios en lugar de tabuladores también en todos los tipos de ficheros (no
sólo en ficheros Java), debemos personalizar cada uno de los editores que dispone:
3.3.2.1.
Editor General
Vamos a “Window -> Preferences" y ahí acceder a la opción “General -> Editors -> Text Editors”.
En esta pantalla activamos la casilla “Insert spaces for tabs” según se muestra en la siguiente figura:
Página 20 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.2.2.
Editor CSS
Vamos a “Window -> Preferences" y ahí acceder a la opción “Web -> CSS Files -> Editor”.
En esta pantalla activamos la opción “Indent using spaces” y en “Indentation size” indicamos 4
Página 21 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.2.3.
Editor HTML
Vamos a “Window -> Preferences" y ahí acceder a la opción “Web -> HTML Files -> Editor”.
En esta pantalla activamos la opción “Indent using spaces” y en “Indentation size” indicamos 4
Página 22 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.2.4.
Editor XML
Vamos a “Window -> Preferences" y ahí acceder a la opción “XML -> XML Files -> Editor”.
En esta pantalla activamos la opción “Indent using spaces” y en “Indentation size” indicamos 4
Página 23 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.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:
Página 24 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
Página 25 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Ahora seleccionar la opción „JSP‟ e indicar en el campo „Default encoding‟ lo mismo, „UTF-8‟. Pulsar el botón
„Update‟. De esta forma habremos configurado Eclipse para que los ficheros JSP se creen en formato UTF-8.
Página 26 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.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:
Página 27 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.1.
Formateador de código JavaScript
Para configurar el formateador de código JavaScript se precisa el perfil
ATLAS_JAVASCRIPT_CC_ECLIPSE_FORMATTER_PROFILE.xml, dicho fichero se encuentra en el portal de
arquitectura de ICM. Se recomienda guardar el fichero en la carpeta de eclipse.
Para establecer el perfil vamos a Window > Preferences > JavaScript > Code style > Formatter
Página 28 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Pulsamos “Import…”, seleccionamos nuestro fichero
ATLAS_JAVASCRIPT_CC_ECLIPSE_FORMATTER_PROFILE.xml y pulsamos OK.
Página 29 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.2.
Configuración del editor de archivos XHTML
En “Window -> Preferences -> General -> Editors -> File Associations” pulsamos sobre la extensión
“*.xhtml”, y en la zona de “Associated editors” pulsamos sobre “Web Page 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 Editor Web visual pasa a ocupar la primera posición en la lista):
Página 30 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.3.
Configuración del editor de archivos EJS
En “Window -> Preferences -> General -> Editors -> File Associations” pulsamos sobre el botón “Add…” de la
sección “File Types”, escribimos “*.ejs” y aceptamos. Tras esto, en la zona de “Associated editors” pulsamos
sobre “Add…” y escogemos “JavaScript Editor”: De forma que la ventana tenga el siguiente aspecto final:
Página 31 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.4.
Configuración de la creación de nuevos ficheros Web
En este apartado vamos a especificar el encoding por defecto para los ficheros web creados a través del wizard.
Los ficheros posibles son CSS, HTML y JSP.
Para configurar los ficheros CSS, en “Window -> Preferences -> Web -> CSS Files”. Seleccionamos ISO
10646/Unicode(UTF-8) de la lista de opciones del campo “Encoding”.
Página 32 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Para configurar los ficheros HTML, en “Window -> Preferences -> Web -> HTML Files”. Seleccionamos ISO
10646/Unicode(UTF-8) de la lista de opciones del campo “Encoding”.
Para configurar los ficheros JSP, en “Window -> Preferences -> Web -> JSP Files”. Seleccionamos ISO
10646/Unicode(UTF-8) de la lista de opciones del campo “Encoding”.
Página 33 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.5.
Exclusión del fichero weblogic.xml de la validación XML
Para evitar errores en la validación del fichero XML weblogic.xml de los arquetipos web creamos una regla de
exclusión. Para ello, vamos a “Windows > Preferences > Validation”, una vez allí pinchamos en las opciones de
“XML Validator”
En la pantalla de filtros de validación del XML Validator, pulsamos “Exclude Group” y después en “Add Rule…”
Página 34 de 113
Preparación del Entorno de Desarrollo Atlas Luna
En la siguiente pantalla seleccionamos “Folder or file name” y damos a “Next” y en el campo de texto de la
siguiente escribimos “weblogic.xml”:
De manera análoga se pueden excluir de la validación todos los ficheros XML que considere oportunos.
3.3.6.
Mostrar estado de la pila de memoria
Nos permite ver el estado de la pila de memoria de eclipse así como llamar al recolector de basura cada vez qe
queramos. Vamos a “Window -> Preferences -> General” y pinchamos la opción „Show heap status”.
Página 35 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.7.
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”.
En la siguiente figura se muestra un ejemplo de configuración del Proxy si se encuentra en la intranet de ICM:
Página 36 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.8.
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:
Página 37 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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 Eclipse Checkstyle Plug-in versión 5.7.0.XXX y presionamos
Next:
Página 38 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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:
Página 39 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
Página 40 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Por último pulsamos OK para añadir el nuevo fichero de configuración de checkstyle, y en la pantalla anterior
marcamos la nueva configuración como la utilizada por defecto, seleccionándola y pulsando sobre “Set as
Default”.
Página 41 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
Página 42 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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 files outside source directories y en files from packages indicamos las
carpetas resources del proyecto.
Página 43 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.3.9.
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:
Página 44 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Una vez dentro ded 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.3.10. 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:
Página 45 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.3.11. 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 sencilla para la instalación del plugin de PMD es usando el Eclipse Marketplace.
Dentro de Eclipse vamos a la opción Help->Eclipse Marketplace, y en la pantalla que aparece en el campo “find”
escribimos “plugin pmd” y pulsamos Enter para iniciar la búsqueda. Entre los resultamos localizaremos el que
hemos marcado en rojo en la Ilustración 1 y pulsaremos en Install:
Página 46 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Ilustración 1. Instalación del plugin eclipse-pmd 1.8
Seguiremos las instrucciones que nos aparecen en pantalla para completar la instalación del citado plugin.
Nota: es posible que eclipse nos solicite reiniciarse para terminar con la instalación. Aceptaremos a reiniciar si nos
lo sugiere.
Para configurar el plugin de PMD para aplicar las reglas de convenciones de codificación JAVA en ICM
deberemos configurar dichas reglas para cada uno de los proyectos a los que se las queramos aplicar. Para ello
nos iremos en eclipse al proyecto en cuestión, pulsaremos botón derecho -> Properties. En la ventana que nos
aparece seleccionaremos la opción PMD, como puede verse en la Ilustración 2.
Página 47 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Ilustración 2. Configuración del plugin PMD
En esta pantalla habilitaremos el check “Enable PMD for this Project”. Y pulsaremos en el botón “Add…”. Esto nos
llevará a una nueva pantalla, donde seleccionaremos “Remote” para indicar la url del fichero de reglas que se
encuentra en el portal de desarrollo. Pulsamos en siguiente y en el cuadro de texto “Location” introducimos la
siguiente URL:
http://intranet.madrid.org/arquitecturasw/images/documentacion/atlas/actual/Entorno%20de%20desarrollo/luna/AT
LAS_JAVA_CC_PMD_plugin_v1.8.xml
Si todo es correcto podremos ver una pantalla como la que se muestra en la Ilustración 3. En cuyo caso
pulsaremos en “Finish”.
Página 48 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Ilustración 3. Reglas PMD Atlas
Ya tenemos nuestro conjunto de reglas configurado. Ahora solo necesitaremos activarla y pulsar en “OK”. La
pantalla debe quedar como se muestra en la Ilustración 4.
Página 49 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Ilustración 4. Configuración final del plugin de PMD para el proyecto
Una vez hayamos pulsado en el botón OK, en el cuadro de Marcadores (Markers) podremos ver los errores PMD
que contiene nuestro proyecto y que tendremos que subsanar. Podemos ver un ejemplo de dicha vista en la
Ilustración 5.
Página 50 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Ilustración 5. Ejemplo de errores PMD
Cada vez que hagamos un build, podremos ver en tiempo real todos los errores que hayamos cometido y que
tendremos que ir solventando.
3.3.12. Instalación del plugin de Subversion
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.10.x tal y como se indica a continuación.
Página 51 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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:
Página 52 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Una vez añadido el sitio, seleccionamos los plugins según la siguiente pantalla:
Página 53 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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”.
Página 54 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Ahora podremos ver el árbol de proyectos, desde el que podemos realizar diferentes acciones.
Atención: Cliente SVN de la working copy
Se recomienda utilizar una nueva working copy (lugar donde se ha hecho un checkout) o con una versión de
cliente SVN 1.8 o superior. Hay que tener en cuenta que si hacemos un checkout en una working copy con un
cliente SVN inferior a la versión 1.8, el plugin actualizará la versión y ya no podrá ser accedida por clientes
inferiores a la 1.8 (como el eclipse de la anterior versión del entorno de desarrollo).
3.3.13. Configuración del plugin de Maven para Eclipse (M2E)
La distribución de nuestro eclipse para desarrolladores Java EE incluye un plugin de integración de maven.
Concretamente M2E (Maven Integration for Eclipse) en su versión 1.5.0.XXX.
Toda la configuración del plugin se encuentra en la sección “Window->Preferencies->Maven”. Para nuestro caso
modificaremos lo siguiente:
Ruta donde tenemos instalado Maven. Para ello accedemos a “Window->Preferencies->Maven >Installations”, según se muestra en la siguiente figura:
Página 55 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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:
Página 56 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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:
Si necesitásemos tener configurada más de una versión de Maven, aquí podríamos configurar todas ellas. Aunque
evidentemente $M2_HOME solo apuntará a una (lo cual solo afecta a las compilaciones que se realicen a través
de la consola de Windows). Aquí podríamos tener varias (tendremos que configurar una que se usará por defecto).
La versión por defecto, es la que estará preseleccionada al ejecutar sobre un proyecto [botón derecho -> Run as > Maven build…]. Aunque esta versión podremos cambiarla al ejecutar esta acción.
Página 57 de 113
Preparación del Entorno de Desarrollo Atlas Luna
A continuación seleccionaremos la opción “Error/Warnings” indicamos que ignore las dos primeras situaciones:
“groupId” duplicate of parent groupId
“version” duplicate of parent version
Página 58 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Por último, en el apartado de “Java EE Integration” dejamos, únicamente, seleccionada la opción de “JSF
Configurator” dentro del cuadro “Select active Java EE configurators”.
Pulsando sobre “Ok” habremos finalizado con la instalación del plugin.
Página 59 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.14. 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/Preferences y seleccionamos
Maven/Archetypes.
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.
3.3.15. Instalar el plugin de JBoss Hibernate Tools para Eclipse
Para utilizar la Herramienta de Generación Automática de Código de ATLAS, es necesario instalar el plugin
para Eclipse JBoss Hibernate Tools.
La forma recomendada para la instalación del plugin es mediante la url de update de plugin
http://download.jboss.org/jbosstools/updates/stable/indigo/ tal y como se indica a continuación.
Página 60 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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 http://download.jboss.org/jbosstools/updates/stable/indigo/, 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 JBoss Hibernate Tools) y presionamos Next:
Página 61 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Debemos desplegar la opción “JBoss Jboss Data Services”, y activar la casilla “Hibernate Tools”:
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.
3.3.16. Instalar plugin JBoss Tool RichFaces
Este plugin (en realidad, compendio de varios) nos va a ayudar en el desarrollo de páginas JSF. Entre otras cosas,
nos proporciona: wizards de creación de diferentes elementos de JSF, validación, navegación entre páginas,
edición visual y ayuda contextual para los proyectos JSF y para librerías de componentes.
Página 62 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Como se ha dicho, el plugin JBoss Tool RichFaces es en realidad un conjunto de éstos:
JBoss Tools Common
JBoss Tools Common Core
JBoss Tools Common Text
JBoss Tools Common UI
JBoss Tools Java Standard Tools
JBoss Tools JSF
JBoss Tools Verification
JBoss Tools Visual Page Editor
Para una documentación detallada de cada uno de ellos consulte la página de JBoss Tools, concretamente la,
muy recomendada, guía Visual Web Tools Reference Guide.
La forma recomendada para la instalación del plugin es mediante la url de update de plugin
http://download.jboss.org/jbosstools/updates/stable/ 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 http://download.jboss.org/jbosstools/updates/stable/, 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 JBoss Tools) y presionamos Next:
Página 63 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Ahora iremos al grupo de JBoss Web and Java EE Development y seleccionaremos JBoss Tool RichFaces.
Página 64 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
3.3.16.1.
Configuración del JBoss Editor para archivos XHTML
Si se desea se puede configurar elicpse para que el editor web visual de JBoss sea el de por defecto a la hora de
modificar archivos xhtml. El entorno Atlas viene configurado con el editor web de eclipse (Web Page Editor).
Página 65 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Para configurarlo: en “Window -> Preferences -> General -> Editors -> File Associations” pulsamos sobre la
extensión “*.xhtml”, y en la zona de “Associated editors” pulsamos sobre “JBoss Tools HTML 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 JBoss Editor pasa a ocupar la primera posición en la lista):
3.3.16.2.
Configuración del editor visual
Configuraremos el editor visual de JBoss para que se muestre la barra de herramientas dentro del propio editor.
Para ello vamos a “Windows > Preferences > JBoss Tools > Web > Editors > Visual Page Editor” y una vez
allí seleccionamos la opción “Show toolbar within the editor (otherwise in Eclipse’s toolbar)”
Página 66 de 113
Preparación del Entorno de Desarrollo Atlas Luna
3.3.16.3.
Configuración de la paleta de componentes WEB
Para llevar a cabo la configuración de la paleta de componentes necesitamos que el editor visual esté abierto y
activo, es decir, necesitamos abrir una página XHTML con el editor. Como todavía no tenemos ningún proyecto
abierto la configuración de esta utilidad se encuentra en el apartado 3.3.21 Configuración de la paleta de
componentes WEB, una vez que ya tenemos un proyecto web Atlas creado.
3.3.17. Instalar plugin StartExplorer
StartExplorer ofrece una estrecha integración entre el administrador de archivos del sistema (explorador de
archivos para Windows) y el shell (cmd.exe para Windows) y Eclipse.
La forma recomendada para la instalación del plugin es mediante la URL de
update del plugin http://basti1302.github.com/startexplorer/update/, tal y como se indica a continuación.
Página 67 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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 http://basti1302.github.com/startexplorer/update/, 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 StartExplorer Feature) y presionamos “Next”:
En la siguiente pantalla verificamos lo seleccionado y volvemos a pulsar “Next”, y luego “Finish” para aceptar los
Página 68 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
3.3.18. Instalar plugins de Spring IDE
Spring IDE es un conjunto de plugins que dan soporte del framework Spring dentro de Eclipse. En esta página se
puede consultar una descripción más detallada del conjunto de características que aporta:
http://marketplace.eclipse.org/content/spring-ide. Para nuestro caso, utilizaremos los plugins para el core de
Spring, el de integración con Maven y de Autowire.
La forma recomendada para la instalación del plugin es mediante la url de update del plugin
http://dist.springsource.com/release/TOOLS/update/e4.4/ 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 http://dist.springsource.com/release/TOOLS/update/e4.4, 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: Spring IDE Core, Spring IDE Autowire Extension y Spring IDE Maven Support. Tras esto
pulsamos “Next”:
Página 69 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
3.3.19. Instalar plugin JD-Eclipse
JD-Eclipse es un plugin para la plataforma Eclipse que permite visualizar todas las fuentes Java durante el
proceso de depuración, incluso si no dispones de ellas. Para más información puede visitar la página
http://jd.benow.ca/.
Página 70 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Para instalarlo iremos 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 http://jd.benow.ca/jd-eclipse/update, 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:
JD-Eclipse Plug-in. Tras esto pulsamos Next:
Página 71 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
ATENCIÓN
Se recomienda que para realizar los siguientes pasos de la configuración disponga de una aplicación web creada a partir de un artefacto atlasfrm-arquetipos-generador-web- en el workspace de su eclipse. En el
apartado siguiente se explica con detalle 4-CREACIÓN DE UNA APLICACIÓN WEB DESDE CERO
3.3.20. Creación de perspectiva de eclipse personalizada
Eclipse nos da la opción de poder crear perspectivas personalizadas de una manera sencilla. Para conseguirlo
primero hay que dejar el eclipse a nuestro gusto y tras esto guardar dicha disposición como una nueva
perspectiva.
En nuestro caso partiremos de la perspectiva de eclipse Java EE reseteada: “Window > Open Perspective >
Java EE”.
Tras esto, sobre el cuadrito de la perspectiva Java EE pinchamos el botón derecho del ratón y elegimos reset.
Página 72 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Ahora haremos que se muestren las vistas Console, Palette, Problems, SVN Repositories. Para conseguirlo,
con cada opción, hay que ir a “Window > Show View” e ir eligiendo.
Con todas las vistas citadas visible en el workspace las arrastraremos hasta que nuestro eclipse tenga el siguiente
aspecto:
Página 73 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Para finalizar, sobre el indicador de Java EE pulsamos el botón derecho de ratón y seleccionamos “Save as…”
y escribimos el nombre que deseemos para nuestra perspectiva, por ejemplo “Atlas”, y pulsamos Ok.
Página 74 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Con esto ya ha quedado configurada nuestra perspectiva, queda abierta al usuario la elección de qué vistas quiere
que estén vivisbles y en qué lugar
3.3.21. Configuración de la paleta de componentes WEB
Una paleta es una utilidad que viene incorporada en las herramientas web visuales de eclipse, la cual permite
organizar por grupos las diferentes etiquetas JSF disponibles en una aplicación, e insertarlas en una página (JSP
o XHTML) con un solo clic. Así mismo, también nos permite añadir librerías de etiquetas personalizadas y
controlar, de una manera muy sencilla si queremos que se visualicen y de qué modo.
En nuestra distribución de eclipse se incluyen dos paletas de componentes:
1. La paleta estándar que viene instalada por defecto en eclipse, Eclipse Palette, y
2. La JBoss Tools Palette, incluida en la instalación del plugin JBoss Tools RichFaces.
Ambas paletas se muestran en eclipse de la misma forma, vamos a la opción “Windows > Show View >.Other…
> General > Palette” El que esté una u otra activa depende del editor visual de la página XHTML que estemos
utilizando.
La Eclipse Palette se activará cuando utilicemos el editor por defecto de eclipse, Web Page Editor. Para ello
pinchamos encima de una página XHTML con el segundo botón del ratón, tras esto elegimos “Open With > Web
Page Editor”. A continuación se muestra el aspecto del visual de eclipse:
Página 75 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Por otro lado, la JBoss Tools Palette se activará cuando utilicemos el JBoss Tools HTML Editor. Para ello, igual
que antes, pulsamos con el segundo botón del ratón sobre una página XHTML y seleccionamos el editor de
JBoss, “Open With > JBoss Tools HTML Editor”. A continuación se muestra el aspecto de la herramienta web
visual de JBoss en nuestro eclipse:
Página 76 de 113
Preparación del Entorno de Desarrollo Atlas Luna
¿Qué herramienta web visual utilizar?
Tanto el Web Page Editor de eclipse como el JBoss Tools Visual Web Tools son excelentes herramientas La
suite de desarrollo de Atlas viene “a punto” para utilizar cualquiera de ellas, queda abierta al proveedor la elección
de cuál y en qué momento utilizar una u otra.
Recomendamos la lectura de los manuales disponibles para cada una:
Visual Page Editor
JBoss Tools Visual Web Tools
A continuación realizaremos algunas modificaciones para dejar cada una de las paletas lo más utilizables posibles.
3.3.21.1.
Eclipse Palette
Comenzaremos con la paleta de eclipse, en ésta están incluidas todas las librerías básicas de desarrollo de JSF
(JSF core y html; JSLT core y functions; Facelet composite y core; etc.) y también se cargan las localizadas en el
classpath de la aplicación (lo cual es muy positivo para disponer de nuestras librerías Atlas). Lo malo es que no se
pueden incluir librerías de terceros (como RichFaces). Esta es el aspecto inicial de la paleta de eclipse al abrir un
Página 77 de 113
Preparación del Entorno de Desarrollo Atlas Luna
XHTML creado con una arquetipo web Atlas:
A continuación clicamos el botón derecho del ratón dentro de la paleta y seleccionamos “Customize…”
Página 78 de 113
Preparación del Entorno de Desarrollo Atlas Luna
De esta manera podemos elegir que elementos de la paleta estén ocultos. Otra modo de conseguir lo mismo es
pulsar el botón derecho sobre el elemento que queramos ocultar y clicar “Hide”.
Finalmente nuestra Eclipse Palette queda así:
Página 79 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Así, cuando queramos utilizar alguno de los componentes Atlas sólo tendremos que pinchar sobre él y en la
posición de la página dónde queramos que se inserte:
Nota:
La paleta Eclipse Palette es, especialmente útil, para el componente de criptografía.
Ver Manual de Usuario Componente Criptográfico Cliente.
3.3.21.2.
JBoss Tools Palette
A continuación pasaremos a configurar la paleta de JBoss, para ello abriremos la página XHTML con el editor de
JBoss (Open With > JBoss Tools HTML Editor).
Al igual que la anterior, esta paleta tiene pros y contras. Lo bueno: trae incorporada la librería de RichFaces (rich
y a4j); tiene una excelente previsualización; se pueden incorporar librerías propias; y una vez configurado no hay
que volver a modificarla. Lo malo: no detecta automáticamente los componentes composite (hay que crear un tld
personalizado); y que, puede ocurrir, que las librerías configuradas no se encuentren en el classpath del proyecto
Página 80 de 113
Preparación del Entorno de Desarrollo Atlas Luna
actual.
Comenzaremos la personalización de la paleta de JBoss ocultando/mostrando elementos. Para ello pinchamos en
el icono “Show/Hide” en la parte superior de la paleta:
Se nos mostrarán las diferentes opciones que queremos visibles. Finalmente tendrá este aspecto:
Lo siguiente será incorporar nuestras librerías de componentes Atlas, como ya se ha comentado, esta paleta no
detecta automáticamente los componentes composite (sí que detecta los facelets) definidos dentro de una librería
(taglib), así que, hemos implementado los descriptores, TLD, necesarios para incluir los componentes
manualmente.
Para añadir las librerías Atlas, dentro de la paleta, pulsamos en “Import”:
Página 81 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Seguidamente en “Browse…”:
Para escoger el fichero “atlas.tld[atlas]” que se encuentra en la carpeta web de nuestro, recién creado, arquetipo
web Atlas:
Página 82 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Esta librería describe los componentes Atlas creados con tecnología facelets, así que, en la siguiente pantalla
especificamos “Facelets” como nombre y lo incluimos en un nuevo grupo llamado “ATLAS”:
Tras pulsar “OK” ya dispondremos de nuestra librería “ATLAS Facelets” en la paleta:
Página 83 de 113
Preparación del Entorno de Desarrollo Atlas Luna
A continuación importaremos el TLD de los componentes Composite disponibles en Atlas. Esta vez utilizaremos
otra técnica que tiene exactamente el mismo resultado que la anterior. Arrastrando el fichero tld desde el proyecto
web y soltándolo dentro de la paleta JBoss. Para ello, desde la perspectiva “Java EE”, vamos a “Project
Explorer” y desplegamos el elemento “Web Resources” de nuestro submódulo web:
Página 84 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Luego pinchamos en “Tag Libreries” para listar las librerías disponibles en el classpath de nuestro proyecto y
seleccionamos el fichero “atlas-composite.tld[atlasc]” arrastrándolo hasta la paleta de componentes:
Tras esto nos aparecerá la misma pantalla que al darle al botón “Import…” pero con algunos campos ya rellenos.
Modificaremos el campo “Name” e indicaremos “Composite” y en el grupo escogeremos, el ya creado, “ATLAS”.
Con esta configuración ya tenemos personalizado la paleta JBoss para utilizar los componentes Atlas:
Página 85 de 113
Preparación del Entorno de Desarrollo Atlas Luna
IMPORTANTE: Utilización de los componentes Atlas
Antes de utilizar cualquier componente Atlas es obligatoria la lectura de su manual asociado. Las
herramientas web que se describen en este documento no son más que una ayuda una vez que se
conoce perfectamente su configuración y uso.
Para más información acuda a la página de componentes de presentación del portal de arquitectura de
ICM.
Página 86 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
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.
Página 87 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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):
Página 88 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Seleccionamos atlasfrm-arquetipos-generador-proyecto y rellenamos los parámetros para la generación del
proyecto:
Página 89 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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 da 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
será el nombre del proyecto (y por tanto
igual que el groupId).
Todos los nombres deben ir en
minúsculas.
Una vez finalizado veremos en el Eclipse el proyecto generado y listo para empezar a crear subproyectos
(módulos) dentro de él.
Página 90 de 113
Preparación del Entorno de Desarrollo Atlas Luna
ATENCIÓN
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.
Página 91 de 113
Preparación del Entorno de Desarrollo Atlas Luna
En la siguiente pantalla debemos escribir el nombre del módulo que deseamos crear (en el ejemplo, el módulo se
llamará ejpl_app):
Página 92 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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:
Página 93 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Seleccionamos atlasfrm-arquetipos-generador-web y rellenamos los parámetros para la generación del módulo:
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
da 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).
Todos los nombres deben ir en minúsculas.
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):
Página 94 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
Antes de eliminar:
Página 95 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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.
Página 96 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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]”:
Página 97 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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”:
Página 98 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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:
Página 99 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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:
Página 100 de 113
Preparación del Entorno de Desarrollo Atlas Luna
-- ------------------------------------------------------------------------------------------ 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
1 increment by 1 cache 5 order;
Página 101 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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);
Página 102 de 113
Preparación del Entorno de Desarrollo Atlas Luna
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)
);
COMMIT;
Página 103 de 113
Preparación del Entorno de Desarrollo Atlas Luna
4.4.
Compilación y Despliegue
El arquetipo web genera un proyecto multimodular, esto significa que cuando lo generamos estamos generando
un proyecto con al menos dos módulos (test y web).
Para construir el proyecto debe ejecutarse el siguiente comando desde el POM padre del proyecto generado:
mvn clean install
También puede ejecutarse maven desde Eclipse. En ese caso, 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…”.
Por defecto, al ejecutar Maven con los parámetros “clean install” se genera el war correspondiente a la aplicación.
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 Tomcat7 local que viene
preconfigurado en el arquetipo. Para ejecutar directamente un servidor tomcat7 con nuestro proyecto desplegado,
debemos ejecutar la siguiente línea de comandos desde el directorio web de nuestro proyecto la siguiente línea
de comandos:
mvn tomcat7:run
Esto arranca un servidor tomcat7 en el puerto 9080 de nuestra máquina, en el que se encuentra desplegado el
war de nuestra aplicación (se puede acceder también por https en el puerto 9443).
Para ejecutar directamente un servidor jetty con nuestro proyecto desplegado, debemos ejecutar la siguiente línea
de comandos desde el directorio web de nuestro proyecto la siguiente línea de comandos:
mvn jetty:run
Esto arranca un servidor jetty en el puerto 9080 de nuestra máquina, en el que se encuentra desplegado el war de
nuestra aplicación (se puede acceder también por https en el puerto 9443).
Para la ejecución de los tests JMeter, desde el módulo test:
mvn clean install –Pjmeter
Página 104 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Para la generación y despliegue de los artefactos adicionales con los javadocs y el código fuente del proyecto:
mvn clean install –Dadditional_artifacts=true
4.5.
Depuración de la aplicación
En el entorno de desarrollo Eclipse es posible ejecutar la aplicación en modo debug para depurarla.
Para lanzar la aplicación en modo debug, en lugar de ejecutar el comando “mvn tomcat7:run” desde el menú “Run
as”, deberemos ejecutarlo desde el menú “Debug as”.
De esta forma, se arrancara un servidor tomcat7 en local sobre el que podremos probar paso a paso la aplicación
web.
Página 105 de 113
Preparación del Entorno de Desarrollo Atlas Luna
4.6.
Visualización de la Aplicación Desplegada
Si hemos utilizado el servidor tomcat7 o jetty podemos acceder a nuestra aplicación utilizando un browser,
accediendo a la URL:
http://localhost:9080/
En caso de que todo haya funcionado correctamente, aparecerá una pantalla de login:
Por defecto debido a la política de seguridad de pruebas que viene configurada en el arquetipo, se puede acceder
con el usuario y contraseña usuario_ok/usuario_ok.
Al autenticarnos con este usuario, aparecerá la pantalla principal de ejemplo del arquetipo:
Página 106 de 113
Preparación del Entorno de Desarrollo Atlas Luna
4.7.
Renombrado de clases de fachada para el bloque funcional
Los paquetes iniciales del proyecto se establecerán al crear este. Si nuestro proyecto va a tener un gran volumen
y queremos separar el código en varios bloques funcionales, cada bloque funcional puede tener su fachada (y su
implementación de ésta).
Por defecto, al crear un arquetipo web el bloque funcional viene con una fachada denominada
BloqueFuncionalnFacade (y su implementación correspondiente).
Es necesario renombrar este fichero (y todos los afectados), de manera que corresponda con el nombre del
bloque funcional deseado.
A continuación se muestra una lista de los ficheros en los que habría que modificar el nombre de la fachada:
Página 107 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Página 108 de 113
Preparación del Entorno de Desarrollo Atlas Luna
5. GENERACIÓN DEL SITE
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, etc.
Para ejecutar la creación del site completo se debe ejecutar en secuencia los siguientes comandos Maven:
mvn site
mvn site:deploy
ATENCION
Se recomienda ejecutar estos comandos utilizando la línea de comandos de maven diréctamente (no desde
Eclipse ), ya que puede dar errores por falta de memoria.
ATENCION
Al ejecutar la línea de comandos “mvn site”, es posible que se muestren algunos errores por consola. Se deberán
ignorar dichos errores ya que no se trata de problemas reales:
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.
La documentación generada en el site tendrá los siguientes puntos:
Página 109 de 113
Preparación del Entorno de Desarrollo Atlas Luna
Menú Módulos: Contiene los distintos módulos de los que se compone el proyecto y una referencia a dichos
módulos.
Menú Información del proyecto: Contiene una serie de páginas con la información general del proyecto maven,
equipo, dependencias y demás información que puede obtenerse a partir del pom.xml.
Bienvenido a : identificación del artefacto maven, nombre del proyecto y descripción.
Convergencia de Dependencias: Muestra si todos los proyectos comparten la misma versión de la
dependencia
Dependencies: Dependencias del proyecto.
Dependency Management: Listado de administración de versionado de dependencias (no son
dependencias reales).
Gestión de plugins: Versiones de plugins de maven que utiliza el proyecto.
Resumen del proyecto: Resumen del proyecto.
Menú Project Reports: Contiene información de informes realizados sobre código fuente, estructura del proyecto,
pruebas, etc.
Checkstyle: Informe sobre fallos de estilo de codificación.
Cobertura Test: Informe sobre la cobertura del código de pruebas.
CPD Report: Informe de código duplicado en el proyecto.
Javadocs: Documentación Javadoc de clases y paquetes, con diagramas de clases (para ello se debe
instalar en su máquina el programa dot de http://www.graphviz.org/ ) Además tiene enlaces cruzados al
código.
Página 110 de 113
Preparación del Entorno de Desarrollo Atlas Luna
JDepend: Informe sobre métrica de dependencia de código.
PMDReport: Informe de PMD
Source Xref: Referencia directa del código, en la que se apoyan el resto de plugins para marcar sus
errores.
Surefire Report: Informe de estado de las pruebas unitarias.
Test Javadocs: Documentación javadoc de la parte de test.
Test Source Xref: Referencia directa a código de test.
Página 111 de 113
Preparación del Entorno de Desarrollo Atlas Luna
6. PREGUNTAS MÁS FRECUENTES
La lista de preguntas frecuentes se encuentra en el portal de arquitectura.
Página 112 de 113
Preparación del Entorno de Desarrollo Atlas Luna
7. ENLACES RELACIONADOS
Producto
URL
Apache Maven
http://maven.apache.org/
Eclipse IDE
https://www.eclipse.org
The Java EE 7 Tutorial
http://docs.oracle.com/javaee/7/tutorial/doc/home.htm
Hibernate
http://www.hibernate.org/
JavaServer
Faces http://docs.oracle.com/javaee/7/tutorial/doc/jsf-intro.htm#BNAPH
Technology
RichFaces
http://www.jboss.org/jbossrichfaces/
Spring
http://www.springframework.org/
Portal de Arquitectura de http://www.madrid.org/arquitecturasw/
ICM
Eclipse
Web
Tools http://www.eclipse.org/webtools/
Platform.
JavaServer
Faces(JSF) http://www.eclipse.org/webtools/jsf
Tools Project
Checkstyle
http://checkstyle.sourceforge.net/
PMD
http://pmd.sourceforge.net/
Subclipse
http://subclipse.tigris.org/
m2e
http://www.eclipse.org/m2e/
JBoss Tools
http://tools.jboss.org/
StartExplorer
http://basti1302.github.io/startexplorer/
Spring IDE
http://marketplace.eclipse.org/content/spring-ide
Java Decompiler
http://jd.benow.ca/
Página 113 de 113