[jboss-dev-forums] [Design the new POJO MicroContainer] - Deployment redeploy
alesj
do-not-reply at jboss.com
Fri Jun 6 08:46:56 EDT 2008
After spending a day on figuring out why my jboss-minimal-tests are not working as they should I also stumbled upon a question what happens if metadata changes?
I remember I had previous discussion about this with Scott.
I even found TODO (which is probably my) in
- http://anonsvn.jboss.org/repos/jbossas/trunk/system/src/main/org/jboss/system/server/profile/basic/ProfileImpl.java
But I can see I never given it enough of thought, since I only yesterday saw that we're missing all this functionality in deployers.
Why 'missing all this functionality in deployers'?
Since in order for a client to know if the metadata has been changed, it needs to know where metadata resides, but that's is server side (structure) detail.
So this is what I came up with.
Few pseudo code lines.
The entry point to all should of course be - as for all other deployment things - DeployerClient:
| // deleted, modified, nothing
| ModifcationType getModificationType();
|
First we need to know if client slide Deployment still exists:
| boolean exists();
|
which for VFSDeployment it would check if the root still exists.
Then we need to get server side representation of deployment - DeploymentContext.
And recursively check it is was modified.
| if (deploymentContext.isModified())
| return true;
|
| List<DeploymentContext> chidren = deploymentContext.getChildre();
| for (DeploymentContext child : children)
| return checkModified(child);
|
Probably in case of VFSDeploymentContext we will check the root and metadata locations.
So at the end, impl in MainDeployerImpl would look like
| ModificationType getModificationType(Deployment deployment)
| {
| if (deployment.exists() == false)
| return DELETED;
|
| DeploymentContext context = getContext(deployment);
| if (context.isModified())
| return MODIFIED;
| else
| return NONE;
| }
|
(OK, bunch of assert checks missing, but we get the picture :-))
So ProfileImpl would then simply call this method to see which deployment need to be handled.
Sounds OK?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4156291#4156291
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4156291
More information about the jboss-dev-forums
mailing list