+++ This bug was initially created as a clone of Bug #646631 +++
Description of problem:
If an application is deployed to an AS instance's farm directory and the Update Content operation is performed, application is no longer deployed to farm.
Version-Release number of selected component (if applicable):
Embedded JOPR (admin-console) with EAP 5.0.0, EAP 5.0.1
Steps to Reproduce:
1. Setup a two node EAP cluster
2. Deploy an application (EAR/WAR) to node1's farm using admin-console
3. Verify application was deployed to both node1 and node2
4. Update the application using the same EAR/WAR (From admin-console, expand and select the deployed EAR/WAR and select it's Content tab and then click Update)
The updated deployed application is now only deployed to node1 in its deploy directory
The updated deployed application is deployed to node1 and node2 and appears in their farm directory
This is a result of the StandaloneManagedDeploymentComponent.deployPackages method invoking DeploymentUtils.deployArchive without a means of passing in whether to deploy farmed or not. Currently, the method appears to support a deployExploded boolean but no method of passing in whether it is farmed or not. The DeploymentUtils.deployArchive method should probably accept a deployFarmed boolean as well as the deployPackages method being updated to check to see if the updated deployment was farmed. Of course, this may be very error prone as this would be directly tied to a hard-coded path name. Maybe we should gather these options from ProfileService or Inventory before we remove the old deployment?
The AS5 deployer uses the file name as-is to determine the name of the app to be updated/deployed. Instead of adding the random UUID to the archive to be deployed, add the random UUID to a temp folder name and then download content there (leaving the file name unchanged). This issue has been fixed for both farmed and non-farmed deployments.
Another update was to switch to the farm version of the AS5 deployer prior to stopping and deleting existing content. The switch to a farm deployer was happening too late (prior to deployment) and was not stopping and removing the farmed application prior to the new deployment.
release/jon3.1.x branch commits:
*** Bug 824498 has been marked as a duplicate of this bug. ***
Moving to ON_QA since this is included in the CR2 build.
Verified against JON 3.1.2 GA and EAP 5.1.2 and EAP 5.2.0