Monday, May 21, 2007

Design pattern of build.xml

I read Philip's code of project hackystat-sensorbase-uh and was quite pleased with the design pattern of build configuration. Basically build.xml is very light-weight. It does the following tasks only:
  • Define environment variable prefix
  • Check java version (5 and 6 are required)
  • Check ANT version (1.7 is required)
  • Check JUNIT version (4.3.1 is required)
  • Check RESTLET_HOME
  • Check JAXB_HOME
  • Define compile classpath
  • Define compile task
It is amazing small compare to Jupiter's build.xml, which has 825 lines. It does include build files: checkstyle.build.xml, junit.build.xml, sclc.build.xml etc. to do the extra work. Each of them only depends on build.xml. You can find a line like the following in them:

<import file="build.xml"/>

I experimented this configuration design pattern on jupiter. It worked surprisingly well. Very nice work!

Wednesday, May 2, 2007

H4 with Josh

H4 scheduling seems hard at this point. Pavel likes morning time, and I'd prefer to noon or afternoon. Eventually, none of us did anything further to make it happen. I am afraid another reason is that we are not actively working on coding. Maybe we can brainstorm and explore some ideas using the H4 time. Just a thought from me.

The H4 with Josh is great from my view. With 20 minutes exploration of Josh's HTML mailer alert and Hackystat's DailyTimer implementation, we started adding code to schedule the project status TimerTask. We agreed that adding one line in ServerStartup is enough to went ahead to do so. But, we can not even compile the code!!! ... One minute silence made us realize that hackyCore_Kernel can not depend on hackyApp_XXX modules.

We've got the solution quickly with two brains. Josh started sending spams to Hackystat fellows. :-)