Runtime Java Stack
Image by Neil T via Flickr
I have been developing java application for more then 6 years. Most of these years I have used and evaluated open source projects. Here I’ll try to explain my open source java stack.
Spring Framework
“One Framework to Rule Them All”. In brief this is it. The ruler framework. Java application kernel. Of course it is more than this. However this is the most important feature of spring. Now most of the vendors and projects give out of box support.
Competitor : Seam
Yes some will say:”No they can work together!” Yes, they can but who is the real ruler? Yes Seam binds lot of frameworks too and with spring you can access whatever you what. But what is the price !!. “EJBs” yes I do not like EJBs In fact I hate them. more spring article
Your persistence choice. I should mention this. Hibernate is one of the oldest java frameworks and the most mature one. It gives inspiration to ejb2.1 ejb3, jpa, jdo, nhibenrate and many more ORM frameworks.
Competitor : JPA (why I haven’t use JPA) is only a subset of hibernate features. If you use hibernate nice and effectively you can get rid off most of the database operations that are running behind in a very clean way.more hibernate article
Richfaces
Although I am not a fan of JSF, I am really impressed by richfaces. It has amazing ajax support out of box. A perfect choice for enterprise-corporate applications. I should also add this: I have tried to ignore and find a framework like struts 1.2.x (action oriented). I could not found one that can match up with richfaces (or icefaces). There are lots, out there but each one has some missing features . Of course you should consider your web application framework with your project !! But richfaces is my number one for now.
Competitor: Icefaces !! I don’t know icefaces much and not a have a chance to evaluate it.
Competitor: Seam again . Yes seam uses richfaces or icefaces behind but it also adds more to them with more EJBS
spring-security (acegi)
Out of box security framework. you can handle your authentication, authorization, web access filtering method security and so on. No need to say more. But I should say this:”I have never looked for an alternative”.
jasperreports
Again a “mature java open standards” Yes and it is an industry standard from lightweight projects to large scale BI projects.
quartz
nice and pretty quartz: if you need some tasks to schedule you can trust quartz. more quartz articles
osworkflow
Although it is a death project it can still handle you basic process/workflow problems. But you should also look to jbpm-pvm. more osworkflow articles
jbpm
If you have some complex processes and/or Will have even more you can use it. JBPM does not only cover your request but also has a good architecture(spring,hibernate). you can easily extend it. more jbpm articles
jfreechart
if you need to draw a chart use this.
Competitors: flash,flex projects. only suitable for web projects
jgroups
for networking and broadcasting features jgroups even has more than you need. more jgroups articles
cglib
while OOP is a key feature to java. reflections is the extension point to more. CGlib helps you to build more with dynamic code generation. it is the key framework behind hibernate, spring and may more that can give more inspiration. more cglib articles
ehcache
their several projects you can choose ehcache, oscache, jcs and more. I haven’t compared them but ehcache is working fine
mysql/postgresql
you can use any of them. Since I do not use much stored procedure
freemarker
Your templating and markup language for generation text based output.
competitor: velocity but freemarker is definitely better.
log4j
last but not least important. another open standard
CXF
java web service provider (AKA XFire). Yes I do not have much experience on these WS issues but I have used XFire and works fine
tomcat
java “open standard” servlet container
Competitor: jetty. for higher performance jetty can be good choice, “LinkedIn’s Choice” thanks to maven I can test both mvn jetty:run
more to come…
my ohloh.net link



No comments yet.