Daily Details

Daily webapp is written in Java. I could have used .NET/C# combo but a) I am more comfortable with java, b) Eclipse beats Visual Studio hands down (except for writing web services), and c) java currently offers more choices when it comes to third-party libraries.


Spring Framework 2.0 – for ease of ad-hoc configuration. It lacks support for distributed dynamic configuration so I'll have to cross that bridge later. Optional Spring MVC (equivalent of Struts) is also used but I might switch later. Spring Web Flow was not used but I might do so when need for screen complex flow arises.

iBATIS 2.2 – I prefer close-to-the-metal DAO works so I chose iBATIS over Hibernate. I used only Data Mapper layer so far although I'll probably use Data Access layer as well when I add fine-grained caching.

Lucene 2.0 – freaking great for search flexibility and tagging support.

TagSoup – I chose John Cowan's TagSoup over JTidy for parsing HTML because it's faster and code looks easier to tweak later to handle brain-damaged RSS feeds. TagSoup is currently being used to sanitize HTML content, extract embedded data like microformats and tags, and to strip tags prior to submitting content to Lucene.

JBoss Rules (formerly called Drools) – Although current version of Daily doesn't require much dynamic intelligence to support basic blogging engine needs, I've got a lot of features that calls for fast rule-based blackboards which is what this library is really good for. I've used Drools with good result before but I think mixing it with something like ServiceMix opens up some interesting possibilities. For now, it's handling some minor HTTP request analysis and link analysis, results of which is unfortunately not being used yet. Hah.

TestNG – for next generation unit testing, TestNG beats JUnit 4 easy.

Apache XML-RPC – for Blogger, MetaWeblog, and Movable Type APIs. I am using version 2.0 instead of 3.0 because the later version closed off some key integration points which makes it more difficult to use.

Akismet Java API – for comment spam checking with Akismet.

Tags: , ,