May 28, 2007

May 7, 2007

Rapid Java : Part I (Platform)

For rapid and non-painful development and products here's some java libraries (startup dependencies)  I choose from bottom to top:

Module I: Core
  • postgresql / mysql / hsql depends on project's size if you don't large size of startup data try to use hsql
  • log4j : logging (alternative commons-logging)
  • hibernate: Simple and high quality open source ORM (alternative:)
  • springframework:  high quality IoC container and very good integration library (a framework to rule them all)
  • quartz: scheduled task
  • osworkflow: Simple workflow and state engine, to manage actions and states
  • velocity: simple and useful template engine for formatted text/html/csv outputs (alternative freemarker)
  • beanshell for providing business point (alternative groovy)
  • acegi: Authentication and authorization
Module II : Report
  • jfreechart:for impressive charts
  • jasperreport: for pdf reports
  • mondrian: for BI
  • jxls: for excel reports
Module III: Web Layer
  • Struts : here, you have lots of choice from popular jsf to tapestry,spring mvc, I choose struts because of two reason simple life cycle and it is action based current I am STILL using struts  1.2.x  but I will move to Struts2
  • Prototype.js  standard js for web 2.0
  • script.aculo.us very useful js lib for effects and more
  • DWR for extra js calls from client browser to your java codes
  • displaytag: very useful jsp taglib
  • jstl: standard jsp taglib
  • tomcat/jetty: choose one that you are familiar

It looks so complex at first sight and I'm sure it could be so painful to you but where All become one you would have quite clear Framework. 
for how to integrate them look at appfuse.

What is missing?
 your  application specs you can need JMS (eg: activemq)  ,networking (eg:jgroups) libs