Home » Author Archives: Craig Flichel (page 2)

Author Archives: Craig Flichel

Testing GWT Apps with Selenium or WebDriver

google-gwt-logo

Good functional testing is one of the most difficult tasks for web application developers and their teams. It is a challenge to develop tests that are cheap to maintain and yet provide good test coverage, which helps reduce QA costs and increase quality. Both Selenium and WebDriver (which is essentially now the successor to Selenium) provide a good way to ...

Read More »

Swapping out Spring Bean Configuration at Runtime

spring-interview-questions-answers

Most Java developers these days deal with Spring on a regular basis and there are lots of us out there that have become familiar with its abilities as well as its limitations. I recently came across a problem that I hadn’t hit before: introducing the ability to rewire a bean’s internals based on configuration introduced at runtime. This is valuable ...

Read More »

Java Concurrency Tutorial – CountDownLatch

java-logo

Some concurrency utilities in Java naturally get more attention than others just because they serve general purpose problems instead of more specific ones. Most of us encounter things like executor services and concurrent collections fairly often. Other utilities are less common, so sometimes they may escape us, but it’s good to keep them in mind. CountDownLatch is one of those ...

Read More »

Java Concurrency Tutorial – Blocking Queues

java-logo

As discussed in Part 3, the thread pools introduced in Java 1.5 provided core support that was quickly a favourite of many java developers. Internally, the implementations make smart use of another concurrency feature introduced in java 1.5 – Blocking Queues. Queue First, a brief review of what a standard queue is. In computer science, a queue is simply a ...

Read More »

Java Concurrency Tutorial – Callable, Future

java-logo

One of the beautiful things about Java from its very first release was the ease with which we could write multi-threaded programs and introduce asynchronous processing into our designs. The Thread class and Runnable interface combined with Java’s memory management model meant for straightforward thread programming. But as discussed in Part 3, neither the Thread class nor the Runnable interface ...

Read More »

Java Concurrency Tutorial – Thread Pools

java-logo

One of the most generally useful concurrency enhancements delivered in Java 1.5 was the introduction of customizable thread pools. These thread pools give you quite a bit of control over things such as number of threads, reuse of threads, scheduling and thread construction. Let’s review these. First, thread pools. Let’s dive right into java.util.concurrent.ExecutorService, which provides us the basic interface ...

Read More »

Java Concurrency Tutorial – Reentrant Locks

java-logo

Java’s synchronized keyword is a wonderful tool – it allows us a simple and reliable way to synchronize access to critical sections and it’s not too hard to understand. But sometimes we need more control over synchronization. Either we need to control types of access (read and write) separately, or it is cumbersome to use because either there is no ...

Read More »

Java Concurrency Tutorial – Semaphores

java-logo

This is the first part in a series that we’re going to be doing on Java concurrency. Specifically, we are going to dive into the concurrency tools built into Java 1.5 and beyond. We’re going to assume you have a basic understanding of synchronization and volatile keywords. The first post will cover semaphores – specifically counting semaphores. Semaphores are an ...

Read More »

Problems with ORMs

jboss-hibernate-logo

Object Relational Mapping tools like Hibernate have helped developers make huge productivity gains in dealing with relational databases in the past several years. ORMs free developers to focus on application logic and avoid writing a lot of boilerplate SQL for simple tasks like inserts or queries. However, the well-documented problems with object-relational impedance mismatch inevitably cause headaches for developers. Relational ...

Read More »

Eclipse Memory Analyzer (MAT)

eclipse-logo

In times past, when it came to tracking down sporadic memory problems in a complex Java application, it required using a commercial product such as JProbe or a lot of painful and inefficient attempts to recreate the issue. Even if the problem were easy to recreate, unless the problem was blatantly obvious, your application might need to be enhanced in ...

Read More »
Want to take your Java Skills to the next level?
Grab our programming books for FREE!
  • Save time by leveraging our field-tested solutions to common problems.
  • The books cover a wide range of topics, from JPA and JUnit, to JMeter and Android.
  • Each book comes as a standalone guide (with source code provided), so that you use it as reference.
Last Step ...

Where should we send the free eBooks?

Good Work!
To download the books, please verify your email address by following the instructions found on the email we just sent you.