|
From: Rogier S. <rs...@e-...> - 2003-05-09 05:54:23
|
Below is the draft design posted by Edvard to support dynamic deployment of portlets, including MMBase content types and relations. I will try to tie this as document to outstanding Feature request on SF. Any comments? Support dynamic deployment of portlets It should be possible to place a file in a specified directory (specified in a config file) which makes it possible to deploy new portlets. The file should be a kind of archive preferably in the jar format (zip). The file should contain a deployment descriptor describing the contents of the file. The file can not only contain an implementation of a portlet, but also several mmbase components. These components can include builders and content. The goal of the dynamic deployment is to automatically pickup the new archive and dynamically use it's contents in the running server. This should be done without unpacking the file. So, the contents is read in the memory but is not stored on disk. With the deployment a running Imbrium instance should be able to initialize the new builders (create needed tables), insert content into the database, add and start portlets, controls etc. Also, it should be possibly do load any class from included jar files. An alternative approach which is available is to unpack the archive to an appropriate directory on the server. Then from here the initialization will take place. Deployment of an archive will never result in visable changes in a users portal. It will only add the possibillity to add a new portlet to a users portal. So changes are only visible in customize mode. The files which containes the new deployment information should be described in the deployment descriptor. The descriptor describes which files should be deployed. The deployment descriptor could look something like this: <imbrium-app> <portlets> <portlet>new_portlets1.xreg</portlet> <portlet>new_portlets2.xreg</portlet> </portlets> <controls> <control>new_control.xreg</control> </controls> <controllers> <controller>new_controller.xreg</controller> </controllers> <medias> <media>new_media.xreg</media> </medias> <skins> <skin>new_skin.xreg</skin> </skins> <builders> <builder>new_builder1.xml</builder> <builder>new_builder2.xml</builder> <builder>new_builder3.xml</builder> </builders> <contents> <content>content.xml</content> </contents> <libraries> <library>portlets.jar</library> </libraries> </imbrium-app> |