Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: --Sprint 12/11, 6.1.0 CE RC1
-
Component/s: Infrastructure > App Servers, Tools > Plugins SDK > Portlets
-
Labels:
-
Similar Issues:
Description
When a portlet plugin is deployed by Liferay IDE using the new server-manager-web API, it deploys the war to the remote server and deploys normally. However, when Liferay IDE deploys a delta-war update to just change one deployed file (view.jsp), the new view.jsp file is correctly updated in the webapps folder of the remote tomcat via the server-manager-web API however, tomcat does not reload the JSP.

During the portlet deploy process it will copy a META-INF/context.xml file that has the following contents:
<Context
antiJARLocking="true"
antiResourceLocking="true"
/>
This causes tomcat7 to create a complete copy of all the times to the temp/ folder and open those files instead of the ones residing in webapps.
The problem comes when the developer makes a change to a single file (view.jsp), and then pushes that update to the server via the sever-manager-web API. The server-manager-web will update the single file in the webapps/<context> deployed location. However this will not affect tomcat's jsp reloading logic since it is looking at the JSP that is in the temp directory due to the antiResouceLocking=true setting.
What is interesting is that tomcat6 the context.xml file with the antiResourceLocking=true setting was still being set but tomcat6 doesn't seem to honor that setting. however, tomcat7 does now pay attention.
This is going to break one of the key features of Remote development for plugins, being able to update just a single jsp/java/resource file in a portlet and avoid having to re-deploy the entire application which involves uploading potentially large war files and waiting for the redeploy/ reloading of context on server's side.