Getting Coverage For Integration Tests

Unit testing in my world is basically defined by being able to run the tests wherever and whenever; on the train, on the plane, at work, or at home. If you also have integration tests, chances are that they require some external data source or something that simply makes it impossible to run them everywhere. [...]

Tags:

Encrypting Properties With Jasypt

Properties are used in many Java applications as a simple way of separating parts that are likely to change, from the parts that are not that likely to change. Consider for example this typical bean definition in a Spring configuration file:   <bean id="traditionalPersonDao" class="org.springframework.ldap.samples.article.dao.TraditionalPersonDaoImpl"> <property name="url" value="ldap://localhost:3901" /> <property name="base" value="dc=jayway,dc=se" /> <property name="userDn" [...]

Tags: , , ,

Squid, the caching proxy

I just checked out the old Squid again, the worlds most famous caching proxy. If you direct all your web access through the Squid proxy server, it will cache stuff after the first access. This would simplify for example for labs where fifty people simultaneously begin retrieving stuff from a Maven repo somewhere or downloading [...]

Tags: , , , , ,

Using Amazon S3 for backup

Amazon Simple Storage Service (S3) is cheap on-line storage with a Web Service interface. You just log in with your Amazon id, sign up for S3, designate a credit card, and that’s it. You now have access to pretty much unlimited storage space, managed by Amazon. The price is $0.15 per GB-Month of storage used [...]

Tags: , , , , , , ,

Mocking Classes

Mocking a class rather than an interface might present some interesting obstacles. Perhaps you have ran into the dreaded: Unexpected method call toString(): toString(): expected: 0, actual: 1 You think nothing of it and happily add an expectation for toString. Then you get: Unexpected method call toString(): toString(): expected: 1, actual: 2 The reason is [...]

Tags: ,

Sweden Spring UG Birth of a new UG

Once in a while we see a new user group being born. One of those is close to many Java programmers’ hearts – the Sweden Spring User Group. We turned to Ulrik Sandberg, one of the founders of the group. Tell us how you got started with the Sweden Spring User Group. The Sweden Spring [...]

Tags: ,

Sharing a Mac Internet Connection Through Airport

I just solved a networking problem on my Macs after hours of trying. For the benefit of others, I’ll describe here the problem and the solution. Setup Cable modem from ISP, network cable to a firewall, the private end of the firewall via network cable on to a switch. Pretty basic, I guess. No wireless [...]

Tags: , , , ,

Solving 403 problems with Sourceforge Subversion

After having had severe problems when committing to the Sourceforge Subversion repos, I stumbled upon what appears to be the solution. The problem was that in the middle of a commit, one file or directory would fail with a 403 (permission denied). In desperation, I would chop up the change set and commit little pieces [...]

Tags: , , , , ,

A cool GMail feature

Google Mail will deliver a mail even though the recipient address ends with ‘+’ and some more text, like john.doe+msn@gmail.com for example. This feature can be used to create an unlimited number of mail addresses that can be used for registration purposes. For example, say that the MSN web site requires your email address for [...]

Tags: , , , , ,

Indented Tracing Using AspectJ

Given inspiration from the book “AspectJ In Action”, I wrote a little aspect that provides indented tracing of method executions. This means that the aspect keeps track of the current indentation level in a call flow

Tags: , , ,

Tired of Date and Calendar?

It’s not always easy to decide whether to add yet another dependency to yet another framework. It’s especially hard when it’s about a very central part of the JDK, like Date and Calendar. They are not great, there’s little doubt about that. However, the benefits of a new framework would have to be numerous in [...]

Tags: , , , , , ,

JXPath simplifies Java queries

Consider a company that contains many departments. Those departments contain employees, those employees have names, telephone numbers, and so on. To query a collection of companies and find, for example, all departments of companies in California with more than 10 employees, you could write something like this:   for (Iterator companies = database.getCompanies().iterator(); companies.hasNext();) { [...]

Tags: , , , , , ,