Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

and many more ....

Lambdas for Fluent and Stable APIs

java-logo

A few weeks ago I wrote an introduction on Java 8 lambdas. In this introduction I explained what a lambda is and how to use them in conjunction with the new Stream API, that is also introduced in Java 8. The Stream API provides a more functional interface to collections. This interface heavily depends on lambdas. But there’s much more ...

Read More »

ID Lists Aren’t the Best Solution for the N+1 Problem

jboss-hibernate-logo

In their eternal attempts to circumvent the N+1 problem, Hibernate users often resort to IN predicates with ID lists. In this post, we’ll see how those users might just be replacing a horrible thing with a bad one, which is better but not yet good. Here’s why: The N+1 Problem The N+1 problem is a well understood issue, documented in ...

Read More »

Customization in Saas using Plug and Play Architecture

software-development-2-logo

There exists a lot of design patterns, architectures and design concepts that can be applied to technical aspects of implementing a product. For eg., we have MVC architecture that isolates the view, controller and model of the application. We have a factory pattern that defines how to create objects and so on. Yet, these all limit themselves to the technical ...

Read More »

Throttling Task Submission with a BlockingExecutor

java-logo

The JDK’s java.util.concurrent.ThreadPoolExecutor allows you to submit tasks to a thread pool and uses a BlockingQueue to hold submitted tasks. If you have thousands of tasks to submit, you specify a “bounded” queue (i.e. one with a maximum capacity) otherwise your JVM may run out of memory. You can set a RejectedExecutionHandler to handle what happens when the queue is ...

Read More »

Cloud based deployment pipeline

software-development-2-logo

Cloud based development tools are continuing to improve thanks to the power of new browser technologies and cloud services such as github and Amazon Web Services. The full deployment life-cycle can now be based entirely in the cloud by using various SaaS and PaaS offerings. As each service offered is provided by a different entity the challenge is to integrated ...

Read More »

Multi-tier application + database deadlock or why databases aren’t queues (part1)

software-development-2-logo

Databases aren’t queues. And despite the ubiquitous presence of queuing technology out there (ActiveMQ, MSMQ, MSSQL Service Broker, Oracle Advanced Queuing) there are plenty of times when we ask our relational brethren to pretend to be queues.  This is the story of one such folly, and along the way, we’ll delve into some interesting sub-plots of deadlocks, lock escalation, execution ...

Read More »

Too Many Parameters in Java Methods, Part 8: Tooling

java-logo

The first seven posts of my series of dealing with too many parameters expected in Java methods focused on alternative approaches to reduce the number of parameters a method or constructor expects. In this eighth post in the series, I look at tools that help identify cases where too many parameters may exist and tools that help deal with that ...

Read More »

Announcing EAXY: Making XML easier in Java

java-logo

XML libraries in Java is a minefield. The amount of code required to manipulate and read XML is staggering, the risk of getting class path problems with different libraries is substantial and the handling of namespaces opens for a lot of confusion and errors. The worst thing is that the situation doesn’t seem to improve. A colleague made me aware ...

Read More »

Hibernate Facts: Equals and HashCode

jboss-hibernate-logo

Every Java object inherits the equals and hashCode methods, yet they are useful only for Value objects, being of no use for stateless behavior oriented objects. While comparing references using the “==” operator is straight forward, for object equality things are a little bit more complicated. Since you are responsible for telling what equality means for a particular object type, ...

Read More »
Do you want to know how to develop your skillset and become a ...

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!
Get ready to Rock!
To download the books, please verify your email address by following the instructions found on the email we just sent you.

THANK YOU!

Close