Deployment architecture for JBoss Portal 3.x thoughts
Currently JBoss Portal integrates directly with the JBoss 4.0.x deployment system. The
main benefit is that it provides a transparent deployment of a web archive and does not
require the developer to perform any extra work as the war file containing the portlet.xml
file will just be deployed.
With the requirement of JBoss Portal 3.x to be runnable everywhere we need to work on
improving the current deployment architecture and find out solutions for every kind of
environment.
When a web archive is deployed the requirements are :
1/ the portlet container deployer needs aware of the deployment life cycle in order to
create/destroy related portlet containers
2/ the web application context needs to be modified in order to include the proper hooks
that will make the portlet container execute portlets. Injection of new servlet / servlet
filter are good examples.
3/ injection of tld file in the war file (optional)
I foresee 2 major ways of deployment techniques, each having its advantages/drawbacks.
Indeed there is no universal solution because the lack of synergy between the portlet
expert group and servlet expert group does not exist as of today.
- Technique 1 : native integration
this is what we do currently in JBoss 4.0.x. The portlet container deployer integrates
directly with the deployer and is able to create on the fly the missing servlet / servlet
filter in tomcat (by modifying the object model). It is also able to inject tld in the
unpacked war file. It is completely transparent to the developer and probably provides the
best integration. The drawback is that it is native to the environment and is not always
possible for various reasons (technical or legal).
- Technique 2 : prepare the war file ahead of deployment time
it consist in modifying the war file by injecting the necessary hooks like modifying the
web.xml for example. There are different flavors.
. a special directory can be scanned for war files, modify them and then deploy them in
the target environment (through JSR 88 in the case of an app server J2EE 1.4 certified)
. the developer can be made aware of what is required and ask him to do that directly
. a file upload mechanism can be used to act as in the first case
The best we can do is to provide technique 1 whenever possible and technique 2 otherwise.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3979714#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...