diff --git a/.deployment/docker-compose.yml b/.deployment/docker-compose.yml index 12684cd..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`)" diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 54f74be..cc46404 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -107,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-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-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-robot/src/main/java/ch/unisg/executorrobot/executor/domain/Executor.java b/executor-robot/src/main/java/ch/unisg/executorrobot/executor/domain/Executor.java index cc08bc1..4468f14 100644 --- a/executor-robot/src/main/java/ch/unisg/executorrobot/executor/domain/Executor.java +++ b/executor-robot/src/main/java/ch/unisg/executorrobot/executor/domain/Executor.java @@ -21,7 +21,8 @@ public class Executor extends ExecutorBase { @Override protected String execution(String input) { - return userToRobotPort.userToRobot(); + userToRobotPort.userToRobot(); + return ""; } } diff --git a/tapas-auction-house/src/main/java/ch/unisg/tapas/TapasAuctionHouseApplication.java b/tapas-auction-house/src/main/java/ch/unisg/tapas/TapasAuctionHouseApplication.java index c57c8c5..f738311 100644 --- a/tapas-auction-house/src/main/java/ch/unisg/tapas/TapasAuctionHouseApplication.java +++ b/tapas-auction-house/src/main/java/ch/unisg/tapas/TapasAuctionHouseApplication.java @@ -51,8 +51,10 @@ public class TapasAuctionHouseApplication { WebSubSubscriber subscriber = new WebSubSubscriber(ENVIRONMENT.getProperty("auction.house.uri")); for (AuctionHouseDiscoveryInformation endpoint : AuctionHouseDiscovery.getInstance().getAuctionHouseDiscoveryList()) { - System.out.println(endpoint.getWebSubUri().getValue()); - subscriber.subscribeToAuctionHouseEndpoint(endpoint.getWebSubUri().getValue()); + // Don't subscribe to our own auction house + if (!endpoint.getWebSubUri().getValue().toString().equalsIgnoreCase("https://tapas-auction-house.86-119-35-40.nip.io/websub/auctions")) { + subscriber.subscribeToAuctionHouseEndpoint(endpoint.getWebSubUri().getValue()); + } } // try { // subscriber.subscribeToAuctionHouseEndpoint(new URI("http://6b4e-130-82-250-227.ngrok.io/websub-discovery")); diff --git a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/common/clients/WebSubSubscriber.java b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/common/clients/WebSubSubscriber.java index ea74603..c73faa0 100644 --- a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/common/clients/WebSubSubscriber.java +++ b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/common/clients/WebSubSubscriber.java @@ -101,6 +101,9 @@ public class WebSubSubscriber { return; } + System.out.println("HUB: " + hub); + System.out.println("TOPIC: " + topic); + HttpRequest request = HttpRequest.newBuilder() .uri(hubURI) .header("Content-Type", "application/x-www-form-urlencoded") diff --git a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/messaging/mqtt/ExternalAuctionStartedEventListenerMqttAdapter.java b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/messaging/mqtt/ExternalAuctionStartedEventListenerMqttAdapter.java index c952771..50e145c 100644 --- a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/messaging/mqtt/ExternalAuctionStartedEventListenerMqttAdapter.java +++ b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/messaging/mqtt/ExternalAuctionStartedEventListenerMqttAdapter.java @@ -22,11 +22,9 @@ import java.net.http.HttpResponse; public class ExternalAuctionStartedEventListenerMqttAdapter extends AuctionEventMqttListener{ private static final Logger LOGGER = LogManager.getLogger(ExternalAuctionStartedEventListenerMqttAdapter.class); - // String auctionHouseURI = "https://tapas-auction-house.86-119-35-40.nip.io/"; - String auctionHouseURI = "http://a888-77-59-152-182.eu.ngrok.io"; + String auctionHouseURI = "https://tapas-auction-house.86-119-35-40.nip.io/"; - // String taskListURI = "https://tapas-tasks.86-119-35-40.nip.io"; - String taskListURI = "http://e021-77-59-152-182.ngrok.io"; + String taskListURI = "https://tapas-tasks.86-119-35-40.nip.io"; @Override public boolean handleEvent(MqttMessage message){ diff --git a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/messaging/websub/AuctionStartedEventListenerWebSubAdapter.java b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/messaging/websub/AuctionStartedEventListenerWebSubAdapter.java index 520e0a5..5da2733 100644 --- a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/messaging/websub/AuctionStartedEventListenerWebSubAdapter.java +++ b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/messaging/websub/AuctionStartedEventListenerWebSubAdapter.java @@ -69,11 +69,9 @@ public class AuctionStartedEventListenerWebSubAdapter { // } - // String auctionHouseURI = "https://tapas-auction-house.86-119-35-40.nip.io/"; - String auctionHouseURI = "http://b311-130-82-247-153.eu.ngrok.io"; + String auctionHouseURI = "https://tapas-auction-house.86-119-35-40.nip.io/"; - // String taskListURI = "https://tapas-tasks.86-119-35-40.nip.io"; - String taskListURI = "http://c64f-130-82-247-153.ngrok.io"; + String taskListURI = "https://tapas-tasks.86-119-35-40.nip.io"; // TODO Sanitize URIs String auctionId = auction.getString("auctionId"); diff --git a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/web/AuctionHouseDiscoveryWebController.java b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/web/AuctionHouseDiscoveryWebController.java index 22fbb09..8c184fa 100644 --- a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/web/AuctionHouseDiscoveryWebController.java +++ b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/web/AuctionHouseDiscoveryWebController.java @@ -30,7 +30,7 @@ public class AuctionHouseDiscoveryWebController { this.auctionHouseDiscoveryUseCase = auctionHouseDiscoveryUseCase; } - @GetMapping(path="/discovery/", consumes = AuctionHouseDiscoveryJsonRepresentation.MEDIA_TYPE) + @GetMapping(path="/discovery/") public ResponseEntity auctionHouseDiscovery() { List auctionHouseDiscoveryInformation = auctionHouseDiscoveryUseCase.auctionHouseDiscovery(); diff --git a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/web/WinningBidWebController.java b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/web/WinningBidWebController.java index cad0538..6dbc820 100644 --- a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/web/WinningBidWebController.java +++ b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/in/web/WinningBidWebController.java @@ -27,9 +27,11 @@ public class WinningBidWebController { @PostMapping(path = "/taskwinner", consumes = TaskJsonRepresentation.MEDIA_TYPE) public ResponseEntity winningBid(@RequestBody TaskJsonRepresentation payload){ + LOGGER.info("New Task Winner"); try { var body = payload.serialize(); - LOGGER.info(body); + LOGGER.info("Task Winner body: " + body); + LOGGER.info("Task Winner taskListURI: " + taskListURI); var postURI = URI.create(taskListURI + "/tasks/"); HttpRequest postRequest = HttpRequest.newBuilder() .uri(postURI) @@ -40,7 +42,7 @@ public class WinningBidWebController { HttpClient client = HttpClient.newHttpClient(); var postResponse = client.send(postRequest, HttpResponse.BodyHandlers.ofString()); - LOGGER.info(postResponse.statusCode()); + LOGGER.info("Create task internally with status code: " + postResponse.statusCode()); HttpHeaders responseHeaders = new HttpHeaders(); diff --git a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/messaging/websub/PublishAuctionStartedEventWebSubAdapter.java b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/messaging/websub/PublishAuctionStartedEventWebSubAdapter.java index ccb1225..77e51a8 100644 --- a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/messaging/websub/PublishAuctionStartedEventWebSubAdapter.java +++ b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/messaging/websub/PublishAuctionStartedEventWebSubAdapter.java @@ -32,6 +32,7 @@ public class PublishAuctionStartedEventWebSubAdapter implements AuctionStartedEv @Override public void publishAuctionStartedEvent(AuctionStartedEvent event) { logger.info("AuctionHouse | Publish auction started over WebSub!"); + logger.info("AuctionHouse | AuctionHouseURI: " + auctionHouseUri + " WebSubHubUri: " + webSubHubUri); HttpClient client = HttpClient.newHttpClient(); diff --git a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/web/AuctionHouseDiscoveryHttpAdapter.java b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/web/AuctionHouseDiscoveryHttpAdapter.java index e9f5a04..1db4a18 100644 --- a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/web/AuctionHouseDiscoveryHttpAdapter.java +++ b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/web/AuctionHouseDiscoveryHttpAdapter.java @@ -6,6 +6,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.http.HttpStatus; import java.io.IOException; import java.net.URI; @@ -22,36 +23,37 @@ public class AuctionHouseDiscoveryHttpAdapter implements AuctionHouseDiscoveryPo public List fetchAuctionHouseInformation(URI auctionHouseURI){ - System.out.println(auctionHouseURI); - try{ var client = HttpClient.newHttpClient(); var request = HttpRequest.newBuilder() .uri(auctionHouseURI) .GET() .build(); - var response = client.send(request, HttpResponse.BodyHandlers.ofString()); - LOGGER.info(response.body()); - var responseBody = new JSONObject(response.body()); + HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); + LOGGER.info("Response status code: " + response.statusCode()); + LOGGER.info("Response body:" + response.body()); + if (response.statusCode() == HttpStatus.OK.value()) { + var responseBody = new JSONObject(response.body()); - var arrayOfInformation = responseBody.getJSONArray("auctionHouseInfo"); - var returnList = new LinkedList(); + var arrayOfInformation = responseBody.getJSONArray("auctionHouseInfo"); + var returnList = new LinkedList(); - for(int i = 0; i < arrayOfInformation.length(); i++) - { - var informationJSON = arrayOfInformation.getJSONObject(i); - var information = new AuctionHouseDiscoveryInformation( - new AuctionHouseDiscoveryInformation.AuctionHouseUri(URI.create(informationJSON.getString("auctionHouseUri"))), - new AuctionHouseDiscoveryInformation.WebSubUri(URI.create(informationJSON.getString("webSubUri"))), - new AuctionHouseDiscoveryInformation.TaskTypes(getTaskTypes(informationJSON.getJSONArray("taskTypes"))), - new AuctionHouseDiscoveryInformation.TimeStamp(Timestamp.valueOf(informationJSON.getString("timeStamp"))), - new AuctionHouseDiscoveryInformation.GroupName(informationJSON.getString("groupName")) - ); - returnList.add(information); - } - - return returnList; + for(int i = 0; i < arrayOfInformation.length(); i++) + { + var informationJSON = arrayOfInformation.getJSONObject(i); + var information = new AuctionHouseDiscoveryInformation( + new AuctionHouseDiscoveryInformation.AuctionHouseUri(URI.create(informationJSON.getString("auctionHouseUri"))), + new AuctionHouseDiscoveryInformation.WebSubUri(URI.create(informationJSON.getString("webSubUri"))), + new AuctionHouseDiscoveryInformation.TaskTypes(getTaskTypes(informationJSON.getJSONArray("taskTypes"))), + new AuctionHouseDiscoveryInformation.TimeStamp(Timestamp.valueOf(informationJSON.getString("timeStamp"))), + new AuctionHouseDiscoveryInformation.GroupName(informationJSON.getString("groupName")) + ); + returnList.add(information); + } + return returnList; + } + return Collections.emptyList(); } catch (IOException e) { e.printStackTrace(); return Collections.emptyList(); diff --git a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/web/AuctionWonEventHttpAdapter.java b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/web/AuctionWonEventHttpAdapter.java index 607c2c7..e89e1e3 100644 --- a/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/web/AuctionWonEventHttpAdapter.java +++ b/tapas-auction-house/src/main/java/ch/unisg/tapas/auctionhouse/adapter/out/web/AuctionWonEventHttpAdapter.java @@ -52,13 +52,18 @@ public class AuctionWonEventHttpAdapter implements AuctionWonEventPort { LOGGER.info(response.body()); JSONObject responseBody = new JSONObject(response.body()); + String inputData = ""; + if (!responseBody.isNull("inputData")) { + inputData = responseBody.getString("inputData"); + } + var task = new Task( new Task.TaskName(responseBody.getString("taskName")), new Task.TaskType(responseBody.getString("taskType")), new Task.OriginalTaskUri(auction.get().getTaskUri().getValue().toString()), new Task.TaskStatus(ch.unisg.tapas.auctionhouse.domain.Task.Status.ASSIGNED), new Task.TaskId(responseBody.getString("taskId")), - new Task.InputData(responseBody.getString("inputData")), + new Task.InputData(inputData), new Task.ServiceProvider("TODO") ); diff --git a/tapas-auction-house/src/main/resources/application.properties b/tapas-auction-house/src/main/resources/application.properties index dade5ce..508f27b 100644 --- a/tapas-auction-house/src/main/resources/application.properties +++ b/tapas-auction-house/src/main/resources/application.properties @@ -7,7 +7,6 @@ websub.hub.publish=https://websub.appspot.com/ group=tapas-group-1 auction.house.uri=https://tapas-auction-house.86-119-35-40.nip.io -# auction.house.uri=http://a888-77-59-152-182.eu.ngrok.io tasks.list.uri=http://localhost:8081 application.environment=development diff --git a/tapas-tasks/src/main/java/ch/unisg/tapastasks/tasks/adapter/out/web/ExternalTaskExecutedWebAdapter.java b/tapas-tasks/src/main/java/ch/unisg/tapastasks/tasks/adapter/out/web/ExternalTaskExecutedWebAdapter.java index 8d28159..b74e89b 100644 --- a/tapas-tasks/src/main/java/ch/unisg/tapastasks/tasks/adapter/out/web/ExternalTaskExecutedWebAdapter.java +++ b/tapas-tasks/src/main/java/ch/unisg/tapastasks/tasks/adapter/out/web/ExternalTaskExecutedWebAdapter.java @@ -43,7 +43,7 @@ public class ExternalTaskExecutedWebAdapter implements ExternalTaskExecutedEvent op2 = new JSONObject() .put("op", "add") .put("path", "/outputData") - .put("value", externalTaskExecutedEvent.getOutputData()); + .put("value", externalTaskExecutedEvent.getOutputData().getValue()); } catch (JSONException e) { logger.log(Level.SEVERE, e.getLocalizedMessage(), e); return; diff --git a/tapas-tasks/src/main/resources/application.properties b/tapas-tasks/src/main/resources/application.properties index 08b86d0..20e7f41 100644 --- a/tapas-tasks/src/main/resources/application.properties +++ b/tapas-tasks/src/main/resources/application.properties @@ -2,7 +2,7 @@ server.port=8081 spring.data.mongodb.uri=mongodb://root:password@localhost:27017/ spring.data.mongodb.database=tapas-tasks # baseuri=http://e021-77-59-152-182.ngrok.io/ -baseuri=https://tapas-tasks.86-119-34-23.nip.io/ +baseuri=https://tapas-tasks.86-119-35-40.nip.io/ roster.uri=http://127.0.0.1:8082