JavaOne is starting in two weeks. It’s time to take a look at the sessions and choose what to attend. There are many interesting sessions and sometimes some of them are at the same time. I’ve already made my list and decided to share it with you. The main interesting points for me are Java 9 and JavaEE.Next related topics. The list is sorted chronologically and includes sessions abstracts, date, place and my comments.
Sunday, 18 Sep 2016
It’s the main keynote. You cannot miss this one. And this is the only one on Sunday. You can spend the rest of the day thinking about what you will have heard. 🙂
Java Keynote [KEY7967]
Sharat Chander, Mark Reinhold, Georges Saab, Anil Gaur
Having celebrated its 20-year anniversary last year, Java continues to innovate the application world around us. Through continued modernization Java offers developers an innovative language and platform to create the next generation of rich, scalable, and secure enterprise applications. In this keynote, recognized Oracle executive and engineering experts highlight ongoing Java enhancements, especially on the highly anticipated Java 9 release, and showcase how developers can improve and accelerate application innovation spanning a variety of development environments and devices all the way to the cloud.
Sunday, Sep 18, 1:30 p.m. – 4:00 p.m. | Moscone North – Hall D
Monday, 19 Sep 2016
Busy day. It looks like a lot of important stuff will be announced. I am planning to start this day with these two Java 9 related sessions:
JDK 9 Language, Tooling, and Library Features [CON2497]
Joe Darcy (Oracle)
Modularity support from Project Jigsaw is the largest change coming in Java SE 9, but many other improvements are coming to the Java programming language, related tooling, and libraries in JDK 9. On the language front, some polish is added to the Project Coin features and the number of uninformative warnings has been reduced. The javac tool can now accurately cross-compile to older platform versions and has improved attribution engineering to better support type inference. Javadoc is getting a search box, a new modernized doclet API, and HTML5 support. The libraries offer better process control, improved collections, and more-compact strings. Learn more in this session.
Monday, Sep 19, 11:00 a.m. – 12:00 p.m. | Hilton – Continental Ballroom 4
Prepare for JDK 9 [CON2937]
Alex Buckley (Oracle)
The modularization of the Java SE Platform in JDK 9 will bring many benefits but also many changes. Existing code that uses only official Java SE Platform APIs and supported JDK-specific APIs should continue to work without change. Code that uses certain deprecated features or any JDK-internal APIs is likely to break, however. This session shows you how to prepare existing code for JDK 9 and takes a look at new features designed to help migration, such as JDK versioning, multirelease JARs, and enhanced deprecation.
Monday, Sep 19, 12:30 p.m. – 1:30 p.m. | Hilton – Continental Ballroom 4
The next one is one of the main Java EE 8 talks. Shifting focus sounds interesting enough.
Java EE 8 Update [CON7976]
Linda Demichiel (Oracle)
This session presents Oracle’s plans for updating the Java EE Platform to reflect recent and emerging trends in the areas of the cloud and microservices. Topics covered include
- What’s been accomplished in Java EE 8 so far
- Reasons for the shift in Oracle’s focus for the Java EE Platform
- New areas Oracle needs to address and updates to current JSRs
Monday, Sep 19, 2:30 p.m. – 3:30 p.m. | Parc 55 – Cyril Magnin II/III
The next one is a logical continuation of the previous one.
Enterprise Java for the Cloud [CON7975]
Rajiv Mordani (Oracle), Josh Dorr (Oracle)
The focus of this talk is to describe proposals to help better position Enterprise Java for use in the Cloud, with the goal of supporting users who need to more efficiently build and configure distributed applications that are based on cloud native and microservices style architectures. Topics that we will discuss include: – reactive style programming models – extending support for REST and HTTP/2 – providing a consistent event model across the stack – flexible configuration – security improvements, including support for use of OAuth and OpenID Connect – Possible use of containers This talk will cover the technical aspects of the overall proposed strategy and will illustrate key aspects using a blueprint application.
Monday, Sep 19, 4:00 p.m. – 5:00 p.m. | Parc 55 – Cyril Magnin II/III
This is another “must visit” session. A lot of jokes, nice comics pictures, discussion on hot topics, etc. (joke). You cannot miss me presenting!
What’s New in the Java API for JSON Binding [CON1558]
Dmitry Kornilov (Oracle)
Learn about new developments in the JSON Binding specification (JSR 367). This session covers the latest status and plans of the specification and provides a deep dive into main areas such as the runtime API and default and customized mappings. A significant part of the session is a comparison of major JSON-B features and similar features in other JSON frameworks such as Jackson and Gson. The session also gives you the opportunity to provide feedback on your specific interest areas, which is welcome and appreciated.
Monday, Sep 19, 5:30 p.m. – 6:30 p.m. | Parc 55 – Market Street
If you have a free evening I am suggesting going here:
Java EE for the Cloud [BOF7984]
Bill Shannon (Oracle), Rajiv Mordani (Oracle)
Come to this BOF session to interact with the Java EE specification leads to discuss future directions for Java EE for the cloud. Give your feedback and discuss the proposal at this community event.
BOF (Birds-of-a-Feather) Session
Monday, Sep 19, 7:00 p.m. – 7:45 p.m. | Parc 55 – Embarcadero
Tuesday, 20 Sep 2016
Let’s start a day with Java 9 related talk again.
Modules and Services [CON2949]
Alex Buckley (Oracle)
Most Java developers know the saying “Program to an interface, not an implementation.” In JDK 9, the module system introduces “services” to make this concept explicit: modules declare which interfaces they program to, and the module system automatically discovers implementations. This clarifies program structure and helps avoid the need for optional dependencies between modules. Using examples from the JDK, this session shows how to adopt services in your codebase and how to design APIs in a modular fashion.
Tuesday, Sep 20, 11:00 a.m. – 12:00 p.m. | Hilton – Continental Ballroom 4
JAX-RS 2.1 for Java EE 8 [CON7983]
Ed Burns (Oracle), Pavel Bucek (Oracle)
The current practice of cloud development in Java is founded on REST and asynchrony. For many developers, that means the standard JAX-RS specification and also its reference implementation, Jersey. This session covers suggested enhancements coming to the next version of JAX-RS, including server-sent events, nonblocking I/O, reactive programming, and more-complete CDI integration.
Tuesday, Sep 20, 12:30 p.m. – 1:30 p.m. | Parc 55 – Cyril Magnin II/III
Prepare for JDK 9 [CON2937]
Alex Buckley (Oracle)
The modularization of the Java SE Platform in JDK 9 will bring many benefits but also many changes. Existing code that uses only official Java SE Platform APIs and supported JDK-specific APIs should continue to work without change. Code that uses certain deprecated features or any JDK-internal APIs is likely to break, however. This session shows you how to prepare existing code for JDK 9 and takes a look at new features designed to help migration, such as JDK versioning, multirelease JARs, and enhanced deprecation.
Tuesday, Sep 20, 2:30 p.m. – 3:30 p.m. | Hilton – Continental Ballroom 5
Another key session. Highly recommended to attend:
What’s Next for Enterprise Java? [CON5144]
Anil Gaur (Oracle)
Recent trends in the industry raise some important issues with an impact on the future of enterprise Java. The panelists in this session will weigh in on directions they think enterprise Java should take. The questions discussed include the following:
- Is the agenda for Java EE 8 the right one? Have we been looking far enough ahead?
- What is the impact of the cloud on enterprise applications?
- What approach should we take toward a microservice architecture?
- What other current and emerging trends do we need to address?
- Should our focus be Java-centric or polyglot?
Panelists include key Java EE architects and leaders from the enterprise community. Come prepared for what is certain to be a lively discussion.
Tuesday, Sep 20, 2:30 p.m. – 3:30 p.m. | Parc 55 – Cyril Magnin II/III
Servlet 4.0: Status Update and HTTP/2 Comes to Java EE 8 [CON7980]
Ed Burns (Oracle)
For many years, Servlet technology has been at the heart of Java EE/Enterprise Java. Also technologies associated with the cloud—such as containerization, microservices, REST, pay-per-use computing, and Continuous Delivery—have become more relevant. Companies have shifted from using app servers and associated deployment artifacts to newer models that take advantage of the cloud. So, what role can Servlets play in this new world? This session covers how Oracle is listening to the demands of the community to deliver a completed Servlet 4.0/ Java EE 8 that builds on existing strengths while enabling lighter-weight, cloud-ready, composable apps.
Tuesday, Sep 20, 4:00 p.m. – 5:00 p.m. | Parc 55 – Cyril Magnin II/III
You may think: “Wow! This guy has at least one non-Oracle session in the list!”. Don’t worry, this is the only one.
MOAR IntelliJ IDEA Tips and Tricks [CON1245]
Hadi Hariri (JetBrains)
Want to really know your IDE inside-out and see how to get into the flow of things when working? Want to understand the difference between an editor and an IDE and how the latter can give you the advantage of understanding the semantics of your applications? Want to be efficient (even productive) with your tooling? Then you know where to come.
Tuesday, Sep 20, 5:30 p.m. – 6:30 p.m. | Hilton – Golden Gate 2/3
Security for Java EE 8 and the Cloud [CON7978]
Kk Sriramadhesikan (Oracle)
When we deploy existing applications to the cloud or build new applications for it, how do the applications change? How does the boundary of an application change? How does this change affect the security parameters? What are the security characteristics that need to be accounted for? This talk explores these and the following questions:
- What are the top security concerns when building for the cloud?
- How do we evolve the security JSR in Java EE 8 for the cloud?
- What are the key security areas for the next-generation Java EE platform that can ease a developer’s path for cloud deployments?
Tuesday, Sep 20, 5:30 p.m. – 6:30 p.m. | Parc 55 – Mission
Wednesday, 21 Sep 2016
It becomes a good tradition starting a day with Java 9 related talk. Two talks.
Unified JVM Logging in JDK 9 [CON6225]
Marcus Larsson (Oracle)
JDK 9 introduces a new and unified logging system for the JVM. This replaces the previous wide array of logging flags used throughout Oracle’s HotSpot with the new java command-line argument -Xlog, unifying all the logging in a single system. It enables easier and more flexible configuration of JVM logging. Among its features are the introduction of log levels, user-configurable decorations, and fine-grained control of where to send the log output—to file or to console, for example. The new logging uses a tag-based classification system in which each message has a set of tags describing its content/origin. This session provides an overview of how the new system works and how to best make use of it.
Wednesday, Sep 21, 8:30 a.m. – 9:30 a.m. | Hilton – Continental Ballroom 5
Java EE, Extendable to Functional [CON6280]
David Blevins (Tomitribe)
Java EE 7 holds two critical gems many developers never see: CDI scopes and Java EE connectors. Do you have any code storing objects in HashMaps? You can kill that code with custom scopes. Need to interact with a system that doesn’t speak HTTP? Stop writing endless wrapping endpoints, and support that protocol natively with Java EE connectors. This session explores both in detail through concrete and runnable code examples. It also discusses the role of functional programming in Java EE. With a mix of usable Java EE 7 and potential Java EE 8 features, the presentation takes concepts such as @Schedule annotations and Bean Validation and shows how they might be fundamentally changed by Java 8 language enhancements such as lambdas and method references.
Wednesday, Sep 21, 10:00 a.m. – 11:00 a.m. | Parc 55 – Cyril Magnin I
My second session. This time about a new Configuration JSR. Everybody is welcome.
Configuration for Java EE 8 and the Cloud [CON7979]
Dmitry Kornilov (Oracle)
In the modern world, where apps consist of microservices and are deployed in a cloud, developers are facing many issues related to apps config. How to deploy an app in different environments without cracking its package. How to apply configuration for deployed instances of an app without redeployment. How an app can be notified if some confutation properties changes. This session introduces a standardization effort tasked with solving these problems by defining a Java EE config service. Such a service is aimed at the cloud and provides the ability to create one or more configurations that are independent of and decoupled from apps using them. The session describes how such a service fits into the Java EE family and integrates with other Java EE frameworks.
Wednesday, Sep 21, 11:30 a.m. – 12:30 p.m. | Parc 55 – Cyril Magnin II/III
Java EE Next: HTTP/2 and REST Opportunities [CON7977]
Pavel Bucek (Oracle), David Delabassee (Oracle)
New paradigms such as microservices architecture, cloud-native development, and serverless computing suggest enhancements to Java EE going forward. As always, we need to be cautious when adding new technologies to Java EE, in order to avoid the “great technology of the day” trap. The recently announced Java EE effort presents many new opportunities. This session focuses on two areas: HTTP and REST. It discusses what HTTP/2 might bring to Java EE and then looks at some REST opportunities, such as the popular circuit break pattern, protocol buffers, a reactive client API, and NIO improvements. The goals of the session are to present potential improvements involving those two core technologies and to gather feedback.
Conference Session
Wednesday, Sep 21, 1:00 p.m. – 2:00 p.m. | Parc 55 – Cyril Magnin II/III
Another two Java 9 sessions. There could be some overlapping with the previous sessions, but I know Alan and I wanna “stay awhile and listen” what he says.
Introduction to Modular Development [CON3707]
Alan Bateman (Oracle)
This session provides a gentle introduction, with examples, to the Java Platform Module System in JDK 9. You will learn the basic concepts of the module system and be introduced to the modules that are built into the Java platform. You will also find out how to develop a module from scratch and how to compile, test, and run it.
Conference Session
Wednesday, Sep 21, 3:00 p.m. – 4:00 p.m. | Hilton – Continental Ballroom 1/2/3
Advanced Modular Development [CON3711]
Alan Bateman (Oracle)
Mandy Chung, Consulting Member of Technical Staff, Oracle
This session focuses on developing modules with the Java Platform Module System in JDK 9. Using well-known libraries as examples, you will learn how to develop libraries and applications as modules and will also find out how to migrate existing code to modules. Migration poses many challenges, and in addition to learning about “bottom-up” migration, you will learn about “top-down” migration, where libraries and applications are migrated to modules without waiting for libraries they depend on to migrate first.
Conference Session
Wednesday, Sep 21, 4:30 p.m. – 5:30 p.m. | Hilton – Continental Ballroom 1/2/3
Thursday, 22 Sep 2016
Traditionally starting with Java 9 related topics. The first two sessions are about migration to Java 9. This problem will be faced by many developers soon. It’s better to learn earlier how to avoid the common pitfalls.
I was lying about non-Oracle sessions. Here is another one.
Migrating to Java 9 Modules [CON1956]
Sander Mak (Luminis Technologies), Paul Bakker (Luminis Technologies)
With Java 9 modules coming to us soon, you want your existing code to be fully ready for the module system. Making code modular can be a daunting task, but Java 9 comes with several features to ease migration. They include automatic modules, the unnamed module, and several command-line arguments. This session looks at examples of migrating real code. It discusses common problems you’ll run into during migration, leading to practical tips and the ability to set realistic goals. Attending the session is also a good way to understand the module system itself and the various migration paths it supports. This presentation is excellent preparation for starting to migrate your own code.
Conference Session
Thursday, Sep 22, 11:30 a.m. – 12:30 p.m. | Hilton – Continental Ballroom 5
Pitfalls of Migrating Projects to JDK 9 [CON4123]
Pavel Bucek (Oracle)
Java 9 brings revolutionary changes. There is a big difference between their adoption and adoption of similarly revolutionary features of Java 8: lambdas and streams could gradually be included in a project, but Jigsaw requires some significant changes to the existing code. Jersey and Tyrus are popular open source libraries of considerable size and cherish backward compatibility. This session presents lessons learned during a migration to Java 9 and adoption of Jigsaw features. The nature of the projects and their features—such as resource injection or scanning and using user-provided (thus unknown, in standard dependency view) classes—make the migration particularly interesting and informative for future Java 9 adopters.
Conference Session
Thursday, Sep 22, 1:00 p.m. – 2:00 p.m. | Hilton – Continental Ballroom 1/2/3
… and two more …
Reactive Java EE [CON1480]
Ola Petersson (Squeed AB)
Today’s end users place high demands on the responsiveness of their applications, and, in response, the reactive manifesto is getting more acknowledgment every day. This hands-on presentation takes a look at what reactive programming really is. It goes through the concepts of reactive programming and proceeds to how to actually implement it. Using Java EE, it covers areas such as asynchronous programming, message- and event-driven architecture, and WebSocket. When you leave this session, you will have the utilities to build responsive applications with higher throughput, better use of your hardware, and especially a nicer user experience.
Conference Session
Thursday, Sep 22, 2:30 p.m. – 3:30 p.m. | Parc 55 – Mission
Another Java EE Configuration related session. Anatole will talk about Apache Tamaya project.
Configure Once, Run Everywhere with Apache Tamaya [CON1141]
Anatole Tresch (Credit Suisse)
It’s been more than two years since a JSR for configuration was first discussed. In the meantime, lots of work has been done, and as of today, Apache Tamaya has made most of the ideas a reality ready for production use: a powerful unified configuration and injection API, an extensible and flexible SPI, support for local and remote configuration, different formats and overriding mechanisms. This session introduces you to the basic concepts of Tamaya and shows you how you can configure your module regardless of the runtime you use. Configure once, run everywhere. The presentation proves it’s reality by deploying the same code as Java standalone, into a Java EE container, and as a distributed microservice.
Conference Session
Thursday, Sep 22, 4:00 p.m. – 5:00 p.m. | Parc 55 – Mission