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