This talk will show you how to develop a real application using Spring MVC with Spring Data and MongoDB providing the persistence layer. We'll cover the Repsoitory approach as well as taking advantage of typesafe query building using QueryDSL.
Gradle is being adopted by enterprises and open-source projects alike for its ease of use, flexibility, and compatibility with existing standards. However, Gradle's true strength shines not when it is viewed as a wrapper around standards, but as a toolkit for creating your own standards to reflect your build patterns and practices. It is extensible at every level, but most powerfully at the level of Gradle plugins.
In this session, you'll learn the Gradle APIs you need to know to develop a plugin, the different ways to organize and distribute plugins, and the way you should use plugins as a means of extending the Gradle DSL to describe your build domain in a concise and idiomatic way. Examples will use real code for a plugin written by Tim and Matthew that can be used in development and automated deployment settings.
by Tim Berglund
Cassandra is a scalable, highly available, column-oriented data store in use at Facebook, Netflix, Twitter, Reddit, Rackspace, and a growing list of other deployments. It offers a compelling combination of a rich data model, a robust deployment track record, and a sound architecture—and it isn't just for web-scale operations. It might be a good fit for your Grails app!
In this session, we'll learn the basics of Cassandra, then look at how to use it for storing data in a simple Grails application. We'll work through a simple data modeling exercise and look at the code required for interfacing with this leading NoSQL solution.
Spring always provided sophisticated support for various data access technologies. The lately coined Spring Data project now takes the next step and introduces support for non-relational data stores like MongoDB, CouchDB, Cassandra, Redis and Riak just to name a few.
Beyond that it helps implementing data access layers in a consistent and easy-to grasp fashion, for both the NoSQL stores as well as more traditional APIs like JPA. The talk introduces the umbrella project, foundational concepts and abstractions and dives down into specialties of particular modules hands-on.
by Hans Dockter
by Chris Beams
Ratpack is a micro web framework for Groovy inspired by the Sinatra web framework for Ruby. Running Jetty and Groovy’s template engine at its core, Ratpack is very capable and extensible while also enabling you to write single file web apps. It fits the sweet spot for problems too small for Grails, yet too big to start from scratch. Ratpack takes routes, also known as URLMappings in Grails, and makes them the star of the show.
In this session, you’ll learn how to create Ratpack apps, manage the application lifecycle, authentication, and persistence, and how to interface with Grails applications. Frankie and Sammy would approve…
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.
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.
25th–28th October 2011