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

    IntelliJ IDEA 13.1.4 EAP 135.1138 is Available

    You’ll be glad to know there is a fresh EAP build of the upcoming IntelliJ IDEA 13.1.4 update, as always it comes with a bunch of small enhancements and bugfixes.

    Don’t forget to report found issues directly to the tracker.

    Develop with Pleasure!

    Posted in EAP Releases | Tagged , | Leave a comment

    Webinar: Developing Java EE Apps for WebLogic 12c with IntelliJ IDEA

    Join us Wednesday, June 25, 16:00 – 17:00 GMT (09:00 – 10:00 AM PDT) for a free live webinar with Bruno Borges, Developing Java EE Apps for WebLogic 12c with IntelliJ IDEA.

    In this webinar you will get an introduction to WebLogic 12c and learn how to develop Java EE 6 applications using IntelliJ IDEA. Application deployment will also be covered, including the use of Maven WebLogic Plugin and Web Console, plus we’ll have a look at other fetures you will surely find interesting.

    This webinar is intended for intermediate and beginner Java EE developers.

    Space is limited, please register now.

    About the Presenter:

    Dr_Venkat_Subramaniam_200x200Bruno Borges is Oracle’s Principal Product Manager for Latin America for Java Middleware Stack, as well Java Evangelist and covers topics from Java Embedded to Java SE and JavaFX to Java EE. Bruno has more than 12 years of experience as a Java developer in most areas, from mobile to enterprise applications.

    Posted in Webinars | Tagged , , , | Leave a comment

    Java Annotated Monthly – May 2014

    Here’s a few stories we’ve been reading on the Java beat this month, straight from the source. If you have any news or articles you would like to see here on the Java Annotated Monthly, you can reach me, Breandan dot Considine at JetBrains or @breandan.


    Java EE 8 Update – With the announcement of the Standard and Micro editions earlier this year, the final piece of the Java 8 puzzle has been announced, slated for release in Q3 2016. Read the draft proposal and add your feedback to JSR-342 by joining the conversation today.

    Java Tools and Technologies Landscape for 2014 – RebelLabs’ annual technology survey. Compare it with last year’s edition, and check out Plumbr’s log level statistics on Java environments and application servers for corroborating results.

    Java 9 development is now in motion, with a number of early access builds and a lively changelog each week. You can learn more about the direction of Java 9 from Mark Reinhold, and download a snapshot from to try it out today!


    Groovy 2.3 Released - Introduces support for JDK 8, traits, tail recursion, closure parameter type inference, and a new markup engine among several smaller improvements.

    Scala 2.11 Now Available – Scala 2.11 includes better modularization, faster reflection and stronger types. Check out the full changelog and download a copy of Scala 2.11 today.


    What’s new in Play 2.3 – Introducing sbt-web, an asset pipeline for managing web assets with the Scala Build Tool. Play now bundles the Typesafe Activator, featuring browser-based code editing and elementary debugging for reactive applications. In addition to several performance enhancements and increased modularity, Play is also certified to work with Java 8. Read about platform direction and design rationale from James Roper, lead developer of Play Framework.

    Apache Spark Release 1.0.0 – Spark is a fault tolerant cluster computing engine for machine learning and graph processing applications built on Hadoop. Learn more about resource management and YARN support on Spark from Sandy Ryza at Cloudera.

    Neo4j 2.1 Released – Introduces .csv file importing, an experimental query planner and support for OpenJDK 7.

    WildFly 8.1.0 Release Notes – The latest release of WildFly a.k.a. JBoss AS, picks up support for JSP on JDK 8, smarter thread pooling and in-place updates making setup quick and easy.

    PrimeFaces 5 Released – There is more than meets the eye to PrimeFaces, including a new charts and graphs API, Push improvements, and internal remodeling for optimal accessibility.

    Spring Batch 3.0.0 is now GA – Batch 3.0 turns a new page for Spring developers with revamped dependencies, Gradle support, standardized batch processing and SQLite integration.

    Grails 2.4 Released – Much like Rails and Play, Grails now offers dedicated asset pipelining, and increased modularity as they move towards a Spring Boot foundation in 3.0.

    Neo4j + Spring Data – a natural fit for my data – Exploit the flexibility of graph databases with Neo4j and Spring data to serve your business analytics on Vaadin.


    libGDX 1.1.0 released – Close on the heels of 1.0, Badlogic Games ships another stable update to their widely hailed cross-platform game development framework, you can learn all about libGDX and how to get started from their lead developer, Mario Zechner. The latest version picks up support for i18n and the newly released…

    RoboVM 0.0.13 – Making steady progress on the mobile unification front, RoboVM is allowing Android developers to write native iOS apps in Java, and with limited success, in Kotlin. Learn more about using RoboVM from Niklas Therning’s tech talk at ITT.


    An Opinionated Guide to Modern Java Development – Planning on a long flight? You’ll need a few hours to appreciate this tremendous review of modern Java development, on everything from lambdas to logging frameworks. Follow the links for extra credit.

    Introduction to JMH – Mikhail Vorontsov introduces us to the Java Microbenchmarking Harness and JMH Profilers.

    Language Design Is Subtle – Lukas Eder delves into the finer points of language design with Java Language Architect, Brian Goetz.

    vJUG, The world’s first online Java User Group is now in session! Join Simon Maple, Oliver White and thousands of others on Meetup, then check out past sessions on their homepage.

    8 Great Java 8 Features No One’s Talking about

    The effects of programming with Java 8 Streams on algorithm performance

    Introducing Reactive Streams – A new streams library for reducing data flow congestion.

    An Interview with Aleksey Shipilёv – Aleksey Shipilёv, Java Performance Engineer at Oracle, shares with us some thoughts on using and abusing JMH, JCStress and JOL.

    What influences method call performance in Java?

    Posted in News & Events | Tagged , , , , , , , , , , , , , , , | 3 Comments

    IntelliJ IDEA 13.1.4 EAP 135.1019 is Out

    If you’re living on the edge and that includes always getting the most out of your IDE, this news is for you: IntellIJ IDEA 13.1.4 EAP is just out, bringing you several notable improvements  among other enhancements. So go grab it while it’s fresh!

    Don’t forget to share your feedback on our discussion forum and report bugs to the issue tracker.

    Develop with Pleasure!

    Posted in EAP Releases | Tagged , | 32 Comments

    IntelliJ IDEA 13.1.3 Update is Available

    Great news! A fresh update for your favourite IDE is here. Meet IntelliJ IDEA 13.1.3, packed with lots of enhancements, including some of recent changes from Android Studio.

    Screen Shot 2014-05-26 at 15.01.38

    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.

    Develop with Pleasure!


    Posted in Releases | Tagged , | 25 Comments

    Webinar Recording: Developing Web Applications with WildFly 8

    Last wednesday we had a great webinar with Arun Gupta about developing web applications with WildFly, the Red Hat’s open-source application server. In case you’ve missed it, here’s the recording:

    In addition to showcasing WildFly Arun gives a general overview of JBoss Middleware, shows JBoss Forge, and also demonstrates how easy it is to deploy OpenShift applications from IntelliJ IDEA.


    Check out the questions you asked during the webinar below answered by Arun and me: Continue reading

    Posted in Webinars | Tagged , , | 1 Comment