Jeremy Grelle
Senior Software Engineer, SpringSource
Jeremy Grelle is an open source software engineer with SpringSource, a division of VMware, who specializes in bringing the cutting-edge techniques of web application development to the Java and Spring ecosystems. He is the creator of the Spring JavaScript, Spring Faces, and Spring BlazeDS Integration projects, and he represents SpringSource on the JSR-314 Expert Group for JSF 2.0. He is a software artisan with extensive experience in combining server-side Java with the latest web browser technologies to deliver a rich and usable experience for the end user on the web.
Jeremy is a frequent speaker at industry conferences such as JavaOne, The Spring Experience, SpringOne, JSFOne, TheServerSide Java Symposium, and Java and Flex user group events, and always enjoys getting out and showing his fellow developers how to bend web browsers to their will and the possibilities of what can be created with Spring and its wealth of complimentary web technologies.
Presentations
Simplifying Java Server Faces Development with Spring Faces
Traditional JSF development has gained a reputation for being overly complex and cumbersome. Spring Faces introduces a host of features that improve the development experience and performance a JSF application. In this session, attendees will see a real-time demonstration of how Spring Faces makes the JSF experience more productive and reduces the pain of container re-starts and verbose configuration.
This live coding session will highlight the features of Spring Faces that make using JSF and Spring together a more cohesive experience:
* High-level DSL for structuring control logic that utilizes EL and Groovy and is both easy to unit test and fully dynamic and refreshable in-container at runtime.
* Introduction of view and flow scopes that fit more naturally with JSF's stateful model
* Reduction in external configuration with no need for JSF managed- bean or navigation-rule definitions
* Easy-to-introduce client-side validation and Ajax
* Flow-managed persistence contexts that enable true transparent persistence.
* Simplified integration with Spring Security
* Less conceptual disconnect by enabling the Spring programming model throughout the stack ("turtles all the way down")
Session Details
Enhancing Spring MVC Web Applications Progressively with Spring JavaScript
Spring JavaScript is a JavaScript abstraction framework that allows you to progressively enhance a web page with behavior. The framework consists of a public JavaScript API along with an implementation that builds on the Dojo Toolkit. Spring.js simplifies the use of Dojo for common enterprise scenarios while retaining its full-power for advanced use cases. Come to this session to learn to use Spring.js and Dojo to create compelling user interfaces for your Spring MVC web applications.
This session will walk through using Spring.js to add a number of rich web capabilities to your applications, including:
* Decorating standard HTML links and forms with Ajax events
* Linking in partial updates to a page
* Adding effects such as progress indicators, blinds, and popups
* Performing client-side validation
In addition, you'll see how Spring.js can help with:
* Gracefully degrading when JavaScript is not available
* Meeting requirements for accessibility
* Applying progressive enhancement techniques
Integrating Adobe Flex and BlazeDS with Spring
Recently SpringSource announced Spring BlazeDS Integration, a new open source project to provide tight integration between Spring and Adobe BlazeDS, Adobe's open source server-based Java remoting and Web messaging technology.
This collaboration will make it easy for Java developers to create enterprise-class rich Internet applications (RIAs) using Adobe Flex software, a cornerstone of the Adobe Flash Platform, and Spring, the de facto standard for enterprise Java. In this session developers will learn the basics of the integration and will learn how to build an application that leverages this new technology.
Session Detail
Technical Introduction to Flex for Building Breathtaking Rich Internet Applications
For the last few years, the industry has shifted its attention to the client and the quality of the user experience. The incremental improvements that we have witnessed so far are just first steps on a path towards "High Definition" user interfaces: vector graphics-powered expressiveness, in-context collaboration, rich media integration, real time data, and offline capabilities will become standard attributes of most web applications.
In this session, Christophe Coenraets will provide an in-depth technical introduction to Flex, a complete solution for building this new breed of applications and demonstrate the integration with Java and Spring powered back-ends.
Session Detail
Rapidly Building Spring-powered Flex RIAs with Spring BlazeDS Integration and Spring Roo
Spring BlazeDS Integration has proven itself as a powerful tool for enabling rich Flex client applications to fully take advantage of the power and flexibility of Spring-based services. The latest release of Spring BlazeDS Integration and it's accompanying addon for Spring Roo make developing Spring-backed Flex applications easier and more productive than ever. In this session developers will learn the basics of the integration and will learn how to use the Roo addon build a rich application that leverages the remoting, security, and server-push capabilities of this simple-yet-powerful technology. Along the way, we'll cover the new features in Spring BlazeDS Integration 1.5, such as first-class support for AMF serialization of Hibernate entities, that make the Roo addon possible.
Session Detail
Harnessing the power of HTML5
The role that server-side Java plays in a web application is rapidly changing due to the rising prevalence of high-performance JavaScript VMs and browser support for advanced HTML5 APIs such as Canvas, Web Sockets, and Web Workers. This session will show how a RESTful Java back end built with Spring can provide scalable rich data and services to complement a smart client-side framework such as jQuery, Dojo, or GWT and its use of the HTML5 APIs.
This session is aimed at experienced Java web developers. It will cover: -Rapidly building lightweight RESTful services with Spring 3.0 and Spring Roo to support rich HTML5 clients -How to carry over the concepts of Java EE APIs such as JPA and Bean Validation to a smart client -Async message-based communication over Web Sockets.
Choices in Mobile Application Development
With the rising prevalence of advanced mobile platforms such as iPhone, Android, and Web OS, the desire for rich mobile clients as another means of accessing enterprise services is becoming something that can no longer be ignored. In this session, we will explore the current mobile development landscape and discuss what you as a Spring developer can do to support this increasingly important paradigm. We will examine the benefits and tradeoffs of native mobile client development vs. web-based mobile client development, and we will explore some of the emerging cross-platform options such as PhoneGap. We will look at the various strategies for utilizing a Spring back-end with these mobile platforms, such as consumption of RESTful services, authentication and authorization via OAuth, and server-push style messaging.
Session Detail
You want to do *WHAT* in the browser!? A heretic's guide to building the "impossible" on the modern web.
The web has gone through periods of experimentation, stagnation, revolution, and evolution to bring us to the state we are in today. The browser vendors are once again innovating at breakneck speed while still keeping an aggressive eye towards standardization, and as web developers we have an amazing array of tools at our disposal whether developing for desktop, mobile, or any other of the emerging form factors where a modern performant browser is available. Many things that were once thought "impossible" to build with open web tools are becoming today's reality on the web.
This session will examine the techniques being applied today to create large single-page web applications. Through diving into the architecture of an in-browser IDE and other such "impossible" web applications, topics that will be covered include:
New browser facilities that can be utilized today and effective ways to experiment with what is yet-to-come
Modular approaches to building and maintaining the front-end code for large in-browser applications
Composition of small, specialized, loosely-coupled server-side modules to form a complete system
Taking advantage of the unique benefits of a cloud platform while also working within its constraints.