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

Reply via email to