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 [...]
Posts under ‘Software Engineering’
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; [...]
TheServerSide Java Symposium Europe - part 1
Last week I attended TheServerSide Java Symposium Europe, a 3 day conference held in Barcelona. I was pleasantly surprised by the variety of topics, the quality of the speakers and the professional organization; it reminded me of the early days of JavaOne.
J2EE vs Spring/Hibernate open source stacks
One of the recurrent themes of the conference was [...]