Spring always provided sophisticated support for various Java data access technologies. The lately coined Spring Data project now takes the next step and introduces a consistent programming model for non-relational data stores and 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 the specialties of particular modules using MongoDB as example.
by Adam Bien
Today, developers can take things to the extreme and develop Java EE applications in a “conventional” way, or you can take advantage of Java EE 6's new possibilities for the “pragmatic” implementation of concepts. In this workshop, we will look at Java EE 6/7 projects using a holistic approach, starting with packaging with Maven, and covering topics including embedded integration and stress tests with Jenkins. In addition to the entire life cycle of the software, we will discuss and implement web UI, configuration, logging (Injection,) asynchronous processing, pro-active monitoring, clustering, timer, Comet / asynchronous servlets, stateful persistence, alternative protocols such as Hessian, unit and embedded integration and stress tests, continuous integration / fitness tests, Java EE 6 deployment and packaging, CDI, EJB, JPA, JAX-RS and much more.
The Web is fast becoming a serious competitor to traditional enterprise architecture approaches. This full day workshop will provide an introduction to RESTful Web Service techniques, both from a theoretical and practical perspective. This full day workshop is broken down as follows: * Introduction and Motivation * The Web Architecture * Simple Web Integration including POX and URI tunnelling * CRUD Services using URI templates and HTTP * Semantics using Microformats and RDF * Hypermedia and the REST architectural style * Scalability and how a text-based client-server polling protocol outperforms everything else! * ATOM and ATOMPub for event-driven and pub/sub applications * Security * Conclusions and further thoughts Participants should be comfortable with distributed computing concepts, but won't need any particular integration or middleware experience.
by Ted Neward
Never programmed in Android before? Want to learn by doing? Or do you just have a desire to be tossed into the deep end of the Android pool? Welcome! In this all-day workshop, bring your laptop, because we’re going to write an Android application for an Android 2.2 device, code-named "AWTY", short for its working release title, "Are We There Yet?". Marketing described the app as follows: "Remember when you were a kid, and annoyed the heck out of your parents on long road trips, asking 'Are we there yet?' over and over again? Well, you're all grown up now, but why should your parents feel like anything's different? Why give them the chance to miss you? With the 'Are We There Yet?' application, you can send them SMS messages every couple of minutes, just to make sure they know you're still there! Or, better yet, give the phone to your kids, and let them bug Grandma and Grandma instead of you!"
This is a “learn by doing” session: you will be writing code, instead of just listening to some guy talk or watch a demo. We’re going to take the “fast path” through the Android ecosystem, so for best results:
bring your laptop, pre-installed with the JDK, Apache Ant, and Android SDK on it (and download the Android 2.2/API-8 package and documentation ahead of time—the conference WiFi won’t be able to handle all of you downloading it at once, nor will you have time to do so in the workshop), as well as your favorite text editor or IDE. (If you use an IDE, be sure to have the Android plugin for it installed ahead of time as well.)
bring an Android device, ideally one to which you have already deployed a “Hello World” app (which can be easily generated using either the command-line tools or your IDE)
be comfortable and familiar with the Java language and environment
Spring is widely used in the Java world - but does it make any sense to combine it with Scala? This talk gives an answer and shows how and why Spring is useful in the Scala world. All areas of Spring such as Dependency Injection, Aspect-Oriented Programming and the Portable Service Abstraction as well as Spring MVC are covered.
by Dave Syer
Application and platform security requirements are changing under the influence of standards like OpenID and OAuth2, and the increasing demand for lightweight and multi-language platforms. Everyone used to be happy if they could implement single sign on for their Java web applications. That's still important, but there is a growing demand for more extensive Identity Management services, both in the enterprise and for public web applications. CloudFoundry is a nice use case for this new service model: it has multi-language support and security requirements that go beyond simple single sign on. What does that mean, and what does it mean for Spring Security? Come to this presentation to find out.
by Sam Brannen
Spring 3.1 introduces 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 with 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.
by Dave Syer
Spring Batch has a large user base and a good track record in production systems, but what is it all really about, and why does it work? This presentation provides a short bootstrap to get a new user started with the Batch domain, showing the key concepts and explaining the benefits of the framework. Then it goes into a deeper dive and looks at what holds it all together, with a close look at some of the most important but least understood features, including restart, retry and transactions.
There are many tools out there to help developers working with the Spring framework and its manifold extensions. But it's not always easy to choose the right tool for the job. This talk guides you through the tooling landscape for Spring and illustrates when to use Spring Roo, WaveMaker or the SpringSource Tool Suite. Demos and examples give the audience first-hand insights and useful hints how to use and combine those tools effectively.
This is your chance to ask any questions you might have and discuss the future of the Spring technology stack. The speakers will be available to take your feedback and talk about their subjects in more detail.
by Ian Robinson
Doctor Who is the world’s longest running science-fiction TV series. Battling daleks, cybermen and sontarans, and always accompanied by his trusted human companions, the last Timelord has saved earth from destruction more times than you’ve cursed Maven. Neo4j is the world’s leading open source graph database. Designed to interrogate densely connected data with lightning speed, it lets you traverse millions of nodes in a fraction of the time it takes to run a multi-join SQLquery. When these two meet, the result is an entertaining introduction to the complex history of a complex hero, and a rapid survey of the elegant APIs of a delightfully simple graph database. Armed only with a data store packed full of geeky Doctor Who facts, by the end of this session we’ll have you answering questions of the Doctor Who universe like a die-hard fan.
by Adam Bien
Although you can build Java EE 6 applications with only a fraction of the code that’s necessary with J2EE, many projects are still based on the bloated and exaggerated J2EE patterns and best practices. This session discusses how to build lean applications in a productive and maintainable way. The following pragmatic tools, patterns, and best practices will be covered with working source code, which are especially interesting to Java EE developers and architects: - Mixing CDI, JPA, EJB, JSF, and JAX-RS to save code - Mocking, unit testing, stress testing, and integration testing - Continuous integration and build (Maven 3, Git) - Efficient data access without DAOs - CAP and BASE - Asynchronous CDI events for decoupling and pub/sub - Pro-active JMX monitoring instead of logging
So you want to do continuous delivery but is it working and how does the team and the organisation know what's going on? Using wallboard, information radiators and even just bits of paper stuck to the wall can help you manage all your development. Covering the many ways companies have visualised the mashinations of their work and providing tips on setting up your own uber information radiators.
Many product backlogs I have come across are not managed very well: They either contain too much or too little information, ranging from literally a handful of user stories to many hundred items. This talk provides ten practical tips that help you to stay on top of it. The tips include making the product backlog DEEP, understanding what "ready" means, and how the backlog can be visualised.
by Emanuel Muckenhuber
Besides its modular architecture, JBoss AS 7 introduces a simplified configuration model and the ability to manage complex multi-server environments. This presentation will cover the core concepts behind the configuration and management model, with an emphasis on managing and deploying to multiple AS instances as part of a managed domain. Additionally, we will look into the detyped API, operation- handlers and how Extensions (Subsystems) actually integrate and interact with the management services.
Heroku is a Polyglot Cloud Application Platform that makes it easy to deploy Java & Play! apps to the cloud. With no servers, routers, load balancers etc. to manage, you’re free to focus entirely on your code and deployment is as simple as doing a "git push". This session will teach you how to deploy and scale Java & Play! apps on Heroku.
by Arun Gupta
This talk introduces the Java EE 7 platform, the latest revision of the Java platform for the enterprise. The focus of Java EE 7 is on the cloud, and specifically it aims to bring Platform-as-a-Service providers and application developers together so that portable applications can be deployed on any cloud infrastructure and reap all its benefits in terms of scalability, elasticity, multitenancy, etc. Furthermore, Java EE 7 continues the ease of development push that characterized prior releases by bringing further simplification to enterprise development. It also adds new, important APIs such as the REST client API in JAX-RS 2.0 and the long awaited Concurrency Utilities for Java EE API, and plenty of improvements to all other components.
by Sam Newman
Much FUD has been spread by traditional infrastructure vendors regarding the 'public' nature of many IAAS providers. The reality however is that the world does not fit cleanly into these two desecrate camps. When understanding what offering is right for you, there are significantly more important distinctions to draw than terms used by marketing departments.
So you think you don't need craftsmanship? That it doesn't apply to your company? No time and it's just about silly exercises? Your company has no technical debt. Maybe you have a long career path ahead of you with lots of options besides management. Motivation, quality and agility are always high. If so, count yourself lucky. For everybody else: can you afford to ignore craftsmanship any more?
by Jason Gorman
Making the business case for software craftsmanship, this talk will draw on industry data and personal experiences to dispel the myth that tech start-ups need to start with something "quick and dirty" to get to market quickly.
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 shows you how to build Grails projects with Ant and Maven; what's involved in talking to legacy databases; and how to talk to Java components.
by Simon Maple
Developer productivity is paramount. We cannot live in a world where developers are resting, drinking coffee, enjoying themselves or talking to other people. This does not produce code. Unacceptable! The new WebSphere Application Server V8.5 Alpha tools and runtime have been designed around developer productivity. They truly are super lightweight and lightning fast. We will look at how the Liberty Profile has been designed to meet the high expectations of a development environment, while maintaining it's best of breed attributes around robustness, scalability and transactional integrity. Don't just take my word for it, there will be live demos so you can see the server start in seconds for your own eyes! With developer tools this fast, we can afford to spend some time away from coding, so there will be some coffee related prizes during the session!
Comprehensive automated unit testing, and the more extreme practices of Test–first and Test–Driven Development, have become very popular, but to what end? To date evidence of their effectiveness remains equivocal. Such evidence tends to focus on external quality attributes such as latent defect rates. Here is evidence that Java code which is accompanied by comprehensive automated unit tests has at least one design characteristic which is quantitatively different from that typical of code which does not: code with tests is more strongly biased towards simpler methods. This talk will explore the way that complexity is distributed through code and how TDD seems to affect that.
Cloud Platforms or PaaS are the next wave of middleware: people are looking at finding complete platforms that can scale from a single instance to running complete enterprise apps as a service. Paul Fremantle will describe what a PaaS is, look at the PaaS offerings available and then dig deep into an Apache-based Open Source PaaS, looking at installation, multi-tenancy, scaling, coding, and more.
This session gives deep insight in the JBoss OSGi subsytem that is available in JBoss AS7. Starting with background information on OSGi in general, Thomas introduces the main objectives of this technology and explains the unique JBoss OSGi vision. Combining the best of two worlds we show how modern Enterprise Applications on AS7 can use the OSGi component model and vice versa.
This session explores Apache TomEE, pronounced “Tommy”, an all-Apache Web Profile stack built on Tomcat, which adds all the Java EE Web Profile features, while taking nothing away. The session will show you how to get started with TomEE, how to use it with a sample application, and how you can test your application with TomEE using tools like Arquillian.
by Adrian Cole
Key/value stores are the most common storage offerings in the cloud today. We'll introduce storage concepts and differences between cloud storage providers including Amazon S3, Rackspace Cloud Files & Microsoft Azure Blob Service. We'll demonstrate how jclouds BlobStore helps Java and Clojure developers avoid lock-in and increase testability without restricting access to provider-specific features
With the increasing ubiquity of multicore and hence parallel systems people are needing better ways of structuring applications than using shared-memory multi-threading. In this session we will look at actors, agents and active objects -- and their implementation in GPars. GPars is a Groovy/Java framework for managing concurrency and parallelism. It leverages all the JSR166 APIs.
by Mike Bassett and Roman Pichler
The drive continues to make games ever more realistic. At the core of enhancing the player’s experience and of simulating reality, is the physics engine. Take Electronic Arts’ SPORTS FIFA 2012 football game: EA’s physics engine combined with sophisticated animation and artificial intelligence technology brings a level of believable player interaction and emergent behaviour never seen before in a sports title. This talk tells the story of a journey into the brave new agile world: We’ll share the success and joy as well as the trials and tribulations of the development group responsible for EA’s physics engine located in Guildford, Surrey. We'll talk about the application of Scrum and Kanban to develop new engine features and to research new technologies, and we'll demonstrate the engine's power with a few video clips.
Originally created for embedded and mobile appliances, OSGi has become a widespread foundation for building modular and dynamic applications on top of the Java platform. Despite its maturity and proven track record, OSGi is more than often referred to as a source of significant complexity for no actual benefits. In this presentation, we will show you how OSGi, CDI and Weld nicely fit together in Weld-OSGi to assemble regular and dynamic components with no added complexity on the developer side.
The agenda of the presentation is the following:
- CDI, a really nice tech for Java EE environments - ... and more ?
- OSGi, deep dive into a modular and dynamic world
- Meet Weld-OSGi
- Weld-OSGi design
- Features and programming model
- Pro and cons
- Back to the future !
- Demo: real life app with Weld-OSGi
First part of the presentation is about CDI technology, how you can use this amazing piece of tech inside and outside Java EE containers with Weld and how Weld wasn't yet available for OSGi environment despite its amazing assets. Then the Weld-OSGi framework will be presented after a small summary about OSGi platform. We'll see how the framework is designed and how it enhances standard OSGi bundles with the power of CDI. Each major feature of the framework will be simply explained with short examples. We'll also see how you can benefit from this framework in your modular applications. We will present the future of the Weld-OSGi framework and how we plan to enhance it and integrate it with other techs. Then the presentation will end on a real life app demo written with Weld-OSGi.
31st October to 2nd November 2011