Oracle Java Mission Control: The Ultimate Guide

“We love following Mikhail Vorontsov’s blog and getting his point of view on Java Performance related issues. We’ve been asked a few times how Takipi’s Java error analysis differs from Java Mission Control and Java Flight Recorder. So while the differences between the tools are pretty big (Mainly, JMC is mostly a desktop application, while Takipi was specifically designed for ...

Read More »

Stupid Recruiter Tricks, Vol. 1: “Where are you interviewing?”

Anyone who has worked with a recruiter has probably been asked “Where else are you interviewing?” or “What other companies have you applied to?“. The question comes from both agency recruiters (‘headhunter‘) representing several hiring firms and internal corporate recruiters hiring only for their company. Candidates are understandably not always willing to answer, and recruiters may stumble to give convincing explanations as to why they want to know. ...

Read More »

Minecraft Server on Google Cloud

If you’ve not followed the Minecraft/Bukkit saga over the past few months, Bukkit and CraftBukkit downloads were taken down by DMCA because a developer (@wolvereness) wanted Mojang to open up. Mojang (@vubui) posted an official statement in their forums. The general feeling is that @wolvereness left the Bukkit community hanging, and Mojang is not responsible for this debacle. One of my friends (@ryanmichela), and ...

Read More »

CompletableFuture can’t be interrupted

I wrote a lot about InterruptedException and interrupting threads already. In short if you call Future.cancel() not inly given Future will terminate pending get(), but also it will try to interrupt underlying thread. This is a pretty important feature that enables better thread pool utilization. I also wrote to always prefer CompletableFuture over standard Future. It turns out the more ...

Read More »

Automatic promotion of artifacts to Maven Central from Gradle

Quick tutorial how to promote/release artifacts in a Gradle project to Maven Central, without clicking in the Nexus GUI with Gradle Nexus Staging Plugin. Introduction Maven Central (aka The Central Repository) is (probably) the world’s largest set of open source artifacts used by Java and JVM-based projects. It was founded by the creators of Apache Maven and it has been ...

Read More »

Avoid Perpetuating These Things In Your Code

At some point in your career you will find yourself leaving the project you’re on and heading to new challenges (for better or for worse). Whether that is you taking another role with a different company or team, or if it’s the company you’re with outsourcing that project to other teams or even to another country. Regardless of the reason, ...

Read More »

jOOQ vs. Hibernate: When to Choose Which

Hibernate has become a de-facto standard in the Java ecosystem, and after the fact, also an actual JavaEE standard implementation if standards matter to you, and if you put the JCP on the same level with ISO, ANSI, IEEE, etc. This article does not intended to discuss standards, but visions. Hibernate shares JPA’s vision of ORM. jOOQ shares SQL’s vision ...

Read More »

Creating a MongoDB Capped Collection in Java

In MongoDB, it’s possible to preserve the insertion order of documents into a collection in a circular fashion. These types of collections are called Capped Collections in MongoDB. The MongoDB documentation describes Capped Collections: “Capped collections are fixed-size collections that support high-throughput operations that insert, retrieve, and delete documents based on insertion order. Capped collections work in a way similar ...

Read More »

Enumerating @NamedQuery within @NamedQueries

java-interview-questions-answers

Introduction If you’re a Java developer using JPA, chances are that you’ve declared one or more @NamedQuery objects on your entities. To declare a @NamedQuery on a class, the class must simply be annotated with the name of the query and its JPQL, such as: @Entity @NamedQuery(name = "findAllProjects", query = "select p from Project p order by p.id") public ...

Read More »