My Publications

Integrate an external code checker into Eclipse CDT
developerWorks, August 2012
Codan is the Eclipse CDT (C/C++ Development Tooling) built-in code analysis framework for C/C++ projects. Codan provides infrastructure to perform static code analysis and comes with ready-to-use problem checkers. This article explains why the update is good news for users of Eclipse CDT, then shows you how to quickly integrate your favorite code checker into your Eclipse C/C++ development environment. Read more…
Custom AST transformations with Project Lombok
developerWorks, March 2011
Even for die-hard Java™ developers, syntax verbosity can be a downside of writing applications in the Java language. While it’s sometimes possible to get around verbosity by using a newer language like Groovy, in some cases using Java code is preferable, perhaps even required. Then you might want to try out Project Lombok: an open source, code-generation library for the Java platform. Read more…
Debugging and Testing Swing Code
developerWorks, February 2010
When you need to use or maintain other Java™ developers’ code, debugging and testing can help you understand how it works. In the case of visual code though, these powerful practices are more difficult unless you have the appropriate tools. The two open source tools that this article introduces — Swing Explorer and FEST-Swing — can make debugging and testing of Swing UIs simple and reliable. This article shows how to use them to understand a UI’s structure, test how it functions, and troubleshoot issues. Read more…
IEEE GUI Testing Made Easy
Practice and Research Techniques, 2008. TAIC PART ’08. Testing: Academic & Industrial Conference, August 2008 (Requires subscription)
The challenges present in GUI testing may discourage developers and testers, to the point that they may eventually stop writing tests. This paper presents a GUI testing strategy that includes writing robust GUI tests, creating testable GUIs and testing legacy/existing ones. Simultaneously, the paper discusses the features that a tool should offer to simplify GUI testing.The ideas explained in this paper have been successfully implemented in the open source project FEST, a testing library for Java Swing GUIs. Read more…
Java Power Tools Java Power Tools by John Ferguson Smart
O’Reilly, April 2008
Java Power Tools delivers 30 open source tools designed to improve the development practices of Java developers in any size team or organization. I contributed the article about testing Swing user interfaces with FEST.
InfoQ An Approach to Internal Domain-Specific Languages in Java
InfoQ, February 2008
A domain-specific language (DSL) is commonly described as a computer language targeted at a particular kind of problem and it is not planned to solve problems outside of its domain. Lately, with the advent of Ruby and other dynamic languages, there has been a growing interest in DSLs amongst programmers. These loosely structured languages offer the most direct representation of a particular language. However, discarding the compiler and the ability to use modern IDEs is a disadvantage with this approach. The authors will argue that is possible and helpful to approach API design from the DSL orientation in a structured language such as Java. This article describes how it is possible to write DSLs using the Java language and suggests some patterns for constructing them. Read more…
Dev2Dev Mock Objects: Shortcomings and Use Cases
Dev2Dev, August 2007
This article shows how Mock Objects, a testing technique from the XP community, can help programmers write unit tests. It also considers the shortcomings of this technique and provides valuable use cases. Read more…
JavaWorld Test-driven GUI development with FEST
JavaWorld, July 2007
Learn what differentiates FEST (formerly TestNG-Abbot) from other GUI testing frameworks and get a hands-on introduction to Swing GUI testing with this fast-growing developer testing library. Video demonstrations and working code examples are included. Read more…
Test-Driven GUI Development with TestNG and Abbot
IEEE Software, May 2007 (Requires subscription)
Regardless of test-driven development’s well-known benefits, it has suffered slow adoption in GUI development. Because GUIs are one of applications’ most important components, testing them is essential for improving the entire system’s safety and robustness. Testing GUIs is difficult, but several recommendations and practices can simplify test-driven GUI development for Java Swing applications.This article is part of a special issue on test-driven development. Read more…
Dev2Dev Declarative Caching Services for Spring
Dev2Dev, May 2006
Scalability, reliability, and high performance are must-have requirements in modern J2EE applications. Regardless of the type of client, request processing usually involves actions that have a negative effect on performance, such as information gathering from disparate data sources and execution of complex calculations, to say the least. Caching is one of the most essential practices that improve the performance of enterprise applications. This article introduces a code-free caching framework for Spring-based applications, Declarative Caching Services for Spring. Read more…
Objective View Aspect-Oriented Programming with AspectJ
ObjectiveView, February 2006 (PDF)
Object-oriented programming (OOP) is, without any doubt, one of the most important programming paradigms in the history of software engineering. In spite of this achievement, object-oriented programming has demonstrated to be inadequate in dealing with crosscutting concerns. This article introduces Aspect-Oriented Programming (AOP) with AspectJ. Read more…

Comments on this entry are closed.