Developer Tools for PhoneGap, Cordova and Ionic in IntelliJ IDEA 14

Being the best IDE for Java developers, IntelliJ IDEA is also dedicated to providing the first-grade support for non-Java technologies, especially when it comes to web development. If you’ve ever used IntelliJ IDEA to work with JavaScript, CSS, or AngularJS code, then I’m sure you know what I mean.

IntelliJ IDEA 14 is going to be even better in that way, and you can see it for youself in the latest EAP, where you can experience the its power and flexibility when developing HTML5 hybrid mobile applications.

We’re pleased to announce that both IntelliJ IDEA and WebStorm will officially support PhoneGap, Apache Cordova and Ionic frameworks with the installation of dedicated plugin.

Continue reading

Posted in New Features | Tagged | 2 Comments

Java Annotated Monthly – September 2014

The Java Annotated Monthly is your one source for the latest developments from the Java community and beyond. Each month, we highlight the most interesting content around the web, from developers like you. This month’s issue is dedicated to Robbie Cheng, author, OSS contributor, and Java community leader. Our thoughts go with his family and friends.



With its steady development, meticulous design and huge selection of libraries and frameworks, the Java language is a natural choice for large and small projects. Today, development shows no sign of slowing down, with new JEPs arriving each month and a brand new update just in. Find your reason to start using Java today.

Continue reading

Posted in News & Events | Leave a comment

Meet IntelliJ IDEA Team at JavaOne 2014

September has finally come and it means that one of the most anticipated events for all Java developers from around the globe, JavaOne, is right around the corner: it will will take place during September 28 – October 2 in the sunny San Francisco, CA. Of course, JetBrains is already gearing up for the event, and we’re looking forward to seeing you there.

Our booth will feature conversations with the IntellIJ IDEA team, discussions about what’s coming in this year release of IntelliJ IDEA 14, demos of our other JetBrains products like TeamCity and YouTrack, and of course, our traditional license raffle.

Be sure to also mark your calendar for two sessions by our very own Hadi Hariri and Konstantin Bulenkov:

IntelliJ IDEA: 42 Tips and Tricks
Hadi Hariri – Developer Advocate, JetBrains
Thursday, Oct 2, 1:00 PM – 2:00 PM – Hilton – Continental Ballroom 5

An IDE is so much more than an editor, yet people seem to compare one to another. This session looks at IntelliJ IDEA and gives you 42 tips and tricks that will make you a more efficient and productive developer. From searching for symbols to having a smooth worfklow when working with version control, the presentation examines all the things that make it possible to have a pleasurable development experience. You’ll be guaranteed to leave this session knowing things you probably didn’t even know existed and were afraid to ask if they did. Maybe even find out why it will be 42 tips.

The Emerging Languages Bowl: The Big League Challenge by 
Hadi Hariri – Developer Advocate, JetBrains
Wednesday, Oct 1, 3:00 PM – 4:00 PM – Hilton – Continental Ballroom 7/8/9

Scripting languages that are emerging and not yet mainstream vie with each other to stake a claim that they have the potential to become mainstream and be regarded as big-league. Don’t miss this panel discussion, in which these emerging languages are portrayed by their respective champions, who explain how they may help your everyday life as a Java developer. To present a complete picture, the session includes some languages that may not run on the JVM. Afterward you will have a better grasp of the emerging languages and the ecosystem. One or more of the languages may catch your fancy for doing development alongside Java.

Brewing Your Very Own IDE: A How-To Guide
Konstantin Bulenkov – Team Lead, JetBrains
Thursday, Oct 2, 4:00 PM – 5:00 PM – Hilton – Golden Gate 4/5


No one knows how many programming languages there are in the world. New languages are born all the time, some to become really popular and widely used, some to occupy specific niches, and some to die slowly (or quickly). But for any language, what really makes it usable is having an adequate environment to work in. This session describes how to use the open source IntelliJ platform to build your own IDE and how to implement perfect support for a language from a single BNF file.

Develop with Pleasure!

Posted in News & Events | Tagged | 3 Comments

IntelliJ IDEA 14 EAP 138.1980.1 is Out

If you haven’t yet developed an addiction to the new features in IntellIJ IDEA 14 EAP, there’s still a chance you will—with more goodies brought by the fresh EAP build we just released today.

The first thing you’ll notice when you run the new EAP build is the redesigned Settings (Preferences in OS X) dialog. Following the recent changes that affected the Project Structure dialog, the Settings dialog also gets a cleaner interface, a more straightforward layout and a rearranged settings tree (some of the settings have been merged, and others reordered based on their frequency of use):

Screen Shot 2014-09-02 at 12.15.18

Continue reading

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

Improve IntelliJ IDEA and Eclipse Interop and Win a License!

The debate about which Java IDE is the best seems to never end. Instead of going into the argument, we’d like to focus on helping teams that are using multiple IDEs in their work.

While the choice of IDE is a very personal matter, we believe it should be discussed at the team level, seeing how it significantly affects the overall team productivity.

We’re constantly working on improving the interoperability between IntelliJ IDEA and other IDEs. As a part of this process, we’ve just launched a survey to better understand your experience of working in mixed-IDE teams.

Take this short survey now to help improve this interoperability and your chance to win 1 of 10 free personal IntelliJ IDEA licenses or upgrades.

Develop with Pleasure!

Posted in News & Events, Tips & Tricks | Tagged , | 2 Comments

IntelliJ IDEA 14 EAP 138.1696.2 is Out

Great news for all participants of IntelliJ IDEA 14 EAP: a new EAP build is already here and, as always, packed with lots of bugfixes and enhancements.

One notable change of this build is the redesigned Project Structure dialog. It’s got a cleaner interface and a new tab called Problems showing the problems related to project configuration, all in one place:

Screen Shot 2014-08-20 at 15.38.38

Another important change is the new Push dialog for Mercurial that shows the outgoing commits along with information such as the author, hash, date, commit message, and the list of changed files:

Screen Shot 2014-08-20 at 17.21.04

The commits are grouped by repository so you can deselect any of them where you don’t want to push. The Push button itself has a drop-down menu with the Force Push action.

That’s it for now. We hope you’ll find these small enhancements useful. In case something doesn’t work as expected, don’t hesitate to share your feedback on our discussion forum and submit bug reports to the issue tracker.

Develop with Pleasure!

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

Improved Expression Evaluation in IntelliJ IDEA 14

If you ever tried IntelliJ IDEA debugger (which I’m sure you did), you know how important it is to be able to evaluate an expression quickly, without using the Watches or Variables tab. That’s why the Evaluate Expression (Alt F8) is one of crucial features available in IntelliJ IDEA debugger. However, not everybody knows that IntelliJ IDEA can also display a result of any expression when you click it holding Alt, or just hover the mouse over it.

Sometimes it’s even easier and faster than using a shortcut, even if you prefer to use keyboard instead of mouse. The only limitation this feature used to have is that it didn’t support clicking or hovering over operator expressions. Well, until now, because today we’are happy to announce that IntelliJ IDEA 14 will correct this injustice and extend the support of this feature to operator expressions as well.

Here’s how it works for unary, binary, and ternary operations:


You’re welcome to give this feature a try (you need the latest IntelliJ IDEA 14 EAP build for that.) We appreciate your feedback in our discussion forum and issue tracker.

Develop with Pleasure!

Posted in New Features | Tagged , , | 2 Comments

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