Download it from here: openquote-community-2.0EA1.zip
Some screenshots... just because I can:
The old adage that in software development the last 20% of progress takes 80% of the effort seems accurate. Since I last blogged, some new features have been added, and some others improved. The intention that 2.0 should effectively deliver the same feature set as 1.4, just on a totally new platform still holds more or less true, but in some cases the new platform made it considerably easier to do things in a very much more technically concise and more user friendly way than was possible in 1.4.
A good example of this is the way the configure system and it's caching mechanism deal with changes at runtime. In the world of 1.4 a product developer would frequently have to manually reset configurations and clear caches to get their latest product change picked up. In 2.0, thanks to a Liferay document library event hook, a bit of JMS magic and some enhancements to the configuration services, it should never be necessary for a user to think about reseting configurations or clearing caches - it will all happen automatically.
A big chunk of the that last 20% was about testing and getting the new Bamboo server working (thanks again to Atlassian for letting the project use their OnDemand service). Historically, OpenQuote's continuous integration build didn't run any tests at all. Obviously, this is not a good thing. In fact, it's rather shameful, and something that 2.0 had to address. Now the unit tests and integration tests are run during each build. The UI tests are still manual.
The move to OnDemand Bamboo was far more involved that expected. Elastic bamboo is a truly fantastic thing though. Bamboo controls the builds, but all of the actual build activity takes place on Amazon EC2 instances which are started/stopped automatically as needed. Getting elastic bamboo up and running wasn't too much of a problem, but some curious build errors that couldn't be reproduced anywhere but on the build server caused a prolonged head scratching episode.
It turned out that the errors were caused by a configuration difference in MySQL. But I only found this out moments before the men in white coats were scheduled to arrive with some new brightly coloured smarties for me to try. On MacOS and Windows, MySQL installs itself by default to use case insensitive queries. On other flavours of Unix (e.g. our elastic bamboo instances) it is case sensitive by default. Simple when you know it, obvious even. But I'd been down any number of dead ends before I discovered this little nugget.
So, 2.0EA1 is finally out of the door. EA2 will not be too far behind it. The priority now is to split PageFlows out and make them independent of the quotation process so that they can be used for other things - like MTAs and Renewals, but also things which aren't related to policies at all. We also need to work on the themes. The new OpenQuote theme (did I mention that?) works well and keeps screen clutter to an absolute minimum, but it doesn't make the quote screens themselves look very pretty and we need new themes for the demo products too.
Much to be done. No time for rest!