Re: Deployment scenarios for cocoon 3.0

Francesco Chicchiriccò <[email protected]>
Newsgroups gmane.text.xml.cocoon.user
Message-ID <[email protected]>
On 30/01/2013 11:19, gelo1234 wrote:
> Hello,
>
> Im thinking about applying several urgent patches onto the running 
> cocoon 3.0 web app _without_ application server restart (be it Tomcat).
>
> Lets say I want to modify some code inside REST Controller 
> (MyRestController).
> I presume that If I make some change in REST Controller class i wont 
> be able just to replace jar/class files on running Tomcat and thats 
> it. It will NOT pick up the changes.
>
> So lets say i create a new class flle (another version of REST Controller:
> MyRestController2) and upload that class/jar file to Tomcat, then 
> change Cocoon sitemap.xmap to have a new class:
>
> <controller:call controller="rest-controller" 
> select="com.foo.controller.MyRestController2">
> ...
> </controller:call>
>
> and thats it ? Will Cocoon pick it up correctly WITHOUT Tomcat restart 
> and use the new code ?
>
> Or yet I have to update/refresh somehow Spring context/configuration ?
>
> <context:component-scan base-package="com.foo.controller" 
> use-default-filters="false"
> name-generator="org.apache.cocoon.rest.controller.ControllerBeanNameGenerator"
> scope-resolver="org.apache.cocoon.rest.controller.ControllerBeanScopeResolver">
>     <context:include-filter type="annotation" 
> expression="org.apache.cocoon.rest.controller.annotation.RESTController" 
> />
>   </context:component-scan>
>
> <context:annotation-config />
>
> I know its NOT a good practice to "hot deploy" such code on a 
> production servers but sometimes you just need fast update and cannot 
> restart app server or use some 3rd party tools like Live Rebel etc.
> I don't want to introduce a new block with the new controller in 
> cocoon app, because that would also be a valid option as i presume ?

Hi Greg,
given the constraints you define above, I would suggest to solve your 
problem at Tomcat level by empowering the "reloadable" attribute of 
classloaders [1].

In this way you don't need to modify anything at Cocoon level.

Regards.

[1] http://tomcat.apache.org/tomcat-7.0-doc/config/loader.html

-- 
Francesco Chicchiriccò

ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member
http://people.apache.org/~ilgrosso/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.