Join JBoss at JavaOne.

Monday, September 23

Sunday, September 28

How to Build Enterprise Mobile Apps That Integrate with Your Java EE Back End [TUT6006]

Are you a Java developer and want to develop a mobile app that connects to a secured Java EE back end, but you don’t know where to start? This session is tailored for you. This live coding session, driven by Java and using a familiar development environment, goes step by step through building a complete mobile, hybrid, multiplatform application ready to be distributed on different vendors’ stores, such as the Apple store or Google Play. Starting from scratch, the tutorial takes you through building a simple Java EE application and, from there, scaffolding a mobile web client and turning it into a native app, including Android and iOS. This is an in-depth session in which the attendees will learn concretely, and without using hipster tools, how to enter the mobile world."

Sébastien Blanc
Time: 8:30 AM - 10:30 AM
 

Free Java Tools for Maven and Java EE [UGF8872]

Working closely with Java EE and application server engineers, the NetBeans team has created the best-in-breed environment for developing Java EE applications with Maven. This panel discussion includes demos of Java EE applications with Maven in the real world, in the context of how NetBeans has assisted in their development, and covers the future of these applications in relation to cloud and HTML5 technology.

Markus Eisele
Time: 11:00 AM - 11:45 AM
 


Monday, September 29

Java EE 7 Soup to Nuts [TUT1952]

Good applications are a mix of powerful technologies and a productive approach to development. This tutorial walks you through the combination of Java EE 7 and a variety of technologies that can help you develop your applications. You will learn about the pros and cons of different Java EE 7 tooling options such as Eclipse, NetBeans, IntelliJ, and Forge. An application is then locally deployed on WildFly and GlassFish and to Red Hat’s free PaaS in the cloud, OpenShift. The tutorial also shows container-independent testing with Arquillian and demonstrates continuous integration using Jenkins in different development environments. You’ll also learn about rapid application development with JRebel and integration with multiple app servers.

Arun Gupta
Time: 8:30 AM - 10:30 AM
Location: Parc 55 - Market St

Introducing Contexts and Dependency Injection [CON5004]

Contexts and Dependency Injection (CDI) for Java EE is an elegant set of services for Java that draws upon ideas from JBoss Seam and Google Guice. Although many of the features provided (dependency injection, contextual lifecycle, configuration, interception, event notification) are familiar, the innovative use of meta-annotations is uniquely expressive and type safe. This session introduces CDI and, using simple examples, illustrates how it enhances the Java programming model.

Antoine Sabot-Durand
Time: 12:30 PM - 1:30 PM
Location: Parc 55 - Cyril Magnin I

Transactions Returning to NoSQL [CON2129]

Over the last few years, we have seen the rise of NoSQL and big data. The CAP theorem is often cited as a reason for many of the architectural decisions used in the development of NoSQL, and one consequence is that most implementations do not support transactions. This lack of transactions offers benefits for some applications, but it has certain downsides, particularly in terms of fault tolerance and integrating with existing Java EE applications. As a result, the last year or so has seen many NoSQL implementations adopt transactions in one way or another. This session examines this trend back to adopting transactions, why it is happening, and what it means for the future.

Mark Little
Time: 12:30 PM - 1:30 PM
Location: Parc 55 - Embarcadero

Diagnosing Performance Issues with Thermostat [CON2662]

Debugging performance problem can be a daunting task, especially when you are short on time and lack proper tools that will integrate seamlessly into your workflow. Thermostat was designed to answer all questions related to performance measurement. It takes advantage of all the performance metrics and serviceability features of OpenJDK to provide a holistic view of the system. In this session, attendees will get a chance to see Thermostat in action as it is used to analyze programs, gather data, and debug issues affecting performance and functionality.

Mario Torre, Omair Majid
Time: 2:30 PM - 3:30 PM
Location: Parc 55 - Mission

Going Farther with CDI 1.2 [CON5585]

In less than five years of existence, Contexts and Dependency Injection (CDI) has become one of the major specifications in Java EE. CDI 1.1 and 1.2 proved to be the best solutions to naturally extend Java EE 7. In this session, the co-spec lead of CDI covers advanced CDI topics such as metadata injection manipulation, portable extension development, and new context creation. The session is also an occasion to discuss the CDI ecosystem and the Apache DeltaSpike project.

Antoine Sabot-Durand
Time: 5:30 PM - 6:30 PM
Location: Parc 55 - Cyril Magnin I

Fast-Developing CRUD-like Applications with Java EE 7 [BOF2695]

In this session, you will learn how to develop a Java EE 7 application with JBoss Forge 2 in seconds and deploy it on a Java EE 7–compliant server such as Oracle WebLogic.

Lincoln Baxter III, George Gastaldi
Time: 8:00 PM - 8:45 PM
Location: Moscone South - 252

CDI 2.0 BOF [BOF5639]

In this BOF, the speakers will hold an exchange with CDI users about the planned features in CDI 2.0. The objective is to gather feedback and prioritize new features that the CDI Expert Group wants to introduce in the next major version, which will be part of Java EE 8.

Antoine Sabot-Durand
Time: 8:00 PM - 8:45 PM
Location: Moscone South - 306

So Many Mapping Choices—So Much Fun! [BOF1693]

You want to make a mapping application sexy-sexy like Google Maps. There are multiple means to add spatial functionality to your Java application. This presentation starts with a brief look at NoSQL options and then takes a spatial REST service that uses JAX-RS and CDI and swaps out the data store underneath. The presenter uses MongoDB, Lucene Spatial, and PostGIS with Hibernate Spatial. Although he uses Java, these same kinds of tools can be used with many languages. You’ll see code and demos for each implementation and get some recommendations on how to select the right data store for your use case. By the end, you will see a full mapping application running with each of the data stores, using Java EE 6.

Shekar Gulati, Steven Citron-Pousty
Time: 8:00 PM - 8:45 PM
Location: Moscone North - 130


Tuesday, September 30

Devoxx4Kids for Parents [TUT1878]

Devoxx4Kids is a global effort to inspire teenagers and kids in computer programming, robotics, and electronics. This is achieved by delivering workshops on Scratch, Minecraft modding, Java programming, Greenfoot, Raspberry Pi, Arduino, NAO robots, and a variety of other topics. This hands-on lab shares the materials used in these workshops and provides guidance on how to use them. The attendees will experience several simulated workshops and learn tips on how to allocate time for different activities to provide a joyful and fun experience. The lab also provides tips on how to open a local Devoxx4Kids chapter. If you are a parent or would like to run these workshops in your local neighborhood, this workshop is for you!

Arun Gupta
Time: 8:30 AM - 10:30 AM
Location: Hilton - Imperial Ballroom A

JavaScript in the Enterprise [CON1747]

Instead of exclusively using JavaScript on front ends, what else can be done with it on Java EE servers? This session looks into Nashorn, Avatar, the scripting JSR, and other possible options for also using JavaScript as an enterprise workhorse.

Markus Eisele
Time: 11:00 AM - 12:00 PM
Location: Parc 55 - Mission

Vert.x + WebSocket + Cloud = Awesome Map Tracking [CON1695]

You have started to hear about microservices, evented async servers, and WebSocket. Now be prepared to jump in with Vert.x. This session presents a basic introduction to Vert.x and its architecture. The presenter spins up a Vert.x server in less than three minutes in the cloud and then shows how he built a WebSocket asset tracking application with Leaflet and a Vert.x back-end application. He builds an application that pushes real-time flight tracking data to all the browsers in the room. At the end of the session, you should be able to go home and start writing your own scalable, (a)synchronous, WebSocket-enabled map tracking application

Steven Citron-Pousty
Time: 11:00 AM - 12:00 PM
Location: Parc 55 - Market St

The Path to CDI 2.0 [CON4294]

With less than five years and three releases under its belt, CDI has proven itself to be a great asset for Java. The many features it provides (dependency injection, contextual lifecycle, configuration, interception, event notification, and more) and the innovative way it provides them (through the use of meta-annotations) explain its rapid adoption. This session reviews the features introduced in CDI 1.1 and 1.2 and discusses improvements planned for CDI 2, such as standard support for Java SE and a light CDI version useful for embedded environments, showing how it will benefit Java.

Antoine Sabot-Durand
Time: 11:00 AM - 12:00 PM
Location: Parc 55 - Cyril Magnin II/III

Shenandoah: An Open Source Garbage Collector (JEP 189) with an Ultralow Pause Time [CON5216]

Back in the Lisp machine days, hitting a GC pause meant that it was time to go get a cup of coffee. JVMs do better by using parallel (multiple threads working together) and concurrent (GC threads working while the mutator is running) techniques, but they can still cause unacceptably long pause times with today’s large heaps. This session discusses a new GC algorithm being developed at Red Hat for OpenJDK. Shenandoah is the first open source GC algorithm for OpenJDK that does marking and evacuation concurrently with running Java threads. Performing evacuation concurrently makes it possible to hit much stricter response time goals.

Christine Flood
Time: 11:30 AM - 12:30 PM
Location: Hilton - Yosemite A

Lessons Learned from Real-World Deployments of Java EE 7 [CON2450]

Java EE 7, released over a year ago, introduced several new technologies such as WebSocket, Batch, and JSON. There are already three compliant application servers: WildFly, GlassFish, and Tmaxsoft. NetBeans, Eclipse, and IntelliJ provide extensive tooling support for the APIs. What are the best practices for building and deploying Java EE 7 applications? What to do and not to do? This session takes three Java EE 7 applications running in production and shares lessons learned from each one. It attempts to answer questions such as Is WebSocket ready for production? How do we migrate from Spring Batch to JSR 352 batch? Any change in DevOps? Are additional libraries still needed? Which is more prominent, EJB/JSF or REST/JavaScript?

Arun Gupta
Time: 12:30 PM - 1:30 PM
Location: Parc 55 - Cyril Magnin I

Going Native: Bringing FFI to the JVM [CON3979]

Write once, run anywhere has served us well over the years, but eventually everyone needs to use code that doesn’t run on the JVM. There are native libraries out there for crypto, graphics, data stores, computation, user interfaces, and much more, but they’ve been hard or impossible to use from JVM-based code. Until now. The Java Native Runtime (JNR) is a high-speed foreign function interface (FFI) for calling native code from Java without ever writing a line of C. Based on the success of JNR, JDK Enhancement Proposal (JEP) 191 will bring FFI to OpenJDK as an internal API. And hopefully a JSR for Java 9 will tightly integrate and standardize an FFI API. Learn more in this session. This talk will explore current and future FFI options, and show you how to help.

Charles Nutter
Time: 12:30 PM - 1:30 PM
Location: Hilton - Yosemite A

Ceylon from Here to Infinity: The Big Picture and What’s Coming [CON3078]

Ceylon is a new modern, elegant programming language for the JVM and the JavaScript VM, designed for teamwork. But it’s more than that: it is a full platform with modularity, an SDK, tools, and IDEs. This session presents Ceylon the language, the platform, and its ecosystem. You will see everything from starting a new project in the IDE to publishing it on Herd, Ceylon’s module repository, including using the SDK. The presentation also discusses ongoing Ceylon projects such as the build system; Vert.x integration; and Cayla, the new web framework. Finally, it looks at the plans for Ceylon 1.1, 1.2, and further.

Stephane Epardaud
Time: 4:00 - 5:00
Location: Hilton - Continental Ballroom 7/8/9

Integration Testing for Java Apps on Oracle WebLogic Server 12c Done Right [BOF9309]

Customers are moving to Java EE 6 on Oracle WebLogic Server 12c. To ensure good code quality when building a new project or while migrating an existing project, it is crucial to have a solid test suite. This session covers how to take advantage of Oracle WebLogic Server 12c Maven support and how to define integration tests that will run against your Oracle WebLogic environment, taking full advantage of real Java Message Service (JMS) and JDBC resources and testing JavaServer Faces navigation and business objects. It also shows how you can configure this in your continuous integration environment.

Aslak Knutsen
Time: 6:00 PM - 6:45 PM
Location: Moscone South - 300

OpenJDK Adoption: Learn How You and Your JUG Can Contribute to Java’s Future [BOF4884]

Many of us know about the OpenJDK and the fact that it is now the open source reference implementation for the JDK, but do we know what goes on behind the scenes? You have hopefully also seen an OpenJDK hackday being run by your local JUG, or perhaps an OpenJDK hackergarten event at a recent conference, but do you wonder how these things are organized? Perhaps most importantly, do you want to get involved yourself or help your JUG get involved? If so, this is the panel for you! Attend this session for a lively discussion of all things OpenJDK, and please be sure to bring lots of questions.

Mario Torre
Time: 7:00 PM - 7:45 PM
Location: Hilton - Golden Gate 4/5

Modding Minecraft with a Dash of Ruby [BOF6279]

Minecraft is a gaming sensation that has sold more than 14 million copies. It presents a blocky world in which you can rip down and build up as you see fit. Construct buildings, fight monsters, or dig expansive tunnels. A killer Minecraft feature is that you can run your own server and tweak the rules. The Java API for doing this is called Bukkit. Want your own teleportation system? Want to control the weather? Make the game behave the way you want it to. This session introduces a Ruby API on top of Bukkit called Purugin. The presentation weighs the merits of a statically typed language such as Java versus dynamically typed languages, discussing trade-offs in a fun format. Sit back and enjoy an entertaining talk on modding a fantastic game.

Tom Enebo
Time: 7:00 PM - 7:45 PM
Location: Hilton - Continental Ballroom 7/8/9

The Rise of Mobile Enterprise Software [BOF7164]

Mobile enterprise applications have begun to influence the development, sales, and consumption of enterprise software. It has become imperative for organizations to cater to their users’ increasing use of smartphones and tablets. What is your strategy for riding the enterprise mobility wave? Attend this session to share how you are addressing this challenge and to find out what other developers and vendors are doing to successfully mobilize the enterprise.

Sébastien Blanc
Time: 7:00 PM - 7:45 PM
Location: Parc 55 - Market St

The Large-Scale Web Application Development BOF [BOF2260]

The code we write for the browser now exceeds the complexity of our server-side code. Development teams collaborating on the same codebase are faced with the challenge of keeping their source code maintainable as it bends to new requirements and grows over time. From home-baked JavaScript frameworks to compile-to-JavaScript approaches that aim to keep the application code manageable, the array of framework choices is staggering. Add to this the spectrum of possible design patterns, and we face a huge range of approaches, each with their own advantages and drawbacks. In this BOF, members of the JBoss Errai and UberFire projects are prepared to kick-start an open discussion about scalable Web application architectures and philosophies.

Christian Sadilek, Jonathan Fuerth
Time: 8:00 PM - 8:45 PM
Location: Hilton - Imperial Ballroom B

Using Java 8 to Process Government Open Data [BOF6697]

This session shows how the latest Java release has the tools for creating useful applications to help citizens to explore open data of their government. Governments generate lots of files with data about public transportation, education, health, government finances, and more, but these files aren’t ready for use by citizens, because they usually use a non-human-readable format. Using JavaFX, Nashorn, lambdas, and the Stream API, we can create rich applications that access data from government and make it easier for citizens to interact with the information. If you are a Java programmer and want to know how to use your skills to create something cool and useful, don’t miss this session.

William Siqueira
Time: 8:00 PM - 8:45 PM
Location: Hilton - Plaza B

Mobile Security B-Sides, or the Pitfalls of Application Development [BOF4495]

In the early ages of mobile development—10 years ago—developers didn’t have too much to worry about. Devices had limited resources, user experience was not that good, and we didn’t even have 3G networks. The chances of having malware scanning a user’s device were unlikely. Today there are a myriad of platforms for mobile development, which means more options, more risks, and more confusion. Android, iOS, and hybrid applications can be powerful and flexible, but at the same time, they must be developed with security in mind. Learn more in this session.

Bruno Oliveira
Time: 9:00 PM - 9:45 PM
Location: Hilton - Golden Gate 6/7/8

JSR 347 Reboot: An Update on a Standard Data Grid API for Java [BOF6203]

Data grids have been around for a while now, and using them is a great way to boost performance and scalability and provide fault tolerance. However, APIs are proprietary, interoperability-nonexistent, and vendor-lock-in-prolific. JSR 347 has been dormant for a while, as the industry focused on JSR 107 (JCache) instead. Now that JSR 107 has been completed, there is a lot of renewed attention is being paid to JSR 347. The industry, too, has moved forward, and in this session, the spec lead and an Expert Group member discuss standardization of APIs and features such as data storing, querying and filtering, MapReduce, colocation, and eventual consistency. Come to this session to learn about the status of the standard, where it is headed, and how you can participate.

Mircea Markus
Time: 9:00 PM - 9:45 PM
Location: Parc 55 - Powell I/II


Wednesday, October 1

The Emerging Languages Bowl: The Big League Challenge [CON4388]

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 regarded as big-league. 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.

Stephane Epardaud, Charles Nutter
Time: 3:00 PM - 4:00 PM
Location: Hilton - Continental Ballroom 7/8/9

MythBusters: ORMs and NoSQL—Good or Bad? [CON5186]

Java is an object-oriented kingdom where ORMs have flourished. This episode explores key myths and preconceptions about ORMs in a NoSQL and polyglot era. Join this journey to challenge these myths and find out if they are busted, plausible, or confirmed. Among the myths addressed:

  • Once you have chosen a NoSQL product, you don’t need any other.
  • JPA is not suited to nonrelational databases.
  • Objects don’t fit in the data structures of NoSQL solutions.
  • ORMs cannot abstract the underlying NoSQL models.
  • ORMs speed things up at runtime.
  • The query language of NoSQL cannot be abstracted.
  • You need access to the native API to make real use of NoSQL.
  • ORMs don’t bring much value in an NoSQL world.


Come and debate!

 

Emmanuel Bernard
Time: 11:30 AM - 12:30 PM
Location: Cyril Magnin II/III


Thursday, October 2

Tools Worth Sharing: Take Back Your IDE with Forge [CON2675]

How easily can you add your own custom tooling to your favorite IDE? Forge, a JBoss Community project, enables developers to add their own useful extensions to the tools they love and share them with others. Forge is not only a rapid application development tool but also a platform for creating reusable tools that can make you and your entire group more effective. In this session, you will learn about

  • The Forge add-on ecosystem
  • How to build an application with the Forge core add-ons
  • How to build a Forge add-on in five minutes, test it, run it in Eclipse, see it working in the command line without any changes, and embed it for reuse in a custom Java application

 

Lincoln Baxter III, George Gastaldi
Time: 11:30 AM - 12:30 PM
Location: Hilton - Yosemite A

Writing Highly Concurrent Polyglot Applications with Vert.x [CON7902]

Vert.x is a lightweight, high-performance, polyglot, asynchronous application platform for the JVM. This session covers the design principles and motivation behind Vert.x, including its concurrency model, and discusses why Vert.x is a great fit for super-simple, highly concurrent applications. It also dives into some of the key Vert.x features, including the distributed event bus and high availability, and discusses some of the up-and-coming new features in the latest development branch for Vert.x 3.0, including distributed map support, management, and monitoring. The presentation includes demonstrations involving examples in several JVM languages such as Java, JavaScript, Scala, and Groovy.

Tim Fox
Time: 11:30 AM - 12:30 PM
Location: Parc 55 - Mission

Java EE 8 Community Update and Panel [CON2131]

Join a group of experts in this session to discuss ideas and wishes for Java EE 8. To solidly kick-start Java EE 8, the Oracle Java EE team conducted a community survey. The session shares some of this content, plus results and analysis of the survey. The goal is to foster interest in and discussion of the items covered by the survey: JSON binding; JCache; CDI/EJB alignment; the cloud; PaaS; multitenancy; SaaS; JMS; JAX-RS; security; testability; configuration; NoSQL; an action-based web framework; HTML 5/JavaScript alignment; mobility; and much, much more. You are encouraged to bring your questions, comments, and ideas. The time to get involved in shaping the future of Java EE is now!

Mark Little
Time: 11:30 AM - 12:30 PM
Location: Parc 55 - Cyril Magnin II/III

Rich HTML5 Web Apps: Typesafe Edition 2 [CON2188]

Building small websites with some basic functionality is easy with any of the modern JavaScript frameworks, but implementing a maintainable large-scale web application is a tough job. Java has a track record of being a stable and robust programming language with easy readability and is perfectly suited for building large applications. Errai enables your team to share Java code between the client and the server and reuse functionality across application layers. In this session, you will learn how to build rich web applications the toolable, typesafe way without boilerplate, using Errai’s concise programming model. With Errai you can now build next-generation web applications by combining the best aspects of JavaScript and Java.

Christian Sadilek, Jonathan Fuerth
Time: 2:30 PM - 3:30 PM
Location: Hilton - Plaza B