Add HotDeploy detection for Jetty

Description

Upon start, detect if Jetty has hotdeployment turned on.

This is done by finding the ContextProvider configuration: http://wiki.eclipse.org/Jetty/Feature/ContextProvider

If the scan interval is non-zero, the ContextProvider scans the configuration directory at that interval (in seconds) for changes to the deployment descriptors. If you add a descriptor to the directory, it deploys the new context. If you touch or update a descriptor, the provider stops, reconfigures, and redeploys its context. If you remove a descriptor, the provider stops and removes its context from the server.

If the scan interval is zero, the ContextProvider scans the directory only at startup.

Activity

Show:

Igor Spasic September 17, 2012 at 1:09 AM

THis issue is rewritten by

Michael Saechang May 14, 2012 at 11:02 AM

Thank you Paul for testing. Closing as 'Fixed'.

Paul Piao May 13, 2012 at 11:25 PM
Edited

PASSED Manual Testing following the steps in the Igor comment.

1. deploy portal on Jetty using common portal ant tasks
2. during startup, there will be log message saying something like: Server suports hot deploy.
3. if you put some plugin (e.g. analog-clock-portlet-xxx.war) in the liferay deploy folder:
◎it will be auto-deployed to web app server
◎app server will deploy it and plugin becomes ready for use (e.g. find it in the list of plugins)
4. now, delete deployed plugin, stop app server
5. edit bundles\jetty-7.6.3\etc\jetty-contexts.xml and change scanInterval to 0.
6. repeat: start server and copy plugin to liferay deploy folder
7. during startup server will print something like: Server does not support hot deployment
8. when plugin is copied to autodeploy folder, portal auto-deploys it to app server folder, but app server will not pick it up and deploy it, since hot deployment is turned off.

Reproduced on:
Jetty 7.5.4 + MySQL 5. Portal 6.1.0 CE GA1.

I can see the jetty is auto deploy the plugins.

Fixed on:
Jetty 7.6.3 + MySQL 5. Portal 6.1.x EE GIT ID: 8533c7a8c1223a5f5b8c1634b55394361f59d9d8.
Jetty 7.6.3 + MySQL 5. Portal 6.1.x CE GIT ID: 742197da8cde50bb2dfcc08da960554fb33b4e90.
Jetty 7.6.3 + MySQL 5. Portal 6.2.x EE GIT ID: 61ef26f278d4ed6a2cac8c2bfaa551136a5154e2.

Jetty is not auto deploy the plugins.

Igor Spasic May 11, 2012 at 7:05 AM

More information for QA:

Hot Deployment is feature of application server when it can deploy new or update existing web application during runtime, usually by monitoring certain folder for changes.

Hot Deployment is configured differently in each server. This LPS deals with Jetty 7.6.3.

How to test it:

  • deploy portal on Jetty using common portal ant tasks

  • during startup, there will be log message saying something like: Server suports hot deploy.

  • if you put some plugin (e.g. analog-clock-portlet-xxx.war) in the liferay deploy folder:

    • it will be auto-deployed to web app server

    • app server will deploy it and plugin becomes ready for use (e.g. find it in the list of plugins)

  • now, delete deployed plugin, stop app server

  • edit bundles\jetty-7.6.3\etc\jetty-contexts.xml and change scanInterval to 0.

  • repeat: start server and copy plugin to liferay deploy folder

  • during startup server will print something like: Server does not support hot deployment

  • when plugin is copied to autodeploy folder, portal auto-deploys it to app server folder, but app server will not pick it up and deploy it, since hot deployment is turned off.

Michael Saechang May 10, 2012 at 11:08 AM

Committed on:
Portal 6.1.x CE GIT ID: d5e2d81b2c44f11b0524a3e7ce8a3dee706bffc5.
Portal 6.2.x GIT ID: 6b0b8614b2d91df4c98d9ff8b5cf6e3ced6078d4.

Fixed

Details

Assignee

Reporter

Labels

Branch Version/s

6.1.x

Backported to Branch

Committed

Epic/Theme

Git Pull Request

Components

Priority

Zendesk Support

Created May 4, 2012 at 4:09 AM
Updated June 26, 2023 at 6:57 AM
Resolved May 9, 2012 at 10:11 AM
Loading...