Continuing with the series of blog posts regarding testing, automation and continuous integration, this time I will talk about how to integrate performance tests, in this case using Jmeter, with Maven and the Hudson continuous integration system. Jmeter is one of the main tools we use in our projects to create relevant performance tests, and [...]
Posts under ‘Software Engineering’
Distributed JUnit testing with GridGain
Recently we have been running some problems while testing distributed applications with JUnit. The main problem was that we were running the client and the server within the same host. Although the test passed because the application logic was correct. Running the application distributed failed due to some errors related with the naming of the [...]
Developing Custom Hudson Plugins: integrate with your own applications
Hudson is a very good Continuous Integration (CI) tool. Though such tools are not new, it clearly sets a higher standard in terms of quality and extensibility compared to first generation CI tools like Cruise-Control. And it’s open-source. (If you are reading this and you don’t know what Continuous Integration is, read this paper written by Martin Fowler [...]
Compile-time architecture enforcement revisited: AspectJ, Maven and Eclipse
It has been a while since we first heard about compile-time checks with AspectJ at the Java Server Symposium in 2007. Since then we have been using and experimenting with this feature of AOP and AspectJ, and more recently we have used this technology to implement architecture enforcment rules for some of our clients.
In this [...]
Using Java Enums
This week I discovered two useful things you can do with Enums in Java.
The first and probably the more useful of the two is for formatting error messages in a consise and type safe way.
public enum ErrorMessageKey {
FILE_NOT_FOUND( "Cannot find file {0}"),
CANNOT_READ_FILE( "Cannot read file {0}"),
FILESTORE_CANNOT_OPEN_FILE( "Unable to open {0} nor {1}");
private final String message; [...]