SpringOne Schedule

About the Session Schedule

We are committed to hype-free technical training for software architects, programmers, developers, and technical managers. We offer over one-hundred (100) sessions in the span of three days on the Spring Ecosystem and all things Groovy/Grails/Griffon. Featuring leading industry experts, who share their practical and real-world experiences; we offer extensive speaker interaction time during sessions and breaks.

2013-09-09 00:00:00.0


3:00 - 6:30 PM REGISTRATION - SPRINGONE 2GX 2013
4:30 - 5:30 PM WELCOME RECEPTION
5:30 - 6:30 PM DINNER
6:30 - 8:00 PM Keynote: IO, IO, it’s off to work we go by Adrian Colyer, Juergen Hoeller, Dave Syer, and Chris Beams
8:00 - 9:30 PM OPENING NIGHT RECEPTION

2013-09-10 00:00:00.0


  SCCC Theatre SCCC Room 209/210 SCCC Room 203/204 Hyatt Magnolia Room Hyatt Cypress Room
7:30 - 8:30 AM BREAKFAST/LATE REGISTRATION
8:30 - 10:00 AM

Real World Applications with Spring Data Neo4j

Michael Hunger

Spring with Immutability

Matt Stine

Virtualizing and Tuning Large Scale Java Platforms

Emad Benjamin and Guillermo Tantachuco

Building Spring Applications on Cloud Foundry

Joshua Long and Andy Piper
10:00 - 10:30 AM MORNING BREAK
10:30 - 12:00 PM

Integrating Spring Batch and Spring Integration

Gunnar Hillert and Michael Minella

Performance-tuning the Spring Petclinic sample application

Julien Dubois

The Pitfalls Of Building Large Scale Applications

Jeffrey Sogolov

Build Your Very Own Private Cloud Foundry

Matt Stine
12:00 - 12:45 PM LUNCH
12:45 - 2:15 PM

Real life use of Spring Integration with RabbitMQ

Durai Arasan

Spring and Web Content Management

Daniel Lipp and Tobias Mattsson

Spring Scala

Ramnivas Laddad and Arjen Poutsma

Inside Cloud Foundry: An Architectural Review

Christophe Levesque, Scott Motte, and Dekel Tankel
2:15 - 2:30 PM REFRESHMENT BREAK
2:30 - 4:00 PM

Data Modelling and Identity Management with OAuth2

Dave Syer

JSR-352, Spring Batch and You

Michael Minella

Building Reactive Apps

James Ward
4:00 - 4:30 PM AFTERNOON BREAK
4:30 - 6:00 PM

Spring RESTBucks - A hypermedia-driven REST webservice

Oliver Gierke

Getting Started with Spring Security 3.2

Rob Winch

How Not to Measure Latency

Gil Tene

Extending Cloud Foundry with Custom Integration

Cornelia Davis and Scott Frederick
6:00 - 7:00 PM SPONSOR RECEPTION
7:00 - 7:45 PM DINNER
7:45 - 9:00 PM Keynote: The rest of the dwarves… by Mark Fisher, Graeme Rocher, and Mark Pollack
9:00 - 10:00 PM BIRDS OF A FEATHER SESSIONS

2013-09-11 00:00:00.0


  SCCC Theatre SCCC Room 209/210 SCCC Room 203/204 Hyatt Magnolia Room Hyatt Cypress Room
7:30 - 8:30 AM BREAKFAST
8:30 - 10:00 AM

spring.io inside and out

Chris Beams

RabbitMQ is the new king

Jan Machacek and Alvaro Videla

Pragmatic JavaScript

John Hann

Making Connections with Spring Social

Craig Walls

Hadoop - Just the Basics for Big Data Rookies

Adam Shook
10:00 - 10:30 AM MORNING BREAK
10:30 - 12:00 PM

AngularJS, Backbone.js and Client-Centric Design

Scott Andrews, Tim Branyen, and Matias niemela

Spring Data Repositories - Best Practices

Thomas Darimont and Oliver Gierke

Futures and Rx Observables: powerful abstractions for consuming web services asynchronously

Chris Richardson

Troubleshooting Live Java Web Applications

Ashley Puls

Getting started with Spring Data and Apache Hadoop

Thomas Risberg and Janne Valkealahti
12:00 - 12:45 PM LUNCH
12:45 - 2:15 PM

Intro To WebSocket Applications with Spring Framework 4.0

Rossen Stoyanchev

Spring Integration Internals

Gary Russell

Multi Environment Spring Applications

Josh Long and Kevin Nilson

Spring and Sencha - A Match Made In Heaven (or at least the cloud)

Lou Crocker and John Ferguson

In-memory data and compute on top of Hadoop

Anthony Baker and Jags Ramnarayan
2:15 - 2:30 PM REFRESHMENT BREAK
2:30 - 4:00 PM

Building WebSocket Browser Applications with Spring

Rossen Stoyanchev and Scott Andrews

Modern Component Design with Spring

Juergen Hoeller

Open/Closed Software - Developing freemium application using Spring Framework

Frederic Simon

Your Data, Your Search, Elasticsearch

Costin Leau
4:00 - 4:30 PM AFTERNOON BREAK
4:30 - 6:00 PM

AOP-ing your JavaScript

Brian Cavalier

Real Time Analytics with Spring

Luke Taylor and David Turanski

Going Beyond Dependency Injection

Mark Secrist

Multi client Development with Spring

Roy Clarkson and Joshua Long

Integrating Splunk into your Spring Applications

Damien Dallimore
6:00 - 7:00 PM DINNER
7:00 - 10:00 PM BOARD GAMES AND BEER - HYATT LOBBY - LIGHT REFRESHMENTS WILL BE SERVED

2013-09-12 00:00:00.0


  SCCC Theatre SCCC Room 209/210 SCCC Room 203/204 Hyatt Magnolia Room Hyatt Cypress Room
7:30 - 8:30 AM BREAKFAST
8:30 - 10:00 AM

Building For Speed - Tips and Tricks for Client-Side Performance

Jeremy Grelle

Spring Data Community Lightning Talks

Peter Bell, Costin Leau, Michael Nitschinger, and Christoph Strobl

Application Security Pitfalls

Mike Wiesner

Apache Tomcat 8 Preview

Daniel Mikusa and Stuart Williams

Space Exploration: APIs for Secure Interconnected HTML5 Applications with Sencha Space

Jason Cline
10:00 - 10:30 AM MORNING BREAK
10:30 - 12:00 PM

Spring Testing

Mattias Severson

Distributed rules engines and CEP

John Davies

Tooling for Spring's next generation

Andy Clement and Martin Lippert

Running Spring in Amazon Web Services

Rob Harrop

Taming Coupling & Cohesive Beasts with Modularity Patterns and Spring

Param Rengaiah
12:00 - 12:45 PM LUNCH
12:45 - 2:15 PM

Thymeleaf: improving your Spring view layer with natural templates

Emanuel Rabina

Real Time Event Processing and Decision Making

Lyndon Adams

Building Your Java Configuration Muscle Memory

Josh Long and Phil Webb

Migrating SAS® Institute, Inc. Java EE Applications from WLS/WAS/JBoss to Pivotal tc Server™

Zhiyong Li

Researching Cancer In the Cloud - Using Spring,Neo4J,Mongo and Redis In the Cloud

Smitha Gudur and Manoj Joshi
2:15 - 2:45 PM AFTERNOON BREAK & CONCLUSION OF SPRINGONE 2GX 2013

Tackling Big Data Complexity with Spring

close
Mark Fisher and Mark Pollack

By Mark Fisher and Mark Pollack

Big Data is all the rage, but building real-world big data solutions can fill developers with rage. While Hadoop provides the de-facto foundation for storing and processing data, real-world scenarios require much more. Capabilities like data ingestion and export, real-time analytics, workflow management, and connectivity with existing enterprise systems are essential. Today, solutions for these capabilities are often limited, inconsistent, and hard to use. In this session we introduce Spring XD, a unified and extensible system that drastically reduces the complexity of building big data solutions.

Spring XD builds upon existing ecosystem projects such as Spring for Apache Hadoop and Spring Integration to provide a unified configuration and runtime model across this wide range of capabilities. We will take a demo-driven tour that shows how you can easily create real-world big data solutions using Spring.



REST-ful API Evolution

close
Ben Hale

By Ben Hale

As REST-ful data services become more widespread, it is becoming clear that they have to change to suit new consumer needs. This evolution is often disruptive to consumers, but it doesn't have to be. This session, a follow up to ‘REST-ful API Design’, discusses various strategies for evolving a REST-ful API and how the strategies can be implemented using Spring.

Session Detail



Integrating Spring Batch and Spring Integration

close
Gunnar Hillert and Michael Minella

By Gunnar Hillert and Michael Minella

This talk is for everyone who wants to efficiently use Spring Batch and Spring Integration together. Users of Spring Batch often have the requirements to interact with other systems, to schedule the periodic execution Batch jobs and to monitor the execution of Batch jobs. Conversely, Spring Integration users periodically have Big Data processing requirements, be it for example the handling of large traditional batch files or the execution of Apache Hadoop jobs. For these scenarios, Spring Batch is the ideal solution. This session will introduce Spring Batch Integration, a project that provides support to easily tie Spring Batch and Spring Integration together. We will cover the following scenarios:

  • Launch Batch Jobs through Spring Integration Messages
  • Generate Informational Messages
  • Externalize Batch Process Execution using Spring Integration
  • Create Big Data Pipelines with Spring Batch and Spring Integration

Session Detail



Open/Closed Software - Developing freemium application using Spring Framework

close
Frederic Simon

By Frederic Simon

Developing freemium which involves OSS is not a trivial task. From one side, you need to prevent premium code from working in your free modules, and do it gracefully - without errors and performance degradation. From other side, your OSS core must be easily accessible to the premium modules.

Partial public availability of the code and unified continuous delivery process for two different versions of the product is also challenging.

In this talk we’ll showcase Artifactory, which successfully combines OSS and Pro versions by heavily relying on flexible dependency injection mechanics, available in Spring. We will talk about developing, building, testing and releasing hybrid freemium application and will review the existing approaches, discussing pros and cons of each of them.



The Pitfalls Of Building Large Scale Applications

close
Jeffrey Sogolov

By Jeffrey Sogolov

Relying on network reliability and topology are just a few mistakes most engineers make. Common fallacies of distributed computing are one of the most important factors that engineers need to keep in mind when building enterprise software. We will cover each fallacy while showing mistakes most engineers make.

We will then cover what coupling truly means and how to tell whether your current project is heading the wrong way.

Finally, we will apply aspects of object orientation that held up to this day and learn how to apply them to the new age architectures.

Don't learn from your mistakes, learn from others and come away with techniques that you can apply to your current project right away.

This is the session that I wish I attended when I was a young lad.



Reactor - a foundation for asynchronous applications on the JVM

close
Jon Brisbin and Stephane Maldini

By Jon Brisbin and Stephane Maldini

Reactor was recently made public after a two-year incubation, evolving slowly alongside frameworks like Storm, Akka, Play, GPars or Vert.x. Integrated with Grails starting with version 2.3, Reactor takes the best ideas from several asynchronous toolsets and synthesizes them into a coherent framework that supports a variety of runtime topologies and makes it easy for developers to efficiently leverage their cloud or traditional hardware assets. Reactor is equally at home inside or outside a Spring ApplicationContext and also provides first-class Groovy support in the form of DSLs and language extensions. Special attention has been given to make Reactor easy enough to use to create single-file node.js-like applications, while maintaining a solid asynchronous toolset that works with Big and Fast Data tools like Gemfire, Spring Integration, and Spring Batch. This talk will give Reactor a proper introduction and show sample code that demonstrates the event-driven and composition-based nature of Reactor applications.

Session Detail



Virtualizing and Tuning Large Scale Java Platforms

close
Emad Benjamin and Guillermo Tantachuco

By Emad Benjamin and Guillermo Tantachuco

The session will cover various GC tuning techniques, in particular focus on tuning large scale JVM deployments. Come to this session to learn about GC tuning recipe that can give you the best configuration for latency sensitive applications. While predominantly most enterprise class Java workloads can fit into a scaled-out set of JVM instances of less than 4GB JVM heap, there are workloads in the in memory database space that require fairly large JVMs.

In this session we take a deep dive into the issues and the optimal tuning configurations for tuning large JVMs in the range of 4GB to 128GB. In this session the GC tuning recipe shared is a refinement from 15 years of GC engagements and an adaptation in recent years for tuning some of the largest JVMs in the industry using plain HotSpot and CMS GC policy. You should be able to walk away with the ability to commence a decent GC tuning exercise on your own. The session does summarize the techniques and the necessary JVM options needed to accomplish this task. Naturally when tuning large scale JVM platforms, the underlying hardware tuning cannot be ignored, hence the session will take detour from the traditional GC tuning talks out there and dive into how you optimally size a platform for enhanced memory consumption. Lastly, the session will also cover vfabric reference architecture where a comprehensive performance study was done.

Prerequisite: In addition to technical deep dive content, an interactive design workshop is planned to be solved in a group discussion. Finally and depending on interest and time an optional hands on lab (on your laptop) will be given. An opportunity to build, tune, and monitor the effects of tuning for the SpringTrader application.



Spring Scala

close
Ramnivas Laddad and Arjen Poutsma

By Ramnivas Laddad and Arjen Poutsma

The Spring Framework is one of the most popular Java frameworks used today. While it is possible to use Spring in Scala, it does feel awkward in certain places, because of the "Javaism" peering through. For instance, using callback interfaces feels strange in Scala; functions would be a better match.

At SpringOne 2GX last year, I introduced the Spring Scala project, which solves this particular issue, and aims to make it easier to use Spring in Scala in general. In this session, we discuss the Spring Scala portfolio project and its feature set.

We will also show a real-world application that combines robustness and maturity of the Spring Framework with coolness of Scala. It features a REST-based architecture with on Spring and Scala backend and AngularJS frontend to offer a modern, single-page experience.



Building Reactive Apps

close
James Ward

By James Ward

Non-blocking, asynchronous, and reactive are all the rage today. This session will explore why the patterns are important in modern apps and how to apply them to event-driven web, mobile, and RESTful apps. To illustrate the concepts, Java, Scala, Akka, and Play Framework will be used as examples.



Free Yourself with CloudFoundry: A Private Cloud Experience

close
Mike  Heath, Shawn Nielsen, and Mike Youngstrom

By Mike Heath, Shawn Nielsen, and Mike Youngstrom

Cloud Foundry makes managing and deploying applications incredibly simple. However, deploying Cloud Foundry itself can be a challenging task. We will be sharing what we learned deploying Cloud Foundry and what it took to win over our organization.

Learn from our experiences deploying Cloud Foundry with BOSH and integrating with our existing enterprise infrastructure. We will discuss:

Developing and customizing Cloud Foundry while staying in sync with the open source repositories Building custom Cloud Foundry services using Java and Spring Improved gathering application diagnostics by simplifying JMX and remote debugging support in Cloud Foundry Enhanced security and auditability with application level firewalls

Come learn from our successes as well as our mistakes.

Cloud Foundry



Integrating Splunk into your Spring Applications

close
Damien Dallimore

By Damien Dallimore

How much visibility do you really have into your Spring applications? How effectively are you capturing,harnessing and correlating the logs, metrics, & messages from your Spring applications that can be used to deliver this visibility ? What tools and techniques are you providing your Spring developers with to better create and utilize this mass of machine data ? In this session I'll answer these questions and show how Splunk can be used to not only provide historical and realtime visibility into your Spring applications , but also as a platform that developers can use to become more "devops effective" & easily create custom big data integrations and standalone solutions.I'll discuss and demonstrate many of Splunk's Java apps,frameworks and SDK and also cover the Spring Integration Adaptors for Splunk.



Your Data, Your Search, Elasticsearch

close
Costin Leau

By Costin Leau

Finding relevant information fast has always been a challenge, even more so in today's growing "oceans" of data. This talk explores the area of real-time full text search, using Elasticsearch, an open-source, distributed search engine built on top of Apache Lucene. The session will showcase how to perform real-time searches on structured and non-structured data alike, how to cope with types and suggestions, do social graph filters and aggregations for efficient analytics. All from a Spring perspective Last but not least, the presentation focuses on the Hadoop platform and how Map/Reduce, Hive, Pig or Cascading jobs can leverage a search engine to significantly speed up execution and enhance their capabilities.

The presentation covers architectural topics such as index scalability, data locality and partitioning, using off and on-premise storages (HDFS, S3, local file-systems) and multi-tenancy.



Spring Testing

close
Mattias Severson

By Mattias Severson

Is it possible to decrease the turn-around time of your test suite? How can you make sure that your tests execute independently? Is it possible to automatically verify that the database schema is kept in sync with the source code? What are the trade-offs? In this presentation, you will learn how to apply features such as the Spring MVC Test Framework, Spring profiles, and embedded databases, to automate and improve your test suite, thus improving the overall quality of your project. A simplistic Spring web app will be used to show some practical code examples.

Topics include:

  • Basic Spring Testing
  • Embedded Database
  • Transactions
  • Profiles
  • Controller Tests
  • Server Integration Tests



AOP-ing your JavaScript

close
Brian Cavalier

By Brian Cavalier

Loose coupling. Your web front-end has that, right? Your JavaScript is using pubsub, event emitters, and message buses! Guess again, you can do better.

Aspect Oriented Programming (AOP) is a technique for augmenting the behavior of objects, methods, and functions non-invasively. AOP adds new behaviors and modifies existing behaviors "from the outside". Using AOP, it's possible to create connections between components without either having any knowledge of the other and without any extra library dependencies in your code.

While you may be familiar with AOP in Spring, you may not yet have applied it in JavaScript. In this talk, we'll do just that. We'll introduce simple techniques for applying AOP in pure JavaScript using no additional libraries, and then look at meld.js (https://github.com/cujojs/meld), the AOP library that powers Cujo.js (http://cujojs.com). We'll work from simple examples of making connections between components to more sophisticated examples that integrate pubsub, message buses, etc. in a truly loosely coupled way.



Zero Effort Spring

close
Dave Syer and Phil Webb

By Dave Syer and Phil Webb

Are you an impatient programmer who wishes the keyboard could keep up with you? If you've ever wished Java and Spring could do more to keep up, then this is the place to be. We present Spring Boot, a toolkit and runtime platform that will get you up and running with Spring-powered, production-grade applications and services faster than you believed possible. The goals are:

  • Radically faster and widely accessible getting started experience for Spring development
  • Be opinionated out of the box, but get out of the way quickly as requirements start to diverge from the defaults
  • Provide a range of non-functional features that are common to large classes of projects (e.g. embedded servers, security, metrics, health checks, externalized configuration)
  • First class support for REST-ful services, modern web applications, batch jobs, and enterprise integration
  • Applications that adapt their behavior or configuration to their environment
  • Optionally use Groovy features like DSLs and AST transformations to accelerate the implementation of basic business requirements We illustrate how these goals can be achieved through a series of demonstrations, and in-depth reviews of the design principles and codebase of new features in Spring Framework 4.0 and in the wider Spring Ecosystem .

Session Detail



How Not to Measure Latency

close
Gil Tene

By Gil Tene

Time is Money. Understanding application responsiveness and latency is critical not only for delivering good application behavior. It is critical for maintaining profitability and containing risk. But good characterization of bad data is useless. When measurements of response time present false or misleading latency information, even the best analysis can lead to wrong operational decisions and poor application experience. In this presentation, Gil Tene (CTO, Azul Systems) discusses some common pitfalls encountered in measuring and characterizing latency. Gil demonstrates and discusses some false assumptions and measurement techniques that lead to dramatically incorrect reporting results, and covers simple ways to sanity check and correct these situations. He discusses the fallacy of using standard deviation measurements, the strongly multi-modal nature of latency, common discontinuities found in most computing platforms, and how back pressure and coordinated data omission issues can literally skew measurement results by orders of magnitude. Gil introduces and demonstrates how simple and recently open sourced tools can be used to improve and gain higher confidence in both latency measurement and reporting.

Session Detail



Making Connections with Spring Social

close
Craig Walls

By Craig Walls

The modern web is rich with APIs that can be consumed by other applications, enabling an integrated experience for the users who hold accounts on the websites that front those APIs. Many of these APIs are secured with OAuth, an authorization specification for securing REST APIs. Spring Social is an extension to the Spring Framework that enables Spring applications to establish connections with those APIs on behalf of their users with little or no need to muck about in the intricacies of OAuth.

In this session, we'll explore how Spring Social brings API connectivity to Spring applications. We'll also uncover the newest features of Spring Social that make it easier than ever to link your application's users to the identities they maintain on various sites across the web.



Troubleshooting Live Java Web Applications

close
Ashley Puls

By Ashley Puls

Operations teams tend to get nervous when debugging tools are installed on production systems. This is understandable as most people have had at least one debugging tool crash a system. However, are there tools that can be run in a production environment?

This talk will cover methods and tools that can be used to uncover and resolve performance problems arising in Java web applications that use the Spring Framework. This talk will touch on a few common problems such as slow SQL, slow web page load times, blocked threads, and exceptions in the code. It will use a variety of diagnostic tools to examine these problems including log files, jmap, jvisualvm, and New Relic. Finally, the talk will evaluate the use of these tools in a production environment, separating them into what can and cannot be realistically used in live production web applications



Real life use of Spring Integration with RabbitMQ

close
Durai Arasan

By Durai Arasan

ETRADE has revamped their SOA platform with RabbitMQ as a core messaging system and Spring Integration as a light weight ESB layer with services written in Java, C and Python based languages. This new container show cases how legacy system can be migrated at the same time introducing more modern frameworks and languages without comprising on performance and scalability factor of new platform.

Presentation will cover some history behind the requirements and how the platform was built.

It will be followed by live demo with an example of running web services with RabbitMQ and Spring Integration. This platform highlights why RabbitMQ works best for such a need compare to other options.



REST-ful API Design

close
Ben Hale

By Ben Hale

As data-driven applications become more widespread, the services that provide the data are becoming more critical. Most commonly these data services are exposed via REST-ful APIs. This session describes what exactly makes a service REST-ful, how to implement a REST-ful API using Spring, and how to test that API.

Session Detail



Running Spring in Amazon Web Services

close
Rob Harrop

By Rob Harrop

Running applications in the cloud presents a set of interesting new problems, constraints and opportunities. In this talk, attendees will learn how best to deploy, run and manage their Spring applications in the Amazon cloud.

Covering everything from basic applications in Amazon Beanstalk to large-scale applications that span multiple regions and interact closely with on-premise resources, this talk will equip attendees with the knowledge they need to be successful running Spring in the cloud.



Getting started with Spring Data and Apache Hadoop

close
Thomas Risberg and Janne Valkealahti

By Thomas Risberg and Janne Valkealahti

Big data and Hadoop is widely considered to be the next generation data platform. Hadoop is notoriously difficult to work with and just diving in and starting coding can easily lead to frustration. A better way is to leverage your existing Java and Spring skills to take advantage of these new technologies. In this presentation we will introduce Spring Data for Apache Hadoop and see how it can make working with Hadoop easier. We will also cover several ways to install a small Hadoop cluster that can be used to test your new Hadoop applications.



In-memory data and compute on top of Hadoop

close
Anthony Baker and Jags Ramnarayan

By Anthony Baker and Jags Ramnarayan

Hadoop gives us dramatic volume scalability at a cheap price. But core Hadoop is designed for sequential access - write once and read many times; making it impossible to use hadoop from a real-time/online application. Add a distributed in-memory tier in front and you could get the best of two worlds - very high speed, concurrency and the ability to scale to very large volume. We present the seamless integration of in-memory data grids with hadoop to achieve interesting new design patterns - ingesting raw or processed data into hadoop, random read-writes on operational data in memory or massive historical data in Hadoop with O(1) lookup times, zero ETL Map-reduce processing, enabling deep-scale SQL processing on data in Hadoop or the ability to easily output analytic models from hadoop into memory. We introduce and present the ideas and code samples through Pivotal in-memory real-time and the Hadoop platform.



Data Modelling and Identity Management with OAuth2

close
Dave Syer

By Dave Syer

The OAuth2 specification (wisely) leaves a lot of areas open to interpretation and implementation details, so there are a lot of opportunities to impose interpretations on the flows and the underlying data. This presentation starts with a basic guide to the main features of OAuth2 and then goes on to show, with examples, how they can be exploited to support business and application use cases. For instance, should you encode access decision data directly in the access token, or make the token completely opaque? Should you be signing requests? What naming convention should you use for OAuth2 scopes? How do you go about registering users and clients? There are some obvious patterns in existing OAuth2 implementations, and Spring Security OAuth provides plenty of hooks and extension points should you wish to copy one of those, or make your own rules.

Examples will use Spring and Spring Security to show how to take advantage of the inherent flexibility, both in the spec and in the libraries.



Build Your Very Own Private Cloud Foundry

close
Matt Stine

By Matt Stine

This session will focus on how you can build your very own Cloud Foundry private PaaS running in your own data center or on AWS or even on OpenStack on your own Mac mini. You will learn how the Cloud Foundry BOSH tool constructs a full Cloud Foundry instance from a bare bones virtual machine and continues to coordinate and manage the entire PaaS cloud once it is operational. If you want the convenience of developing against your own private custom PaaS within your company, then this session will give you all the steps you need to get started.

Session Detail



Inside Cloud Foundry: An Architectural Review

close
Christophe Levesque, Scott Motte, and Dekel Tankel

By Christophe Levesque, Scott Motte, and Dekel Tankel

Cloud Foundry makes it easy to push an app, bind services to it, and scale it. Cloud Foundry takes care of the all the infrastructure and network plumbing that you need to run your applications and can do this while patching and updating systems and services without any downtime. This session will provide a deep technical tour of the architecture behind the latest vesion of Cloud Foundry that makes all this possible and will provide insights for anyone interested in large scale distributed systems.

Session Detail



Real Time Analytics with Spring

close
Luke Taylor and David Turanski

By Luke Taylor and David Turanski

Today's solutions must provide the ability to interpret related events and understand trends that are happening right now. This session will cover some of the out of the box capabilities of Spring XD to tap into big data streams and generate metrics such as simple counters, aggregate counters, moving averages, rates of change, and histograms. Hands-on demos will show you how Spring XD uses Redis and GemFire's Continuous Query and Function Execution to incorporate real-time analytics into event-driven applications.

Session Detail



Spring and Sencha - A Match Made In Heaven (or at least the cloud)

close
Lou Crocker and John Ferguson

By Lou Crocker and John Ferguson

Much like Spring burst onto the scene and became a defacto standard for Java, Sencha is vying for a similar role in the world of HTML5. From Ext JS for desktop development, Sencha Touch for mobile, and Sencha Architect as a design tool, it has become a pervasive technology in the new paradigm of multi-client development.

In this session we will use our own SpringTrader reference application to illustrate integration techniques of Spring with Sencha. We will go beyond the basic wiring of a REST call with binding results to UI components, and look at mapping the Spring MVC and Sencha MVC architectures, along with other tips and tricks to streamline your mobile application development efforts.



Futures and Rx Observables: powerful abstractions for consuming web services asynchronously

close
Chris Richardson

By Chris Richardson

A modular, polyglot architecture has many advantages but it also adds complexity since each incoming request typically fans out to multiple distributed services. For example, in an online store application the information on a product details page - description, price, recommendations, etc - comes from numerous services. To minimize response time and improve scalability, these services must be invoked concurrently. However, traditional concurrency mechanisms are low-level, painful to use and error-prone.

In this talk you will learn about some powerful yet easy to use abstractions for consuming web services asynchronously. We will compare the various implementations of futures that are available in Java, Scala and JavaScript. You will learn how to use reactive observables, which are asynchronous data streams, to access web services from both Java and JavaScript. We will describe how these mechanisms let you write asynchronous code in a very straightforward, declarative fashion.



Performance-tuning the Spring Petclinic sample application

close
Julien Dubois

By Julien Dubois

This talk is a live version of my blog posts on performance-tuning the Spring Petclinic application: http://blog.ippon.fr/tag/spring-petclinic/

We will talk about JVM locks, Web application performance best practices, JDBC vs JPA, and caching We will see how to use effectively tools such as JMeter, Yourkit and Intellij IDEA to quickly solve performance issues We will also explain the methodology used, so you can follow the same steps on your own applications

In this session we will talk about :

  • Stress tests
  • Memory leaks
  • Garbage Collection
  • Profiling tools
  • Application Server tuning
  • JVM tuning
  • Locks
  • JDBC vs JPA
  • Lazy loading
  • Caching
  • And much more !


Spring with Immutability

close
Matt Stine

By Matt Stine

Readers of Josh Bloch's "Effective Java" are sometimes perplexed when they reach Item #15: "Minimize Mutability." If we are to minimize mutability, then obviously we must maximize immutability. While all Java programmers utilize immutable objects every day (e.g. java.lang.String), when asked to create our own immutable classes, we often hesitate. However, if we push through this hesitation, we'll reap the benefits of simpler reasoning about program correctness, free thread safety, and other benefits.

One of the primary issues faced by enterprise Java programmers seeking to utilize immutable classes are framework issues. Enterprise frameworks from Spring to Hibernate have varying levels of support for immutability, ranging from decent to nonexistent. However, there several practical solutions available to the Spring developer, and this session will illuminate what's available.



Going Beyond Dependency Injection

close
Mark Secrist

By Mark Secrist

Many developers who are learning the Spring Framework think of it as simply another mechanism for centralized dependency injection. While the framework does handle that responsibility quite well, the framework is so much more. In this session, we'll explore some of the building blocks and patterns used by the core framework as well as many of the other Spring projects. The result is that attendees will gain a better understanding of how to use the Spring Framework and learn how to build their own components that can leverage these same patterns. Topics we'll explore: - What is the benefit of centralized lifecycle management - Programming to interfaces - Leveraging the power of proxies - Using annotations - Understanding the template pattern

Dependency injection is one very important part of what the Spring Framework does. However, it is also a collection of very key patterns that we'll explore. - Centralized lifecycle management - Examining the BeanFactoryPostProcessor - Examining the BeanPostProcessor - How to write your own BeanPostProcessor - Programming to interfaces - Benefits of programming to interfaces - loose coupling - Examples of how Spring leverages this mechanism - How to leverage in your own Spring applications - Leveraging the power of proxies - How proxies work in Spring - How Spring uses them - Writing your own proxy-based solution - Using annotations - Examples of how Spring uses annotations - Using your own annotations - Understanding the template pattern - Purpose of template pattern - How Spring uses templates - Creating your own template



Tooling for Spring's next generation

close
Andy Clement and Martin Lippert

By Andy Clement and Martin Lippert

The Spring Tool Suite (STS) is constantly evolving to keep pace with developments in Spring as well as the larger world of enterprise application development. This talk focuses on Eclipse-based tooling for the latest features throughout the Spring ecosystem. With plenty of live demos, we'll show you how to get productive quickly with Spring and STS. We''ll start with reviewing areas including XML-free Spring development and then look at early support for specific Spring's next generation features. We'll also demo the Eclipse support for Java 8 (also AspectJ support for Java 8) and spend some time looking at how this enhances your Spring development experience.

In addition to the pure Java-based Spring programming, we will also cover the integration of the Groovy language tooling and show you how to program Spring apps in Groovy using the Spring Tool Suite.

We will then dive into the details of the tooling to demonstrate a number of hidden gems that help you improve your productivity every day, like the built-in validations and best practices, quick-fixes, auto-completions, and automated refactorings.

Last, but not least, we will review some of the performance improvements made recently in Spring Tool Suite.

Session Detail



Getting Started with Spring Security 3.2

close
Rob Winch

By Rob Winch

Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements. In this presentation Rob will incrementally apply the new features found in Spring Security 3.2 to an existing application to demonstrate how it can meet your authentication and authorization needs.



Spring RESTBucks - A hypermedia-driven REST webservice

close
Oliver Gierke

By Oliver Gierke

Spring MVC forms a solid foundation to implement REST based web-services in Java. However, in real-world projects developers still face challenges when it comes to advanced questions of REST. How to really leverage hypermedia? How to model more complex business functionality with REST. The talk introduces the Spring RESTBucks sample implementation of a hypermedia-driven REST web service and explains how it is using hypermedia elements to implement business processes and how Spring technologies (Spring Data REST, Spring Data JPA and Spring HATEOAS) help developers building the system.



Thymeleaf: improving your Spring view layer with natural templates

close
Emanuel Rabina

By Emanuel Rabina

With the disconnect between the languages of the web (HTML, CSS, Javascript) and the languages of the server (Java, Groovy, Scala, etc), many libraries and frameworks have been invented over the years to fill this void, often resulting in views filled with back-end code, views filled with specialized syntaxes, or even the invention of completely new view languages abstractions; all for the purpose of transforming our server-side ideas into HTML, and few of which actually look like the HTML that it ends up as.

Enter Thymeleaf - a templating framework that uses HTML to create good old HTML.

In this presentation, you'll be introduced to Thymeleaf, some of its features, how you can use it in your Spring web projects, the growing ecosystem being developed around it, and how it uses natural templates to keep the web designer on your team, and inside each and every one of us, happy.



Building Spring Applications on Cloud Foundry

close
Joshua Long and Andy Piper

By Joshua Long and Andy Piper

Let's face it, the cloud is here to stay. The cloud's potential can seem sometimes overwhelming, but it doesn't have to if you use Spring. Spring - and the various Spring projects - already embrace the architecture characteristics that make for great, cloud-centric applications in any environment. While Spring works well on any cloud platform, it enjoys a special place in the sun on Cloud Foundry, the open source PaaS from Pivotal.

In this talk, join Andy Piper as he introduces how to build Spring applications that work well in the cloud and on Cloud Foundry in particular. We'll cover how to consume services with Spring on Cloud Foundry, how to scale out using RabbitMQ and Spring Integration, how to use standalone processes and RabbitMQ for better batch processing, and discuss strategies for exposing and consuming services in a RESTful service-based cloud architecture.



Real World Applications with Spring Data Neo4j

close
Michael Hunger

By Michael Hunger

Spring Data Neo4j in its 2.x version is a mature implementation of an object graph mapping framework, that both closely integrates with the Spring Framework and also offers unique modeling and querying opportunities by having chosen the property graph data model. This talk presents how several Neo Technology customers already put Spring Data Neo4j into production. They stem from a variety of domains – gaming, server center monitoring, education, appliance management, energy market simulation and more. Based on those use-cases we discuss how to implement real-world applications with Spring Data Neo4j and the Spring Framework. First we want to discuss the business problems they had to solve and why a graph database was a good fit for them. After a quick intro to Spring Data Neo4j and Neo4j, we will talk about modeling choices and the benefits and implications of choosing a rich data model. We'll follow the example domains into code, from annotated domain entities, to the usage of the powerful repository abstractions. Showing how to use Neo4jTemplate to implement some lower level functionality will round off the core library usage. Building on this, we look into the integration aspects, how Spring Data Neo4j can be combined with other Spring projects, like Spring Data MongoDB, Spring Data REST, and Spring Batch. A quick demonstration shows on how to access Spring Data Neo4j from the (Web)-UI layer. The talk will close of with a glimpse into the future: Neo4j added some very interesting features in its 2.0 release. From node labels, automatic indexes and constraints to a transactional http endpoint for Cypher. These changes make it possible to rethink some aspects of Spring Data Neo4j, like type representation and indexing. But also some bigger ideas for changes ahead like basing the object graph mapping completely on Neo4j's Cypher Graph Query Language will be touched.

Session Detail



Intro To WebSocket Applications with Spring Framework 4.0

close
Rossen Stoyanchev

By Rossen Stoyanchev

Last year's Intro to WebSocket presentation was as much about introducing WebSocket -- including specs, browser availability, server support -- as it was about summarizing short and long term challenges surrounding its use and leaving many open questions. What a world of difference a year can make!

This update to last year's presentation, covers the new standard Java WebSocket API (JSR-356) including a discussion of positives and limitations, an update on the current status of WebSocket support across Servlet containers, and of course the Spring Framework 4.0 WebSocket support -- how to configure and use it and what additional benefits it provides. A central part of this is Spring's support for SockJS, the protocol for transparent WebSocket fallback options for use in applications that for example need to run in IE < 10.

This presentation is for you if you want a comprehensive introduction to WebSocket including standard Java EE 7 and Spring Framework 4.0 support. For a more practical take on how to actually build WebSocket-style applications that skips the introduction, please attend the next presentation Building WebSocket Browser Applications with Spring by Rossen Stoyanchev and Scott Andrews, or attend both presentations. They are intended to be complementary.

Session Detail



Spring Data Repositories - Best Practices

close
Thomas Darimont and Oliver Gierke

By Thomas Darimont and Oliver Gierke

The repository abstraction layer is one of the core pieces of the Spring Data projects. It provides a consistent, interface-based programming model to allow implementing data access layers easily for relational and NoSQL databases. We will have a look at the lessons learned from the application of it in various customer projects and summarize best practices for you to apply in your projects. The session will also discuss advanced features like the Querydsl integration, the integration of custom implementation code as well as hooks into Spring MVC and Spring HATEOAS.

Session Detail



Building WebSocket Browser Applications with Spring

close
Rossen Stoyanchev and Scott Andrews

By Rossen Stoyanchev and Scott Andrews

This is a higher level presentation on how to build browser-based, WebSocket-style applications. If you prefer a proper introduction to WebSocket including RFC specs, browser support, JSR 356, Spring support, and more, attend the previous presentation Intro To WebSocket Applications with Spring Framework 4.0 or attend both sessions. They are meant to be complementary.

So, you've written a "Hello world!" WebSocket application or perhaps even a chat sample. You're able to exchange messages even in pre-Servlet 3.1 containers and pre-IE 10 browsers (that don't yet support WebSocket) thanks to the SockJS protocol and Spring's support for it. However a message is a blank page that can have any content. Whatever message format you choose, proprietary or standard, both client and server need to understand it as well as distinguish different kinds of messages. You need support for the publish-subscribe pattern, central to messaging applications so you can broadcast messages to a single subscriber, to a subset, or to all subscribers. You need to incorporate security, validation, and so on. In short you need to build a real-world application.

If you're used to web applications (and Spring MVC annotated controllers) you are familiar with the foundation that HTTP provides including URLs (nouns), HTTP methods (verbs), headers, parameters, and others. Imagine building an application without HTTP, just a socket. WebSocket gives you this brand new, exciting capability -- full duplex, two-way communication -- yet you no longer have an application-level protocol. Can an entire application be built around a single Endpoint class processing all messages, assuming a single WebSocket connection between browser and server?

Thankfully the WebSocket protocol has a built-in sub-protocol (i.e. higher level protocol) mechanism. In this presentation we'll introduce STOMP, an HTTP inspired simple messaging protocol, and Spring's support for building WebSocket-style messaging applications with it. We'll discuss the new spring-messaging module. We'll show how to map controller methods to client messages through annotations. We'll show how to back your application with a simple in-memory STOMP broker, or a full-scale one (Rabbit, ActiveMQ, etc). How to broadcast to connected clients including broadcasts from stateless HTTP requests. We'll show how to build client-side code using existing libraries such as stomp.js and also cujoJS msgs.js.

Session Detail



RabbitMQ is the new king

close
Jan Machacek and Alvaro Videla

By Jan Machacek and Alvaro Videla

Jan will show how to use RabbitMQ to connect components on different platforms. After a few introductory slides explaining the main concepts, the rest of the talk will be live code. The coding will begin by showing Spring Integration code to connect to RabbitMQ to send and receive messages--think byte[] values back and forth to start with. Jan will then show the real power of RabbitMQ by replacing the RPC server component by native code in C++: we will write image processing component. To make matters even better--faster--we will then use CUDA to perform the image processing. Come to Jan's talk and demo if you want to find out how to use RabbitMQ in the core of your application, especially if your application needs to tie together code on completely different platforms and if it performs heavy number crunching or image processing. You do not need to have deep knowledge of Spring Integration, AMQP or OpenCV, …; all that you will need is your inner geek.

Session Detail



Pragmatic JavaScript

close
John Hann

By John Hann

So you've been toying around with JavaScript. You have a basic feel for the language but don't quiet feel productive, yet. If so, this talk is for you. We'll peel away the abstractions, libraries, and frameworks to uncover the more interesting fundamentals of JavaScript. Specifically, we'll delve into the following:

  • Prototypal inheritance (and alternatives to classical inheritance)
  • Closures
  • Scope versus context and this
  • Public vs privileged vs private variables
  • Modules
  • Promises / Futures
  • Recent improvements from EcmaScript 5 and 6
  • Functional programming strategies
  • Documentation using JSDoc
  • Testing strategies
  • and more!

Session Detail



Apache Tomcat 8 Preview

close
Daniel Mikusa and Stuart Williams

By Daniel Mikusa and Stuart Williams

Apache Tomcat 8 will implement new versions of the Servlet, JSP and EL specifications as well as adding support for the new WebSocket specification. Work is also planned for internal refactoring in a number of areas that will impact a number of Tomcat specific features. This presentation will provide an overview of the changes and new features introduced by both the updated specifications and the Tomcat specific changes. With the first stable Tomcat 8 release expected towards the middle of 2013 (once the Java EE 7 specifications are finalised) this session will enable attendees to identify the Tomcat 8 features of greatest interest to them and provide them with the information required to start planning their migration to Tomcat 8.

Session Detail



Spring on Java 8

close
Juergen Hoeller

By Juergen Hoeller

Spring has a track record of providing dedicated support for new Java generations in a timely fashion, and now it's right about time to go Java 8: With Spring Framework 4.0, we're providing in-depth support for all relevant OpenJDK 8 features, including lambda expressions, JSR-310 Date and Time, parameter name discovery, and java.util.concurrent enhancements. This talk will illustrate selected Java 8 features within Spring's programming model and explore the impact on application architectures.

Session Detail



Extending Cloud Foundry with Custom Integration

close
Cornelia Davis and Scott Frederick

By Cornelia Davis and Scott Frederick

As you find it in the open-source codebase, Cloud Foundry includes a set of prepackaged services (Postgres, MySQL, Redis, MongoDB and RabbitMQ) and a number of application runtimes (Java, Ruby and Node.js). In addition, CloudFoundry.com integrates with a number of external service providers through a services gateway. When you are deploying your own Cloud Foundry you can extend the existing open-source features by adding additional services and runtime support. In fact, you can bring your own runtime to any Cloud Foundry (including CloudFoundry.com) via buildpacks. In this session we will show you how to build and deploy, or broker custom services. We will also introduce you to buildpacks, show you how to create your own, and how to get your apps to use them.

Session Detail



Building For Speed - Tips and Tricks for Client-Side Performance

close
Jeremy Grelle

By Jeremy Grelle

As the complexity of web and mobile apps increases, so does the importance of ensuring that your client-side resources load and execute in an optimal and efficient manner. Differences in resource loading techniques can have a dramatic impact on how fast an application feels to your users, and can be the catalyst for whether they have a joyful or frustrating experience. This talk will discuss performance techniques aimed at keeping your users on the joyful end of this user experience spectrum.

We'll take a look at:

  • Pragmatic tools for measuring client-side performance

  • Techniques for optimizing resources and their resulting impact

  • Approaches to maximizing dev-time happiness and production performance

  • Easy incorporation of these techniques into your everyday tool-chain

Session Detail



Spring Integration Internals

close
Gary Russell

By Gary Russell

Spring Integration Internals

A comprehensive review of message routing within a flow - including

  • exactly how and when replyChannel and errorChannel headers are used

  • how and when these headers apply in an error flow

  • differences between synchronous and asynchronous processing (with task executors and pollers)

  • Use of SpEL (for messagemethod mapping as well as certain "dynamic" config attributes)

  • Type conversion (via SpEL, datatype channels, etc)

  • Implicitly created channels

  • How chains work

  • How messages are mapped to methods when a message arrives at a component

  • How gateway methods are mapped to messages (and a first look at some enhancements we are considering)

  • Options for synchronous and asynchronous flows

    • simple multi-threading
    • aggregation
    • aggregating messages from different sources
  • How to debug Spring Integration applications

  • Advanced configuration techniques

and more...

This presentation will be mainly demonstration and code walkthroughs.



Spring and Web Content Management

close
Daniel Lipp and Tobias Mattsson

By Daniel Lipp and Tobias Mattsson

Want Spring seamlessly available inside a CMS? How about being able to integrate existing Spring apps into your CMS without rewriting a bunch of code? What about a robust CMS solution for Grails? Meet Magnolia, a mature open source CMS written in Java on the best of the Java stack (including Spring and Groovy.)

This session will introduce Magnolia's Spring integration and give you a tour of its architecture, key features and use. Along the way, you'll also get insights into the development of Magnolia's Spring integration, an overview of Magnolia's key features (like workflows, innovative multi-channel support and a damn fine user experience that includes touch devices), and brief tutorials on solving some key content management challenges faced by Spring developers. There will also be a quick detour into Magnolia's Groovy shell and MagLev, a Grails plugin for Magnolia.

Session Detail



Modern Component Design with Spring

close
Juergen Hoeller

By Juergen Hoeller

In recent years, the Spring Framework focuses on flexible and powerful Java-based configuration. This talk presents Spring as an annotation-oriented application framework, illustrating the rich set of features that Spring has to offer for modern component design. General component model trends will be discussed along with selected Spring feature highlights, such as standardized annotations for dependency injection, stereotypes, and declarative services such as validation and scheduling.

Session Detail



Multi Environment Spring Applications

close
Josh Long and Kevin Nilson

By Josh Long and Kevin Nilson

It’d be nice to assume everything remains the same from one environment to another, but the realities of today’s deployment targets (clouds, app servers, etc.) make this difficult. An application may target one in-memory database in development and target a traditional database in production. A/B testing is a common practice that lets you incrementally expose potentially high risk features. Feature switches can be invaluable; should something go wrong, you can revert to a known state. All of these use cases, and more, can be handled using the Spring framework.

Join JavaOne Rock Star and Java Champion Kevin Nilson and Spring Developer Advocate Josh Long for a look at how you can run your application in differing environments using the Spring Framework.



Multi client Development with Spring

close
Roy Clarkson and Joshua Long

By Roy Clarkson and Joshua Long

No application is an island and this is more obvious today than ever as applications extend their reach into people's pockets, desktops, tablets, TVs, Blu-ray players and cars. What's a modern developer to do to support these many platforms? In this talk, join Josh Long to learn how Spring can extend your reach through (sometimes Spring Security OAuth-secured) RESTful services exposed through Spring MVC, HTML5 and client-specific rendering thanks to Spring Mobile, and powerful, native support for Android with Spring Android.



Hadoop - Just the Basics for Big Data Rookies

close
Adam Shook

By Adam Shook

This session assumes absolutely no knowledge of Apache Hadoop and will provide a complete introduction to all the major aspects of the Hadoop ecosystem of projects and tools. If you are looking to get up to speed on Hadoop, trying to work out what all the Big Data fuss is about, or just interested in brushing up your understanding of MapReduce, then this is the session for you. We will cover all the basics with detailed discussion about HDFS, MapReduce, YARN (MRv2), and a broad overview of the Hadoop ecosystem including Hive, Pig, HBase, ZooKeeper and more.

Hadoop Ecosystem Overview

HDFS Architecture

Hadoop MapReduce -- MRv1 and YARN (MRv2)

MapReduce Primer -- Components and Code Example



Spring Data Community Lightning Talks

close
Peter Bell, Costin Leau, Michael Nitschinger, and Christoph Strobl

By Peter Bell, Costin Leau, Michael Nitschinger, and Christoph Strobl

Spring Data has stared as an umbrella project consisting of many individual modules - per supported data store. While some of these data store modules - like the JPA and MongoDB ones - are maintained by Pivotal engineers a lot of community implementations have popped up lately. They build on the foundations of the Spring Data Core module and expose the Spring Data programming model for others stores.

The session will feature maintainers and contributors of the community modules for Solr (Christoph Strobl), Elasticsearch (Costin Leau), Couchbase (Michael Nitschinger) and MongoDB (Peter Bell), who will talk about the latest and greatest features of the upcoming releases and give an impression of how they used the APIs of Spring Data Core to build the module.

session detail



Application Security Pitfalls

close
Mike Wiesner

By Mike Wiesner

Creating a secure application involves more then just applying Spring Security to it. This is of course not a new topic, but with the increased popularity of much more dynamic configurations for Servlet Containers and various Spring Projects, like Spring MVC and Spring Integration, it becomes more important to know about the Security tradeoffs we might get with that, and how to tackle them.



AngularJS, Backbone.js and Client-Centric Design

close
Scott Andrews, Tim Branyen, and Matias niemela

By Scott Andrews, Tim Branyen, and Matias niemela

As clients have become more capable, developers are revisiting the server-centric page rendering approach and moving the MVC layer, in part or sometimes in whole, onto the client. When building a rich front-end there are an increasing number of choices available. This talk will dive into two emerging choices that are taking the web by storm: AngularJS and Backbone.js. Leaders from both communities will provide an introduction to each technology followed by a round table discussing front-end technology, answering questions from the audience. Special guests from Sencha and cujoJS will join the panel for Q&A.

session detail



Building Your Java Configuration Muscle Memory

close
Josh Long and Phil Webb

By Josh Long and Phil Webb

Using a module that provides a Spring XML namespace and integration API is muscle memory for most people: add the .xsd to the imported XML schemas for the configuration file, maybe enable a annotation-driven variant if it's available, autocomplete some XML stanzas, and then you're set! But what about Java configuration? Java configuration has been around in some form since at least 2005. It was merged into the core framework in 2009 and since then we've seen a slew of new Java configuration-powered DSLs pop up. 2013, in particular, has seen alpha-or-better cuts of Java configuration support for Spring MVC, Spring Security (and Spring Security OAuth), Spring Batch, Spring Social, Spring Data (including all the modules under it: REST, MongoDB, JPA, Neo4j, Redis, etc), Spring HATEOAS, and more all provide milestone-or-better cuts of a Java configuration integration. Tomcat 7 (and all Servlet 3-compatible containers) offer a programmatic alternative to web.xml. This provides another great integration hook for modules that wish to integrate with the web container, removing the configuration burden from the user. There's a lot of power here and it's easy to get started if you know what to look for. In this talk, join Spring Developer Advocate Josh Long and Spring-core commmitter, all-around nice guy, and Spring Boot ninja Phil Webb as they introduce the Java configuration support in the various Spring projects, show how to approach them when integrating them into your code, and - if the situation demands - how to write your own Java configuration DSL.

Session detail



spring.io inside and out

close
Chris Beams

By Chris Beams

Join Chris Beams as he dives into http://spring.io - the new spring website. It's chock full of amazing new resources that you can share with your co-workers who might be new to Spring, or simply helping to introduce Spring to those who might not be familiar with it - people coding in other languages, frameworks, or platforms. You've asked us to help make it easier to win the comparisons, and we've listened. Attend this session to get the ammo you need to win that internal bake off.

Session detail



JSR-352, Spring Batch and You

close
Michael Minella

By Michael Minella

JSR-352 is billed as bringing a standardized batch programming model to Java. What does the spec provide, what does it not, and what does it mean for Spring Batch applications? We will address all of these questions as well as provide insight into how Spring Batch will work with the JSR in a real world example.

Session Detail



Real Time Event Processing and Decision Making

close
Lyndon Adams

By Lyndon Adams

As Information Technology evolves and improves, the demands of industry and the internet continue to challenge its capabilities. Today's 'Internet of Things', with millions of devices reporting their status on the network every second, produces massive streams of events. Getting the information in these events consumed and correlated so that it can be used to make routing and processing decisions on related events is particularly challenging. As the data demands of these processes increases, traditional client-server architectures begin to fail. Combining event processing with patterns and knowledge gleamed from Big Data models enables whole new kinds of real-time applications. Spring Integration and other Spring projects play a big role in this new paradigm, adding developer productivity and ease of integration into the mix. Lyndon will discuss and demonstrate the architectural decisions and use cases that occur when Fast Data meets Big Data.

Session detail



Migrating SAS® Institute, Inc. Java EE Applications from WLS/WAS/JBoss to Pivotal tc Server™

close
Zhiyong Li

By Zhiyong Li

SAS® Institute has a large portfolio of Java EE applications. SAS had previously provided support to deploy and run all of these applications in WebLogic, WebSphere and JBoss. Beginning with SAS 9.4, which was released in July 2013, SAS updated its infrastructure and middle tier platform to deliver and run on Pivotal tc Server. In this talk, we will discuss the motivation, technology selection, architecture, system administration, automated installation and configuration, etc., that SAS used to improve value for its customers.

Specifically, we will discuss the following areas in detail:

  • Technology selection: To make tc Server viable, we include the messaging, caching and the transaction management system.
  • Architecture: To leverage tc Server scalability and reliability in SAS products, we support clustering by using the vFabric Web Server and the mod_proxy.
  • Application migration: We provide guidance to our Java developers and configuration developers on how to migrate their applications to the tc Server environment.
  • Security: We support SSL, single sign-on and other enterprise security protocols such as Integrated Windows Authentication, CA Site Minder, IBM Web Seal, SAML, etc.
  • System administration: We provide a single entry point to manage all SAS application stacks including all web applications by leveraging the VMware Hyperic product.
  • Automated installation / configuration: We provide the automated process to install and configure all vFabric products (tc Server, vFWS, Hyperic and GemFire) and SAS web applications.
  • Delivery and support: SAS delivers embedded tc Server as the SAS Web Application Server for use with all our offerings with a midtier on all our supported host platforms. This enables SAS to provide complete supported application architecture with more complete visibility and control of the critical software.
  • Cloud deployment: This approach also provides advantages for our customers leveraging virtualization and cloud deployment strategies.


Space Exploration: APIs for Secure Interconnected HTML5 Applications with Sencha Space

close
Jason Cline

By Jason Cline

The proliferation of mobile devices poses challenges for corporate IT departments. End users want to choose their own device, but also want to access corporate web applications, but the need for security often means that they have to surrender management of their device to their IT department. With this in mind, we've created Sencha Space -- a secure and managed environment for deploying HTML5 business applications that run on multiple devices. During this session, Sencha's Sr. Developer Evangelist, Greg Rewis, will discuss the Sencha Space SDK’s device-level options for secure data storage, as well as show you how to implement the Invoke API to connect web applications with one another. You’ll also experience how easily applications can be centrally managed without the need to access the device.

Session Detail



Distributed rules engines and CEP

close
John Davies

By John Davies

We've had powerful Rules Engines and Complex Event Processing for a good decade now and there are several powerful ones on the market, some even open source. Many of these engines though have been build around single albeit efficient applications running on a single machine. As we take Big Data head on we start to see the need to rules that we can distribute and complex events processing across our distributed system. Combining Pivotal's GemFire and C24's Integration Objects, naturally glued together with a little Spring, we can process millions of complex events in seconds. John will walk through some of the design and use-cases of these powerful system.

Session Detail



Taming Coupling & Cohesive Beasts with Modularity Patterns and Spring

close
Param Rengaiah

By Param Rengaiah

By now you should have heard about coupling and cohesiveness. These concepts, and their third cousin, polymorphism, is what we as developers chase day-in and day-out. They tease us with reusability and the promise of comprehensiveness of our code. They entice us with promises of code quality and testability. They came in the form of "Object Oriented' design, followed by GoF and SOLID Design Patterns, DDD, BDD.. but none of them delivered what they promised. Now, the new kids on the block are Functional Programming and Modularity Patterns.

What happens when you choose to go through large refactoring exercise on the back of Modularity Patterns, in a large, complex enterprise project? The journey was long, arduous and gruesome. On the way, I made many enemies and found some new friends. This talk will highlight the issues, both technical and otherwise, and how it was overcome; where did Spring help and where did it hurt. In the end, was it worth it? Come to this session and you will find out.

tbd



Researching Cancer In the Cloud - Using Spring,Neo4J,Mongo and Redis In the Cloud

close
Smitha Gudur and Manoj Joshi

By Smitha Gudur and Manoj Joshi

Cancer/life science drug research models are very rich in relationships, relationship heterogeneity and entity inter-dependencies. Most entity metadata is dynamic and unpredictable making it difficult to fit such models in traditional relational landscape. Redbasin Networks uses a hybrid Nosql strategy that supports composite and rich document metadata that is interconnected pervasively. Cancer and life science data is excessively nested. You will find this useful if you are building complex engineering and/or scientific applications, and need insights on how to merge data from many diverse data-sets and map it to an intuitive and effective graph database model.

We will show using code examples how complex metadata can be engineered using Spring, Neo4J and Mongo, to create useful drug insights for the drug researcher, and also provide a platform for technologists to build sophisticated life science applications.

Session Detail



IO, IO, it’s off to work we go

close
Adrian Colyer, Juergen Hoeller, Dave Syer, and Chris Beams

By Adrian Colyer, Juergen Hoeller, Dave Syer, and Chris Beams

Opening keynote

 



The rest of the dwarves…

close
Mark Fisher, Graeme Rocher, and Mark Pollack

By Mark Fisher, Graeme Rocher, and Mark Pollack

keynote