diff --git a/.deployment/docker-compose.yml b/.deployment/docker-compose.yml
index 666f162..a23fa53 100644
--- a/.deployment/docker-compose.yml
+++ b/.deployment/docker-compose.yml
@@ -67,8 +67,9 @@ services:
- ./:/data/
environment:
mqtt.broker.uri: tcp://broker.hivemq.com:1883
- discovery.endpoint.uri: https://tapas-auction-house.86.119.35.213.nip.io/discovery/
+ discovery.endpoint.uri: https://tapas-auction-house.86-119-34-242.nip.io
auction.house.uri: https://tapas-auction-house.86-119-35-40.nip.io
+ tasks.list.uri: https://tapas-tasks.86-119-35-40.nip.io
labels:
- "traefik.enable=true"
- "traefik.http.routers.tapas-auction-house.rule=Host(`tapas-auction-house.${PUB_IP}.nip.io`)"
@@ -91,6 +92,7 @@ services:
auction.house.uri: http://tapas-auction-house:8086
executor.robot.uri: http://executor-robot:8084
executor.computation.uri: http://executor-computation:8085
+ executor.humidity.uri: http://executor-humidity:8087
mqtt.broker.uri: tcp://broker.hivemq.com:1883
spring.data.mongodb.uri: mongodb://root:password@tapas-db:27017
labels:
@@ -164,3 +166,24 @@ services:
- "traefik.http.routers.executor-robot.tls=true"
- "traefik.http.routers.executor-robot.entryPoints=web,websecure"
- "traefik.http.routers.executor-robot.tls.certresolver=le"
+ executor-humidity:
+ image: openjdk
+ command: "java -jar /data/executor-humidity-0.0.1-SNAPSHOT.jar"
+ restart: unless-stopped
+ depends_on:
+ - executor-pool
+ - roster
+ - tapas-db
+ volumes:
+ - ./:/data/
+ environment:
+ EXECUTOR_POOL_URI: http://executor-pool:8083
+ ROSTER_URI: http://roster:8082
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.executor-computation.rule=Host(`executor-humidity.${PUB_IP}.nip.io`)"
+ - "traefik.http.routers.executor-computation.service=executor-computation"
+ - "traefik.http.services.executor-computation.loadbalancer.server.port=8087"
+ - "traefik.http.routers.executor-computation.tls=true"
+ - "traefik.http.routers.executor-computation.entryPoints=web,websecure"
+ - "traefik.http.routers.executor-computation.tls.certresolver=le"
diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml
index 7290452..cc46404 100644
--- a/.github/workflows/build-and-deploy.yml
+++ b/.github/workflows/build-and-deploy.yml
@@ -55,6 +55,10 @@ jobs:
run: mvn -f executor-robot/pom.xml --batch-mode --update-snapshots verify
- run: cp ./executor-robot/target/executor-robot-0.0.1-SNAPSHOT.jar ./target
+ - name: Build executor-humidity service
+ run: mvn -f executor-humidity/pom.xml --batch-mode --update-snapshots verify
+ - run: cp ./executor-humidity/target/executor-humidity-0.0.1-SNAPSHOT.jar ./target
+
- name: Build tapas-task service
run: mvn -f tapas-tasks/pom.xml --batch-mode --update-snapshots verify
- run: cp ./tapas-tasks/target/tapas-tasks-0.0.1-SNAPSHOT.jar ./target
@@ -103,5 +107,6 @@ jobs:
cd /home/${{ secrets.SSH_USER }}/
touch acme.json
sudo chmod 0600 acme.json
+ sudo docker-compose down --remove-orphans
sudo echo "PUB_IP=$(wget -qO- http://ipecho.net/plain | xargs echo)" | sed -e 's/\./-/g' > .env
- sudo docker-compose up -d --build --force-recreate
+ sudo docker-compose up -d
diff --git a/executor-base/src/main/java/ch/unisg/executorBase/executor/domain/ExecutorBase.java b/executor-base/src/main/java/ch/unisg/executorBase/executor/domain/ExecutorBase.java
index fca2758..aeafb4d 100644
--- a/executor-base/src/main/java/ch/unisg/executorBase/executor/domain/ExecutorBase.java
+++ b/executor-base/src/main/java/ch/unisg/executorBase/executor/domain/ExecutorBase.java
@@ -33,12 +33,11 @@ public abstract class ExecutorBase {
Logger logger = Logger.getLogger(ExecutorBase.class.getName());
- protected ExecutorBase(ExecutorType executorType) {
+ protected ExecutorBase(ExecutorType executorType, String uri) {
logger.info("ExecutorBase | Starting Executor");
this.status = ExecutorStatus.STARTING_UP;
this.executorType = executorType;
- // TODO set this automaticly
- this.executorURI = new ExecutorURI("http://localhost:8084");
+ this.executorURI = new ExecutorURI(uri);
// TODO do this in main
// Notify executor-pool about existence. If executor-pools response is successfull start with getting an assignment, else shut down executor.
logger.info("ExecutorBase | Notifying executor-pool about existens");
diff --git a/executor-base/src/main/java/ch/unisg/executorBase/executor/domain/ExecutorType.java b/executor-base/src/main/java/ch/unisg/executorBase/executor/domain/ExecutorType.java
index 30460e6..5ad22a7 100644
--- a/executor-base/src/main/java/ch/unisg/executorBase/executor/domain/ExecutorType.java
+++ b/executor-base/src/main/java/ch/unisg/executorBase/executor/domain/ExecutorType.java
@@ -1,7 +1,7 @@
package ch.unisg.executorbase.executor.domain;
public enum ExecutorType {
- COMPUTATION, ROBOT, HUMIDITY;
+ COMPUTATION, SMALLROBOT, HUMIDITY;
/**
* Checks if the give executor type exists.
diff --git a/executor-computation/pom.xml b/executor-computation/pom.xml
index 8692c3e..c6c5167 100644
--- a/executor-computation/pom.xml
+++ b/executor-computation/pom.xml
@@ -67,6 +67,17 @@
org.springframework.boot
spring-boot-test
+
+
+ org.graalvm.js
+ js
+ 21.3.0
+
+
+ org.graalvm.js
+ js-scriptengine
+ 21.3.0
+
diff --git a/executor-computation/src/main/java/ch/unisg/executorcomputation/ExecutorcomputationApplication.java b/executor-computation/src/main/java/ch/unisg/executorcomputation/ExecutorcomputationApplication.java
index ea9910a..1ee615d 100644
--- a/executor-computation/src/main/java/ch/unisg/executorcomputation/ExecutorcomputationApplication.java
+++ b/executor-computation/src/main/java/ch/unisg/executorcomputation/ExecutorcomputationApplication.java
@@ -15,14 +15,6 @@ public class ExecutorcomputationApplication {
static Logger logger = Logger.getLogger(ExecutorcomputationApplication.class.getName());
public static void main(String[] args) {
-
- try {
- TimeUnit.SECONDS.sleep(1);
- } catch (InterruptedException e) {
- logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
- Thread.currentThread().interrupt();
- }
-
SpringApplication.run(ExecutorcomputationApplication.class, args);
Executor.getExecutor();
}
diff --git a/executor-computation/src/main/java/ch/unisg/executorcomputation/executor/domain/Executor.java b/executor-computation/src/main/java/ch/unisg/executorcomputation/executor/domain/Executor.java
index 6c0cb59..bd22336 100644
--- a/executor-computation/src/main/java/ch/unisg/executorcomputation/executor/domain/Executor.java
+++ b/executor-computation/src/main/java/ch/unisg/executorcomputation/executor/domain/Executor.java
@@ -1,7 +1,6 @@
package ch.unisg.executorcomputation.executor.domain;
import java.util.concurrent.TimeUnit;
-import java.util.logging.Level;
import java.util.logging.Logger;
import javax.script.ScriptEngine;
@@ -15,21 +14,20 @@ public class Executor extends ExecutorBase {
private static Logger executorLogger = Logger.getLogger(Executor.class.getName());
- private static final Executor executor = new Executor(ExecutorType.COMPUTATION);
+ private static final Executor executor = new Executor(ExecutorType.COMPUTATION, "http://localhost:8085");
public static Executor getExecutor() {
return executor;
}
- private Executor(ExecutorType executorType) {
- super(executorType);
+ private Executor(ExecutorType executorType, String uri) {
+ super(executorType, uri);
}
@Override
protected
String execution(String inputData) {
- executorLogger.info("TEST");
executorLogger.info("Executor | Starting execution with inputData: " + inputData);
ScriptEngineManager mgr = new ScriptEngineManager();
@@ -45,10 +43,11 @@ public class Executor extends ExecutorBase {
}
try {
- TimeUnit.SECONDS.sleep(5);
+ TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
- executorLogger.log(Level.SEVERE, e.getLocalizedMessage(), e);
- Thread.currentThread().interrupt();
+ return result;
+ // executorLogger.log(Level.SEVERE, e.getLocalizedMessage(), e);
+ // Thread.currentThread().interrupt();
}
executorLogger.info("Executor | Finish execution");
diff --git a/executor-humidity/pom.xml b/executor-humidity/pom.xml
index 001c752..f6390b0 100644
--- a/executor-humidity/pom.xml
+++ b/executor-humidity/pom.xml
@@ -11,7 +11,7 @@
ch.unisg
executor-humidity
- 1.0-SNAPSHOT
+ 0.0.1-SNAPSHOT
executor-humidity
Demo project for Spring Boot
diff --git a/executor-humidity/src/main/java/ch/unisg/executorhumidity/executor/domain/Executor.java b/executor-humidity/src/main/java/ch/unisg/executorhumidity/executor/domain/Executor.java
index 1e888aa..9205100 100644
--- a/executor-humidity/src/main/java/ch/unisg/executorhumidity/executor/domain/Executor.java
+++ b/executor-humidity/src/main/java/ch/unisg/executorhumidity/executor/domain/Executor.java
@@ -4,17 +4,16 @@ import ch.unisg.executorbase.executor.domain.ExecutorBase;
import ch.unisg.executorbase.executor.domain.ExecutorType;
import ch.unisg.executorhumidity.executor.adapter.out.GetHumidityAdapter;
import ch.unisg.executorhumidity.executor.application.port.out.GetHumidityPort;
-import org.eclipse.californium.elements.exception.ConnectorException;
-
-import java.io.IOException;
public class Executor extends ExecutorBase {
- private static final Executor executor = new Executor(ExecutorType.HUMIDITY);
+ private static final Executor executor = new Executor(ExecutorType.HUMIDITY, "http://localhost:8087");
private final GetHumidityPort getHumidityPort = new GetHumidityAdapter();
- private Executor(ExecutorType executorType) {super(executorType);}
+ private Executor(ExecutorType executorType, String uri) {
+ super(executorType, uri);
+ }
public static Executor getExecutor() {return executor;}
@@ -22,8 +21,6 @@ public class Executor extends ExecutorBase {
@Override
protected
String execution(String input) {
- //TODO: Fill
-
String result = getHumidityPort.getHumidity();
return result;
diff --git a/executor-robot/pom.xml b/executor-robot/pom.xml
index 570bd18..2fa8a0f 100644
--- a/executor-robot/pom.xml
+++ b/executor-robot/pom.xml
@@ -82,11 +82,10 @@
compile
- com.github.Interactions-HSG
- wot-td-java
- 0.1.1
- compile
-
+ com.github.Interactions-HSG
+ wot-td-java
+ master-SNAPSHOT
+
diff --git a/executor-robot/src/main/java/ch/unisg/executorrobot/ExecutorrobotApplication.java b/executor-robot/src/main/java/ch/unisg/executorrobot/ExecutorrobotApplication.java
index 79a204f..15e2491 100644
--- a/executor-robot/src/main/java/ch/unisg/executorrobot/ExecutorrobotApplication.java
+++ b/executor-robot/src/main/java/ch/unisg/executorrobot/ExecutorrobotApplication.java
@@ -11,14 +11,6 @@ import ch.unisg.executorrobot.executor.domain.Executor;
public class ExecutorrobotApplication {
public static void main(String[] args) {
-
- try {
- TimeUnit.SECONDS.sleep(40);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
SpringApplication.run(ExecutorrobotApplication.class, args);
Executor.getExecutor();
}
diff --git a/executor-robot/src/main/java/ch/unisg/executorrobot/executor/adapter/out/DeleteUserFromRobotAdapter.java b/executor-robot/src/main/java/ch/unisg/executorrobot/executor/adapter/out/DeleteUserFromRobotAdapter.java
deleted file mode 100644
index 37b605a..0000000
--- a/executor-robot/src/main/java/ch/unisg/executorrobot/executor/adapter/out/DeleteUserFromRobotAdapter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package ch.unisg.executorrobot.executor.adapter.out;
-import java.io.IOException;
-import java.net.URI;
-import java.net.http.HttpClient;
-import java.net.http.HttpRequest;
-import java.net.http.HttpResponse;
-
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Component;
-
-import ch.unisg.executorrobot.executor.application.port.out.DeleteUserFromRobotPort;
-
-@Component
-@Primary
-public class DeleteUserFromRobotAdapter implements DeleteUserFromRobotPort {
-
- @Override
- public boolean deleteUserFromRobot(String key) {
-
- String url = "https://api.interactions.ics.unisg.ch/leubot1/v1.3.4/user/" + key;
-
- var request = HttpRequest.newBuilder()
- .uri(URI.create(url))
- .header("Content-Type", "application/json")
- .DELETE()
- .build();
-
- var client = HttpClient.newHttpClient();
-
- try {
- var response = client.send(request, HttpResponse.BodyHandlers.ofString());
- System.out.println(response.statusCode());
- return true;
- } catch (IOException e) {
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return false;
- }
-
-}
diff --git a/executor-robot/src/main/java/ch/unisg/executorrobot/executor/adapter/out/InstructionToRobotAdapter.java b/executor-robot/src/main/java/ch/unisg/executorrobot/executor/adapter/out/InstructionToRobotAdapter.java
deleted file mode 100644
index 763e530..0000000
--- a/executor-robot/src/main/java/ch/unisg/executorrobot/executor/adapter/out/InstructionToRobotAdapter.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package ch.unisg.executorrobot.executor.adapter.out;
-import java.io.IOException;
-import java.net.URI;
-import java.net.http.HttpClient;
-import java.net.http.HttpRequest;
-import java.net.http.HttpResponse;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-
-import ch.unisg.ics.interactions.wot.td.ThingDescription;
-import ch.unisg.ics.interactions.wot.td.affordances.ActionAffordance;
-import ch.unisg.ics.interactions.wot.td.affordances.Form;
-import ch.unisg.ics.interactions.wot.td.clients.TDHttpRequest;
-import ch.unisg.ics.interactions.wot.td.clients.TDHttpResponse;
-import ch.unisg.ics.interactions.wot.td.io.TDGraphReader;
-import ch.unisg.ics.interactions.wot.td.schemas.DataSchema;
-import ch.unisg.ics.interactions.wot.td.schemas.ObjectSchema;
-import ch.unisg.ics.interactions.wot.td.schemas.StringSchema;
-import ch.unisg.ics.interactions.wot.td.security.APIKeySecurityScheme;
-import ch.unisg.ics.interactions.wot.td.vocabularies.TD;
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Component;
-
-import ch.unisg.executorrobot.executor.application.port.out.InstructionToRobotPort;
-
-@Component
-@Primary
-public class InstructionToRobotAdapter implements InstructionToRobotPort {
-
- @Override
- public boolean instructionToRobot(String key) {
-
- String endpoint = "https://api.interactions.ics.unisg.ch/search/searchEngine";
-
- String input = "@prefix dct: . select ?title where { ?title dct:title 'leubot1' }";
-
- var httpRequest = HttpRequest.newBuilder()
- .uri(URI.create(endpoint))
- .header("Content-Type", "application/json")
- .POST(HttpRequest.BodyPublishers.ofString(input))
- .build();
-
- var client = HttpClient.newHttpClient();
-
- try {
- var description = client.send(httpRequest, HttpResponse.BodyHandlers.ofString()).body();
-
- // Parse a TD from a string
- ThingDescription td = TDGraphReader.readFromString(ThingDescription.TDFormat.RDF_TURTLE, description);
-
- // Create the payload to be sent with the Http request
- Map elbowPayload = new HashMap<>();
- elbowPayload.put("http://www.w3.org/2001/XMLSchema#int", 400);
-
- // Get the affordance "setElbow" from the TD
- Optional action = td.getActionByName("setElbow");
-
- // Get the first form
- if (action.isPresent()) {
- Optional