Upload
disid
View
2.820
Download
1
Embed Size (px)
DESCRIPTION
Introducción al proyecto gvNIX. gvNIX es un framework de desarrollo Java basado en Spring Roo. gvNIX amplía las funcionalidades básicas de Roo. Incluye: gestión de menús, gestión de temas, control concurrencia, gestión de excepciones, ...
Citation preview
gvNIX / Spring Roo. Desarrollo rápido de aplicaciones web
con JavaEnrique Ruiz
DiSiD Technologies, S.L.
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Agenda
● Introducción
● Spring Roo
● gvNIX
● Hoja de ruta
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Agenda
● Introducción
● Historia● Motivación● Premisas● Tecnología● Desarrollo de gvNIX● Núcleo● AppFuse 2
● Spring Roo
● gvNIX
● Hoja de ruta
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Introducción
Entorno de trabajo Java para la CIT productivo y flexible, sin comprometer la
calidad
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Historia
● Proyecto de código abierto
● Patrocinado por la Conselleria de Infraestructuras y Transporte de la Generalitat Valenciana
● gvNIX surge de la iniciativa de la CIT de comenzar su andadura en tecnologías Java
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Motivación
Integración de procesos en un entorno tecnológico heterogéneo
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Premisas
● Proyecto de código abierto
● No reinventar la rueda
● Coste mantenimiento fw < Coste mantenimiento proyectos
● Personalizable a las necesidades de un entorno concreto
● Colaborar activamente con otros proyectos de código abierto
● Integración con MOSKitt
● Entorno orientado a la productividad del desarrollador
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Tecnología
● La tecnología debe ser de código abierto: PHP, Python, Ruby, Java, ...
● La CIT ya dispone de entorno de trabajo PHP
● Evitar aumentar la diversidad tecnológica
● Gran avance de Java para entornos corporativos
● Diversidad de herramientas Java de código abierto
● Java cubre un área conocimiento necesario en la CIT
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Un camino duro
● No es sencillo empezar con la plataforma Java
● La plataforma Java es adecuada para los problemas de las organizaciones
● Alternativas: Ruby on Rails, Grails
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Desarrollo de gvNIX
Opción 1. Reinventar la rueda
Opción 2. Delegar: Núcleo de gvNIX
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Núcleo de gvNIX
● Código abierto
● Arquitectura fácil de entender y ampliar
● Usar tecnologías sólidas
● Entorno productivo
● Herramientas para desarrollo
● Potenciar buenas prácticas
● Sin sobre coste para la aplicación
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
El núcleo y el problema de la fragmentación
● Problema en Java: Diferentes tecnologías a integrar● IDEs● Construcción del proyecto● Herramientas RAD● Frameworks y librerías● Servidores y monitorización
● No están concebidas para trabajar en conjunto
● No hay soluciones completas al problema de la productividad
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
AppFuse 2
● Primer núcleo de gvNIX
● Aumento de la productividad basado en:● Combinar y preconfigurar distintas herramientas Java● Generación de código: Pasiva
● Funcionalidad base: clases padre
● Características:● Creación esqueleto aplicación funcional
– Solución al problema de la fragmentación● Generación de CRUD
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Limitaciones de AppFuse 2
● Proyecto dependiente de 1 persona: Matt Raible ● Entre la versión 2.0 y 2.1 transcurrieron 18 meses hasta
que dispuso de tiempo para continuar● Desarrollo de extensiones complejo
● Arquetipos y goals de Maven 2
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Agenda
● Introducción
● Spring Roo● ¿Qué es Roo?● Filosofía● Generación de código● Usando Roo
● gvNIX
● Hoja de ruta
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Spring Roo
Roo es un pequeño genio que observa desde un segundo plano y gestiona todo aquello de lo que no me quiero preocupar
Ben Alex, fundador y líder del proyecto Spring Roo
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
¿Qué es?
● Framework núcleo de gvNIX● Mejora beneficios de AppFuse 2 sin sus desventajas
● Aumento de la productividad basado en:● Combinar y preconfigurar distintas herramientas Java● Generación de código: Pasiva y Activa
● Funcionalidad base: Artefactos adicionales
● Facilita la programación del código que realmente añade valor
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Filosofía de Roo
● Generación de código en Java (lenguaje estático)
● Eliminar el trabajo tedioso● Centrar al desarrollador en la lógica de negocio
● Convención sobre configuración
● Enfoque DDD (Domain-Driven Development)● Dirigido por el modelo de entidades● Lógica en las entidades (Real Object Oriented), elimina capas
redundantes
● Crea un proyecto en segundos
● Realimentación● Añade valor durante todo el ciclo de vida
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
¿No es mala la generación de código?
● Depende de cómo la herramienta gestiona el código escrito por el desarrollador
● No, si asume que escribir código es necesario
● Roo asume que el desarrollador quiere escribir código
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Beneficios de la generación de código
● Elimina la necesidad de escribir código que se supone ya está● Métodos Java Bean● Código de la capa web
● Consistencia
● Reduce barreras para integrar otras tecnologías
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
El intérprete de comandos
● Herramienta RAD para Java, extensible y tipo consola
● Herramienta sólo para desarrollo
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
¿Cómo funciona Roo?
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Usabilidad
● Comandos hint y help● Guían al desarrollador en la forma de proceder
● TAB para completar prácticamente cualquier comando● Ocultación de comandos e identificación automática del contexto
● Incluso si se comente algún error, Roo puede deshacer los cambios
● Ejecución de scripts
● Funcionamiento predictivo y conservador● El desarrollador tiene el control y Roo no se entromete en la
forma de hacer las cosas
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Proyecto Spring
● Spring 3.0, Spring Security 3.0, Spring MVC 3.0
● JPA 2.0 (Hibernate), JSP 2.1
● AspectJ, JUnit, Maven, Eclipse ...
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Aprovecha las fortalezas de Java
● Lenguaje de programación más popular
● APIs de uso generalizado, estandarizadas, seguras y provadas
● Calidad, madurez e integración de herramientas● Asistentes de código, depuradores, refactoring, profilers,
etc
● Tipado estático● Errores en tiempo de compilación, menos errores,
refactoring robusto, asistentes de código, etc
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Escalabilidad
● No hay sobrecoste para el rendimiento en tiempo de ejecución● Eficiente: No se usa reflection● No se usan proxies dinámicos, ni compilación a posteriori,
LTW o similar
● No hay sobrecoste para la memoria en tiempo de ejecución● No se crean clases adicionales: no repercute en la memoria
PermGen
● No hay sobrecoste para la dimensión de los WAR● No incluye librerías: no es necesario incluir en WAR
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Aún más
● Sin dependencias de Roo● Quita Roo de tu proyecto en 10 minutos
● Desarrolla tus propios add-ons● Roo puede crear la base de los proyectos add-on
● Estructura de aplicaciones similar
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Generación de código
● Roo es un generador de código híbrido● Intenta combinar lo mejor de los modelos de generación pasiva
y activa
● Generación pasiva● Intérprete de comandos● Se hace y finaliza el proceso: Usada para generar archivos .xml
y .java
● Generación activa (realimentación automática)● Genera un modelo detallado de metadatos con la ayuda de las
anotaciones @Roo● Incrementalmente actualiza archivos .aj y .jsp
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Generación activa
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Roo en acción #1
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Arquitectura web
● Controladores interactúan con entidades del dominio
● OpenEntityManagerInViewFilter● Patrón: "Open EntityManager in View"● JPA EntitManager en el thread de la petición● Carga perezosa en la vista● Garantiza cierre de transacciones
● Capa de servicio opcional● Lógica que implica múltiples entidades
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Gestión del proyecto
● "project", crea un proyecto nuevo en el directorio actual
● "dependency add", añadir una nueva librería al proyecto
● "dependency remove", borrar dependencia
● "backup", crear un ZIP del proyecto
● Repositorio central de Maven (desde 1.1)
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Anotaciones generales
● Anotaciones que pueden usarse en cualquier clase● @RooJavaBean● @RooConfigurable● @RooToString
● Roo mantiene el código automáticamente
● Roo no interfiere en el trabajo● Funciona en segundo plano y escribe el código que no
escribe el desarrollador● No hay que indicarle cuando debe dejar de hacer algo● No es necesario utilizar el intérprete de Roo
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Soporte para entidades
● "entity", crea una entidad @RooEntity● Entidad persistente● Declara la anotación @Entity de JPA con, id, version,
EntityManager y un constructor sin argumentos● Automáticamente añade los métodos, count, findAll,
findById, findEntries, persist, remove, merge y flush a la entidad
● El comando "entity" tiene gran variedad de opciones● Generar automáticamente los test de integración● Especificar nombre de tabla, nombre de la columna
identificadora, etc
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Atributos de entidades
● "field", comando para añadir atributos y tipos● Anotaciones JPA: --fetch, --column, ...● Anotaciones de validación (JSR-303): --max, ...● Modificadores Java: --primitive, --transient, ...
● El intérprete recuerda la última entidad sobre la que trabajamos● Los atributos se añaden automáticamente a esta entidad● Cambiar la clase activa usando --class
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Persistencia
● "persistence setup"● --provider: Hibernate, OpenJPA and EclipseLink● --database: Seleccionar la base de datos
● "database properties list", listado de propiedades JDBC
● "database properties set", cambiar propiedad JDBC
● "database properties remove", borrar propiedad JDBC
● En cualquier momento se puede ejecutar el comando "persistence setup"● Cambio del motor de persistencia: de Hibernate a OpenJPA
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Búsquedas dinámicas
● Ahorra tener que escribir consultas típicas JPA QL● Roo escribe estas consultas
● Las búsquedas se añaden como métodos estáticos de las entidades● Aún así, son compatibles con entidades abstractas● "finder list", muestra todas las búsquedas disponibles● "finder add", activa una búsqueda concreta
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Pruebas unitarias
● "test integration", crear las pruebas de integración para entidades● "data on demand" automático para datos de prueba● "--testAutomatically" del comando "entity"
● "test mock", crear los tests unitarios● Permite probar los métodos estáticos de las entidades
● "dod", crea una clase que proporciona los datos bajo demanda● Rara vez se usa directamente● Se crea automáticamente si se solicita en las pruebas
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Spring Web MVC
● "controller scaffold", controladores web automáticos● Genera un controlador según el modelo REST para una
entidad● Genera y mantiene las JSP● El desarrollador puede afinar el comportamiento de
algunos métodos (CRUD)● Permite indicar el formato de los campos fecha● Genera formularios de búsqueda
● "controller all", scaffold automático de todas las entidades
● "controller class", genera el esqueleto de un controlador
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Tecnología web
● Spring JS, Tiles y URL Rewrite
● "selenium test", crea pruebas funcionales de controladores● Controladores generados con "scaffold"● "mvn tomcat:run"● "mvn selenium:selenese"
● "web flow", instala Spring Web Flow
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
SMTP y JMS
● "email sender setup", configura el envío por SMTP
● "field email", añade código para envío de email
● "jms setup", instala proveedor JMS● Incluye una instancia de ActiveMQ accesible por TCP
● "jms listener class", crea un receptor de mensajes JMS
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Proceso de construcción
● "perform clean", ejecuta "mvn clean eclipse:clean"
● "perform eclipse", ejecuta "mvn eclipse:eclipse"
● "perform tests", ejecuta "mvn test"
● "perform package", ejecuta "mvn package"
● "perform command", ejecuta cualquier comando Maven
● Se necesita que Maven este configurado en el PATH
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Miscelánea
● "security setup", instala Spring Security
● "logging setup", instala la configuración de Log4J
● "script", ejecuta un guión de comandos Roo● Roo incluye en su distribución:
– clinic.roo, wedding.roo, vote.roo y addon.roo● Ruta absoluta o Classpath
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Roo en acción #2
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Requerimientos
● Java 5
● Maven 2.0.9 o superior● Roo no necesita Maven para funcionar● Maven sólo se usa para los proyectos generados con Roo
● Soporte para Ant/Ivy en futuras versiones
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Cooperación con IDE
● SpringSource Tool Suite incluye integración con Roo● Usar la opción de Roo embebido
● Eclipse con la última versión de AspectJ● Usar en paralelo el intérprete de Roo● Roo detecta cambios automáticamente
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Actualización de Roo
● Cuando se actualiza Roo a una nueva versión, los archivos .aj pueden cambiar● Es una característica de la generación activa de código● Nuevas versiones incluyen mejoras en los archivos .aj
● Evitar modificar los archivos .aj● Roo asume que le pertenecen y los cambia cuando lo
necesita
● Copia el código generado a los .java si necesitas cambiar algo
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Add-ons
● Arquitectura OSGi (Roo 1.1+)
● Add-ons son componentes OSGi
● "osgi ps", listar paquetes instalados● [ 34] [Active ] [ 1] Spring Roo - Addon
● "osgi install", instalar nuevo paquete OSGi
● "felix shell 'start ID'", activar paquete OSGi
● "felix shell 'stop ID'", desactivar paquete OSGi
● "osgi uninstall", desinstalar paquete OSGi
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Roo en acción #3
Integración IDE
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Agenda
● Introducción
● Spring Roo
● gvNIX● Proyecto gvNIX● Usando gvNIX
● Hoja de ruta
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Proyecto gvNIX
● Aumento de la productividad y calidad:● Generación de componentes funcionales● Usa las fortalezas de Roo
● Add-ons de Roo● Instalación de componentes● Personalización de componentes
● Módulos que añaden valor a la aplicación web
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Gestión de temas
● Tema: Aspecto de la interfaz de usuario
● Control sobre el aspecto de la aplicación web
● 3 temas instalados por defecto + temas específicos del proyecto
● Cambio aspecto en tiempo ejecución
● Colección de archivos: CSS, imágenes, tags, jsps, ...
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Gestión de temas
● "theme manager install", instalar un tema en el proyecto
● "theme manager list", ver lista de temas: disponibles, instalados y actual
● "theme manager set", cambiar tema actual
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Gestión de menús
● Organización de la estructura de páginas de la aplicación
● Definición en XML y base de datos
● Roles de acceso
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Gestión de menús
● "page setup", instala la gestión de menús en el proyecto
● "page add", añade una nueva página a la aplicación
● "page hide", oculta una página (quita del menú)
● "page move", reubicar una página y sus hijos dentro de otro nodo o entre 2 nodos
● "page update", actualizar la configuración de la página
● "page info", mostrar la información de la página
● "page list", listado de todas las páginas de la aplicación
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
gvNIX en acción #1
Cambiar aspecto Gestión de menús (si estable)
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Gestión de excepciones
● Excepciones no controladas
● Diccionario [Tipo Excepción : Mensaje al Usuario]
● Diccionario en XML
● Tipos de entradas en diccionario: Aplicación, Organización (0.4+), gvNIX (0.4+)
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Gestión de excepciones
● "exception handler list", lista de excepciones manejadas
● "exception handler add", añadir entrada al diccionario [Excepción : Mensaje]
● "exception handler remove", eliminar entrada del diccionario
● "exception handler set language", añade traducción de mensaje
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Control de concurrencia
● Evitar actualizaciones perdidas
● Evitar bloqueos de base de datos
● Control por campo versión
● Control por checksum de estado● Única opción para no modificar esquema de base de datos
● "occ checksum set", activa control de concurrencia para una entidad
● "occ checksum all", activa control de concurrencia para todas las entidades
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
gvNIX en acción #2
Control de concurrencia
Gestión de excepciones
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Soporte para JSP 2.0
● Spring Roo utiliza JSP 2.1
● Tomcat 5.5 requiere JSP 2.0
● Actualizar dependencias
● Garantizar compatibilidad en JSPs y TAGs
● "controller jsp2.0 support", migrar pom.xml y archivos Roo a JSP 2.0
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Enlace con parámetros
● "web binding setup", instalar editores por defecto
● "web binding drop", elimina editores por defecto
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Servicios Web
● Hacer accesible a otras aplicaciones● Amazon● Google
● Integración con procesos organizativos
● "cxf setup", instala el soporte para servicios web
● "cxf service", crea un nuevo servicio web
● "cxf operation", añade una operación a un servicio existente
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
gvNIX en acción #3
Integrar servicios web
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Agenda
● Introducción
● Spring Roo
● gvNIX
● Hoja de ruta● gvNIX● Roo
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Hoja de ruta de gvNIX
● gvNIX 0.4
● Mejora de add-ons
● Menús: Página no visible, página sin vista (sección), base de datos, ...
● Temas: Crear tema en proyecto, guardar tema, tema por sección
● Excepciones: Soporte envío incidencias por email, diccionario en bbdd, ...
● Enlaces parámetros: añade un editor a los controladores
● Concurrencia: Punto de corte alrededor_de vs Reemplazar métodos actualización, soporte concurrencia relaciones
● Gestión de perfiles de proyecto: desarrollo, preproducción, integración, ...
● Gestión de módulos JAAS
● Servicios Web : Contract-First
● Desarrollo ESB : ServiceMix 4
● Integración con MOSKitt
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Hoja de ruta de Roo
● Mejora de add-ons● Realimentación de JSPX● Identificadores JPA
● Google add-ons● Google App Engine● GWT
● Roo add-ons● Ingeniería inversa de BD● Solr
● Comunidad de add-ons● Arquitectura OSGi● Repositorios de paquetes
OSGi (OBR)
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Recursos
● Infraestructura gvNIX (plone, svn, etc) en fase de creación
● MOSKitt ( www.moskitt.org )
● Spring Roo ( www.springsource.org/roo )
● Conselleria de Infraestructuras y Transporte ( www.cit.gva.es )
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
Conclusiones
● Spring Roo mejora la productividad Java● Tecnologías ampliamente usadas● Fácil de usar y aprender● Usa las fortalezas de Java● Alta productividad
● gvNIX mejora las funcionalidades básicas de Roo● Componentes funcionales● Usa las fortalezas de Roo● Alto valor funcional añadido
© DiSiD TECHNOLOGIES. CCPL Attribution-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-sa/3.0/es/)
¿Preguntas?
Agradecimientos
José Alarcón (CoJefe proyecto gvNIX – CIT)Eugenia Arnedo (CoJefa proyecto gvNIX – CIT)
Equipo gvNIX @ DiSiD
Ben Alex, Spring Roo Project Lead
www.disid.com
DiSiD TECHNOLOGIES, S.L.
C/ San Vicente Mártir, 84 – 5A
46002 – Valencia
Tel. + 34 902 013 309
Fax. +34 961 198 112