Runtime Java Stack

Toolkit

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

Related Posts

  1. More Runtime Java Stack
  2. Which java stack do you use ?
  3. How to get Generic Metadata from a Class at Runtime
  4. java.util.Calendar.getInstance() // danger
  5. Ruby on Rails experience of a java developer
  1. No comments yet.

  1. No trackbacks yet.