From 71a6a8e96a9e18e29cd07142cf10f36d56323628 Mon Sep 17 00:00:00 2001 From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de> Date: Thu, 11 Apr 2013 09:38:53 +0000 Subject: [PATCH] migration implemented for container templates git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@11151 9e42b895-fcda-4063-8a3b-11be15eb1bbd --- .../adaptation/model/dmm/DmmModelActionHandler.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/DmmModelActionHandler.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/DmmModelActionHandler.java index 9a28ccd5..619403e4 100644 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/DmmModelActionHandler.java +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/DmmModelActionHandler.java @@ -16,6 +16,7 @@ import edu.kit.ipd.descartes.adaptation.model.dmm.util.OclEvaluationHelper; import edu.kit.ipd.descartes.core.AdaptableEntity; import edu.kit.ipd.descartes.core.Entity; import edu.kit.ipd.descartes.mm.adaptation.AdaptationActionOperation; +import edu.kit.ipd.descartes.mm.adaptation.AdaptationScope; import edu.kit.ipd.descartes.mm.adaptationpoints.AdaptationPoint; import edu.kit.ipd.descartes.mm.adaptationpoints.ModelEntityConfigurationRange; import edu.kit.ipd.descartes.mm.adaptationpoints.ModelVariableConfigurationRange; @@ -111,7 +112,7 @@ public class DmmModelActionHandler implements IActionHandler { break; case MIGRATE: logger.debug("Executing MIGRATE operation"); - migrate(adaptableEntity, range); + migrate(adaptableEntity, range, operation.getAdaptationOperationScope()); break; default: throw new OperationNotPerformedException("Operation " + operation + " on adaptation point " @@ -164,9 +165,10 @@ public class DmmModelActionHandler implements IActionHandler { return invariant; } - private void migrate(Entity adaptableEntity, VariationType targets) { + private void migrate(Entity adaptableEntity, VariationType targets, AdaptationScope adaptationScope) { switch (adaptableEntity.eClass().getClassifierID()) { case ResourcelandscapePackage.RUNTIME_ENVIRONMENT: + logger.debug("Starting migration of a runtime environment referring to container template " + adaptableEntity.getName() + " (ID: " + adaptableEntity.getId() + ")"); /* * 1. Copy RE 2. Attach copy to a target specified in the Adaptation Point 3. Delete * origin @@ -192,8 +194,10 @@ public class DmmModelActionHandler implements IActionHandler { parent.getContains().remove(migratedEntity); break; case ContainerrepositoryPackage.CONTAINER_TEMPLATE: - logger.debug("Migration a container referring to container template " + adaptableEntity); - //TODO: Implement ContainerTemplate Migration + logger.debug("Starting migration of a container referring to container template " + adaptableEntity.getName() + " (ID: " + adaptableEntity.getId() + ")"); + ContainerTemplate ct = (ContainerTemplate) adaptableEntity; + Container c = DmmModelActionHelper.findSuitableContainer(ct, adaptationScope); + migrate(c, targets, adaptationScope); break; default: throw new IllegalArgumentException("No implemented migrate operation for " + adaptableEntity); -- GitLab