From ed1479125e10b73e11be49c4fda11a48cdb0e9bb Mon Sep 17 00:00:00 2001 From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de> Date: Wed, 5 Jun 2013 15:06:34 +0000 Subject: [PATCH] implemented basic functionality to start adaptation process in eclipse git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@11942 9e42b895-fcda-4063-8a3b-11be15eb1bbd --- .../META-INF/MANIFEST.MF | 14 ++-- .../build.properties | 3 +- edu.kit.ipd.descartes.adaptation/plugin.xml | 28 ++++++++ .../actions/StartAdaptationAction.java | 69 +++++++++++++++++++ .../model/dmm/util/ObjectivesHelper.java | 2 +- 5 files changed, 108 insertions(+), 8 deletions(-) create mode 100644 edu.kit.ipd.descartes.adaptation/plugin.xml create mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/actions/StartAdaptationAction.java diff --git a/edu.kit.ipd.descartes.adaptation/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.adaptation/META-INF/MANIFEST.MF index 45f74d5a..287afe1a 100644 --- a/edu.kit.ipd.descartes.adaptation/META-INF/MANIFEST.MF +++ b/edu.kit.ipd.descartes.adaptation/META-INF/MANIFEST.MF @@ -1,17 +1,19 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Adaptation -Bundle-SymbolicName: edu.kit.ipd.descartes.adaptation +Bundle-SymbolicName: edu.kit.ipd.descartes.adaptation;singleton:=true Bundle-Version: 1.0.0.qualifier Bundle-Activator: edu.kit.ipd.descartes.adaptation.Activator -Require-Bundle: edu.kit.ipd.descartes.mm.resourcelandscape;bundle-version="1.0.0", - edu.kit.ipd.descartes.mm.adaptation;bundle-version="1.0.0", - org.eclipse.ui, +Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, - org.eclipse.ocl + org.eclipse.ocl, + edu.kit.ipd.descartes.mm.resourcelandscape;bundle-version="1.0.0", + edu.kit.ipd.descartes.mm.adaptation;bundle-version="1.0.0", + edu.kit.ipd.descartes.ql.core.engine;bundle-version="1.0.0" Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Import-Package: edu.kit.ipd.descartes.ql.models.mapping.domain, +Import-Package: edu.kit.ipd.descartes.ql.lang.descartesQL, + edu.kit.ipd.descartes.ql.models.mapping.domain, edu.kit.ipd.descartes.ql.models.mapping.mapping, edu.kit.ipd.descartes.ql.models.repository, org.eclipse.core.resources, diff --git a/edu.kit.ipd.descartes.adaptation/build.properties b/edu.kit.ipd.descartes.adaptation/build.properties index 34d2e4d2..e9863e28 100644 --- a/edu.kit.ipd.descartes.adaptation/build.properties +++ b/edu.kit.ipd.descartes.adaptation/build.properties @@ -1,4 +1,5 @@ source.. = src/ output.. = bin/ bin.includes = META-INF/,\ - . + .,\ + plugin.xml diff --git a/edu.kit.ipd.descartes.adaptation/plugin.xml b/edu.kit.ipd.descartes.adaptation/plugin.xml new file mode 100644 index 00000000..59c69bbc --- /dev/null +++ b/edu.kit.ipd.descartes.adaptation/plugin.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + <extension + point="org.eclipse.ui.actionSets"> + <actionSet + id="edu.kit.ipd.descartes.adaptation.adaptationFrameworkActionSet" + label="Adaptation Framework Action Set" + visible="true"> + <menu + id="adaptationFrameworkMenu" + label="Adaptation &Framework"> + <separator + name="edu.kit.ipd.descartes.adaptation.AdaptationSeparator"> + </separator> + </menu> + <action + class="edu.kit.ipd.descartes.adaptation.actions.StartAdaptationAction" + id="edu.kit.ipd.descartes.adaptation.actions.StartAdaptationAction" + label="Start &Adaptation" + menubarPath="adaptationFrameworkMenu/Adaptation Framework" + toolbarPath="Adaptation Framework" + tooltip="Starts the adaptation process"> + </action> + </actionSet> + </extension> + +</plugin> diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/actions/StartAdaptationAction.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/actions/StartAdaptationAction.java new file mode 100644 index 00000000..6fb8cfab --- /dev/null +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/actions/StartAdaptationAction.java @@ -0,0 +1,69 @@ +package edu.kit.ipd.descartes.adaptation.actions; + +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.IWorkbenchWindowActionDelegate; + +import edu.kit.ipd.descartes.adaptation.ql.QueryEngineAdapter; + +/** + * Our sample action implements workbench action delegate. + * The action proxy will be created by the workbench and + * shown in the UI. When the user tries to use the action, + * this delegate will be created and execution will be + * delegated to it. + * @see IWorkbenchWindowActionDelegate + */ +public class StartAdaptationAction implements IWorkbenchWindowActionDelegate { + private IWorkbenchWindow window; + /** + * The constructor. + */ + public StartAdaptationAction() { + } + + /** + * The action has been activated. The argument of the + * method represents the 'real' action sitting + * in the workbench UI. + * @see IWorkbenchWindowActionDelegate#run + */ + public void run(IAction action) { + MessageDialog.openInformation( + window.getShell(), + "External", + "Watch the console to see messages about the Adaptation Process"); + QueryEngineAdapter qea = new QueryEngineAdapter("/by_dmm-model/optimizationTest.pdr"); + System.out.println(qea.queryActiveServers()); + + } + + /** + * Selection in the workbench has been changed. We + * can change the state of the 'real' action here + * if we want, but this can only happen after + * the delegate has been created. + * @see IWorkbenchWindowActionDelegate#selectionChanged + */ + public void selectionChanged(IAction action, ISelection selection) { + } + + /** + * We can use this method to dispose of any system + * resources we previously allocated. + * @see IWorkbenchWindowActionDelegate#dispose + */ + public void dispose() { + } + + /** + * We will cache window object in order to + * be able to provide parent shell for the message dialog. + * @see IWorkbenchWindowActionDelegate#init + */ + public void init(IWorkbenchWindow window) { + this.window = window; + } +} \ No newline at end of file diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/ObjectivesHelper.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/ObjectivesHelper.java index 18125287..2492b13f 100644 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/ObjectivesHelper.java +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/ObjectivesHelper.java @@ -34,7 +34,7 @@ public class ObjectivesHelper { List<Specification> specs = event.getTriggers().getObjective().getSpecifications(); for (Specification specification : specs) { MetricType m = specification.getMetricType(); -// TODO: Connect QueryEngine: Double actualValue = QueryLanguageAdapter.getValueForMetricType(m); +// TODO: Connect QueryEngine: Double actualValue = QueryEngineAdapter.getValueForMetricType(m); Double actualValue = WeightedSumWeightingFunctionHelper.getValueForMetricType(m, result); Double threshold = specification.getValue(); if (!ObjectivesHelper.compare(actualValue, threshold, specification.getRelationalOperator())) -- GitLab