En este taller se partirá de una aplicación web simple ya previamente desarrollada y se tendrá como objetivo configurar tanto la autenticación de los usuarios como la autorización de los mismos para tanto para los recursos web como para la invocación de los componentes de negocio. Estableciendo una mínima configuración de seguridad, se ira completando con los mecanismos más sofisticados y haciendo énfasis en las novedades que aporta la versión 3 de Spring Security como el uso del SpEL , Anotaciones, Eventos, etc.. Los asistentes practicarán con muchas de las características que implementa Spring Security para establecer los mecanismos de seguridad de aplicaciones JEE. Las herramientas utilizadas serán Spring Tool Suite 2.8, Springframework 3.1, Maven 3 y Spring Tc Server 2.
Código del Taller en http://pronoide.com/descargas/fb...
Thymeleaf is a new Java XML/XHTML/HTML5 template engine especially suited for Spring MVC that focuses on code elegance and also on the ability to create Natural Templates: templates that can be statically displayed in browsers as valid and complete design prototypes without the need to execute them on a web server.
Thanks to the pluggability of view-layer technologies offered by Spring MVC, and through the use of non-obtrusive XHTML/HTML5 templating code, Thymeleaf allows implementing true separation of concerns and make web designers and developers cooperate in a much more comfortable way.
In this workshop we will learn the main features of Thymeleaf by example, including formatting, collection iteration, conditional expressions and code reuse. We will also practice techniques for building working prototypes populated with test data.
Each major era in IT, from the mainframe through client-server and the web, has its own associated canonical applications and technology stack. How will the cloud era impact our lives as application developers? In this talk we will examine the requirements driving cloud era applications, and consider the consequences in terms of application design and architecture. Examples from the Spring and Grails projects will be used to illustrate the concepts.
by Matt Raible
One question developers often ask is "What web framework should I use to build my application?" High-traffic sites (e.g. eBay, LinkedIn, Twitter, Overstock) have proven that the JVM is a great platform for web scaling. This session takes a look at the top web frameworks for the JVM and discusses various methodologies for choosing one. It describes two different techniques (a matrix and performance testing) and pros and cons of the top frameworks from each.
Framework included: Grails, GWT, JSF 2, Lift, Play, Ruby on Rails, Spring MVC, Stripes, Struts 2, Tapestry 5, Vaadin, Wicket
by Rob Harrop
by neodevelop
En esta charla comentaremos un poco de la arquitectura de plugins de Grails, para dar paso a la creación de un plugin donde iremos explorando los conceptos fundamentales que permiten explotar funcionalidad compartida/común entre aplicaciones. Usaremos los conocimientos de Metaprogramación en Groovy para extender la funcionalidad en componentes existentes de Grails.
One hundred thousand messages per second, up-times measured in years, billions of dollars a day, operations in over 100 countries, hundreds of millions of users, that's enterprise!
Regardless of what you program in and at what scale you are going to come across some form of integration, at the simpler levels the frameworks take care of almost everything but as things get more complex old solutions can get cumbersome and new ones are needed, not restricted to Java but definitely Java-centric.
John will walk you through some more challenging integration architectures and a rather unique solution with a combination of Spring Integration and C24's Integration Objects. The solution adds powerful capabilities to Spring Integration such as SWIFT, a nasty banking standard used by the world's banking industry. The talk will include architecture, code and use-cases.
by Aitor Alzola
No me entendáis mal, no se falla todo el rato. Además, cuanto antes falles, antes lo arreglas. Diez cosas que no volvería a hacer si tuviera que impulsar el uso de Grails dentro de un organización como el Ayuntamiento de Vitoria-gasteiz. Desde el uso de pruebas o TDD, a la integración continua, pasando por la formación necesaria o como convencemos a la dirección. Siempre una vez pasado un proceso como este, se cambiarías cosas, incorporarías otras o simplemente, las eliminarías. Desde la experiencia de participar en la adopción de Grails dentro del Ayuntamiento de Vitoria-Gasteiz, los 10 errores que no volvería a cometer si empezáramos de nuevo.
En esta charla hablare de la experiencia adquirida durante el desarrollo de una plataforma de eCommerce con Grails usando diversas tecnologías como Terracotta, RabbitMQ, Redis, Gradle y Scala. Los puntos mas importantes son relacionados a los problemas que enfrentamos al escalar la aplicación para soportar cargas muy grandes (80K usuarios concurrentes) y soportar 1.8 millones de usuarios registrados. También hablare sobre los factores que determinaron que usáramos ciertas tecnologías y algunas limitaciones de Grails y como solucionamos esos problemas. También hablare de la facilidad de integrar lenguajes adicionales como Scala a nuestro stack de Groovy. Por ultimo hablare de la gran comunidad que existe alrededor de Groovy y como hemos participado con contribuciones
by Josh Long
Spring Integration is a lightweight integration framework from the makers of Spring. Integration of data and services between applications is not easy - and often requires adaptation from one system to another. Spring Integration also promotes loosely coupled, event-driven applications. Spring Batch is a batch processing framework - providing a simple, idiomatic way to crunch large amounts of data across in a sustainable way. Spring Batch even allows you to distribute processing across multiple machines in a cluster. Naturally, both of these frameworks play very nicely on top of Cloud Foundry, which lets you scale up and out as demand requires. In this 1-hour talk, Josh Long introduces how to use Spring Batch and Spring Integration on Cloud Foundry, the open source PaaS from VMware.
This talk is introducing GContracts, a Design by Contract (DbC) Groovy extension adding formal interface specifications to the programming language. GContracts adds language constructs allowing programmers to specify pre-, postconditions and class invariants in Groovy code and supports even more advanced features like contract inheritance, 'old' variables, reusable micro contracts and a custom Groovydoc task.
Further, this talk gives insights how the library injects assertion checking code during compile-time using AST transformations and what other amazing possibilities Groovy provides for framework and library authors.
by Dani Latorre
Gracias a los plugins de grails liberados a la comunidad, podemos aprovechar el esfuerzo hecho por otros desarrolladores y reutilizar el trabajo que han hecho. El sistema de plugins de grails da múltiples puntos de extensión para la plataforma: permite añadir comandos nuevos a la CLI, servicios, clases de dominio, extender dinámicamente algunos comportamientos... En el taller sacaremos partido del sistema de plugins de grails para reutilizar trabajo entre distintas de nuestras aplicaciones, veremos algunos ejemplos y desarrollaremos un plugin a modo de ejemplo.
Thymeleaf is a new Java XML/XHTML/HTML5 template engine especially suited for Spring MVC that focuses on code elegance and also on the ability to create Natural Templates: templates that can be statically displayed in browsers as valid and complete design prototypes without the need to execute them on a web server. Thanks to the pluggability of view-layer technologies offered by Spring MVC, and through the use of non-obtrusive XHTML/HTML5 templating code, Thymeleaf allows implementing true separation of concerns and make web designers and developers cooperate in a much more comfortable way. In this talk, we will explain the view-layer architecture of Spring MVC and focus on explaining how Thymeleaf can be leveraged to create fully fledged Spring MVC applications that are able to keep the prototyping capabilities of their templates.
The greatest trick the JVM ever pulled was convincing the world that a redeploy is required to update an application. In this session we will challenge this misconception with JRebel and LiveRebel. We will do a live coding session on how to develop in Java without restarts and then we will look at how to get these changes out to production without downtime or lost sessions. JRebel maps your workspace directly to the running application and every change you make is instantly reflected in the UI. We will walk you through the installation and configuration process (which will take all of five minutes) and show a live demo using a stock Spring PetClinic application. LiveRebel makes production updates quick, automated, non-disruptive and reversible. This means that your users can keep on working through the update and you can sleep soundly. LiveRebel distributes the difference between versions to the servers, and performs update using our own Hotpatching technology or through rolling restarts. We will walk you through configuration and installation and will update a live chat server while you keep on chatting.
Sesión introductoria del framework de testing Groovy "Spock". En esta sesión se pretende empezar con una introducción a conceptos tales como TDD y BDD, para poner en contexto la herramienta. Posteriormente descubrir la propia herramienta analizando las características más importantes y sus usos más habituales y avanzados. Para finalizar, se analizará cómo se integra esta herramienta con spring y con el framework fullstack Groovy Grails.
With all the buzz around rapid web application development frameworks, are enterprise developers left looking on enviously? Not at all. Grails brings the same benefits to Java developers while providing many options for enterprise integration. This talk introduces Grails and then gives an overview of how it can fit into the Java enterprise, looking at build, legacy databases, using Java libraries and leveraging Spring.
by James Ward
Heroku is a Polyglot Cloud Application Platform where deployment is just a "git push" away. This session will teach you how to instantly deploy and scale Spring MVC, Grails, and other apps on the cloud. You will also learn how to use cloud services for polyglot persistence
by Sergi Almar
Según los diferentes organismos de seguridad (NIST, OWASP, SecurityFocus,..) la gran mayoría de aplicaciones web son vulnerables a una o más vulnerabilidades web (parameter tampering, sql injection, XSS, CSRF,..). Además del propio desconocimiento que pueda existir de las vulnerabilidades web, el principal problema radica en la dificultad de hacer frente a este tipo de vulnerabilidades mediante el uso exclusivo de las soluciones tradicionales de seguridad basada en roles (Seguridad Java EE, SpringSecurity,..). Es decir, aunque es posible dar solución a estas vulnerabilidades mediante soluciones tradicionales de forma manual, debido a la gran libertad de acción que disponen los posibles atacantes (editar un parámetro, añadir un nuevo parámetro, intentar acceder a una url no permitida,..) es una tarea tremendamente complicada. Esta tarea se complica todavía más en aquellos casos donde se expongan vía web sistemas de información heredados donde no existe información de roles a bajo nivel (roles a nivel registro para poder aplicar seguridad a nivel instancia o Domain Object Security (ACLs)) o se consuman servicios web externos de sistemas de información heterogéneos. Como complemento a la seguridad tradicional y con el objeto de automatizar la tarea de protección frente a las vulnerabilidades web, nace el framework de seguridad web HDIV. HDIV pretende implementar el principio de "Security By Design" o "Security By Default" ofreciendo una solución de seguridad web ligada a la arquitectura de los frameworks web (actualmente Spring MVC, Struts 1, Struts 2 y JSF), automatizando las tareas relativas a la seguridad web desde la propia arquitectura. HDIV parte de la premisa de limitar el radio de acción de los usuarios a un uso lícito de la aplicación web, no permitiendo gran parte de las acciones utilizadas para explotar las vulnerabilidades web (edición de parámetros, añadir nuevos parámetros, ..), eliminando en consecuencia los principales focos de riesgo. Cabe destacar la integración oficial entre HDIV y Spring MVC implementada gracias a la colaboración entre SpringSource y el equipo de HDIV: https://jira.springsource.org/br... . Esta integración ha sido presentada dentro de la SpringOne 2GX 2011 por parte Rossen Stonyanchev de SpringSource y líder del proyecto de Spring MVC
by Sam Brannen
Spring 3.1 introduced several eagerly awaited features including bean definition profiles (a.k.a., environment-specific configuration), enhanced Java-based application and infrastructure configuration (a la XML namespaces), and a new cache abstraction. This session will provide attendees a high-level overview of these major new features plus a quick look at additional enhancements to the framework such as the new c: namespace for constructor arguments, support for Servlet 3.0, improvements to Spring MVC and REST, and Spring's new integration testing support for profiles and configuration classes. In addition, this talk will introduce new features under development in the Spring 3.2 road map.
Domain driven design has become a ubiquitous approach to tackle complex problem domains and build a rich object model. Furthermore JPA has become the standard and widely accepted way of object persistence in the Java world. The talk introduces the the Spring Data project in general with a focus on the JPA module that allows developers to easily implement JPA based repositories in a sophisticated way. We start with a brief analysis of a plain JPA based repository implementation and outline pain points esp. regarding the domain driven approach (lack of abstraction, tediousness of executing queries, pagination and so on). The main part of the talk then takes a look at how Spring Data JPA provides solutions to those problems. The presentation is 80% hands on - less slides, more code :).
by Jan Machacek
In his Spring in Scala talk, Jan will start by comparing Scala to the other languages on the Java platform. Find out that Scala code gets compiled to regular Java bytecode, making it accessible to your Spring code. You will also learn what functional programming means and how to see & apply the patterns of functional programming in what we would call enterprise code. In addition to being functional language, Scala is strongly typed language. The second part of the talk will therefore explore the principles of type systems. You will find out what polymorphic functions are, and what the Scala wizards mean when they talk about type covariance and contravariance. Throughout the talk, there will be plenty of code examples comparing the Spring bean in Java with their new form in Scala; together with plentiful references to the ever-growing Scala ecosystem, the talk will give you inspiration & guidance on using Scala in your Spring applications.
Groovy y Grails están tan unidos que a veces se confunden con la misma cosa. Y aunque mucha gente piensa que solo es posible programar con Groovy usando Grails, esto no es así. Sin importar como sea tu proyecto actual, Groovy puede ayudarte de muchas maneras. En este taller de 2 horas trataremos varios aspectos de Groovy que podemos explotar desde nuestra aplicación 100% Java. Aprenderemos a hacer testing y mocks de tus componentes Java con Groovy, crearemos un pequeño DSL y aprovecharemos las capacidades dinámicas de Groovy para crear, editar y ejecutar scripts directamente desde la interfaz web de tu aplicación. También aprenderemos a parsear Xml, trabajar con JDBC y muchas cosas más, todo de una manera práctica, con ejercicios y recetas que puedes llevarte a casa y ponerlas en marcha el lunes siguiente en tu trabajo.
If applications grow bigger, modularity becomes a key aspect regarding maintainability. Design decisions made in the early days are hardly discoverable in the codebase, inter-module dependencies grow a lot. The talk introduces means and approaches to connect logical architecture to the codebase. Beyond that we discuss patterns and best practices around general code organization, package structures to build a solid foundation for Java applications and in how far Spring can help creating loosely coupled components and dedicated points to extend applications.