From 6243f65463b97877a4de848943a2f8d704930c9f Mon Sep 17 00:00:00 2001 From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de> Date: Sun, 22 Sep 2013 12:56:56 +0000 Subject: [PATCH] git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@13147 9e42b895-fcda-4063-8a3b-11be15eb1bbd --- .../.settings/org.eclipse.ocl.modelregistry | 2 + .../META-INF/MANIFEST.MF | 10 +- .../descartes/adaptation/TacticExecutor.java | 5 +- .../descartes/adaptation/TacticsHistory.java | 78 ------------ .../IPerformanceDataRepositoryHandler.java | 15 --- .../ObservationRepositoryHandler.java | 65 ---------- .../ObservationRepositoryHelper.java | 52 -------- .../ObservationRepositoryModelLoader.java | 45 ------- .../perfdatarepo/PerfDataRepoConverter.java | 79 ------------ .../PerformanceDataRepositoryHandler.java | 55 -------- ...rformanceDataRepositoryHandlerFactory.java | 18 --- .../PerformanceDataRepositoryModelLoader.java | 51 -------- .../util/BlueYonderExperimentTracker.java | 118 ------------------ .../descartes/adaptation/util/IObserver.java | 7 -- 14 files changed, 12 insertions(+), 588 deletions(-) create mode 100644 edu.kit.ipd.descartes.adaptation/.settings/org.eclipse.ocl.modelregistry delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticsHistory.java delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/IPerformanceDataRepositoryHandler.java delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryHandler.java delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryHelper.java delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryModelLoader.java delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerfDataRepoConverter.java delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryHandler.java delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryHandlerFactory.java delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryModelLoader.java delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/BlueYonderExperimentTracker.java delete mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/IObserver.java diff --git a/edu.kit.ipd.descartes.adaptation/.settings/org.eclipse.ocl.modelregistry b/edu.kit.ipd.descartes.adaptation/.settings/org.eclipse.ocl.modelregistry new file mode 100644 index 00000000..2fb76f2a --- /dev/null +++ b/edu.kit.ipd.descartes.adaptation/.settings/org.eclipse.ocl.modelregistry @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="ASCII"?> +<mreg:ModelRegistrySettings xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:mreg="http://www.eclipse.org/ocl/1.0/ModelRegistry"/> diff --git a/edu.kit.ipd.descartes.adaptation/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.adaptation/META-INF/MANIFEST.MF index a684d990..a0241b71 100644 --- a/edu.kit.ipd.descartes.adaptation/META-INF/MANIFEST.MF +++ b/edu.kit.ipd.descartes.adaptation/META-INF/MANIFEST.MF @@ -10,11 +10,16 @@ Require-Bundle: edu.kit.ipd.descartes.mm.resourcelandscape;bundle-version="1.0.0 org.eclipse.core.runtime;bundle-version="3.8.0" Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Import-Package: edu.kit.ipd.descartes.adaptation.evaluation.performance, +Import-Package: edu.kit.ipd.descartes.adaptation.analysis, + edu.kit.ipd.descartes.adaptation.analysis.pcm, + edu.kit.ipd.descartes.adaptation.evaluation.performance, edu.kit.ipd.descartes.adaptation.model.adaptation, edu.kit.ipd.descartes.adaptation.model.adaptation.dmm, edu.kit.ipd.descartes.adaptation.model.adaptation.dmm.util, + edu.kit.ipd.descartes.adaptation.model.adaptation.exceptions, edu.kit.ipd.descartes.adaptation.model.repository, + edu.kit.ipd.descartes.adaptation.model.repository.dmm, + edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo, edu.kit.ipd.descartes.ql.core.engine.query, edu.kit.ipd.descartes.ql.lang.descartesQL, edu.kit.ipd.descartes.ql.models.mapping.domain, @@ -23,5 +28,4 @@ Import-Package: edu.kit.ipd.descartes.adaptation.evaluation.performance, org.apache.log4j;version="1.2.15", org.eclipse.emf.ecore.xmi, org.eclipse.emf.ecore.xmi.impl -Export-Package: edu.kit.ipd.descartes.adaptation, - edu.kit.ipd.descartes.adaptation.exceptions +Export-Package: edu.kit.ipd.descartes.adaptation diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticExecutor.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticExecutor.java index 65024f95..42758af2 100644 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticExecutor.java +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticExecutor.java @@ -10,12 +10,13 @@ import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.change.ChangeDescription; import edu.kit.ipd.descartes.adaptation.model.adaptation.IActionHandler; +import edu.kit.ipd.descartes.adaptation.model.adaptation.dmm.BlueYonderExperimentTracker; +import edu.kit.ipd.descartes.adaptation.model.adaptation.dmm.IObserver; +import edu.kit.ipd.descartes.adaptation.model.adaptation.dmm.TacticsHistory; import edu.kit.ipd.descartes.adaptation.model.adaptation.dmm.util.OclEvaluationHelper; import edu.kit.ipd.descartes.adaptation.model.adaptation.exceptions.InvalidAdaptationPlan; import edu.kit.ipd.descartes.adaptation.model.adaptation.exceptions.OperationNotPerformedException; import edu.kit.ipd.descartes.adaptation.model.repository.dmm.AdaptationProcessModelLoader; -import edu.kit.ipd.descartes.adaptation.util.BlueYonderExperimentTracker; -import edu.kit.ipd.descartes.adaptation.util.IObserver; import edu.kit.ipd.descartes.mm.adaptation.AbstractControlFlowElement; import edu.kit.ipd.descartes.mm.adaptation.Action; import edu.kit.ipd.descartes.mm.adaptation.ActionReference; diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticsHistory.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticsHistory.java deleted file mode 100644 index ce525203..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticsHistory.java +++ /dev/null @@ -1,78 +0,0 @@ -package edu.kit.ipd.descartes.adaptation; - -import java.io.PrintStream; -import java.io.PrintWriter; -import java.util.LinkedList; -import java.util.List; - -import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic; - -public class TacticsHistory { - - public static final String NO_RESULT = "NoResult"; - - private List<WeightedTactic> wTactic; - private List<String> result; - private List<Boolean> tacticWasSuccessful; - - private static TacticsHistory instance = null; - - private TacticsHistory() { - wTactic = new LinkedList<WeightedTactic>(); - result = new LinkedList<String>(); - tacticWasSuccessful = new LinkedList<Boolean>(); - } - - public static TacticsHistory getInstance() { - if (instance == null) - instance = new TacticsHistory(); - - return instance; - } - - public void add(WeightedTactic weightedTactic, String resultId, - boolean tacticWasSuccesful) { - wTactic.add(weightedTactic); - result.add(resultId); - this.tacticWasSuccessful.add(tacticWasSuccesful); - } - - public WeightedTactic getLatestAppliedTactic() { - if (wTactic.size() <= 0) - return null; - else - return wTactic.get(wTactic.size() - 1); - } - - public String getLatestResultId() { - return result.get(result.size() - 1); - } - - public boolean wasLatestTacticSuccessful() { - return tacticWasSuccessful.get(tacticWasSuccessful.size() - 1); - } - - public int size() { - if (wTactic.size() == result.size() && result.size() == tacticWasSuccessful.size()) - return wTactic.size(); - return -1; - } - - public void printToSysOut() { - print(System.out); - } - - private void print(PrintStream stream) { - PrintWriter out = new PrintWriter(stream); - - out.println(" A P P L I E D T A C T I C S "); - - for (int i = 0; i < wTactic.size(); i++) { - out.print(String - .format("Applied tactic %1$3d: %2$30s. Result ID: %3$20s. Successful: %4$5s.%n", - i + 1, wTactic.get(i).getUsedTactic().getName(), - result.get(i), tacticWasSuccessful.get(i))); - } - out.flush(); - } -} diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/IPerformanceDataRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/IPerformanceDataRepositoryHandler.java deleted file mode 100644 index 41a9ab12..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/IPerformanceDataRepositoryHandler.java +++ /dev/null @@ -1,15 +0,0 @@ -package edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo; - -import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic; -import edu.kit.ipd.descartes.perfdatarepo.Impact; -import edu.kit.ipd.descartes.perfdatarepo.Result; - -public interface IPerformanceDataRepositoryHandler { - - public void load(String modelFileUri); - - public Impact getLatestImpact(); - public Impact getLatestImpact(WeightedTactic tactic); - - public Result getCurrentSystemState(); -} diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryHandler.java deleted file mode 100644 index e3b2426f..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryHandler.java +++ /dev/null @@ -1,65 +0,0 @@ -package edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo; - -import static edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo.PerfDataRepoConverter.convertObservableImpact; - -import org.apache.log4j.Logger; -import org.eclipse.emf.common.util.URI; - -import edu.kit.ipd.descartes.adaptation.TacticsHistory; -import edu.kit.ipd.descartes.adaptation.model.repository.AbstractEcoreModelLoader; -import edu.kit.ipd.descartes.adaptation.model.repository.dmm.AdaptationProcessModelLoader; -import edu.kit.ipd.descartes.adaptation.util.BlueYonderExperimentTracker; -import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic; -import edu.kit.ipd.descartes.perfdatarepo.Impact; -import edu.kit.ipd.descartes.perfdatarepo.Result; -import edu.kit.ipd.descartes.ql.models.repository.Observation; -import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository; - -public class ObservationRepositoryHandler implements IPerformanceDataRepositoryHandler { - - private BlueYonderExperimentTracker tracker = BlueYonderExperimentTracker.getInstance(); - private static Logger logger = Logger.getLogger(ObservationRepositoryHandler.class); - private AbstractEcoreModelLoader modelLoader = null; - private ObservationRepository repository = null; - - public ObservationRepositoryHandler() { - modelLoader = ObservationRepositoryModelLoader.getInstance(); - logger.debug("ObservationRepositoryHandler loaded."); - } - - @Override - public Impact getLatestImpact() { - return convertObservableImpact(repository.getLatestImpact()); - } - - @Override - public void load(String modelFileUri) { - repository = (ObservationRepository) modelLoader.load(URI.createFileURI(modelFileUri)); - } - - @Override - public Result getCurrentSystemState() { - WeightedTactic latestTactic = TacticsHistory.getInstance().getLatestAppliedTactic(); - Observation o = null; - - if (latestTactic == null) { - o = repository.getLatestObservation(); - } else { - // TODO: Blue Yonder specific, introduce abstraction layer - String expName = tracker.getExperimentNameForDistributedDataCenter(AdaptationProcessModelLoader.getDistributedDataCenter()); - logger.debug("Searching for result of " + expName); - o = ObservationRepositoryHelper.getResultEndingWith(expName, repository); - } - - return PerfDataRepoConverter.convertResult(o); - } - - @Override - public Impact getLatestImpact(WeightedTactic tactic) { - String expName = tracker.getExperimentNameForDistributedDataCenter(AdaptationProcessModelLoader.getDistributedDataCenter()); - logger.debug("Searching for impact of " + expName); - Impact latestImpact = PerfDataRepoConverter.convertObservableImpact(ObservationRepositoryHelper - .searchImpactOfTactic(expName, repository)); - return latestImpact; - } -} diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryHelper.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryHelper.java deleted file mode 100644 index 578508a2..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryHelper.java +++ /dev/null @@ -1,52 +0,0 @@ -package edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo; - -import java.util.List; - -import org.eclipse.emf.ecore.util.EcoreUtil; - -import edu.kit.ipd.descartes.ql.models.repository.ObservableImpact; -import edu.kit.ipd.descartes.ql.models.repository.Observation; -import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository; - -public class ObservationRepositoryHelper { - - public static ObservableImpact searchImpactOfTactic(String name, ObservationRepository repository) { - // Get correct result - Observation o = getResultEndingWith(name, repository); - - // Derive impact from result - ObservableImpact i = getImpactForObservation(o, repository); - return i; - } - - public static ObservableImpact getImpactForObservation(Observation o, ObservationRepository repo) { - if (o == null || repo == null) - return null; - - List<ObservableImpact> impacts = repo.getImpacts(); - for (ObservableImpact oi : impacts) { - if (EcoreUtil.equals(oi.getAfter(), o)) - return oi; - } - - return null; - } - - /** - * Searches the observation repository for an observation that ends with the given suffix. - * - * @param suffix - * @return first result that ends the given suffix, null otherwise. - */ - public static Observation getResultEndingWith(String suffix, ObservationRepository repo) { - if (suffix == null || repo == null) - return null; - - List<Observation> results = repo.getObservations(); - for (Observation o : results) { - if (o.getIdentifier().endsWith(suffix)) - return o; - } - return null; - } -} diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryModelLoader.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryModelLoader.java deleted file mode 100644 index 56eb8cfa..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/ObservationRepositoryModelLoader.java +++ /dev/null @@ -1,45 +0,0 @@ -package edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo; - -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; - -import edu.kit.ipd.descartes.adaptation.model.repository.AbstractEcoreModelLoader; -import edu.kit.ipd.descartes.ql.models.repository.RepositoryPackage; - -public class ObservationRepositoryModelLoader extends AbstractEcoreModelLoader { - - public static final EPackage[] OBSERVATION_REPO_EPACKAGES = new EPackage[] { - RepositoryPackage.eINSTANCE - }; - - private static ObservationRepositoryModelLoader instance = null; - - public static ObservationRepositoryModelLoader getInstance() { - if (instance == null) { - instance = new ObservationRepositoryModelLoader(); - } - return instance; - } - - private ObservationRepositoryModelLoader() { - initializeResourceSet(new ResourceSetImpl()); - } - - @Override - public void initializeResourceSet(ResourceSet resourceSet) { - setResourceSet(resourceSet); - - /* Register the default resource factory -- only needed for stand-alone! */ - getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap() - .put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); - - /* Register also the packages needed for the DMM meta model */ - for (EPackage ePackage : OBSERVATION_REPO_EPACKAGES) { - getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put(ePackage.getNsURI(), ePackage); - } - } - -} diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerfDataRepoConverter.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerfDataRepoConverter.java deleted file mode 100644 index 5aacbad2..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerfDataRepoConverter.java +++ /dev/null @@ -1,79 +0,0 @@ -package edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo; - -import java.util.ArrayList; -import java.util.Collection; - -import edu.kit.ipd.descartes.perfdatarepo.Impact; -import edu.kit.ipd.descartes.perfdatarepo.MeasuredEntity; -import edu.kit.ipd.descartes.perfdatarepo.MetricType; -import edu.kit.ipd.descartes.perfdatarepo.MetricValue; -import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoFactory; -import edu.kit.ipd.descartes.perfdatarepo.Result; -import edu.kit.ipd.descartes.ql.models.mapping.domain.DecimalResult; -import edu.kit.ipd.descartes.ql.models.mapping.domain.Entity; -import edu.kit.ipd.descartes.ql.models.mapping.domain.Probe; -import edu.kit.ipd.descartes.ql.models.mapping.domain.Resource; -import edu.kit.ipd.descartes.ql.models.mapping.domain.Service; -import edu.kit.ipd.descartes.ql.models.mapping.mapping.EntityMapping; -import edu.kit.ipd.descartes.ql.models.repository.ObservableImpact; -import edu.kit.ipd.descartes.ql.models.repository.Observation; - -public class PerfDataRepoConverter { - - public static Impact convertObservableImpact(ObservableImpact o) { - if (o == null) - return null; - Impact impact = PerfdatarepoFactory.eINSTANCE.createImpact(); - impact.setId(o.getIdentifier()); - impact.setName("ObservableImpact (ID: " + o.getIdentifier() + ")"); - impact.setBefore(convertResult(o.getBefore())); - impact.setAfter(convertResult(o.getAfter())); - return impact; - } - - public static Result convertResult(Observation o) { - Result result = PerfdatarepoFactory.eINSTANCE.createResult(); - result.setId(o.getIdentifier()); - result.setName("Observation (ID: " + o.getIdentifier() + ")"); - Collection<MetricValue> values = convertMapping(o.getObservation()); - result.getMetricValues().addAll(values); - return result; - } - - public static Collection<MetricValue> convertMapping(EntityMapping observation) { - Collection<MetricValue> values = new ArrayList<MetricValue>(); - - for (Resource r : observation.getResources()) { - values.addAll(convertProbes(r)); - } - - for (Service s : observation.getServices()) { - values.addAll(convertProbes(s)); - } - - return values; - } - - private static Collection<MetricValue> convertProbes(Entity e) { - Collection<MetricValue> values = new ArrayList<MetricValue>(); - MetricType mType = PerfdatarepoFactory.eINSTANCE.createMetricType(); - mType.setName(e.getProbes().get(0).getMetricName()); - mType.setId(e.getProbes().get(0).getMetricName()); - MeasuredEntity entity = PerfdatarepoFactory.eINSTANCE.createMeasuredEntity(); - entity.setName(e.getAlias()); - entity.setId(e.getIdentifier()); - - for (Probe p : e.getProbes()) { - DecimalResult r = (DecimalResult) p; - MetricValue value = PerfdatarepoFactory.eINSTANCE.createMetricValue(); - value.setMeasuredEntity(entity); - value.setName(e.getAlias() + ": " + r.getMetricName()); - value.setMetricType(mType); - value.setValue(r.getValue().doubleValue()); - values.add(value); - } - - return values; - } - -} diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryHandler.java deleted file mode 100644 index b36b2ced..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryHandler.java +++ /dev/null @@ -1,55 +0,0 @@ -package edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo; - -import org.apache.log4j.Logger; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; - -import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic; -import edu.kit.ipd.descartes.perfdatarepo.Impact; -import edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository; -import edu.kit.ipd.descartes.perfdatarepo.Result; - -public class PerformanceDataRepositoryHandler implements IPerformanceDataRepositoryHandler { - - private static Logger logger = Logger.getLogger(PerformanceDataRepositoryHandler.class); - - private int iteration = 0; - - private PerformanceDataRepository repository = null; - private PerformanceDataRepositoryModelLoader modelLoader = null; - - public PerformanceDataRepositoryHandler() { - modelLoader = PerformanceDataRepositoryModelLoader.getInstance(); - logger.debug("PerformanceDataRepositoryHandler instantiated."); - } - - public void load(String fileUri) { - repository = modelLoader.load(URI.createFileURI(fileUri)); - } - - @Override - public Impact getLatestImpact() { - EList<Impact> impactHistory = repository.getImpactHistory(); - Impact mostRecentImpact = impactHistory.get(impactHistory.size() - 1); - - for (Impact currentImpact : impactHistory) { - Result afterResult = currentImpact.getAfter(); - if (afterResult.getTimestamp().compareTo(mostRecentImpact.getAfter().getTimestamp()) > 0 ) - mostRecentImpact = currentImpact; - } - - return mostRecentImpact; - } - - @Override - public Impact getLatestImpact(WeightedTactic tactic) { - // TODO Auto-generated method stub - return null; - } - - @Override - public Result getCurrentSystemState() { - return repository.getResultHistory().get(iteration++); - } - -} diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryHandlerFactory.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryHandlerFactory.java deleted file mode 100644 index d44e6f4b..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryHandlerFactory.java +++ /dev/null @@ -1,18 +0,0 @@ -package edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo; - -import edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository; -import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository; - -public class PerformanceDataRepositoryHandlerFactory { - - public static IPerformanceDataRepositoryHandler createHandler(String repositoryType) { - - if (repositoryType.equals(PerformanceDataRepository.class.getName())) - return new PerformanceDataRepositoryHandler(); - - if (repositoryType.equals(ObservationRepository.class.getName())) - return new ObservationRepositoryHandler(); - - return null; - } -} diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryModelLoader.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryModelLoader.java deleted file mode 100644 index 5e2eeb6b..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/repository/perfdatarepo/PerformanceDataRepositoryModelLoader.java +++ /dev/null @@ -1,51 +0,0 @@ -package edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; - -import edu.kit.ipd.descartes.adaptation.model.repository.AbstractEcoreModelLoader; -import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoPackage; -import edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository; - -public class PerformanceDataRepositoryModelLoader extends AbstractEcoreModelLoader { - - public static final EPackage[] PERF_DATA_REPO_EPACKAGES = new EPackage[] { PerfdatarepoPackage.eINSTANCE }; - - private static PerformanceDataRepositoryModelLoader instance = null; - - public static PerformanceDataRepositoryModelLoader getInstance() { - if (instance == null) { - instance = new PerformanceDataRepositoryModelLoader(); - } - return instance; - } - - - private PerformanceDataRepositoryModelLoader() { - initializeResourceSet(new ResourceSetImpl()); - } - - @Override - public void initializeResourceSet(ResourceSet resourceSet) { - setResourceSet(resourceSet); - /* Register the default resource factory -- only needed for stand-alone! */ - getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap() - .put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); - - /* Register also the packages needed for the DMM meta model */ - for (EPackage ePackage : PERF_DATA_REPO_EPACKAGES) { - getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put(ePackage.getNsURI(), ePackage); - } - - } - - @Override - public PerformanceDataRepository load(URI uri) { - return (PerformanceDataRepository) super.load(uri); - } - -} diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/BlueYonderExperimentTracker.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/BlueYonderExperimentTracker.java deleted file mode 100644 index 14dc5362..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/BlueYonderExperimentTracker.java +++ /dev/null @@ -1,118 +0,0 @@ -package edu.kit.ipd.descartes.adaptation.util; - -import edu.kit.ipd.descartes.adaptation.TacticExecutor; -import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic; -import edu.kit.ipd.descartes.mm.resourcelandscape.ComputingInfrastructure; -import edu.kit.ipd.descartes.mm.resourcelandscape.DistributedDataCenter; - -public class BlueYonderExperimentTracker implements IObserver { - - private static final String RESULT_NAME_TEMPLATE = "Xreq-par-$1Yps-desc4-gw-desc3-db-desc2-predict-Z ps=$2-req=5-size=50000"; -// private static final String RESULT_NAME_TEMPLATE = "Xreq-par-$1$3Yps-desc4-gw-desc3-db-desc2-predict-Z ps=$2-req=40-size=500000"; -// private static final String RESULT_NAME_TEMPLATE = "Xreq-par-$1$3Yps-desc4-gw-desc3-db-desc2-predict-Z ps=$2-req=30-size=500000"; - private static BlueYonderExperimentTracker instance = null; - private int psOnDescOne = 0; - private int psOnDescFour = 1; - private int psOnDescOneBackup; - private int psOnDescFourBackup; - - public void setSubject(TacticExecutor te) { - te.register(this); - } - - public String getCurrentExperimentName() { - String result = RESULT_NAME_TEMPLATE; - - if (psOnDescOne > 0) - result = RESULT_NAME_TEMPLATE.replace("$1", psOnDescOne + "ps-desc1-"); - else - result = RESULT_NAME_TEMPLATE.replace("$1", ""); - - result = result.replace("$2", Integer.toString(psOnDescFour)); - return result; - } - - public void track(WeightedTactic tactic) { - String execTacticName = tactic.getName(); - backupValues(); - - if (execTacticName.contains("Consolidate")) { - int loopCount = 1; - try { - loopCount = Integer.parseInt(tactic.getUsedTactic().getInputParams().get(0).getValue()); - } catch (Exception e) { - - } - if (execTacticName.contains("Low")) { - psOnDescFour = psOnDescFour - loopCount; - psOnDescOne = psOnDescOne + loopCount; - } else if (execTacticName.contains("High")) { - psOnDescOne = psOnDescOne - loopCount; - psOnDescFour = psOnDescFour + loopCount; - } - } else if (execTacticName.contains("Low")) { - psOnDescOne++; - if (execTacticName.contains("Migrate")) { - assert psOnDescFour > 0; - psOnDescFour--; - } - } else if (execTacticName.contains("High")) { - psOnDescFour++; - if (execTacticName.contains("Migrate")) { - assert psOnDescOne > 0; - psOnDescOne--; - } - } - } - - private void backupValues() { - psOnDescOneBackup = psOnDescOne; - psOnDescFourBackup = psOnDescFour; - } - - @Override - public void undo() { - resetValues(); - } - - private void resetValues() { - psOnDescOne = psOnDescOneBackup; - psOnDescFour = psOnDescFourBackup; - } - - public static BlueYonderExperimentTracker getInstance() { - if (instance == null) - instance = new BlueYonderExperimentTracker(); - return instance; - } - - public String getExperimentNameForDistributedDataCenter(DistributedDataCenter distributedDataCenter) { - int[] psInstances = new int[4]; // 4 because currently we have 4 machines in the BY scenario - - for (int i = 0; i < psInstances.length; i++) - { - try { - // Count number of instances on the desc1 - desc4 machines - psInstances[i] = ((ComputingInfrastructure) distributedDataCenter.getConsistsOf().get(0).getContains().get(i)).getContains().size(); - } catch (Exception e) { - // If machine does not exist, there are also no instances on it - psInstances[i] = 0; - } - } - - String result = RESULT_NAME_TEMPLATE; - - if (psInstances[0] > 0) - result = result.replace("$1", psInstances[0] + "ps-desc1-"); - else - result = result.replace("$1", ""); - - if (psInstances[1] > 1) // subtract 1 instance because GW/DB is also running here - result = result.replace("$3", (psInstances[1] - 1) + "ps-desc2-"); - else - result = result.replace("$3", ""); - - result = result.replace("$2", Integer.toString(psInstances[3])); - return result; - } -} diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/IObserver.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/IObserver.java deleted file mode 100644 index 42e15cd8..00000000 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/IObserver.java +++ /dev/null @@ -1,7 +0,0 @@ -package edu.kit.ipd.descartes.adaptation.util; - -public interface IObserver { - - public void undo(); - -} -- GitLab