Java Annotated Monthly – July 2015

Open source is changing the way we build software – as Java developers we see it every day. Millions of applications use open source software to ship Minecraft plugins and spacecraft to Pluto. Open source developers maintain some of the largest engineering projects of our time, with little or no supervision. And open source is secure and reliable. Some of the best software in the world is free and open source, yet we are just beginning to realize the potential of open source collaboration. Join us each month as we explore the latest in open source Java tools and techniques.



Java 9 Outreach – Java 9 promises a number of exciting new features, perhaps most notably something called Modular Runtime Images, which are part of a larger initiative called Project Jigsaw. Many of these changes will have little, if any impact on the end-user. Some however, call for a more delicate approach. Try running your code on an early access build today, and be sure to provide your feedback, as many of these features are still a work in progress.

CDI 2.0 Early Draft Review – Following the approval of last year’s draft proposal for Contexts and Dependency Injection, the JSR 365 Expert Group has been preparing CDI 2.0 for its upcoming release with Java EE 8. Among many enhancements, CDI 2.0 now runs on Java SE, and includes support for asynchronous event firing and Event observer ordering. Follow @cdispec for the latest, and give them your feedback today.

Stewardship of OpenJDK 7 Project Shifts to Red Hat – Following the sunset of public updates to Java SE 7 this April, the status of OpenJDK 7 was somewhat murky. Today we are pleased to see that maintenance on OpenJDK 7 will continue, now under the banner of RedHat, who have renewed their commitment to supporting the OpenJDK community on this version and at large, through projects like Shenandoah and Thermostat.


The Java Garbage Collection Mini-Book – You don’t always sign up for a free e-book about collecting garbage, but when you do, that book is by the unwavering Charles Humble at InfoQ. Within, you will find heaps of helpful pointers on monitoring and tuning, and a sweeping look at many practical topics in modern garbage collection. This book is an indispensable reference for new and old generations of Java developers alike.

Oracle Proposes G1 as the Default Garbage Collector for Java 9 – Oracle is now considering using the Garbage First collection by default for servers. Garbage collection can often be a contentious topic, but armed with the knowledge you have gained from reading The Java Garbage Collection Mini-Book, you should have little difficulty making an educated decision for your project’s use case, defaults aside.

Java Bytecode: Bending the Rules – As a Java developer, you are familiar with bytecode, but you may not realize the JVM is much more flexible than Java’s compiler would lead you to believe. For example, the JVM permits a class with two methods that differ only by return type. Raphael Winterhalter develops ByteBuddy, and he will show you several areas where the JVM lets you bend the rules when using Java bytecode.


Gradle 2.5 Released – Shortly after the release of Gradle 2.4 earlier this year, Gradle 2.5 has arrived with experimental support for continuous builds, dependency substitution rules, and native improvements like precompiled headers and Google Test support for C/C++ based projects. For more details on Gradle 2.5 for Android developers and the state of the Android Gradle build tools, Sittiphol Phanvilai has a closer look.

WildFly 9 Final is released – The newest release of the WildFly application server brings all new support for the HTTP/2 standard, improved support for load-balancing, graceful shutdown, separation of the core and platform code, offline CLI access, improvements to the HAL management console and many other features and bug fixes. Our friend Arun Gupta will show you how to get set up in your favorite IDE.

Vert.x 3.0 ReleasedVert.x, a toolkit for building reactive applications on the JVM, is part of a family of loosely related tools including Akka, Spring Reactor, Quasar and Node.js that have all emerged in recent years to address the so-called C10k problem. To learn more about the Vert.x toolkit, check out how to build your first Vert.x application. For existing users, there is also a checklist for migrating from Vert.x 2.1.x.


Android Studio with Android NDK Preview – Android developers have waited a long time for really awesome C/C++ tools. With the release of CLion, Android Studio 1.3, and through the hard work of developers at Google and JetBrains, fully integrated C/C++ development on Android is finally available. Android NDK support goes beyond just editing and debugging, with profiling tools for analyzing memory and performance.

RoboVM 1.5 released – On the heels of RoboVM 1.4, the folks at RoboVM have just released RoboVM Studio 1.5, a new IDE for Android and iOS development, based on IntelliJ IDEA Community Edition. There are lots of interesting tools targeting cross-platform mobile development, and based on some performance metrics, RoboVM is a leading contender. RoboVM 1.5 now introduces support for something called “RoboPods“.

Butter Knife 7.0.0 released – Android recently introduced something called data binding, which depending on your point of view, may be quite enough binding for a while. For the open-minded, there’s Butter Knife, the view injection library for Android. Butter knife lets you to inject Views, listeners and other objects without writing much boilerplate or XML. Butter knife 7.0.0 brings along Resource binding annotations and other fixes.


Why Kotlin is my next programming languageMike Hearn is a low-level systems developer and Kotlin enthusiast who writes about Bitcoin and programming languages. Kotlin is a language we’re quite keen on at JetBrains, but we’d rather you take it from Mike instead. In this article, you will find an unbiased look at the pros and cons of using Kotlin today, and a number of resources you can find for getting started. Thanks, Mike!

Romeo, Juliet, and Reactive Programming – When Shadaj Laddad is not studying tragic literature, he prefers teaching us about the joys of using Scala. Akka is an actor framework, “for building highly concurrent, distributed, and resilient message-driven applications on the JVM.” But honestly, who knows what any of that really means? After reading this brief tutorial, you will have a much better idea. Thanks, Shadaj!

Speeding up Gradle buildsKevin Pilgrims develops Android applications and writes about Windows and mobile development. In this article, he shares some handy advice for speeding up those lengthy Gradle builds. Both Gradleware and the Android Tools team have been hard at work reducing Gradle build times, and together with these tips and tricks, you might be able save a few hours each week. Thanks, Kevin!

image description