in src/main/java/org/apache/openejb/cts/deploy/DeployTestUtil.java [647:725]
public boolean testRedeployModule(ModuleType moduleType, File moduleArchive,
File deploymentPlan, String archiveType) throws Exception {
DeploymentManager dm = getDeploymentManager();
Target[] targets = dm.getTargets();
if (targets.length == 0)
return false;
Target targetToDeploy = targets[0];
TargetModuleID distributedModuleID = null;
TargetModuleID[] moduleIDsBeforeDistribute = dm
.getAvailableModules(moduleType, new Target[] { targetToDeploy });
if (archiveType.equals(FILE_ARCHIVE)) {
distributedModuleID = distributeModuleArchive(
new Target[] { targetToDeploy }, moduleArchive, deploymentPlan);
} else {
distributedModuleID = distributeModuleStream(
new Target[] { targetToDeploy }, moduleType,
new FileInputStream(moduleArchive),
new FileInputStream(deploymentPlan), true);
}
// If the distributedModuleID == null, the test is failed
if (distributedModuleID == null)
return false;
// Check if distriburtedModuleID has the same target as deployed target
if (!distributedModuleID.getTarget().getName()
.equals(targetToDeploy.getName()))
return false;
TargetModuleID[] moduleIDsAfterDistribute = dm
.getAvailableModules(moduleType, new Target[] { targetToDeploy });
boolean moduleExistsBeforeDistribute = checkIfModuleExists(
distributedModuleID, moduleIDsBeforeDistribute);
boolean moduleExistsAfterDistribute = checkIfModuleExists(
distributedModuleID, moduleIDsAfterDistribute);
if (!((!moduleExistsBeforeDistribute) && moduleExistsAfterDistribute))
return false;
// start the module
TargetModuleID startedModuleID = null;
startedModuleID = startModule(distributedModuleID);
if (startedModuleID == null)
return false;
// Check that the startedModuleID is same as deployed module id
if (!startedModuleID.getModuleID()
.equals(distributedModuleID.getModuleID()))
return false;
TargetModuleID[] runningModules = dm.getRunningModules(moduleType,
new Target[] { targetToDeploy });
if (!checkIfModuleExists(startedModuleID, runningModules))
return false;
// redeploy the module
TargetModuleID redeployedModuleID = null;
if (archiveType.equals(FILE_ARCHIVE)) {
redeployedModuleID = redeployModuleArchive(
new TargetModuleID[] { startedModuleID }, moduleArchive,
deploymentPlan);
} else {
redeployedModuleID = redeployModuleStream(
new TargetModuleID[] { startedModuleID },
new FileInputStream(moduleArchive),
new FileInputStream(deploymentPlan));
}
if (redeployedModuleID == null)
return false;
// Check that the startedModuleID is same as redeployed module id
if (!startedModuleID.getModuleID().equals(redeployedModuleID.getModuleID()))
return false;
TargetModuleID[] runningModulesAfterRedeploy = dm
.getRunningModules(moduleType, new Target[] { targetToDeploy });
boolean result = false;
if (checkIfModuleExists(redeployedModuleID, runningModulesAfterRedeploy))
result = true;
// Clean up....
// undeploy the module
stopModule(redeployedModuleID);
undeployModule(redeployedModuleID);
return result;
}