I haven't put much thought into a design yet, but I'll give you a
general idea. JIRA can be thought of a base platform with plugin
infrastructure, and the system is composed of a bunch of plugins.
Confluence has plugins. Hudson has plugins. I want to create a web
application that has a few basic things like authorization and
authentication, a plugin system, plugin manager, etc. then build the
rest of the application as plugin modules.
I'm currently reading a book called Practical API Design (by the
original creator of NetBeans) and it talks about how the NetBeans module
system is created. The concepts seem similar to OSGi, and I would
prefer to embed an OSGi container than write my own lookup/injection
etc. I've only done some preliminary reading and listened to some
podcasts. I don't know that much about OSGi yet.
Other web developers have traditionally based their plugin system's UI
support on things like velocity, or WebWork/Struts2 "plugin" feature.
Later I want to study GlassFish V3 and figure out how they did it with
JSFTemplating, HK2 and OSGi.
See this thread for an earlier discussion:
http://forums.sun.com/thread.jspa?threadID=5261696&messageID=10107837
Thanks,
Ryan
Sahoo wrote:
> Ryan,
>
> Can you please elaborate what you plan to do, especially what you mean
> by embedded Felix/OSGi?
>
> Thanks,
> Sahoo
>
> Ryan de Laplante wrote:
>> Hi,
>>
>> This blog entry gave me the impression that HK2 was going to be the
>> reference implementation for JSR 277, and that is why GlassFish V3
>> was using it:
>>
>> http://www.xlml.com/aehso/2007/05/15/glassfish-v3-hk2-modules/
>>
>> But later GlassFish V3 chose OSGi. I know it uses a hybrid approach
>> of HK2 + OSGi:
>>
>> http://weblogs.java.net/blog/ss141213/archive/2008/04/glassfish_v3_on.html
>>
>>
>>
>> I'm wondering if HK2 is not going to be an implementation of JSR 277,
>> and of OSGi is going to become the foundation of JSR 277? I don't
>> really know much about any of these technologies yet but am starting
>> to investigate them. I want to create a plugin system for a web
>> application such as what you find in Hudson, JIRA, Confluence, etc.
>> I've seen things such as Apache Cocoon but it uses Spring. I want
>> Java EE purity and will be basing my design on Java EE 6 + GlassFish
>> V3. Currently I'm thinking about using embedded Felix/OSGi.
>>
>>
>> Thanks,
>> Ryan