The Spring Framework has a track record of embracing new trends in the middleware space. In 2011, the most important factors are certainly Java EE 6 and cloud computing, both of which have a strong influence on Spring 3.1 and emerging sister projects. This keynote presents selected trends and explores their relevance for the Spring world. Topics include environment profiles, declarative caching, conversation management, access to alternative datastores, and patterns for concurrent programming.
by Dani Latorre
Es un taller para aprender características de Groovy utilizando un subconjunto de Groovy Koans(https://github.com/cjudd/groovy_koans/), una forma de aprender el lenguaje utilizando tests unitarios. Aprenderemos cosas como la verdad en Groovy, añadidos que aporta en cuanto a trabajar con cadenas, el uso de rangos y colecciones, el manejo de fechas y la sobrecarga de operadores.
Requisitos:
Groovy 1.7.0
by emedinam
El objetivo de esta ponencia es presentar el Observatorio de Grails como esfuerzo de colaboración de la comunidad de habla hispana para el fomento y difusión de la tecnología Grails, así como presentar un caso de estudio de desarrollo realizado 100% en español: cuestamenos.com
by Costin Leau
The presentation model pattern is a well-known design structure for shaping graphical user interfaces. As with many design patterns, Groovy allows to implement a canonical solution that avoids the otherwise inherent code duplication. The open-source GRASP project does exactly that for the presentation model pattern. If you ever want to program rich user interfaces with advanced interactions and superior maintainability, this talk is for you. We will go briefly over the design patterns involved and spend the main part of the talk coding and using GRASP. Expect some surprises along the way. 1
by Sergi Almar
It's easy to write a Grails application from scratch, but how do you write one that performs well? A lot happens behind the scenes, so how do you find out where your bottlenecks are and how do you go about solving them? In this session, you'll learn about a few of the tools and techniques available to you for diagnosing and solving common problems.
Durante el taller se desarrollaran ejemplos prácticos con la Herramienta Spring Tool Suite 2.5 de composición de procesos de negocio con Spring Integration 2. Se cubrirán desde los ejemplos más sencillos mostrando los componentes base del framework (messages, channel, routers, filters, adapters, gateways, etc) usando integraciones con streams, ficheros, jms,… hasta llegar a las novedades de la versión 2: soporte SpEL, uso de Groovy, nuevas integraciones (ftp, twitter,…) y demás elementos nuevos. Los asistentes podrán tener una panorámica de las capacidades de esta herramienta y de la forma de trabajar visualmente con STS 2.5 y Spring Integration 2.Las herramientas utilizadas serán Spring Tool Suite 2.5, Springframework 3, Maven, Spring Tc Server 2.1 y Spring Integration 2.
Requisitos:
* Spring Tool Suite 2.5.2
* Springframework 3.0.5
* Spring Integration 2.0.2
* Maven 2.2.1 o superior
* Spring Tc Server 2.1
* HSQLDB 1.8
* ActiveMQ 5.4
* Groovy 1.7
Presentación de una hora sobre el proyecto Evandti (ticketBis) iniciado a principios de 2009 y actualmente en producción en España, Portugal, Brasil, México, Chile y Reino Unido, todas servidas desde una plataforma centralizada. La presentación describe el camino desde el inicio del proyecto y las decisiones de Grails como framework (incluyendo consultas atemorizadas a Peter Ledbrook acerca de la fiabilidad y perspectiva del producto por aquella época) y de Amazon EC2 como infraestructura. Se pretende dar una perspectiva sobre los problemas que fuimos encontrando y superando, hilando con algunos de los plugins/módulos/servicios que fuimos incorporando hasta llegar al modelo actual. Puntos fuertes:
- Internacionalización del dominio de la aplicación mediante plugin ad-hoc.
- Clusterización. Balanceo.
- Optimizaciones a nivel de base de datos, aplicación, fragmento, página.
- Motor de estados interno.
- Carencias encontradas tanto en Grails como en EC2, soluciones que llegaron con el tiempo. soluciones no encontradas aún.
- Integraciones de logística internacional y múltiples sistemas de pago.
- Enfoque técnico inicialmente deseado. Problemas, workarounds, errores cometidos, enfoque de arquitectura actual.
- Un año y 5 países después...
Conclusiones de nuestras apuestas.
Qué cambiaríamos.
by Sam Brannen
Modern application frameworks like Spring promote a POJO-based programming model, and POJOs are inherently easy to unit test. But how can we effectively integration test our application outside the container while still getting as close to a production-like environment as possible? This session will show attendees how to approximate a target production environment using the Spring TestContext Framework to drive fast, repeatable, "out-of-container" integration tests. To simulate a live system, the session will cover open source integration testing techniques such as the use of in-memory databases, JMS providers, and Servlet containers as well as mock SMTP and FTP servers.
Crear aplicaciones de escritorio es una tarea ardua y difícil. Hay tantos aspectos que cuidar y mantener a la vista que la mayoría de las veces no se cumplen los objetivos. Tareas tan comunes como establecer la estructura de la aplicación, donde cada artefacto cumple con una función específica y a su vez, el artefacto esta identificado por un fichero cuya locación sigue una convención establecida; definir el ciclo de vida de la aplicación y comunicar componentes a través de eventos; asegurarse que el proyecto puede ser compilado y construído de manera consistente y confiable. Estas y otras mas deberían ser administradas por una herramienta. Mas que una herramienta, un entorno de desarrollo. Pero cual? Griffon es la respuesta. Inspirado en Grails, Griffon se ha fijado como meta promover el uso de paradigmas como "Convención antes que Configuración" (CoC), "No te repitas" (DRY) y otros mas cuando se trata de desarrollar aplicaciones de escritorio. En esta sesión veremos como si es posible crear una aplicación de escritorio con REST habilitado en tan solo 40 minutos o menos.
by David Gomez
Con Selenium 2.0 y Webdriver la ejecución de TDD y BDD se ve beneficiado por las fortalezas de ambos proyectos.
Introduciremos el API Java basado en PageObjects y veremos ejemplos de creación de pruebas cross-browser para un interfaz de aplicación web con Ajax
by Iván Álvarez and Daniel Ramos
El taller será en la modalidad BYOL(Bring your own laptop) . Su objetivo es mostrar lo fácil que es portar una aplicación con una interfaz en HTML y usando Spring en el backend hacia una combinación Flex 4 – Spring/BlazeDS
El software que vamos a necesitar para trabajar es el siguiente:
- Spring STS 2.5.2 (http://www.springsource.com/deve...)
*En el caso de utilizar Mac OS es importante saber, que deben bajar la versión springsource-tool-suite-2.5.2.RELEASE-e3.6.1-macosx-carbon-installer.dmg, con el fin de que puedan instalar el plugin de Flash Builder.
- Flash Builder 4 plugin (http://www.adobe.com/products/fl...)
by Aitor Alzola
En esta presentación hablaré sobre los principios básicos de la prueba: por qué probar automáticamente, beneficios de la prueba autómatica... También comentaremos como Grails facilita la prueba del software que construimos. Las ayudas que tenemos para crear pruebas, para crear dobles de prueba de nuestras dependencias y los tipos de pruebas de los que disponemos, y como podemos dimensionar las pruebas que hacemos en los distintos niveles (unitarias, integración, funcionales, ...). Se mencionarán las mejoras que probar nuestro código produce: diseño más modular, con mejor gestión de dependencias, siguiendo principios SOLID y GRASP... e incidiré en algunas buenas prácticas a la hora de hacer pruebas: good naming, tratar el código de test como el código de producción... Hoy en día nadie duda de la necesidad de probar el software que producimos, pero... ¿realmente se hacen pruebas? Con algunos frameworks como Grails ya no hay excusa para no incorporar la prueba automática a nuestro día a día. En esta sesión comentaremos como afrontar las pruebas en con Grails, los tipos de pruebas disponibles y los beneficios que obtendremos.
by federicojcdm
En esta charla se verán los detalles técnicos de la especificación del protocolo OAuth 1.0 como modelo de autenticación delegada, implementado por las principales redes sociales. Posteriormente veremos un ejemplo de conexión a Facebook, LinkedIn y Twitter con la API de Spring Social y con la librería Scribe para la encapsulación del protocolo OAuth. En este ejemplo crearemos una aplicación de demo en dichas redes sociales, y mediante la API que proporciona Spring nos conectaremos e interactuaremos con una funcionalidad básica que nos ofrece cada una de las redes sociales.
by Sergi Almar and ecamacho
In his keynote Graeme will do a review of 2010 and discuss what is coming up in the Grails world in 2011
Cancelada
by Fátima Casaú
En este taller realizaremos testing en Grails de forma que aprendamos a implementar pruebas unitarias y de integración para finalmente ejecutar pruebas funcionales. Estas últimas las realizaremos ayudados del plugin Geb y del plugin Spock para Grails.
Geb es una librería de pruebas funcionales basada en WebDriver y que utiliza la sintaxis de jQuery para la inspección de las páginas, tanto del HTML como del modelo de objetos.
Es compatible con jUnit, EasyB y el framework Spock.
Estas pruebas las realizaremos sobre una sencilla aplicación en Grails.
Podremos comprobar cómo de fácil es implementar pruebas con Grails además de analizar la importancia de realizar testing de un proyecto.
Requisitos:
* Springsource Tool Suit versión 2.5.2 con las extensiones:
- Grails (current production release)
- Grails support
- Groovy eclipse
by Dani Jiménez
Estamos metidos de lleno en la era móvil pero, ¿estamos realmente preparados? Spring Mobile es una extensión de Spring MVC que proporciona server-side device detection permitiendote enfocar la navegación en función del dispositivo que está accediendo a tu site en cada momento.
Por otro lado, si lo que quieres es desarrollar una aplicación para Android, Spring Android es una extensión de Spring Framework que simplifica algunos aspectos del desarrollo de aplicaciones Android como, por ejemplo, la comunicación de dicha aplicación con los servicios de tu servidor.
En esta charla, veremos como Spring nos hace más fácil adaptarnos al mundo móvil y lo sencillo que es empezar a usar estas dos extensiones de Spring, también veremos algunos casos prácticos y los usos que le estamos dando en idealista.com
"Effective Java" by Joshua Bloch is the gold standard for how to write correct and idiomatic Java code. Wouldn't it be great if the same thing existed for Groovy? Well here it is. This interactive, live coding session discusses what separates good Groovy code from the bad, what makes some code great, and how best to use the many available libraries. We'll also look at several static analysis tools for Groovy that aid in these pursuits. This session appeals to both those with a Java knowledge looking to learn Groovy and advanced Groovy programmers looking to learn more.
Groovy es un lenguaje dinámico para la JVM. Su sintaxis se parece mucho a la de Java, pero pro mas dinámico que sea no es posible agregar nuevas características al lenguaje por medio de palabras reservadas. Afortunadamente existe un mecanismo alterno: las transformaciones de AST (Arbol de Sintaxis Abstracta). El AST es la representación en memoria del código fuente que el compilador transforma en código byte. Es posible alterar el AST en momentos determinados, ya sea para anexar nuevas propiedades y/o métodos por ejemplo, sin tener que lidiar con el compilador de manera directa. Las transformaciones de AST "masajean" el AST y producen nuevo código byte. En esta sesión exploraremos las transformaciones disponibles en la distribución estándar de Groovy, con lo que descubriremos un nuevo mundo de posibilidades para aumentar la productividad, ser mas expresivos con menos líneas de código, y olvidarnos de los problemas de auto generación de código a base de ficheros estáticos (templates).
El objetivo del taller es conocer qué son y en que consisten los lenguajes de dominio específico o DSLs. Hacer un breve repaso a los DSLs que ya utilizamos día a día, por ejemplo con Grails, y explicar las características que ofrece Groovy a la hora de crear DSLs. En el taller se desarrollará un DSL nuevo desde cero para aplicar todos los conocimientos adquiridos durante el taller.
Requisitos:
El volumen de información ha crecido de manera exponencial durante los últimos años por lo que realizar cualquier tipo de análisis sobre ellos se ha convertido en una tarea complicada utilizando las técnicas tradicionales. Millones de fotos, logs de servidores, logs de visitas a páginas web, llamadas telefónicas, etc suponen una fuente de información inagotable que podría proporcionar innumerables beneficios a sus propietarios.
Durante esta pequeña sesión introductoria analizaremos, de manera somera, algunos de los conceptos enumerados a continuación:
La idea es que los asistentes puedan tener una visión general de qué es Hadoop y cómo podría utilizarse de manera sencilla en una plataforma de cloud.
Summer[1] is a new open source library that transparently integrates with the latest version of Spring MVC and takes the presentation layer development to the next level. It enables the creation of lightweight modular web applications by utilizing various new technologies like HTML5, Servlet 3, JSF 2, EL 2.2, JSR 303 and Web Sockets. Come and learn how you can simplify your code while preserving full control over your next application. The session will be in English.
El aprendizaje basado en proyectos de desarrollo de aplicaciones web tiene el handicap de que no suele haber tiempo suficiente para realizar una experiencia completa de aprendizaje, que abarque desde la concepción hasta el despliegue de la aplicación y pase por todas las etapas del ciclo de desarrollo. En la Universidad de Cádiz hemos realizado diversos cursos de ingeniería de aplicaciones web basadas en un método ágil y en frameworks como Rails, Grails y JSF. La experiencia muestra que con entornos como Grails es factible abarcar el desarrollo completo de una aplicación en las escasas 15 semanas que dura el curso, pudiendo alcanzar así los estudiantes el objetivo de cubrir el proceso de ingeniería completo de una aplicación web. En la sesión se contará tanto el punto de vista del profesor (Juan Manuel Dodero) como de uno de los alumnos (Michel Jensen).
Grails provides solid and mature support for SQL databases, but what about the upcoming range of NoSQL data stores? In this talk Graeme will discuss how Grails can be backed onto alternative data store such as key/value, document and graph based data stores.
Google, Facebook, Twitter,... son páginas web que manejan enormes cantidades de datos y volúmenes enormes de peticiones por segundo. Estas empresas han tenido que crear sus propias soluciones de escalabilidad. Y de un tiempo a esta parte la alta escalabilidad y la alta disponibilidad son términos que están en boca de muchos. Porque tampoco hace falta ser tan grande para necesitar altos volúmenes de datos y de peticiones por segundo. Las bases de datos relacionales no están diseñadas para escalabilidad, y pueden presentar un cuello de botella insalvable con ciertos volúmenes de datos. Por ello han surgido las denominadas bases de datos NoSQL (un mal término no obstante). Entre ellas se ha desarrollado una familia de bases de datos basadas en almacenamiento clave-valor. En esta charla se hablará sobre Redis, sus diferencias con otras bases de datos clave valor, y cómo modelar un conjunto de datos para aprovechar al máximo sus características. El diseño interno de la base de datos (clave-valor) es una solución idónea como base de datos para el cloud computing. Se verán las diferentes maneras de escalar una base de datos Redis en diferentes servidores: configuraciones maestro-esclavo, replicación, particionamiento, redis-cluster,... Ciertos benchmarks realizados aseguran que Redis permite realizar entorno a 110.000 lecturas y 81.000 escrituras por segundo. Para sacar el máximo partido a estas posibilidades también es necesario tener en cuenta la arquitectura del servidor web. En esta charla se tratará también la arquitectura necesario y los detalles a tener en cuenta en el desarrollo del software para soportar 100.000 conexiones simultáneas en un solo servidor sin tener cuellos de botella.