If it quacks like a startup, it is a startup…

Mike Cannon-Brookes asks Is Atlassian still a startup? And when is a startup not a startup anymore? Well, Mike, the answer’s simple. If it still feels like a startup, it’s a startup.

Continue reading “If it quacks like a startup, it is a startup…”

Why external Maven repositories are a bad idea

Bandwidth costs to mirror Maven repositories: $50
File server to store it on: $1500
Developer effort to access the internal repository: $200
Having 20 developers sit around idle because you didn’t mirror the java.net repository: priceless

With apologies to Mastercard.

Using EJB3 with Spring

In my previous entry, I talked about how you could easily use Spring from within EJB 3 beans, thanks to the magic of EJB interceptors. But what about the other way? How do you use EJB 3 from Spring?

*Update:* It looks like the Interface21 guys have had similar ideas – check out Project Pitchfork

Continue reading “Using EJB3 with Spring”

Comments re-enabled

I had to disable comments a little while back, due to excessive blog spam (the alternative was to have my ISP kick me off their servers). I’ve now made some changes to MT to do the CAPTCHA filtering earlier – hopefully it’s a bit nicer now. We’ll see.

Using Spring with EJB 3

Back when we were planning the migration to Glassfish, I realised we would have two dependency-injection frameworks in use – EJB 3 and Spring. For obvious reasons, I wanted to know more about how these would interact. At the time (last July), I couldn’t find anyone who had used EJB 3 and Spring together – even Ben Alex from Interface21 hadn’t come across it. Six months later, and I still haven’t heard of anyone using Spring _from_ EJBs. Except for us.

Continue reading “Using Spring with EJB 3”

Testing EJBs without a container

One of the more annoying aspects of testing EJBs has always been the fact you need to bundle them up in a JAR (and often an EAR) and deploy them to a server to thoroughly test them. This process drags out the development of unit tests, and makes life generally painful.

As of EJB 3, however, it’s no longer necessary. instead, it is fairly trivial to mock out the container entirely (and safely!)

Continue reading “Testing EJBs without a container”

Interfaces with EJB3

Starting last October, we went through a process of upgrading the main application at Wotif to be running under Java EE 5 (not just Java SE 5). The biggest part of this was upgrading from EJB 2 to EJB 3.

One of the things I noticed was that EJB3 gives you a lot of choices for how to implement and configure EJBs and their associated interfaces. There’s a lot of “standards” on how to do it, many of them conflicting, but very little explanation of why. This is the set of standards I came up with (and was largely successful in getting implemented), and why I chose them.

Continue reading “Interfaces with EJB3”

Running on Glassfish

Well, it took long enough, but it’s finally done:

Response Headers - http://www.wotif.com/

X-Powered-By: Servlet/2.5, JSP/2.1, JSP/2.1, JSP/2.1, JSP/2.1, JSP/2.1, JSP/2.1, JSP/2.1, JSP/2.1, JSP/2.1
Set-Cookie: PersistCountryCode=1; Domain=.wotif.com; Expires=Wed, 23-Sep-2037 22:11:45 GMT; Path=/
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Content-Length: 11520
Date: Wed, 24 Jan 2007 22:11:45 GMT
Server: Sun Java System Application Server Platform Edition 9.0_01
Connection: close

200 OK

Phew. Now maybe I can get those backlogged EJB3-based articles out.

Back again

Sorry for the long absence; I’ve been inundated at work and in my personal life. To top it all off, I had to migrate my domain due to changes at my hosting provider. However, I expect to start posting again soon – expect the regular stream of quality[1] articles that I used to produce. fn1. … Continue reading “Back again”

Sorry for the long absence; I’ve been inundated at work and in my personal life. To top it all off, I had to migrate my domain due to changes at my hosting provider.

However, I expect to start posting again soon – expect the regular stream of quality[1] articles that I used to produce.

fn1. Remember – everything has quality. Sometimes, you can even put a nice adjective in front.

CVS to Subversion Migration – a war story

One of the things that was annoying us at Wotif for some time has been how slow our CVS repository had been getting. Doing a tag after a release, for example, could take up to 15 minutes, CruiseControl was taking up to 45 minutes to do a scan, that sort of thing. Basically, the server … Continue reading “CVS to Subversion Migration – a war story”

One of the things that was annoying us at Wotif for some time has been how slow our CVS repository had been getting. Doing a tag after a release, for example, could take up to 15 minutes, CruiseControl was taking up to 45 minutes to do a scan, that sort of thing. Basically, the server we were using was almost literally having the hard disks melt… a 4GB CVS repository was being hammered almost continually. So, we finally bit the bullet a few weeks ago, and moved to Subversion, and I thought I’d share the experience.

Continue reading “CVS to Subversion Migration – a war story”