classpath and manifest refs only affect the classpath associated with a
deployment though, and generally this is incomplete because users rely
on the flat type model to not have to explicitly reference every source
of class they use. If the class loader associated with a deployed
tracked
what other deployments it used for classes(I don't see a need to track
down to the class level as the deployment has to be redeployed in order
for classes to be redeployed), this would form a dynamic usage
dependency
graph that could be used to pickup type based redeployments.

I agree there should be a dependency on a given deployment to is
deployer so
that we can remove the current logic where by the MainDeployer tries to
stop
all the deployments of a deployer when the deployer stops. This would be
an
automatic feature of the deployer/deployee dependency.

Likewise I agree that the deployment process needs better definition
such
as having a complete deployment graph before we start deploying
components.
I do think dependency should delay component creation in addition to
dispatch
of lifecycle ops.

xxxxxxxxxxxxxxxxxxxxxxxx
Scott Stark
Chief Technology Officer
JBoss Group, LLC
xxxxxxxxxxxxxxxxxxxxxxxx 
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Adrian Brock
Sent: Monday, February 02, 2004 5:19 AM
To: [EMAIL PROTECTED]
Subject: Re: [JBoss-dev] Expansion of service dependencies to
redeployment

Hi Scott,

Our deployments generally boil down to a classpath and a set of mbeans.

There is also a contract to define a directed graph across deployments
which orders the mbean lifecycle invocations using <depends>

There are also implicit rules like:
1) deployments wait for their deployer
2) russian doll
3) deployment sorter

It appears to me, that what is missing is the ability to define the
directed graph for classloading.
Changing a parent deployment in this graph would require a redeployment
of children because the classloaders need to reconstructed.

To make it work, there needs to be enough information available to
define the graph.

The simplest approach would be to change the meaning of <classpath> to
define the graph/dependencies. The use of manifest.mf would also be
included.
i.e. each deployment explicity states which jars it uses.

More implicit rules could be defined:
1) A deployer could define its implementation jars which all its
deployments inherit in case a deployer is restarted.
2) There was an attempt early in 3.0 to define an MBeanClassLoader that
recorded which classes were actually used by a deployment. A
redeployment of those classes would force a redeployment of the mbean.
3) The MBeanClassLoader misses classes passed by reference across the
MBus where the signature is an interface, but this could be added.
4) There are other mechanisms where classes get passed by reference,
e.g. jndi. 
Mechanisms involving serialization
would be caught by the MBeanClassLoader.

Regards,
Adrian




-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to