Hi - This is a small list of requirements for JBoss's deployment process. Please provide as much feedback as you can and help fill in the gaps.
Thanks. For the purpose of this document, the following Definitions will apply: ·user – The user (usually a person) attempting to deploy an application ·application – Anything that can be deployed. ·application type – A particular type of application. (The currently known types are: service-archive (*.sar), service-xml (*service.xml), resource-archive (*.rar), generic-archive (*.jar,*.zip), enterprise-archive (*.ear), ejb-archive (*.jar), web-archive (*.war)) ·deployer – From the user’s perspective, a piece of software meant to deploy a single type of application. In code, one deployer may be made up of many objects, or one object may act as multiple deployers. User Requirements: 1. All applications must be uniquely identified with a URL. 2. Deployment of all known application types must be possible. 3. Future deployment of currently unknown application types must be made possible with an available API that stresses (in order of priority) flexibility, simplicity, and performance. 4. If no existing deployer is capable of deploying an application, then that application should be put into a “wait” state. Once a suitable deployer is installed, the application should be deployed. 5. Each deployer must treat exploded archives exactly as it would the native archive. This allows a user to do development within a deployed archive. 6. Each deployed application should have an MBean capable of managing it. At a minimum, this MBean will allow undeploy, and redeploy operations. Typically, it will allow application-type specific monitoring and configuration. (How does this fit in with JSR-77?) 7. It must be possible for an application to be configured for deployment on startup of the application server. It must also be possible to hot deploy applications not available at the time of server startup. Both should be available for redeploy and undeploy at any time. 8. On deployment of any application, the user must be able to configure the following: · The URL of the application. · The application type / the particular deployer to use (optional - if not specified, the system should determine this automatically) · Auto-redeploy features. Each application-type should have specific semantics as to when the application should be redeployed (typically this makes use of the lastModified method on some URL). · To specify a directory that will automatically be scanned for deployable applications. The scan period should also be configurable. · An arbitrary list of Deployment-Type-Specific attributes (?? Can’t think of any right now – things like context-root for war-files, ... ??) 9. Deployers themselves should be Mbeans to better support monitoring and configuration. 10. Should we do any special dependency checking / handling? Perhaps just deploying in a specified order is enough? System requirements: 1. There must be some way to obtain information on existing deployers. Currently this is obtained from the listDeployers method of MainDeployer. 2. There must be some way to obtain information on currently deployed applications. This is currently available through getDeploymentInfo from MainDeployer. I believe this information should be flexible so that a particular deployer may provide additional information whenever available. At a minimum, the following information should be available: · url, localurl, watchurl · localclassloader · shortname I believe that this info should be contained within an MBean for easier monitoring. 3. The deploy system needs to be compatible with JSR-88. i.e. a third-party implementation of a deployment tool (as specified by JSR-88) should be able to generate compliant JBoss-specific deployment descriptors, deploy applications on 1 or more JBoss servers, and perform simple monitoring tasks on distributed J2ee applications - undeploy, redeploy, start, stop... (Note: there is some cross over with JSR-77) 4. Each deployment-type has different requirements with respect to Classloaders. Some need to make their classes available on a global level, some need to make them available only to other “related” applications (like en ejb-jar and war within the same ear), and some should hide their classes from everything except the deployed application itself. This level of flexibility needs to exist. 5. The following scenarios must be supported: · Multiple versions of the same application deployed simultaneously with different JNDI names / context-roots / ... · ... We need more examples here... * * * View thread online: http://jboss.org/forums/thread.jsp?forum=66&thread=13513 _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development