You are viewing robilad

JavaOne 2014: OpenJDK Edition


The JavaOne 2014 content catalog is now live. As in the previous years, I took the opportunity to look for the talks and BOFs with OpenJDK in their title, or abstract, and pull them together in a list:

  • CON5177 - Banking on OpenJDK: How Goldman Sachs Is Using and Contributing to OpenJDK
    With OpenJDK you can gain a deeper understanding of the Java platform as well as improve it to suit your needs. OpenJDK has indeed made an positive impact on software development. This session discusses how and why Goldman Sachs got involved with the OpenJDK project and its experiences in working with the OpenJDK community and contributing patches. It provides examples of how the company uses the OpenJDK source code and builds for performance tuning and optimization.

  • BOF2890 - The OpenJDK Harfbuzz Integration Project
    Harfbuzz is rapidly becoming the new standard OpenType complex text layout library for open source projects. Java 2D in JDK 9 aims to use it to replace the long-standing use of the ICU library, giving JDK 9 a modern, up-to-date library with better script and font support. An OpenJDK project has been approved for this. This BOF is a forum where the project’s developers can interact with interested Java developers and solicit ideas and feedback.

  • UGF9755 - The OpenJDK Project: Your Java. Our Java.
    Millions of lines of code, written in dozens of different languages, ported to a long list of platforms. The numbers of the OpenJDK Project are impressive. But even more impressive is the community growing around it. With each new release of Java, OpenJDK gets more participation and collaboration, and that pushes trust and adoption. OpenJDK is making Java more exciting and more trustworthy and promoting faster changes to Java and wider adoption of new features. The panel in this session brings together community participants of OpenJDK sharing the experiences, joys, and frustrations of being part of a huge, contradicting project. Come hear their war stories, and learn why you should care and how this can help you, your career, and all of us.

  • CON3008 - Sumatra OpenJDK Project Update: Parallelize Yourself with the Stream API
    The Sumatra Project aims to enable execution of a suitable portion of Java applications on GPUs. GPUs can offer huge performance gains for some workloads, but it used to require special setup for the application to execute on the GPU. The project is leveraging the parallel execution features in the Stream API to make the offload of Java methods to a GPU as simple and transparent as possible. This session presents an overview of the project, which intends to fully integrate GPU execution into the JDK; shows its current features; and shows how the OpenJDK Graal compiler is being used to produce the GPU code. It also demonstrates how to use lambdas and the Stream API that will enable application code to be transparently offloaded to the GPU.

  • BOF4884 - OpenJDK Adoption: Learn How You and Your JUG Can Contribute to Java’s Future
    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.

  • BOF3312 - The Sumatra OpenJDK Project: What Can I Offload to the GPU?
    The Sumatra Project is enabling execution of Java on GPUs, using the JDK 8 Stream API and its parallel() directive. If you are interested in the details of what can be offloaded to the GPU, this BOF is for you. It explores a few areas in more depth: what kinds of Stream API patterns we can currently offload, how Sumatra devices with coherent access to system memory can allocate objects on the Java heap, and how Sumatra devices with coherent access to system memory can throw exceptions and support GC safe points. Attendees will be able to give feedback to Sumatra developers on what Java patterns they find important for Sumatra to support.

  • UGF9754 - Adopting Java: Create Java’s Future. Now.
    Java technology evolves through a public, community effort. It starts with the wide experimentation done in and around Java; takes shape in the fast-paced open source development of the OpenJDK project; and gets buy-in, adoption, and competition through the standardization efforts of the JCP. Instead of waiting for the future to happen, developers are getting involved and creating the future. Now. And you too can be part of the change. This panel discussion addresses the increasing community involvement related to Java. Come learn about the Adopt programs (Adopt the OpenJDK and Adopt a JSR) run by Java User Groups around the world. Learn about the open source experiments happening around Java. Find your passion. Change Java. Change the world.

  • CON5396 - Adapt DIO APIs to Your Board or Hardware
    This session demonstrates how to extend Java’s Device I/O APIs to support custom devices and configurations. The Device I/O project aims to provide a Java-level API for accessing peripheral devices on embedded platforms. Take a closer look at the OpenJDK Device I/O Project with an eye toward learning how to customize the setup for your own hardware. Learn how to use the service provider interface to provide implementations for new devices and new implementations for existing ones.

  • CON1913 - Java Concurrency Under the Hood
    This session features an overview of hardware memory models and then goes on to how it relates to the Java world. A fun live demo follows, with lots of digging through OpenJDK sources and showing how volatiles and synchronized blocks are implemented.

  • CON5394 -
    Introduction to Java DIO APIs
    This presentation is an introduction to the OpenJDK Device I/O project, which aims to provide a Java-level API for accessing peripheral devices on embedded platforms. You can access low-level devices by writing only Java. The session includes a short tutorial showing how to use the API to communicate with different peripheral devices.

  • BOF3108 - Troubleshooting with Serviceability and the New Runtime Monitoring Tool HeapStats
    OpenJDK has very useful serviceability tools for troubleshooting—such as serviceability agents, JVMTI, jstat, and jdb—but you need to learn how to choose and use those tools differently in various trouble scenarios and prepare before your application goes live. This session’s presenters learned this via a lot of troubleshooting with OpenJDK and developed HeapStats, which attaches a hotspot virtual machine to gather detailed Java runtime information continuously for after-the-fact analysis. This session presents an overview, compares the technology behind serviceability tools and HeapStats, and describes how these tools have helped them in some real troubleshooting use cases.

  • TUT3419 - Understanding JIT Compilation with JITWatch
    This tutorial explores the JIT compilation subsystem of Java and how to use JITWatch, an open source tool that can analyze JIT compilation logs from both Oracle and OpenJDK and help track down performance problems related to JIT compilation, such as important methods that are not being compiled.

  • CON5216 - Shenandoah: An Open Source Garbage Collector (JEP 189) with an Ultralow Pause Time
    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.

  • CON2662 - Diagnosing Performance Issues with Thermostat
    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.

  • BOF3297 - Meet the Oracle Java and JavaFX Client Teams
    This BOF is an excellent opportunity to meet development engineers from the Oracle JavaFX, AWT/Swing, and Java 2D teams. It’s expected to be a lively discussion about the development process, progress over the past year, and future plans for the Java UI. Likely topics include the roadmap and features for JDK 8 update releases, plans and priorities for JDK 9, and involvement in OpenJDK and OpenJFX projects.

  • CON5150 - Safety Not Guaranteed: sun.misc.Unsafe and the Quest for Safe Alternatives
    Java is designed to be a safe platform. For a set of advanced developers innovating on the Java platform and pushing it to new limits, that safety comes with an unacceptable cost: either they cannot do what they need to do or cannot do it fast enough. In such cases, those advanced developers sacrifice safety and reach for a very sharp tool, an unsupported class within OpenJDK named “sun.misc.Unsafe,” where safety is not guaranteed. However, there is a problem. Unsafe is probably going away. Learn more in this session.

  • BOF4004 - How to Make Your JUG and Java More Awesome
    Bring your questions about how to increase participation within your JUG and also how to magnify the impact of your JUG’s contributions. This session looks at how you can quickly get a critical mass of projects in a JUG that also help improve the core Java ecosystem. These can include OpenJDK hackdays, support for Java Specification Requests (JSRs), Java talks, and speaking at workshops or unconferences. The presentation covers how you can improve participation in JUGs, be they small or large or even if your community members aren’t all located in the same city.

  • CON6275 - JDK 8 for Mobile iOS and Android Devices
    JDK 8 has introduced a new Compact Profiles feature that allows for three subsets of Java SE 8 APIs that are compliant with the JDK 8 spec. Compact Profiles will enable the creation of JDK 8 Java runtimes that will be able to support configurations that previously were possible only with a subset of JDK 1.5. This session describes the contents of Compact Profiles, how to build them, and details of the Oracle-provided OpenJDK and binary implementations for embedded and mobile. The presentation describes Compact Profiles use cases such as the embedded, iOS, and Android mobile platforms and application store packaging.

  • BOF6563 - What’s New in Java SE Embedded
    This session explores how Java SE Embedded 8 brings new technologies from Java SE 8 into the hands of embedded systems developers. It explains a key feature of SE 8—compact profiles—and how developers use them for reduced footprint deployments. It also looks at additional features of Java SE Embedded 8 such as footprint reduction via the “minimal VM,” plus general performance and serviceability improvements. Take a drive down the accelerated roadmap for Java SE Embedded 8 updates, and see the new features supported or planned, including customized class data sharing, new platform support, crypto acceleration, and more performance and footprint improvements. The presentation also discusses the OpenJDK API projects to bring enhanced device and wireless APIs to the Java SE Embedded platform.

  • BOF1704 - Community First: Bringing Java to the Community
    This hands-on session discusses how user groups can best address the needs of their members. You are encouraged to attend if you're a user group leader or a user group member. Topics include
    • vJUG – Virtual content for the community and how this can best be delivered to you
    • Adopt OpenJDK – Are you using this? Do you know about it? How can you as a group better make use of it?
    • Adopt a JSR – Are you using this? Do you know about it? How can you as a group better make use of it?
    • What are you missing out on? How can user group leaders better help?

  • CON3979 - Going Native: Bringing FFI to the JVM
    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.



That's a total of 21 sessions, up from 14 last year. I believe that means this year's JavaOne is featuring the most sessions mentioning OpenJDK at a JavaOne, ever.

With presentations, tutorials and BOFs involving a diverse roster of speakers from AMD, Deutsche Bank, Digital Inspiration, Goldman Sachs, IBM, jClarity, NTT, OpenCredo, Oracle, Red Hat, SouJava and Zero Turnaround, JavaOne is the best place this year to learn about OpenJDK.

See you there!

I'll be joining my colleagues in the Oracle office in Hamburg to chat about development and other roles within a large IT company as part of the Girls' Day in Germany.

Oracle today announced the availability of JDK 8, a production-ready implementation of the Java SE 8 Platform Specification, which was recently approved through the Java Community Process (JCP). This release includes the largest upgrade to the Java programming model since the platform was introduced in 1996. JDK 8 was developed collaboratively in the OpenJDK Community.


The Java SE 8 release is the result of industry-wide development involving open review, weekly builds and extensive collaboration between Oracle engineers and members of the worldwide Java developer community via the OpenJDK Community and the JCP.


"The release of Java SE 8 demonstrates the innovation driven by the ongoing collaboration between IBM, Oracle and other members of the Java community in OpenJDK," said John Duimovich, Distinguished Engineer, IBM. "Java SE 8 provides enterprise customers with significant gains in productivity, scalability and maintainability, and further demonstrates that they can continue to rely on Java to grow their business."


Taken from an Oracle press release titled Oracle Announces Java 8.

That brings the total count up to 18 press releases from Oracle mentioning OpenJDK.

Tags:


Test All The Builds

Early Access builds of JDK 7u60 have been updated with Build b11. If you find issues during your own testing of this build, please report a bug.

In addition, Early Access builds of JDK 8u20 have begun to appear, starting with Build b05.

An extensive list of changes since the previous build is linked off the download site. For developers making their own OpenJDK builds, and looking to compare their regression test results with others, JDK 8u20 Build b05 regression test results have been posted to the quality-discuss mailing list, as usual.

As with Early Access builds of 7u60, if you find issues with Early Access builds of 8u20, please report a bug. If you are not sure how to get started reporting bugs, join the adoption-discuss mailing list, and ask for help.

Happy testing!

Test All The Builds
Early Access builds of JDK 7u60 have been updated with Build b07. This build updates HotSpot in JDK 7u60 to HotSpot 24.60 build 09, updates time zone support data to tzdata2013i, and fixes various issues, one of which was reported by Groovy developers - thanks! If you find issues during your own testing of this build, please report a bug.

A list of changes is available.

In addition, a new Early Access build of JDK 8: Build b129 is now available for testing. If you find issues during your own testing of this build, please report a bug.

An extensive list of changes since the previous build is linked off the download site. For developers making their own OpenJDK builds, and looking to compare their regression test results with others, JDK 8 b129 regression test results have been posted to the quality-discuss mailing list, as usual.

As a new addition, starting with 7u60 b02, you can now also find the regression test results for JDK 7u early access builds being posted to that list, including those for the latest build.

Happy testing!

Coming up next month, I'll be first speaking on March 19th at the rheinjug in Düsseldorf on JDK 8, and then heading to Berlin the next day to join Paul Sandoz for a Java SE 8 party.

See you there!

I'll be speaking at the Java SE 8 & Java EE 7 Seminar in Utrecht on Thursday February 13, 2014.

See you there!

Test All The Builds
Early Access builds of JDK 7u60 have been updated with Build b03. A list of changes is available. As the focus of the JDK 7u60 release is plain old bug fixes, this build contains bug fixes across the JDK code base.

In addition, a new Early Access build of JDK 8: Build b124 is now available for testing. This build updates HotSpot in JDK 8 to HotSpot 25 build 66 and fixes various issues, two of which were reported by Apache Maven and Groovy developers - thanks! If you find issues during your own testing of this build, please report a bug.

An extensive list of changes since the previous build is linked off the download site. For developers making their own OpenJDK builds, and looking to compare their regression test results with others, JDK 8 b124 regression test results have been posted to the quality-discuss mailing list, as usual.

As a new addition, starting with 7u60 b02, you can now also find the regression test results for JDK 7u early access builds being posted to that list, including those for the latest build.

Happy testing!

Next Gig: FOSDEM


I'll be speaking on JDK 7 Updates in the Java developer room at FOSDEM.

See you there!

Tracking Your Issues In The JDK Bug System


Let’s say you want to find out about issues filed in the JDK Bug System that mention Apache Lucene. You just need to go to http://bugs.openjdk.java.net, and type Lucene into the search box:

jbs-search

And you’ll get a list of results:

jbs-results

That was very easy.

What if you wanted to be kept up to date when new issues mentioning Apache Lucene are added to the JDK Bug System, or when new comments are added to the issues in the system?

That’s where RSS feeds come in:

jbs-rss-feeds

OK, great. But what if you’ve filed an issue that has nothing to do with Apache Lucene at all - what is the URL of the RSS feed for comments for a particular issue?

Let’s say you filed issue 8xxxxxx, then the URL of the RSS feed for comments for that issue is

https://bugs.openjdk.java.net/sr/jira.issueviews:searchrequest-comments-rss/temp/SearchRequest.xml?jqlQuery=key%3D+JDK-8xxxxxx&tempMax=1000

Happy tracking!