diff --git a/edu.kit.ipd.descartes.adaptation.evaluation.performance/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.adaptation.evaluation.performance/META-INF/MANIFEST.MF index 382a7e261c797f4572fae5f3493b030dfa7fe58b..93f790c2263bae5251b11d507f5af9b415b28f16 100644 --- a/edu.kit.ipd.descartes.adaptation.evaluation.performance/META-INF/MANIFEST.MF +++ b/edu.kit.ipd.descartes.adaptation.evaluation.performance/META-INF/MANIFEST.MF @@ -6,10 +6,10 @@ Bundle-Version: 1.0.0.qualifier Bundle-Activator: edu.kit.ipd.descartes.adaptation.evaluation.performance.Activator Bundle-Vendor: Descartes Research Group Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Import-Package: edu.kit.ipd.descartes.core, +Import-Package: edu.kit.ipd.descartes.adaptation.model, + edu.kit.ipd.descartes.core, edu.kit.ipd.descartes.identifier, edu.kit.ipd.descartes.mm.adaptation, - edu.kit.ipd.descartes.adaptation.model, edu.kit.ipd.descartes.perfdatarepo, edu.kit.ipd.descartes.ql.models.mapping.domain, edu.kit.ipd.descartes.ql.models.mapping.mapping, @@ -17,10 +17,9 @@ Import-Package: edu.kit.ipd.descartes.core, org.apache.log4j;version="1.2.15", org.eclipse.emf.common.util, org.eclipse.emf.ecore, - org.eclipse.emf.ecore.util, org.eclipse.emf.ecore.resource, org.eclipse.emf.ecore.resource.impl, - org.eclipse.emf.ecore.xmi, + org.eclipse.emf.ecore.util, org.eclipse.emf.ecore.xmi.impl, org.osgi.framework;version="1.3.0" Export-Package: edu.kit.ipd.descartes.adaptation.evaluation.performance, diff --git a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/IPerformanceDataRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/IPerformanceDataRepositoryHandler.java index 98c71a7f3113cfa0cf399ca44505622feaa6059c..3ebbb33d6da3bdc9b2d575c6685e820e87b10f88 100644 --- a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/IPerformanceDataRepositoryHandler.java +++ b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/IPerformanceDataRepositoryHandler.java @@ -14,4 +14,11 @@ public interface IPerformanceDataRepositoryHandler { public Result getCurrentSystemState(); public EObject getRepository(); + + /** + * This is a helper function to overcome the problem that + * there is no performance prediction connected right now. + * Therefore we have to set the new system state manually. + */ + public void setNewSystemState(); } diff --git a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java index 4922aa526686f7d0e28f9b5d96338c9f8e105218..8c9ba5f69f2d555f8981ba5e21801157b6e0eb59 100644 --- a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java +++ b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java @@ -2,9 +2,13 @@ package edu.kit.ipd.descartes.adaptation.evaluation.performance.repository; import static edu.kit.ipd.descartes.adaptation.evaluation.performance.repository.PerfDataRepoConverter.convertObservableImpact; +import java.util.Iterator; +import java.util.List; + import org.apache.log4j.Logger; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.util.EcoreUtil; import edu.kit.ipd.descartes.adaptation.model.AbstractEcoreModelLoader; import edu.kit.ipd.descartes.perfdatarepo.Impact; @@ -38,16 +42,6 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH public Result getCurrentSystemState() { Observation o = repository.getLatestObservation(); -// WeightedTactic latestTactic = TacticsHistory.getInstance().getLatestAppliedTactic(); -// if (latestTactic == null) { -// o = repository.getLatestObservation(); -// } else { -// // TODO: Blue Yonder specific, introduce abstraction layer -// String expName = BlueYonderExperimentTracker.getInstance.getExperimentNameForDistributedDataCenter(AdaptationProcessModelLoader.getDistributedDataCenter()); -// logger.debug("Searching for result of " + expName); -// o = ObservationRepositoryHelper.getResultEndingWith(expName, repository); -// } - if (o == null) return null; else @@ -58,5 +52,26 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH public EObject getRepository() { return repository; } + + @Override + public void setNewSystemState() { + List<Observation> observations = repository.getObservations(); + Observation currentObservation = repository.getLatestObservation(); + Observation newObservation = null; + for (Iterator<Observation> iterator = observations.iterator(); iterator.hasNext();) { + Observation observ = (Observation) iterator.next(); + if (EcoreUtil.equals(observ, currentObservation)) { + newObservation = iterator.next(); + break; + } + } + if (newObservation != null) { + repository.setLatestObservation(newObservation); + } + else { + logger.error("Error determining new system state!"); + throw new RuntimeException(); + } + } } diff --git a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/PerformanceDataRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/PerformanceDataRepositoryHandler.java index 4825befff77e7527f99c8ee62e65ee29ba02dd70..a640d26453eca10d90d0f88168b968e2a89ae2c3 100644 --- a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/PerformanceDataRepositoryHandler.java +++ b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/PerformanceDataRepositoryHandler.java @@ -51,4 +51,10 @@ public class PerformanceDataRepositoryHandler implements IPerformanceDataReposit return repository; } + @Override + public void setNewSystemState() { + // TODO Auto-generated method stub + + } + }