executorbase restructure + improvments
This commit is contained in:
@@ -9,7 +9,6 @@ import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestHeader;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.function.ServerRequest.Headers;
|
||||
|
||||
import ch.unisg.roster.roster.application.port.in.NewTaskCommand;
|
||||
import ch.unisg.roster.roster.application.port.in.NewTaskUseCase;
|
||||
|
@@ -4,7 +4,10 @@ import ch.unisg.roster.roster.domain.ExecutorInfo;
|
||||
import org.apache.logging.log4j.Level;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
@@ -15,11 +18,12 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
@Component
|
||||
@Primary
|
||||
public class GetExecutorsInExecutorPoolWebAdapter {
|
||||
private static final Logger LOGGER = LogManager.getLogger(GetExecutorsInExecutorPoolWebAdapter.class);
|
||||
|
||||
// TODO get from config
|
||||
@Value("${executor.pool.uri}")
|
||||
String server = "http://localhost:8083";
|
||||
|
||||
public List<ExecutorInfo> getExecutorsInExecutorPool(){
|
||||
|
@@ -5,29 +5,22 @@ import java.net.URI;
|
||||
import java.net.http.HttpClient;
|
||||
import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import ch.unisg.common.valueobject.ExecutorURI;
|
||||
import ch.unisg.roster.roster.application.port.out.NewTaskEventPort;
|
||||
import ch.unisg.roster.roster.domain.ExecutorRegistry;
|
||||
import ch.unisg.roster.roster.domain.event.NewTaskEvent;
|
||||
|
||||
@Component
|
||||
@Primary
|
||||
public class PublishNewTaskEventAdapter implements NewTaskEventPort {
|
||||
|
||||
@Value("${executor.robot.uri}")
|
||||
private String server;
|
||||
|
||||
@Value("${executor.computation.uri}")
|
||||
private String server2;
|
||||
|
||||
@Value("${executor.humidity.uri}")
|
||||
private String server3;
|
||||
|
||||
Logger logger = Logger.getLogger(PublishNewTaskEventAdapter.class.getName());
|
||||
|
||||
/**
|
||||
@@ -37,53 +30,26 @@ public class PublishNewTaskEventAdapter implements NewTaskEventPort {
|
||||
@Override
|
||||
public void publishNewTaskEvent(NewTaskEvent event) {
|
||||
|
||||
HttpClient client = HttpClient.newHttpClient();
|
||||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.uri(URI.create(server + "/newtask/" + event.taskType.getValue()))
|
||||
.GET()
|
||||
.build();
|
||||
Set<ExecutorURI> executors = ExecutorRegistry.getInstance().getExecutorsByType(event.taskType.getValue());
|
||||
|
||||
for (ExecutorURI uri : executors) {
|
||||
HttpClient client = HttpClient.newHttpClient();
|
||||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.uri(URI.create(uri.getValue() + "/newtask/" + event.taskType.getValue()))
|
||||
.GET()
|
||||
.build();
|
||||
|
||||
|
||||
try {
|
||||
client.send(request, HttpResponse.BodyHandlers.ofString());
|
||||
} catch (InterruptedException e) {
|
||||
logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
Thread.currentThread().interrupt();
|
||||
} catch (IOException e) {
|
||||
logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
try {
|
||||
client.send(request, HttpResponse.BodyHandlers.ofString());
|
||||
} catch (InterruptedException e) {
|
||||
logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
Thread.currentThread().interrupt();
|
||||
} catch (IOException e) {
|
||||
logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
HttpClient client2 = HttpClient.newHttpClient();
|
||||
HttpRequest request2 = HttpRequest.newBuilder()
|
||||
.uri(URI.create(server2 + "/newtask/" + event.taskType.getValue()))
|
||||
.GET()
|
||||
.build();
|
||||
|
||||
|
||||
try {
|
||||
client2.send(request2, HttpResponse.BodyHandlers.ofString());
|
||||
} catch (InterruptedException e) {
|
||||
logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
Thread.currentThread().interrupt();
|
||||
} catch (IOException e) {
|
||||
logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
HttpClient client3 = HttpClient.newHttpClient();
|
||||
HttpRequest request3 = HttpRequest.newBuilder()
|
||||
.uri(URI.create(server3 + "/newtask/" + event.taskType.getValue()))
|
||||
.GET()
|
||||
.build();
|
||||
|
||||
|
||||
try {
|
||||
client3.send(request3, HttpResponse.BodyHandlers.ofString());
|
||||
} catch (InterruptedException e) {
|
||||
logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
Thread.currentThread().interrupt();
|
||||
} catch (IOException e) {
|
||||
logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -45,7 +45,7 @@ public class PublishTaskAssignedEventAdapter implements TaskAssignedEventPort {
|
||||
HttpClient client = HttpClient.newHttpClient();
|
||||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.uri(URI.create(server + "/tasks/" + event.taskID))
|
||||
.header("Content-Type", "application/task+json")
|
||||
.header("Content-Type", "application/json-patch+json")
|
||||
.method("PATCH", HttpRequest.BodyPublishers.ofString(body))
|
||||
.build();
|
||||
|
||||
@@ -57,27 +57,6 @@ public class PublishTaskAssignedEventAdapter implements TaskAssignedEventPort {
|
||||
logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
|
||||
// String body = new JSONObject()
|
||||
// .put("taskId", event.taskID)
|
||||
// .toString();
|
||||
|
||||
// HttpClient client = HttpClient.newHttpClient();
|
||||
// HttpRequest request = HttpRequest.newBuilder()
|
||||
// .uri(URI.create(server + "/tasks/assignTask"))
|
||||
// .header("Content-Type", "application/task+json")
|
||||
// .POST(HttpRequest.BodyPublishers.ofString(body))
|
||||
// .build();
|
||||
|
||||
|
||||
// try {
|
||||
// client.send(request, HttpResponse.BodyHandlers.ofString());
|
||||
// } catch (InterruptedException e) {
|
||||
// logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
// Thread.currentThread().interrupt();
|
||||
// } catch (IOException e) {
|
||||
// logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -38,10 +38,10 @@ public class PublishTaskCompletedEventAdapter implements TaskCompletedEventPort
|
||||
JSONObject op1 = new JSONObject()
|
||||
.put("op", "replace")
|
||||
.put("path", "/taskStatus")
|
||||
.put("value", event.status);
|
||||
.put("value", "EXECUTED");
|
||||
|
||||
JSONObject op2 = new JSONObject()
|
||||
.put("op", "replace")
|
||||
.put("op", "add")
|
||||
.put("path", "/outputData")
|
||||
.put("value", event.result);
|
||||
|
||||
@@ -50,7 +50,7 @@ public class PublishTaskCompletedEventAdapter implements TaskCompletedEventPort
|
||||
HttpClient client = HttpClient.newHttpClient();
|
||||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.uri(URI.create(server + "/tasks/" + event.taskID))
|
||||
.header("Content-Type", "application/task+json")
|
||||
.header("Content-Type", "application/json-patch+json")
|
||||
.method("PATCH", HttpRequest.BodyPublishers.ofString(body))
|
||||
.build();
|
||||
|
||||
@@ -62,29 +62,6 @@ public class PublishTaskCompletedEventAdapter implements TaskCompletedEventPort
|
||||
logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
// String body = new JSONObject()
|
||||
// .put("taskId", event.taskID)
|
||||
// .put("status", event.status)
|
||||
// .put("outputData", event.result)
|
||||
// .toString();
|
||||
|
||||
// HttpClient client = HttpClient.newHttpClient();
|
||||
// HttpRequest request = HttpRequest.newBuilder()
|
||||
// .uri(URI.create(server + "/tasks/completeTask/"))
|
||||
// .header("Content-Type", "application/task+json")
|
||||
// .POST(HttpRequest.BodyPublishers.ofString(body))
|
||||
// .build();
|
||||
|
||||
|
||||
// try {
|
||||
// client.send(request, HttpResponse.BodyHandlers.ofString());
|
||||
// } catch (InterruptedException e) {
|
||||
// logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
// Thread.currentThread().interrupt();
|
||||
// } catch (IOException e) {
|
||||
// logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -5,8 +5,6 @@ import ch.unisg.common.valueobject.ExecutorURI;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
public class ExecutorInfo {
|
||||
@Getter
|
||||
@Setter
|
||||
|
@@ -4,6 +4,7 @@ import java.util.*;
|
||||
|
||||
import ch.unisg.common.valueobject.ExecutorURI;
|
||||
import ch.unisg.roster.roster.domain.valueobject.ExecutorType;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* Registry that keeps a track of executors internal to the TAPAS application and the types of tasks
|
||||
@@ -98,4 +99,8 @@ public class ExecutorRegistry {
|
||||
this.executors.putAll(executors);
|
||||
}
|
||||
|
||||
public Set<ExecutorURI> getExecutorsByType(String executorType) {
|
||||
return this.executors.get(new ExecutorType(executorType));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,9 +1,8 @@
|
||||
server.port=8082
|
||||
executor.robot.uri=http://127.0.0.1:8084
|
||||
executor.computation.uri=http://127.0.0.1:8085
|
||||
executor.humidity.uri=http://127.0.0.1:8087
|
||||
|
||||
auction.house.uri=http://127.0.0.1:8086
|
||||
task.list.uri=http://127.0.0.1:8081
|
||||
executor.pool.uri=http://localhost:8083
|
||||
# mqtt.broker.uri=tcp://localhost:1883
|
||||
mqtt.broker.uri=tcp://broker.hivemq.com
|
||||
|
||||
|
Reference in New Issue
Block a user