From 04075032d3729df27b48d1557da6f6b2b8688907 Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Tue, 29 Nov 2016 17:31:56 +0100 Subject: [PATCH] update woken-messages version and use it for listing methods too --- pom.xml | 2 +- .../java/eu/hbp/mip/akka/ListenerActor.java | 7 ++- .../eu/hbp/mip/controllers/ExperimentApi.java | 63 ++++++++----------- 3 files changed, 34 insertions(+), 38 deletions(-) diff --git a/pom.xml b/pom.xml index 05d771937..5af454e24 100644 --- a/pom.xml +++ b/pom.xml @@ -49,7 +49,7 @@ <spring-data-jpa.version>1.10.2.RELEASE</spring-data-jpa.version> <spring-boot-starter-actuator.version>1.4.0.RELEASE</spring-boot-starter-actuator.version> <aspectjweaver.version>1.8.9</aspectjweaver.version> - <woken-messages.version>a0244b0</woken-messages.version> + <woken-messages.version>d455fa0</woken-messages.version> <javax-inject.version>1</javax-inject.version> <akka-actor.version>2.4.11</akka-actor.version> <akka-remote.version>2.4.11</akka-remote.version> diff --git a/src/main/java/eu/hbp/mip/akka/ListenerActor.java b/src/main/java/eu/hbp/mip/akka/ListenerActor.java index b62494457..c86140e71 100644 --- a/src/main/java/eu/hbp/mip/akka/ListenerActor.java +++ b/src/main/java/eu/hbp/mip/akka/ListenerActor.java @@ -1,6 +1,7 @@ package eu.hbp.mip.akka; import akka.actor.UntypedActor; +import eu.hbp.mip.messages.external.Methods; import eu.hbp.mip.messages.external.QueryResult; import org.springframework.context.annotation.Scope; @@ -25,7 +26,11 @@ public class ListenerActor extends UntypedActor { public void onReceive(Object message) throws Exception { if (message instanceof QueryResult) { QueryResult queryResult = (QueryResult) message; - listeningService.listen(queryResult.data().get()); + listeningService.listen("received query result"); + } + else if (message instanceof Methods) { + Methods methods = (Methods) message; + listeningService.listen("received methods"); } else { unhandled(message); diff --git a/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java b/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java index 554682fe9..725831fc8 100644 --- a/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java +++ b/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java @@ -10,12 +10,12 @@ import com.google.gson.JsonParser; import eu.hbp.mip.akka.ListenerActor; import eu.hbp.mip.akka.ListeningService; import eu.hbp.mip.configuration.SecurityConfiguration; +import eu.hbp.mip.messages.external.MethodsQuery; import eu.hbp.mip.model.Experiment; import eu.hbp.mip.model.ExperimentQuery; import eu.hbp.mip.model.User; import eu.hbp.mip.repositories.ExperimentRepository; import eu.hbp.mip.repositories.ModelRepository; -import eu.hbp.mip.utils.JSONUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -27,10 +27,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; import java.net.MalformedURLException; import java.util.Date; import java.util.Iterator; @@ -217,18 +214,21 @@ public class ExperimentApi { StringBuilder response = new StringBuilder(); - // TODO: Use akka - int code = 500; - - JsonObject catalog = new JsonParser().parse(response.toString()).getAsJsonObject(); - - InputStream is = ExperimentApi.class.getClassLoader().getResourceAsStream(EXAREME_ALGO_JSON_FILE); - InputStreamReader isr = new InputStreamReader(is); - BufferedReader br = new BufferedReader(isr); - JsonObject exaremeAlgo = new JsonParser().parse(br).getAsJsonObject(); + ActorSelection wokenActor = actorSystem.actorSelection(wokenPath); + wokenActor.tell(new MethodsQuery(), new ListenerActor(new ListeningService()).getSelf()); - catalog.get("algorithms").getAsJsonArray().add(exaremeAlgo); + // TODO: remove this + int code = 200; + JsonObject catalog = new JsonParser().parse(response.toString()).getAsJsonObject(); +// +// InputStream is = ExperimentApi.class.getClassLoader().getResourceAsStream(EXAREME_ALGO_JSON_FILE); +// InputStreamReader isr = new InputStreamReader(is); +// BufferedReader br = new BufferedReader(isr); +// JsonObject exaremeAlgo = new JsonParser().parse(br).getAsJsonObject(); +// +// catalog.get("algorithms").getAsJsonArray().add(exaremeAlgo); +// return new ResponseEntity<>(gson.toJson(catalog), HttpStatus.valueOf(code)); } @@ -306,19 +306,19 @@ public class ExperimentApi { String url = miningExaremeQueryUrl + "/" + EXAREME_LR_ALGO; // Results are stored in the experiment object - try { - executeExperiment(url, query, experiment); - } catch (IOException e) { - LOGGER.trace(e); - LOGGER.warn("Exareme experiment failed to run properly !"); - setExperimentError(e, experiment); - } - - if(!JSONUtil.isJSONValid(experiment.getResult())) - { - experiment.setResult("Unsupported variables !"); - } - finishExpermient(experiment); +// try { +// executeExperiment(url, query, experiment); +// } catch (IOException e) { +// LOGGER.trace(e); +// LOGGER.warn("Exareme experiment failed to run properly !"); +// setExperimentError(e, experiment); +// } +// +// if(!JSONUtil.isJSONValid(experiment.getResult())) +// { +// experiment.setResult("Unsupported variables !"); +// } +// finishExpermient(experiment); } }.start(); } @@ -331,15 +331,6 @@ public class ExperimentApi { LOGGER.info("Experiment updated (finished)"); } - private static void executeExperiment(String url, String query, Experiment experiment) throws IOException { - StringBuilder results = new StringBuilder(); - // TODO: use akka - int code = 500; - experiment.setResult(results.toString()); - experiment.setHasError(code >= 400); - experiment.setHasServerError(code >= 500); - } - private static void setExperimentError(IOException e, Experiment experiment) { experiment.setHasError(true); experiment.setHasServerError(true); -- GitLab