Join JBoss at JavaOne.

Monday, September 23

Apples and Oranges: The Highlights of Eclipse, IntelliJ IDEA, and NetBeans IDE [CON3477]

Which IDE do you use for Java development? Eclipse? NetBeans? IntelliJ IDEA? Do you know what its most powerful features are? Generally, developers stick to one IDE and configure it to match their daily programming needs. They don’t consider a different IDE, not really being aware of what they’re missing. Because comparing apples with oranges doesn’t make sense, let’s instead look at what the key problems are that each IDE tries to solve. Is a hybrid development environment imaginable, where each IDE is available? This session doesn’t do a “shoot-out.” It shows you what makes each IDE unique, in turn, and what specific problems it tries to solve. And hopefully you’ll attend the session and share your experiences.

Presenter: Max Rydahl Andersen
Location: Hilton - Continental Ballroom 4
Time: Monday, Sep 23 8:30 - 9:30 AM


Notify Your Mobile Clients by Integrating Push Networks and Java EE 7 [CON5073]

With the explosion of mobile devices and the internet’s becoming ubiquitous, there is a growing demand for building mobile applications that access Java EE 7 back ends. Mobile clients easily interact with them by using established industry standards such as REST/JAX-RS, but pushing data from the server to the device is hard, especially when the app is offline. Different mobile players have introduced their own push networks that can be used to deliver messages to a device even when the application is not running. This session shows how to integrate push solutions for iOS and Android with a Java EE 7 server. Java EE 7 offers “event-driven” APIs, such as JMS and CDI, that are suited perfectly to push-enabling your back end.

Presenters: Jay Balunas and Matthias Wessendorf
Location Parc 55 - Market St
Time: Monday, Sep 23 8:30 - 9:30 AM


Write Your First Ceylon Program with the Language Authors [HOL3043] 

In this session, two Ceylon team members help you learn the Ceylon programming language, hand in hand, from downloading the tools to using the IDE, getting to know the various tools and the language SDK, all the way to running your own module repository and publishing your first Ceylon modules to it and to the official Ceylon module repository. No knowledge of Ceylon is required, although the attendees should be familiar with the Java programming language.

Presenters: Stéphane Épardaud and Emmanuel Bernard
Location Hilton - Franciscan A/B/C/D
Time: Monday, Sep 23 12:30 PM - 2:30 PM


Case Studies in Testable Java EE Development [CON8001] 

Part 2 of last year’s Rock Star session “Today’s Rapid Java EE Development: Live Coding from Scratch to Deployment,” this session pulls a variety of examples in testable development from O’Reilly's Continuous Enterprise Development in Java, including a review of the sections on RESTful services, UI verification, Transactions, Security ...and covers other areas of the Java EE platform that have historically been branded as “difficult to test.” The session spends a lot of time in the IDE, with examples that are freely available to fork and run.

Presenters: Aslak Knutsen and Andrew Lee Rubinger
Location: Parc 55 - Mission
Time: Monday, Sep 23 1:00 PM - 2:00 PM 


Coding Java EE 7: Making Easy Even Easier [CON4456]

In this code-driven session, you will learn how to take a Java EE 6 application and leverage the new features in the Java EE 7 platform to further simplify the code. You will see how default resources allow you to replace commands specific to the application server to create these resources. Java Message Service has been renovated with all the modern language features and leverages dependency injection heavily to cut down on the boilerplate. Hacks for doing server-push are no longer required with the introduction of WebSocket. Third-party proprietary frameworks are not needed with the introduction of batch and concurrency. Learn more in this session.

Presenter: Lincoln Baxter III

Location: Parc 55 - Mission
Time: Monday, Sep 23 3:00 PM - 4:00 PM


Embedded DSL: Groovy and Scala Fair Duel [TUT4524]

What were you dreaming of doing as a kid? Did you get into programming because of games? Don’t you think programming is a great pedagogical tool? Join the fun in this session, and discover how to define a domain-specific language to move a turtle around and interact with her. In which language would you choose to write a DSL that reads as plain English? Dynamic or statically typed? Delving into the intricacies of embedded DSL design, step by step, you will see advanced techniques such as command chaining, syntax tree manipulation (AST transforms), type embedding (TypeChecked extensions), and runtime (MOP) and compile-time metaprogramming (macro). Two developers on scene doing live coding: Groovy hacker versus Scala nerd. Who will convince you?

Presenter: Corinne Krych

Location: Hilton - Continental Ballroom 1/2/3
Time: Monday, Sep 23 4:30 PM - 6:30 PM


Large-Scale Web Application Development BOF [BOF3349]

In today’s Web applications, the complexity of the code written for the browser rivals the complexity of the server-side code. Development teams collaborating on the same codebase are faced with the challenge of keeping their source code maintainable as it evolves and grows over time. There is a staggering array of choices, from home-baked JavaScript frameworks to compile-to-JavaScript approaches that aim to keep the application code manageable. Adding to this the spectrum of possible design patterns yields a huge range of approaches, each with their own advantages and drawbacks. In this BOF, members of the JBoss Errai project are prepared to kick-start an open discussion about scalable Web application architectures and philosophies.

Presenters: Jonathan Fuerth and Christian Sadilek
Location Hilton - Continental Ballroom 6
Time: Monday, Sep 23 6:30 PM - 7:15 PM


Geolocalized Search in Java EE 7 in 59 Minutes with Hibernate Search [BOF3307]

Search is passé; we need Foursquare-style location and should let people search in specific vicinities. And no, you don’t have to leave Java or Java EE to make this a breeze. This session shows you how to boost your existing applications by easily adding full-text search, spatial search, faceting, and even all at the same time! Faceted results return the list of results as well as their count by category—price range, brand, color, and so on. This session takes an existing Java EE 7–based application and adds search services via Hibernate Search. It favors code and step-by-step IDE work over slides.

Presenter: Emmanuel Bernard
Location Parc 55 - Mission
Time: Monday, Sep 23 7:30 PM - 8:15 PM


99 Ceylon Idioms [BOF3031] 

Ceylon’s goals are to be a powerful, readable, and predictable programming language as well as a full platform with modularity and tooling. But that´s not enough to describe the language. Come to this session to explore a few of the things that make Ceylon much more pleasant than Java. Properties, modules, null safety, class cast exceptions, dealing with collections, varargs, and generics: the presentation shows you the many things Java developers will love in Ceylon.

Presenters: Stéphane Épardaud and Emmanuel Bernard
Location Hilton - Yosemite B/C
Time: Monday, Sep 23 8:30 - 9:30 PM



Tuesday, September 24

Nuts and Bolts of Java EE 7 Interceptors [CON7771]

Java EE 7 interceptors play a key role in aligning managed beans across the Java EE 7 platform and are a powerful tool for managing cross-component concerns. This session discusses the role of Java EE 7 interceptors in supporting method-level bean validation, the new JTA declarative transactions, and expanded lifecycle callback hooks. It also describes these new features and showcases tips, tricks, and best practices for their use.

Presenter: Emmanuel Bernard
Location: Parc 55 - Mission
Time: Tuesday, Sep 24 11:30 AM - 12:30 PM


Rich HTML5 Web Apps: Typesafe Edition [CON4313]

In modern Web applications, the complexity of code deployed to the browser now exceeds the complexity of server-side code. Why write the simpler tier in toolable, typesafe languages but throw the constantly evolving user interface layer to the JavaScript wolves? Through compile-time source code translation, the Errai framework brings mature, proven, toolable Java enterprise programming models to the browser so your team can pole-vault over the complexity wall. In this session, members of the Errai team demonstrate how to build rich Web applications the toolable, typesafe way, without boilerplate. Errai offers a concise programming model to build next-generation Web applications by combining the best aspects of JavaScript and Java.

Presenters:Jonathan Fuerth and Christian Sadilek
Location: Parc 55 - Cyril Magnin I
Time: Tuesday, Sep 24 11:30 AM - 12:30 PM


Implementing Your Own Google App Engine [CON2117]

Google App Engine (GAE) is a popular PaaS offering. Its scalable and reliable environment is hidden behind a custom API. This makes GAE apps hard to port over to non-GAE environments. But what if you could implement a similar environment and simply move your GAE application’s .war file to this new environment and it would just work? After all, in, the end it’s all about the API, plus scalable and reliable services. The JBoss CapeDwarf project aims to make this a reality. This presentation provides a glimpse into what it takes to implement something as GAE, ranging from runtime integration with the JBoss Application Server and the actual services implementation to, last but not least, automated heavy testing.

Presenter: Ales Justin
Location: Parc 55 - Embarcadero
Time: Tuesday, Sep 24 11:30 AM - 12:30 PM


Building CDI Extensions [CON2667]

You’ve heard about Contexts and Dependency Injection (CDI) and the extensibility of Java EE 6. You may have also looked at Seam 3 or MyFaces CODI. You’ve seen enough to pique your curiosity. This session will sate that curiosity and give you enough information to build great extensions for your application and business. The presentation covers creating extensions in Java EE 6 and shows how using Apache DeltaSpike and the JBoss Way will ease some of the work.

Presenter: Jason Porter
Location: Parc 55 - Mission
Time: Tuesday, Sep 24 1:00 - 2:00 PM


The PaaS Panel: Platforms Go Head to Head [CON3975]

In this panel session, different platforms are represented by their gurus, who show off their wares via demonstrations and try to convince Java developers that their respective platform is superior. Come learn how to evaluate the different platform as a service (PaaS) platforms and how each one stands out in terms of different criteria such as ease of development, scalability, deployment, and security. You will be able to participate in discussions pertaining to cloud development in general and PaaS in particular. After attending this session, you will walk away with a good understanding of the strengths and weaknesses of each of these platforms and which platform might be best suited for your own solution.

Presenter: Grant Shipley
Location: Parc 55 - Market St
Time: Tuesday, Sep 24 1:00 - 2:00 PM


CDI 2.0 Community Roundup [BOF8002]

In this BOF, a panel discusses the present and future of the Contexts and Dependency Injection (CDI) specification as it relates to 2.0. It is open to the community for input, and Expert Group members have been invited to sit on the panel.

Presenter: Andrew Rubinger
Location: Parc 55 - Cyril Magnin II/III
Time: Tuesday, Sep 24 4:30 - 5:15 PM


Navigating the Seas of Change: Seam and CDI [BOF2668]

Your applications are built on Seam 2 already, and you love it, but you’ve heard about this Java EE 6 thing. How do you take advantage of it? You’ve also heard rumors about Seam 3 and something called DeltaSpike. What are those? In this presentation, you’ll learn about what’s going on with Seam 2, the situation with Seam 3, and CDI extensions built upon Apache DeltaSpike. Attend this session to plot your course through the turbulent waters.

Presenter: Jason Porter
Location: Parc 55 - Cyril Magnin II/III
Time: Tuesday, Sep 24 6:30 - 7:15 PM


What’s Next for the Java EE Connector Architecture [BOF7904]

The Connector architecture is a key standard on the Java EE platform for enterprise application integration. It provides the ability for an application to work with disparate enterprise information systems (EISs) such as messaging middleware and transaction monitors. This session details the new features added to the Connectors specification in the Java EE 7 specification and discusses potential enhancements to the standard in a future version. Come and share your views on how the standard must evolve. This discussion is led by the specification lead and the expert group members of the Connector specification.

Presenter: Jesper Pedersen
Location: Parc 55 - Mission
Time: Tuesday, Sep 24 5:30 - 6:15 PM



Wednesday, September 25

Testing the Enterprise Layers: The ABCs of Integration Testing [CON5606]

For years developers have been exploring how to layer and separate code to test it in isolation on the unit level. It has kept integration and functional testing as a big ball of mud, jumping straight from unit to full system testing. But could some of the same lessons learned from unit testing apply to integration testing? Is it possible to isolate and stay real at the same time? Do mocks, stubs, and test doubles have a place in the world of integration testing? Are there other lessons to be learned? This session explores the different technologies within the enterprise Java specification and shows how enterprise Java applications can be tested in isolation—layer for layer, module for module, and component for component.

Presenters: Aslak Knutsen and Andrew Lee Rubinger<
Location: Hilton - Continental Ballroom 5
Time: Wednesday, Sep 25, 8:30 AM - 9:30 AM


Bean Validation: What Does It Look Like in Practice? [CON3368]

Java EE 7 is a very rich environment. This session takes you on a practical code-driven Bean Validation walk-through: how to use it in your applications and what not to do—all with an example-driven approach. The presentation gradually adds constraints and validations to an existing application and examines many features, both old and new, including constraint declaration, custom constraint, method validation, EL-based message interpolation, JAX-RS integration, and many more. It spends as much time as possible in the IDE. No previous knowledge of Bean Validation is required.

Presenter: Emmanuel Bernard
Location: Parc 55 - Cyril Magnin II/III
Time: Wednesday, Sep 25 11:30 AM - 12:30 PM


Expanding Enterprise Tooling for Java EE and Mobile [CON4607]

Enterprise Java tools and mobile development tools have traditionally been disconnected from each other. This session demonstrates how the integration of the tools targeted for the two domains benefits developers. JBoss Tools, which is known for its Java EE–related functionality, has added new features to ease the development of cross-platform mobile applications with Apache Cordova. The presentation demonstrates how you can easily utilize your existing Java EE back end and Web development expertise to create a mobile application.

Presenter: Jay Balunas
Location: Hilton - Continental Ballroom 4
Time: Wednesday, Sep 25, 3:00 PM - 4:00 PM


Effective Foreign Function Interfaces: From JNI to JNR [CON4767]

What do you do when your application needs access to platform features that aren’t available in the Java platform? You need a foreign function interface (FFI). The Java Native Interface (JNI) is the classic power tool for calling native code from your Java program. Using JNI means stepping out of the managed safety of the JVM into the wilds of native code. This session explains the most common JNI performance and correctness pitfalls and explains how to find and avoid them. As the JVM becomes the runtime of choice for more languages, the FFI landscape is also evolving. This session introduces alternative FFI approaches that minimizes effort (SWIG) and native code. It examines JNR in detail and shows how alternatives perform relative to handwritten JNI.

Presenter: Tom Enebo
Location: Hilton - Yosemite A
Time: Wednesday, Sep 25, 4:30 PM - 5:30 PM


Thursday, September 26

If You Think You Can Stay Away from Function Programming, You Are Wrong [CON2962]

Everybody agrees that concurrency and parallelism are two of the most important aspects of today’s and tomorrow’s programming. However, after years of object-oriented programming, we take for granted a style—including mutable data and locks and synchronizing access to them—that often proves to be inefficient and very error-prone. This presentation shows the principles of functional programming and how it can make the development of concurrent applications easier and more natural, facilitating the full exploitation of the potential of modern multicore CPUs.

Presenter: Mario Fusco
Location: Hilton - Continental Ballroom 4
Time: Thursday, Sep 26, 2:00 PM - 3:00 PM


Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7 [CON7828]

This session discusses the promise of interoperability in the Java EE 7 platform and what has been done—even now, at its time of release—to maintain this. The session shows how a Java EE 7 application can be easily built using NetBeans and JBoss development tools. This application can then be deployed on JBoss, GlassFish, and Oracle WebLogic, showing the promise of interoperability. The state of Java EE 7 compliance for different application servers is discussed and demonstrated using live demos.

Presenter: Max Rhydal Andersen
Location: Parc 55 - Cyril Magnin II/III
Time: Thursday, Sep 26, 2:00 PM - 3:00 PM


Polyglot Enterprise Development on the JVM [CON2382]

In the past decade, many promising non-Java languages have targeted the JVM as an ideal runtime. However, from Ruby to Lisp and JavaScript, developers are now finding that they need enterprise capabilities, such as messaging or transactions, that their Java counterparts have taken for granted for more than a decade. In this session, you will see that rather than reinventing the wheel, it is possible for developers using these non-Java languages to utilize many of the capabilities in a Java EE 6 application server and, importantly, do so in a way that makes sense for their community. The fact that Java implementations underlie these approaches can be completely hidden. The session includes a look at some illustrative successful community projects.

Presenter: Mark Little
Location: Hilton - Yosemite B/C
Time: Thursday, Sep 26, 2:00 PM - 3:00 PM


Java EE 8 and Beyond [CON2406]

In this session, the participants in a distinguished panel of industry and open source luminaries discuss where they believe the Java EE community is headed. The focus of Java EE 8 is mostly on the cloud, specifically aiming to bring platform as a service (PaaS) providers and application developers together so that portable applications can be deployed on any cloud infrastructure and reap all of its benefits for scalability, elasticity, multitenancy, and so on. Most importantly, Java EE will leverage the modularization work in the underlying Java SE platform. Java EE will, of course, also update itself for trends such as HTML5, caching, NoSQL, ployglot programming, MapReduce, JSON, REST, and improvements to existing core APIs.

Presenter: Mark Little
Location: Parc 55 - Cyril Magnin II/III
Time: Thursday, Sep 26, 3:30 PM - 4:30 PM


The Emerging Languages Bowl: The Quest to Be in the Big Leagues [CON4892]

Scripting languages that are emerging and not yet mainstream vie with each other to stake a claim that they have the potential to become mainstream and be considered to be in the big leagues. Don’t miss this panel discussion, in which these emerging languages are portrayed by their respective champions, who explain how they may help your everyday life as a Java developer. To present a complete picture, the session includes some languages that may not run on the JVM. Afterward you will have a better grasp of the emerging languages and the ecosystem. One or more of the languages may catch your fancy for doing development alongside Java

Presenters: Stéphane Épardaud, Charles Nutter
Location: Hilton - Yosemite B/C
Time: Thursday, Sep 26, 3:30 PM - 4:30 PM