IntelliJ IDEA 14 EAP 138.1503.3 is Out

Today we have just released a fresh IntelliJ IDEA 14 EAP build, as always packed with new features and enhancements.

Everything what’s new is listed on the download page, but we’d like to highlight several improvements and explain them with a little bit more detail here.

First of all, the Reset Current Branch to Here action now available from the Git Log:


Then, the Find in Path is improved a bit: you can now opt to skip occurrences in comments and/or string literals: Continue reading

Posted in EAP Releases, New Features | Tagged , , , , , | 3 Comments

IntelliJ IDEA Receives Geek Choice 2014 Award from RebelLabs

RebelLabs is a technical community of passionate geeks and coders from ZeroTurnaround. They are famous for awesome productivity reports that have measured the popularity and feedback of various JVM languages, web frameworks, and developer tools for over 7 years to date.

Earlier this year RebelLabs have published a comprehensive 40-page guide helping Eclipse users understand why it’s worth migrating to IntelliJ IDEA, and providing sound advice on the process. This was followed by another exhaustive report on the Java tools and technologies market landscape.

Just a few days ago RebelLabs announced their own Geek Choice award for Java technologies that are most favored by modern developers. We’re excited to tell you that IntelliJ IDEA has won the Geek Choice 2014 award!


We are proud to receive this award and wish to thank RebelLabs, and of course, our dear users for their love and commitment. You rock!

Develop with Pleasure!

Posted in News & Events | Tagged , | 1 Comment

Java Annotated Monthly – July 2014

Today’s Java landscape is growing larger and faster than ever, with over 30,000 new Java projects created on GitHub each month. Here on the Java Annotated Monthly we leave no stone unturned to bring you the most important news and developments around the world. All the news, fit to println(“Develop with pleasure!”);


Project Valhalla – Project Valhalla is an exploratory group headed by Java Language Architect and lambda designer Brian Goetz. Valhalla seeks to introduce a number of language features in Java 10 and beyond, from value types, to enhanced volatiles, to primitive type generics and more.

Project Sumatra – Project Sumatra will allow the JVM take advantage of vectorized hardware to execute Java methods directly on a GPU, while maintaining memory model correctness and Java’s syntax.

Project Panama – While Projects Valhalla and Sumatra are largely internal renovations, Project Panama will improve Java’s compatibility with native C and C++ programs by allowing the JVM to call functions and access native data structures, seamlessly. Check out these examples from the JNR project and read the draft for JEP 191: Foreign Function Interface to get a better idea how this might work.

The future of Java on Windows XP – While automatic updates should carry on, official support for Java on Windows XP has ended. Although Oracle remains committed to delivering security updates through April 2015, Windows XP users are strongly encouraged to upgrade their operating system for uninterrupted support.

JDK 9 Build b25 – Early releases of JDK9 have focused on bug fixes and minor enhancements. Build 25 features include support for running bootstrap tools in IntelliJ IDEA and additional formatting options for Java’s Long and Integer classes.

Here are eight Java 8 resources for everyone from newcomers to experts.

  1. Lambda Expressions
  2. Java 8 Stream Tutorial
  3. Lambdas and Streams in Java 8
  4. Simplifying Java 8 with Lambdas – O’Reilly Webcast
  5. Optional: Java 8’s way to deal with null
  6. Finite sequence generators in Java 8
  7. Introduction to writing custom collectors in Java 8
  8. Java 8 and Embedded JavaFX


Akka 5 Year Anniversary – This July, Akka celebrates five years of rapid growth, from a tiny concurrency library on the JVM to the integral role it plays in Scala today. Take a look back at a few milestones in Scala’s history and help us congratulate the Akka team on their success with five great articles for building reactive applications using Akka.

  1. Reactive Programming with Akka
  2. An Actor-based User Similarity Recommender
  3. Advanced Reactive Programming with Akka and Scala
  4. Making the Reactive Queue durable with Akka Persistence
  5. Building scalable and highly available reactive applications with Akka!

Scala: Next Steps – The announcement that Scala 2.12 will only support Java 8 opens up a number of simplifying possibilities, but will require a great deal of work to achieve. Scala lays out the path ahead in two upcoming releases, “Aida” which will focus on standard library improvements, and “Don Giovanni” a language and compiler refresh.

JVM concurrency: To block, or not to block? – Dennis Sosnoski helps us understand the benefits and tradeoffs of using non-blocking event handlers and how we can use Java’s new CompletableFuture to compose and combine events for maximum throughput. Part three in an ongoing series, cf. Java 8 concurrency basics and Java and Scala concurrency basics.

Where Has the Java PermGen Gone? – Monica Beckwith, Java Performance Architect at Servergy takes a look at class metadata storage in JDK8, which has moved from Java’s heap to the native heap, making way for a simpler full-GC and concurrent deallocation.


Learn to Think Like an Android Developer – As a Java developer, learning Android through trial and error can be very rewarding, but also very time consuming. Google and Udacity have teamed up to produce a new Android Fundamentals course by Java developers, for Java developers. If you are looking for an introductory class, Udacity also offers Intro to Java Programming, compliments of San José State University.

Google I/O 2014 App Source Code Now Available – Each year, Google open sources the I/O app to showcase its own design patterns and best practices for the latest Android SDK. This year’s features Material design, Drive integration, Cloud messaging and much more. Check out the source code on GitHub today!

Building Connected Android Apps with Azure – Chris Risner from Microsoft takes us through a simple demo getting up and running on Azure mobile services, a plug-and-play backend service for mobile apps. Minimal configuration required.

Android Dynamic Code Analysis with DroidBox – DroidBox is a sandbox for dynamic analysis of Android applications. Security enthusiast Victor Dorneanu walks through the process of setting up DroidBox to analyze the runtime behavior of a malicious app.


Spring XD 1.0 GA Released – Spring XD offers a unified solution for building business applications at scale, on well-established big data platforms: Hadoop, Spring Batch, Spring Integration, Spring Data, Reactor, and the LMAX Disruptor. The clear-sighted Charles Humble from InfoQ helps us fit all the pieces into a single picture.

Reading and writing CSV files with Spring Batch and MySQL – Spring Batch offers a framework for periodically moving gigabytes of stuff from one data source to another, which as it turns out, is more involved than it might sound. Steve Haines has written an excellent guide for using Spring Batch to read and write large CSV files. Be sure and check out his other articles, including recent ones on Spring Data and Akka.

Spring configuration modularization for Integration Testing – Nicolas Fränkel explains how to break up a Spring configuration into separate fragments for simpler integration testing on the Spring Framework.

Building Web Services with DropWizard – Dropwizard is a lightweight Java framework that trades the versatility of enterprise application frameworks such as Play, Spring and JavaEE for a small, stable set of tools and libraries built to support service oriented architectures and facilitate more ops-friendly development. Camille Fournier gives us a glimpse into operations at e-commerce site Rent the Runway and shares a few insights gained while migrating to Dropwizard.

Why Build Your Java Projects with Gradle? – Benjamin Muschko, principle engineer at Gradleware, makes a case for why Gradle is the next step in Java build automation.

Open Source

Apache Log4j 2 – Apache has released Log4j v2, a brand new implementation of their popular logging framework. Log4j was completely rebuilt to incorporate lessons learned from the LMAX Disruptor, an influential messaging library within the HPC community. Log4j v2 benefits from those insights, offering increased throughput, lower latency and making it one of the fastest logging frameworks around.

Apache TEZ – Tez is a distributed execution framework for YARN applications on petabyte-scale datasets, backed by HortonWorks, Yahoo, and others. This month, Tez graduated from the Apache incubator and is now a top level project at Apache.

Jinq: Easy Database Queries for Java 8 – If you have ever worked with C#, you are probably familiar with LINQ, a language extension that adds fluent data querying capabilities to .NET languages. Jinq brings LINQ’s long-awaited functional style to Java, with integration for jOOQ and several object relational mappers. Don’t miss author Dr. Ming-Yee Iu’s presentation, How Java 8 Will Change the Way We Work with Databases.

OptaPlanner – A constraint satisfaction engine attempts to allocate some shared resource under a fixed set of constraints – for instance in job scheduling, map coloring and exam timetabling, which are difficult to brute force. OptaPlanner 6.1, an open source constraint satisfaction engine offers performance speedups for large datasets, new heuristics and a public API.

flabmo – Are you a fan of Apache Spark, but not necessarily Scala or Java? Flambo, a new Clojure DSL for Spark, might be right for you! Check out how you can use flambo to write a data mining metric to determine keyword saliency, TF-IDF, on Spark.

Oink – Oink is a tool developed at eBay for managing Pig requests through a REST interface, effectively allowing you to run Pig as a self-service data analysis platform.

Oryx 2 – Cloudera prepares the second release of Oryx, a machine learning platform that specializes in classification and recommendations on Hadoop. Oryx is part of a growing number of open source machine learning (ML) platforms including Mahout, Spark MLlib, H20, and mortar-recsys that offer soup-to-nuts alternatives to MLaaS.

Tephra – Continuuity, a big data startup releases an open source transaction engine for Apache HBase. Tephra delivers transactional consistency across regions, tables, and remote procedure calls, abstracting some of the complexity of data access in HBase.


Java Memory Model Pragmatics – Aleksey Shipilёv dives into the Java memory model, exploring the promises and realities of access atomicity, word tearing, sequential consistency, and out-of-thin-air values in the JMM.

Scalable Collaborative Filtering with Spark MLlib – Collaborative filtering is a type of recommender system that has received enormous interest from the online advertising and retail communities, given its cross-selling potential and ease of implementation. DataBricks offers a simple demonstration of how you can use Spark MLib to train a simple collaborative filtering algorithm on billions of records with Amazon EC2.

Comparing Java HTTP Servers’ Latencies – Zhong Yu, author of the Bayou HTTP server for Java 8, benchmarks the performance of several HTTP servers running simple HelloWorld applications.

Parallel-lazy Performance: Java 8 vs Scala vs GS Collections – Craig Motlin, technical lead for GS Collections, analyzes the performance of collections across three libraries and explains several common bottlenecks when writing high performance collections.


Hadoop Summit Presentations – Hortonworks has uploaded over a hundred talks from Hadoop Summit 2014 on topics from Deep Learning on Hadoop to Railroad Modeling, to Chef Deployments, to Summingbird, to Similarity at Scale and more.

Apache Spark Developer Training – Diana Carroll shares her experience with Apache Spark in a new training course from Cloudera University filled with examples, best practices and exercises designed to help you get up to speed with cluster computing.

Build Advanced Time-Series Pipelines in Apache Crunch – Mirko Kämpf at Cloudera teaches us how to create dataflow pipelines for time series analysis, control sampling rates, and convert time series data between multiple formats using Apache Crunch.

Why I distrust wildcards and why we need them anyway – Gavin King, lead developer at Ceylon and creator of the Hibernate ORM, raises some issues with Java’s generics and discusses why Ceylon avoided wildcards for so long, cf. Brian Goetz’s State of the Specialization.

Avoiding Null Checks In Java – If you’re already on Java 8, NPEs may be a thing of the past. If not, this guide from Papapetrou Patroklos can help you avoid writing null checks before every dot operator, method invocation and return statement. IntelliJ’s contract annotations can often help alleviate this problem.

How JDK 8 standardizes and augments to Guava library functionalities – Bhakti Mehta, Glassfish Engineer and author describes the analogs between Java 8 and Guava, also helpful for migrating legacy Guava code to the canonical Java 8.

RxJava + Java8 + Java EE 7 + Arquillian = Bliss – Alex Soto explains how to configure RxJava to bootstrap a RESTful microservice and run integration tests with Arquillian.

JUnit Rules and Spock – Andre Steingress describes the process of testing a file upload routine with Spock and illustrates a neat application of JUnit’s Rules feature to simplify setup and tear down during a Spock test.

Posted in News & Events | Tagged , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Try IntelliJ IDEA 14 EAP 138.1283.4 with Code Cleanup, Android Studio Beta Features and More

I bet you’ll agree with me that dealing with legacy code is not a pleasant task. Almost like cleaning up an old storage room full of dust and garbage. Even if you have powerful inspections that tell you what’s going wrong, you still have to run them manually and then apply quick-fixes one by one on every of the errors you have found. We don’t like mundane tasks like that, and that’s why in the new IntelliJ IDEA 14 EAP build we’re adding the new Code Cleanup feature that automatically fixes your code for you, in one click instead of dozen.

To use the feature, simply go to Analyse → Code Cleanup… menu. You’ll get a simple dialog where you specify the scope of project files that you want analyzed and fixed, and the inspection profile to use for that.

Screen Shot 2014-07-25 at 11.25.29 Continue reading

Posted in New Features | Tagged , , , | 4 Comments

Webinar Recording: A Playful Introduction to Rx by Erik Meijer

In case you’ve missed the awesome webinar A Playful Introduction to Rx by Erik Meijer last week, you can watch the recording published on IntelliJ IDEA YouTube channel.

Learning Rx does not have to be boring or painful, working your way through theoretical sermons about esoteric concepts like category theory and duality. Life is too short for that kind of abstract nonsense. So what is a better way to spend a hot summer day with an ice-cold drink, or a cold winter night with a piping hot drink, than to learn Rx by writing an awesome platform game?

Enjoy the video and feel free to share it with the friends of yours:

Erik’s slides are available at Slideshare.

About the Presenter:

Erik MeijerErik Meijer is a Dutch computer scientist and entrepreneur. From 2000 to early 2013 he was a software architect for Microsoft where he headed the Cloud Programmability Team. He then founded Applied Duality, Inc. in 2013. Before that, he was an associate professor at Utrecht University. He received his Ph.D from Nijmegen University in 1992. Follow Erik on Twitter @headinthebox.

Posted in Webinars | Tagged , , , | 3 Comments

IntelliJ IDEA 13.1.4 Update is Out

We’ve got some great news to share with you today. Finally, IntelliJ IDEA 13.1.4, packed with a bunch of long-awaited enhancements is here. Grab it while it’s fresh!

If you’re running IntelliJ IDEA 13.1 and haven’t yet received a notification about this update, check for it manually by opening the Help menu and clicking Check for Updates.

UPDATE: The problem with Android projects compilation has been fixed. Please download the fixed build from the download page or wait for update patches.

Develop with Pleasure!

Posted in Releases | Tagged , | 29 Comments

The Backspace Key Gets Smarter in IntelliJ IDEA 14 EAP

If you haven’t tried IntelliJ IDEA 14 EAP yet, we hope this sneak peek will convince you to, because it keeps getting better and better!

One of current EAP highlights is smarter Backspace key behavior: it doesn’t just remove indents and white spaces, it does so according to your code style settings. This new setting which is called Smart Backspace Indent makes editing code way more convenient because you can just slam it repeatedly without having to worry about breaking code style and remove unwanted spacing much quicker:

Backspace Smart Indent

The setting is enabled by default but you can toggle it from SettingsEditorSmart Keys: Continue reading

Posted in EAP Releases, New Features | Tagged , , | 20 Comments

IntelliJ IDEA 13.1.4 RC 135.1228 is Out

We hope that this news will please you. Today we’ve just released IntelliJ IDEA 135.1228 build which will become the IntelliJ IDEA 13.1.4 update if no serious problems found.

For  the full list of changes see Release Notes.

As always don’t forget to share your feedback with us at the discussion forum and out issue tracker.

Develop with Pleasure!


Posted in EAP Releases | Tagged , | 7 Comments

IntelliJ IDEA 14 EAP 138.1029 is out with a built-in Java decompiler

If you’ve already joined IntelliJ IDEA 14 EAP, grab the freshly baked build that we published just now. If you haven’t, it’s a perfect time to do so now.

The most notable change in the new build is a built-in decompiler for Java classes. Now you don’t need any third-party plugins to take a look at what’s inside a library for which you don’t have the source code. This might not always work for Java 8 and non-Java classes, but we’re working on making it better and your feedback is always appreciated.


Other interesting things to try out:

  • Windows installer with bundled JRE uses Java 8
  • OS X installer with bundled JRE uses Java 7 Update 60
  • Importing Spring bean configurations when importing an STS project
  • The Open action from the Welcome screen now opens single files

Check out the complete release notes.

Stay tuned for more details and don’t forget to write back to our discussion forum and issue tracker!

Develop with Pleasure!

Posted in EAP Releases, New Features | Tagged | 9 Comments

Meet IntelliJ IDEA Team at Java Forum Stuttgart

If you are an IntelliJ IDEA fan, join us on July 17th at Java Forum Stuttgart, where speakers from all over the world will be discussing everything Java. Come across our booth for a sneak peek at what’s new in the upcoming IntelliJ IDEA 14, and, of course, for good old friendly chat with IntelliJ IDEA crew.

Don’t miss our license raffle, where everybody is guaranteed to win something.

See you next week!

IntelliJ IDEA Team

Posted in News & Events | Tagged | Leave a comment