private PredecessorResult handleAsForSuccessorResourceRelease(ResourceEntity successorResource, ResourceGroupEntity asPredecessorGroup) { PredecessorResult predecessorResult = new PredecessorResult(); try { if (getOrCreateAsInSuccessorRelease(asPredecessorGroup, successorResource) == null) { log.warning("No Applicationerver could be created or found for successor release"); throw new AMWException("No Applicationerver could be created or found for successor release"); } } catch (ForeignableOwnerViolationException e) { log.log(Level.WARNING, "Error while creating As in Successor Release", e); predecessorResult.setProcessingState(ProcessingState.FAILED); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.ERROR, "Error while creating As in Successor Release: " + e.getMessage())); } catch (AMWException e) { log.log(Level.WARNING, "Error while creating As in Successor Release", e); predecessorResult.setProcessingState(ProcessingState.FAILED); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.WARNING, "Error while creating As in Successor Release: " + e.getMessage())); } return predecessorResult; }
private PredecessorResult doHandlePredecessor(ResourceEntity successorResource, String predecessorName, ForeignableOwner actingOwner) { PredecessorResult predecessorResult = new PredecessorResult(successorResource.getName(), ProcessingState.FAILED); List<ResourceEntity> predecessorCandidates = getPredecessorCandidates(predecessorName); if (!predecessorCandidates.isEmpty()) { ResourceEntity predecessorResource = findPredecessor(predecessorCandidates, successorResource, predecessorResult); if (copyPredecessorApplicationToSuccessor(successorResource, actingOwner, predecessorResult, predecessorResource) && copyCpisFromPredecessorToSuccessor(successorResource, actingOwner, predecessorResult, predecessorResource) && copyPpisFromPredecessorToSuccessor(successorResource, actingOwner, predecessorResult, predecessorResource) && handleApplicationServerRelations(successorResource, predecessorResult, predecessorResource)) { predecessorSuccessfullyReplacedResult(successorResource, predecessorName, predecessorResult); } } else { // do "nothing" log.warning("Predecessor application " + predecessorName + " not found"); predecessorResult.setProcessingState(ProcessingState.OK); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.WARNING, "Predecessor application " + predecessorName + " not found")); } return predecessorResult; }
private PredecessorResult handleApplicationServerRelations(ResourceEntity predecessorResource, ResourceEntity successorResource) { PredecessorResult predecessorResult = new PredecessorResult(); ResourceGroupEntity asPredecessorGroup = getPredecessorApplicationServer(predecessorResource); if (asPredecessorGroup != null) { predecessorResult = handleAsForSuccessorResourceRelease(successorResource, asPredecessorGroup); List<ResourceEntity> allReleasesFutureRelease = dependencyResolverService.getAllFutureReleases(asPredecessorGroup.getResources(), successorResource.getRelease()); // add successor To all future Releases of the asInSuccessorRelease (including asInSuccessorRelease) addSuccessorToAllFutureReleases(predecessorResult, allReleasesFutureRelease, successorResource); // remove predecessor AS Master Relations where now the Successor is attached removeAsRelationsInAllFutureReleases(predecessorResult, allReleasesFutureRelease, predecessorResource); } else { predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.WARNING, "Predecessor application " + (predecessorResource != null ? predecessorResource.getName() : "") + " has no Application Server relation, therefore the Application Server Handling was not performed.")); } return predecessorResult; }