In Ruby on Rails we have Gems, that you can reuse to be part of your software.
We have the same in Django, they call it "apps". There are "modules" in Drupal too.
For example, let's say that you are developing web software to control a proccess in your office, and you would like to add a poll, so users may interact.
In Rails we may have a gem to do that, same in django apps and modules in drupal.
So these gem/app/modules have all the code to include in your web software, considering controllers, views and models.
But if we think of Java EE 6 we have plenty of jars and specifications that help to make software. But Java EE doesn't have these kind of gem/app/modules to include in your software.
Just to be clear, the question is not about using a framework or not.
Let me say that I've got an app with Java EE 6:
- EJB 3.1, JPA 2, js2 + prime
- and some jars, like pretty-faces and integrations.
Now I need to develop a forum or a poll functionality, so I have to write all code (ejb+jpa+jsf) to make that forum. If I were using Rails, I could install a poll/forum gem, or in Django an app that make this forum and so on.
I have some experience in these other frameworks, ROR, Django and Drupal (it's true that it is a CMS, but it has plenty of modules so maybe it's a framework anyway), And these "modules" are part of the software, written using all layers. In Java EE it should have EJB 3.1 code, JPA2 code and js2 code.
So, we can make an analogy with Plone and Zope. Let say that Zope is Java EE 6 and Plone is what I'm looking for in Java EE.
So my question is: Does there exists a repository where you can find these kind of modules for Java EE?
If this really doesn't exist, is it possible to create gem/app/modules like these in a Java EE architecture?