Hi devs,

I am trying to implement the Hot deployment and Hot update of the synapse
artifacts, and realized that there are some issues; I first thought of
writing our own deployment behaviour because we wanted some conditions to be
checked on the hot update case undeployment of the artifacts.

Let me first describe how Hot update works in axis2, correct me if I am
wrong but from what I have figured out so far, axis2 repository listener
task calls unDeploy method of the deployer implementation first and then
calls the deploy method again to deploy the artifact with the changes.

So this approach has two issues,

   1. There is a considerable downtime of the artifact which is being hot
   updated
   2. There is no means of knowing the case where the undeploy method being
   called, for example synapse needs to have a main sequence for it to operate
   properly, so synapse has to force the user to not to undeploy the main
   sequence while it should allow the user to hot update it.

I propose adding a update method to the Deployer interface or passing the
state as an argument, we could use the DeploymentFileData class to provide
the operation, but that doesn't resolve the issue because the undeploy
method has a String file name as its argument, so this canot be fixed
without an API change in the deployer implementation.

Being said the above I can implement this in Synapse, but since we had huge
debates earlier on writing stuff on synapse replacing axis2 stuff just
because they do not fit into synapse without letting the axis2 community
know about those, I thought of proposing this to the axis2 as well.

WDYT?

Or may be I am missign something which can resolve the above 2 issues, in
which case please be kind enough to point me to the behaviour that I should
be using.. :-)

Thanks,
Ruwan

-- 
Ruwan Linton
Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb
WSO2 Inc.; http://wso2.org
email: ru...@wso2.com; cell: +94 77 341 3097
blog: http://ruwansblog.blogspot.com

Reply via email to