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 | 7 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

Java Annotated Monthly – June 2014

The Java ecosystem is alive and flourishing, with nearly ten million active Java developers, and this June is no exception! Each month, we’re thrilled to bring you the best content from around the world. Looking for the latest Java news and announcements? Look no further.


In this month’s Java roundup, we have eight ways to become more familiar with Java 8 for beginners to experts.

  1. Interface default method implementations
  2. Lambda expressions
  3. The Stream API
  4. JDK8 – Lottery
  5. Java 8 and Java FX
  6. Project Nashorn – JavaScript on the JVM
  7. 10 Subtle Mistakes When Using the Streams API
  8. Leveraging lambdas in Scala, Java 8, Clojure and JRuby

Project Jigsaw – Jigsaw development is now full steam ahead, planned in four separate phases. The first three will modularize the JDK, and the last phase will introduce a concrete module system – modules are basically collections of types with associated metadata and resources. Mark Reinhold has also released a draft outlining the project’s updated goals and requirements. Get involved in the discussion today!


Scala Roadmap – Scala charts a path towards Java 8 interop in 2.12, slated for 2016. Some early goals include a new scalac backend/optimizer, support for invokedynamic, method handles, revamped collections and much more.

Scala: The Simple Parts – Martin Odersky, lead designer of Scala, takes a journey through a few core ideas in the Scala language and demonstrates how its functional and object-oriented design can lead to greater composability and expressiveness.

IcedTea 2.5.0 for OpenJDK 7 Released – The IcedTea project provides a harness for building OpenJDK using FOSS build tools and supports alternate platforms and JVMs.

Kotlin M8 is out – Kotlin M8 introduces property reflections, inlining improvements, support for modifier keywords, and a number of additions to the standard library.

How to Build a Virtual Machine – Terence Parr, creator of the ANTLR project gives an excellent talk on building a virtual machine from the ground up.


Gradle 2.0 Release Notes – Gradle 2.0 brings updates for the latest versions of Groovy and Java, better Maven interoperability, a simpler GCC toolchain and improved tooling support for IDEs. As usual, there are a few DSL and build script changes to watch out for, be sure and read the features roadmap for 2014.

Getting Started With Gradle – Check out this three-part compilation on getting started with the Gradle build system from Petri Kainulainen.

Docker Containers With Gradle in 4 Steps – We’ve been hearing a lot about Docker lately, a platform for shipping apps across clouds, data centers and other devices, which recently launched 1.0. Now, resource provisioning with Gradle and Docker has never been easier.


Maven 3.2.2 Released – The latest Maven release is a minor one, primarily featuring support for version ranges in parent elements.

Continuous Integration Using Docker, Maven and Jenkins – Maven continues to be the build system of choice for millions of developers. Learn how to set up continuous integration with Docker and Jenkins for hands-free testing and deployment.

Testable Java EE 7 Maven Archetype, using Arquillian – Arun Gupta shows us how to configure Maven to run integration tests on WildFly or GlassFish using Arquillian.


Spring IO Platform 1.0.0 Released – Spring into modern web application development with the unified Spring IO Platform, version 1.0 – Josh Long, developer advocate at Pivotal explains a few of the motivations behind the recent overhaul in this interview.

Free Spring Framework Course – Bruce Hilton from denOfProgramming shares his experience in an outstanding introduction to programming on the Spring Framework.

Explicit vs Implicit configuration in Spring – Two approaches for configuring IoC in Spring: auto-wiring/injection and XML-based configuration.

Developing Single Page Web Applications using Java 8, Spark, MongoDB, and AngularJS


Android Studio Beta Released – Including a brand new Navigation Editor for prototyping applications, the Layout Editor has received a great deal of attention from Android’s Tools team to support screens in all shapes and sizes. Don’t forget to check out What’s New in Android Development Tools from Google I/O!

A Closer Look at Android RunTime (ART) in Android L – Since an early debut under KitKat and prior to launching in “L”, Java’s newest virtual machine has been put through its paces, and the results are in! Andrei Frumusanu from AnandTech brings us the state of the ART in rendering benchmarks, garbage collection and more.

Groovy on Android – Finally, it is now possible to run Groovy directly on Android! Cédric Champeau, software engineer at Pivotal describes some of the difficulties in building Groovy language support for Android, whose work was recently merged into Groovy.

RoboVM 0.0.14 has been released – RoboVM 0.0.14 updates support for iOS 8 and CocoaTouch, now bundled with Android 4.4.3 runtime libraries.

Open Source

ByteBuddy - ByteBuddy is an instrumentation library for programmatically generating Java bytecode during runtime, from open source enthusiast and IntelliJ IDEA user Rafael Winterhalter. As well as contributing to DZone and StackOverflow, he also writes an excellent blog, My daily Java.

deeplearning4j – The release of DL4J helps circulate years of research that has, until recently, only been accessible to academia and large corporations. Thanks to Skymind, now you too can leverage cutting edge machine learning techniques to build more intelligent applications.

FlatBuffers – FlatBuffers is a cross-platform serialization library for reading and writing data across high performance applications. It is basically a much slimmer version of Protocol Buffers, without a parsing/unpacking step.

AeroSpike – AeroSpike is an in-memory database solution competing with the likes of SAP HANA, Oracle TimesTen, IBM SolidDB and plenty of others. Last month, AeroSpike joined VoltDB in releasing their platform to the open source community.


Testing With Spock – Given Spock is a behavioral testing framework in Groovy, when you a write a new test in Spock, then it should look something like this sentence. If you’re new to BDD or Groovy, Łukasz Janicki writes an excellent primer for getting started with plenty of sample tests.

Lambda Behave – Think that behavior and tests should always be written in the same language? Lambda Behave might be right for you. While somewhat more verbose, Lambda Behave provides a fluent API wiring your tests and integrating with JUnit.

Testing with Aliens; How to test a JPA type converter with Arquillian – Arquillian is a JBoss project for making testing more portable across IDEs, build tools and servers. It provides a provides a component model for writing integration tests that can be run inside almost any application server or container implementation.


Java vs. Scala: Divided We Fail – Aleksey Shipilёv profiles a divisibility benchmark in Java and Scala with some surprising results, cf. Scala is faster than Java.

Notes on False Sharing – Nitsan Wakart, Performance Engineer at Azul Systems explains false sharing, a problem whose solution in Java was far messier prior to the introduction of JEP 142.

XRebel 1.0 – ZeroTurnaround releases XRebel, the interactive Java profiler.

YourKit 2014 EAP – Six months into their EAP, YourKit has developed several new profiling features, including exact line-level traces, duplicate & highly referenced object detection, performance improvements and better alignment with Java 8.

An ultra-lightweight high-precision logger for OpenJDK – Andrew Haley from the OpenJDK Project documents implementing a flyweight logger in C through the JNI.


Hotspot compile command annotations – There is a good chance you’ll never need to force an inline method in Java thanks to JVM optimizations. If you do, make sure it’s short, make sure it’s hot, make sure it’s well-tested, cf. Fixing the Inlining “Problem”.

JavaScript for Java Developers – Despite a growing number of end-to-end RIA solutions, JavaScript is often the last mile in delivering modern web applications and today’s Java developer should have a good working familiarity with JavaScript.

Java Method Logging with AOP and Annotations – Yegor Bugayenko walks us through a classic AOP activity, logging, with AspectJ and jcabi-aspects.

GeekOut 2014 Presentations and Videos – Thanks to an amazing round of talks from developers around the world, GeekOut 2014 was a huge success! Talks from this year feature git workflows, HotSpot improvements, reactive programming, jOOQ and much, much more.

Posted in News & Events | 1 Comment

Live Webinar: A Playful Introduction to Rx, July 18th

Learning Rx does not have to be boring like working your way through theoretical sermons about esoteric concepts like category theory and duality. Life is too short for that kind of abstract nonsense. That’s why we invite you to join us Friday, July 18th, 14:00 – 15:00 GMT (10:00 AM – 11:00 AM EDT) for a free webinar featuring Erik Meijer, «A Playful Introduction to Rx».

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? In this talk, Erik will walk you through many of the features of Rx through programming a friendly bug to run across a lushy grassy meadow and jump for the stars. In just a few tens of lines of code we will leverage operators like map, flatMap, filter, scan, and many more to react to the keyboard, animate jumps, and perform collision detection. We will even use a test scheduler to make the game run at a speed we determine so we can easily debug and test our game.

We will use RxScala and IntelliJ IDEA to develop the game, but since Rx is language- and platform-agnostic, we’ll show snippets of the same game implemented using RxJs and Rx .NET as well. Of course, all the source code will be available for your entertainment on GitHub.

Once you have mastered elementary game development using Rx, you are more than ready to go on and build reactive, event-driven, scalable, and resilient enterprise systems for your pointy-haired boss. But until then, devs just wanna have fun.

Space is limited, please register now. There will be an opportunity to ask questions during the webinar.

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 Tips & Tricks, Webinars | Tagged , , , | 3 Comments

IntelliJ IDEA 14 Early Preview is Available!

Today we are happy to announce that IntelliJ IDEA 14, codenamed Cassiopeia and scheduled for release later this year, is now available for early preview! You’re welcome to download the IntelliJ IDEA 14 EAP and see what exciting new features it offers.


Highlights of this release:

  • Java Debugger:
    • Completely rewritten using the new API, with unified Debugger tool window for all languages.
    • The Watches tab now persists expressions (and remembers it even after you close it.)
    • Breakpoints can now be arranged by user groups.
    • Hidden elements of long arrays and collections are displayed on demand, you no longer need to edit the view settings for that.
  • Java editor:
    • Backspace smart indent makes the Backspace key aware of your code formatting settings, so it doesn’t break your code when removing indents before caret.
    • Now it’s possible to generate tests for methods and add them to an existing test class.
  • General IDE:
    • The new Code cleanup action (available via AnalyzeCode Cleanup or as an option in the VCS commit dialog) applies quick-fixes in batch mode to selected files.
    • The improved Find in path action now can search within files with unknown extensions and within the .idea configuration files. It also uses indices when searching for strings that contain a part of an identifier (3 characters and longer.)
    • Copy/paste selected code as HTML/RTF is now available without additional plugins.
    • Better IDE startup time.
  • JavaFX:
    • SceneBuilder 2.0 is now available as UI designer so you don’t need to leave IntelliJ IDEA to work with .fxml files (requires IntelliJ IDEA to run on Java 8.)
  • Spring:
    • Performance when handling Spring projects with large numbers of XML descriptor files has been significantly improved.
    • The Select In action now also can navigate to the Spring tool window.
    • The new plugin with Spring Websocket support.
  • Grails and Gradle now work better together.
  • Mercurial:
    • The Push dialog has been improved.
    • The Log viewer loads faster.
    • The option to revert uncommitted merge and update from the Log viewer reverting the current changes.
    • Displaying of the current revision in the Log viewer.
    • Many other enhancements, including the notification about incoming/outgoing changes.
  • Web development:
    • Postfix code completion for JavaScript
    • Spy.js and Node.js now can run together via new run configuration.
  • We think you’ll also appreciate the fact that Code Coverage tool, Structural Search and Replace, and Type Migration refactoring have become available in IntelliJ IDEA Community Edition.

    Work on IntelliJ IDEA 14 is in full swing, so many more awesome features await ahead. Meanwhile, feel free to help us make the release even better by sharing your feedback in our discussion forum and reporting bugs to the issue tracker!

    Stay tuned for more details on these and other new features soon to appear in our blog.

    Develop with Pleasure!

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