Feed aggregator

JPA Auditing: Automatically Persisting Audit Logs Using EntityListeners

Javalobby Syndicated Feed - Sat, 27-May-17 02:01

In my previous article, Spring Data JPA Auditing: Saving CreatedBy, CreatedDate, LastModifiedBy, LastModifiedDate automatically, I discussed why auditing is important for any business application and how we can use Spring Data JPA automate it.

I also discussed how Spring Data uses JPA's EntityListeners and callback methods to automatically update the CreatedBy, CreatedDate, LastModifiedBy, and LastModifiedDate properties.

Categories: Java

This Week in Java Careers: Which Companies Are Hiring?

Javalobby Syndicated Feed - Fri, 26-May-17 21:01

DZone Jobs launched earlier this month, and there are already some excellent opportunities for Java developers who are looking for their next career move. New jobs are being added daily, so we've started a weekly roundup to highlight these new positions. We encourage you to check these jobs out, as you may just find the perfect next career step. 

Site Reliability Engineer - Founding Team Member
Splice Machine
Location: San Francisco, CA
Experience: Demonstrated ability to write programs using a high-level programming language like: Java, Python, Ruby, Go or C++

Categories: Java

Vaadin With Scala

Javalobby Syndicated Feed - Fri, 26-May-17 14:08

This post shows a fully working 'Hello World' application in Vaadin 8 with Scala 2.12 running on Jetty.

Following my frustrated attempt to Dockerize an Ionic application as the Web UI of my petty Akka project, I started evaluating the latest version of Vaadin.

Categories: Java

Multi-Stage Docker Image Build for Java Apps

Javalobby Syndicated Feed - Fri, 26-May-17 13:01

A few days back, I discovered a new Docker feature — multi-stage builds. The multi-stage build feature helps you create thin Docker images by making it possible to divide the image building process into multiple stages. Artifacts produced in one stage can be reused by another stage. This is very beneficial for languages like Java as multiple steps are required to build the Docker image. The main advantage of the multi-stage build feature is that it can help you create smaller size images. This feature is not yet available in stable versions of Docker. It will become available in Docker 17.05. To use this feature, you have to use the edge version of Docker CE.

To build a Docker image for a Java application, you first need to build the Java project. Java build process needs a JDK and a build tool like Maven, Gradle, or Ant. Once a Java binary artifact is produced, you can package the binary in a Docker image. For running a Java binary, you only need JRE, so you don’t have to pay the cost of bundling the whole JDK.

Categories: Java

What's New in CUBA Platform 6.5?

Javalobby Syndicated Feed - Fri, 26-May-17 09:01

As you already might have noticed we have published the new release of the CUBA platform and Studio. The new version mostly introduces enhancements of the existing functionality, however, there are a few useful features have been included in 6.5.

This article covers the major enhancements of Platform and Studio. The full list of changes is available in the corresponding release notes:

Categories: Java

The Future Of Java

Javalobby Syndicated Feed - Fri, 26-May-17 03:01

To gather insights on the state of the Java ecosystem today, we spoke to nine executives who are familiar with the ecosystem.

We asked these experienced Java professionals, "What’s the future of Java from your perspective?" Here's what they told us:

Categories: Java

Java Profilers: 3 Different Types and Why You Need All of Them

Javalobby Syndicated Feed - Fri, 26-May-17 00:01

Debugging performance issues in production can be a pain and in some cases impossible without the right tools. Java profilers have been around forever, but the profilers most developers think about are only one type.

Let’s dive into the three different kinds of Java profilers:

Categories: Java

10 Nice Examples of Writing SQL in Kotlin With jOOQ

Javalobby Syndicated Feed - Thu, 25-May-17 21:01

Kotlin is the next big thing. With Google announcing official support for Kotlin on Android, we’ll see a lot more traction for this lovely language.

We’ve already blogged about the Kotlin language recently: 10 Features I Wish Java Would Steal From the Kotlin Language.

Categories: Java

Java SE 9: What's New?

Javalobby Syndicated Feed - Thu, 25-May-17 13:01

Below, I have provided some of the most important core language enhancements for JDK 9.0.The objective of this article is to introduce you to the new features of Java SE 9. This includes mostly conceptual introduction of the features. These are the almost finalized features, that have been accepted and officially announced by Oracle. Java 9 is scheduled for release by about the end of July 2017.


Categories: Java

Atlassian Clover Is Now Open Source

Javalobby Syndicated Feed - Thu, 25-May-17 09:01

Our company mission – to unleash the potential in every team – shapes the products we create today. A big part of this is delivering new features and improvements through continual updates and releases.

For many years, Atlassian Clover has provided Java and Groovy developers a reliable source for code coverage analysis. This dependability has allowed us to focus our development efforts on delivering new features and improvements to our core offerings, including JIRA Software, Bitbucket, and others.

Categories: Java

This Week in Spring: Manifest Editing, Boot 2.0M1, and Kotlin

Javalobby Syndicated Feed - Thu, 25-May-17 03:01

Welcome to another installment of This Week in Spring! This week I’m in Amsterdam, NL and Essen, DE, talking to customers about cloud-native transformation. We’ve got a lot to cover so let’s get to it.

Categories: Java

Notes on Debugging Clojure Code

Javalobby Syndicated Feed - Thu, 25-May-17 00:01

Clojure is a great programming language, but a recurring complaint I keep hearing from developers hacking on Clojure code is that debugging can be unpleasant. First of all, I agree! Debugging Clojure code can be more daunting on average than, say, debugging Python code. This is mainly due to two reasons:

  1. Clojure's Java legacy. Clojure is compiled to Java bytecode, which has some terminology and idiosyncracies Clojure programmers aren't always familiar with. These terms tend to pop up in stack traces and cause confusion (e.g. IFN).
  2. Clojure — being a Lisp — has a certain code structure which is different from, say, a more common imperative coding style. Rather than being a sequence of statements, Clojure programs tend to involve long call chains of nested expressions. Where only part of an expression fails, it's often non-trivial to figure out why.

In this post, I want to share some notes from my own experience debugging Clojure programs.

Categories: Java

The Strange Relationship Between Duplication and Coupling

Javalobby Syndicated Feed - Wed, 24-May-17 21:01

This short post hopefully contains no new knowledge for you. Its mere intention is to make you contemplate an interesting relationship between coupling and duplication for a while.

Duplication Is Bad!

As professional programmers, true software craftsmen, the clean coders, [insert your title here], we’re often taught that duplication is bad and should be avoided at all cost. We even have (at least) two widely known principles related to this problem, namely, "Don’t Repeat Yourself" and "Once And Only Once."

Categories: Java

Spring Data JPA Auditing: Automatically Saving the Good Stuff

Javalobby Syndicated Feed - Wed, 24-May-17 13:01

In any business application, auditing simply means tracking and logging every change we do in our persisted records, which simply means tracking every insert, update, and delete operation and storing it.

Auditing helps us in maintaining history records, which can later help us in tracking user activities. If implemented properly, auditing can also provide us similar functionality to version control systems.

Categories: Java

An Introduction to Code Coverage

Javalobby Syndicated Feed - Wed, 24-May-17 00:01

Code coverage is a metric that can help you understand how much of your source is tested. It's a very useful metric that can help you assess the quality of your test suite, and we will see here how you can get started with your projects. 

How Is Code Coverage Calculated?

Code coverage tools will use one or more criteria to determine how your code was exercised or not during the execution of your test suite. The common metrics that you might see mentioned in your coverage reports include:

Categories: Java

Creating a Groovy DSL for Structurizr

Javalobby Syndicated Feed - Tue, 23-May-17 21:01

In the previous post, we took a quick look into generating documentation with Structurizr. I really enjoyed playing with the tool, but I wasn’t aesthetically pleased with the code necessary to create a simple diagram. Well, seems like a perfect chance to introduce you to creating Groovy DSLs and produce something useful at the same time.

What Are We Going to Do?

We’re going to start from the very end so that you know what we’re aiming for and better understand the things that I’m going to explain. One of the code samples in the previous post looked like this:

Categories: Java

Guice Stories ( Part 2)

Javalobby Syndicated Feed - Tue, 23-May-17 09:01

For those of you who missed out, Part 1 of our Guice Stories series focused on Bootique and Guice's importance to it, especially for dependency injection. Let's continue on the journey with more Google Guice stories.

Story 3: Filling Maps and Collections

Previously, we saw the examples of adding objects to MapBinder. Let's dwell on this for a moment. Here, I will use Multibinder for a change (remember, it produces an injectable Set<SomeType>), but the discussion applies to MapBinder just as well. What can we put in these DI-managed collections? If the objects in the Set are trivial to create and do not rely on any dependencies, we can add them as instances:

Categories: Java

Java Creator James Gosling Joins AWS

Javalobby Syndicated Feed - Tue, 23-May-17 07:08

Around mid-day on Monday, May 22, James Gosling made a public announcement over Facebook that he has joined the team at Amazon Web Services (AWS):

"It's time for a change. I'm leaving Boeing Defense (nee Liquid Robotics), with many fond memories. Today I start a new Adventure at Amazon Web Services."

James Gosling, most known as the creator of the Java programming language, leaves his position as Chief Software Architect at Liquid Robotics, where he had worked since late 2011. Liquid Robotics was acquired by the Boeing company in late 2016.

Categories: Java

Random Generator Picks the Indy 500 Winner

Javalobby Syndicated Feed - Tue, 23-May-17 03:01

With the qualifications completed and the field set for the 101st running of the "Greatest Spectacle in Racing," I thought it would be cool to see which driver would be picked by Random Generator to get the win for the 2017 Indy 500.

Image titlePhoto courtesy of Bryon J. Realey

Categories: Java

The Hollywood Principle

Javalobby Syndicated Feed - Tue, 23-May-17 00:01

The Hollywood Principle says:

This little sentence opens up a new viewpoint in software. This is one of the important principles every developer should know. In this article, we will try to discuss it.

Categories: Java

Thread Slivers eBook at Amazon

Syndicate content