Merge pull request #55 from SCS-ASSE-FS21-Group1/#38_Use_java.net.URI_for_all_URIs_in_the_ExecutorPool
#38 use java.net.uri for all ur is in the executor pool
This commit is contained in:
commit
59795d0234
|
@ -0,0 +1,51 @@
|
||||||
|
package ch.unisg.executorpool.adapter.common.formats;
|
||||||
|
|
||||||
|
import ch.unisg.executorpool.domain.ExecutorClass;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import org.json.JSONArray;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ExecutorJsonRepresentation {
|
||||||
|
public static final String EXECUTOR_MEDIA_TYPE = "application/json";
|
||||||
|
|
||||||
|
@Getter @Setter
|
||||||
|
private String executorUri;
|
||||||
|
|
||||||
|
@Getter @Setter
|
||||||
|
private String executorTaskType;
|
||||||
|
|
||||||
|
// TODO Check if this need Setters. Also applies to AuctionJsonRepresentation
|
||||||
|
public ExecutorJsonRepresentation(String executorUri, String executorTaskType){
|
||||||
|
this.executorUri = executorUri;
|
||||||
|
this.executorTaskType = executorTaskType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String serialize(ExecutorClass executorClass) {
|
||||||
|
JSONObject payload = new JSONObject();
|
||||||
|
|
||||||
|
payload.put("executorUri", executorClass.getExecutorUri().getValue());
|
||||||
|
payload.put("executorTaskType", executorClass.getExecutorTaskType().getValue());
|
||||||
|
|
||||||
|
return payload.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String serialize(List<ExecutorClass> listOfExecutors) {
|
||||||
|
JSONArray jsonArray = new JSONArray();
|
||||||
|
|
||||||
|
for (ExecutorClass executor: listOfExecutors) {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
|
||||||
|
jsonObject.put("executorUri", executor.getExecutorUri().getValue());
|
||||||
|
jsonObject.put("executorTaskType", executor.getExecutorTaskType().getValue());
|
||||||
|
|
||||||
|
jsonArray.put(jsonObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
return jsonArray.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ExecutorJsonRepresentation() { }
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package ch.unisg.executorpool.adapter.in.web;
|
package ch.unisg.executorpool.adapter.in.web;
|
||||||
|
|
||||||
|
import ch.unisg.executorpool.adapter.common.formats.ExecutorJsonRepresentation;
|
||||||
import ch.unisg.executorpool.application.port.in.AddNewExecutorToExecutorPoolUseCase;
|
import ch.unisg.executorpool.application.port.in.AddNewExecutorToExecutorPoolUseCase;
|
||||||
import ch.unisg.executorpool.application.port.in.AddNewExecutorToExecutorPoolCommand;
|
import ch.unisg.executorpool.application.port.in.AddNewExecutorToExecutorPoolCommand;
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass;
|
import ch.unisg.executorpool.domain.ExecutorClass;
|
||||||
|
@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.server.ResponseStatusException;
|
import org.springframework.web.server.ResponseStatusException;
|
||||||
import javax.validation.ConstraintViolationException;
|
import javax.validation.ConstraintViolationException;
|
||||||
|
import java.net.URI;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
public class AddNewExecutorToExecutorPoolWebController {
|
public class AddNewExecutorToExecutorPoolWebController {
|
||||||
|
@ -20,19 +22,20 @@ public class AddNewExecutorToExecutorPoolWebController {
|
||||||
this.addNewExecutorToExecutorPoolUseCase = addNewExecutorToExecutorPoolUseCase;
|
this.addNewExecutorToExecutorPoolUseCase = addNewExecutorToExecutorPoolUseCase;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(path = "/executor-pool/AddExecutor", consumes = {ExecutorMediaType.EXECUTOR_MEDIA_TYPE})
|
@PostMapping(path = "/executor-pool/AddExecutor", consumes = {ExecutorJsonRepresentation.EXECUTOR_MEDIA_TYPE})
|
||||||
public ResponseEntity<String> addNewExecutorToExecutorPool(@RequestBody ExecutorClass executorClass){
|
public ResponseEntity<String> addNewExecutorToExecutorPool(@RequestBody ExecutorJsonRepresentation payload){
|
||||||
try{
|
try{
|
||||||
AddNewExecutorToExecutorPoolCommand command = new AddNewExecutorToExecutorPoolCommand(
|
AddNewExecutorToExecutorPoolCommand command = new AddNewExecutorToExecutorPoolCommand(
|
||||||
executorClass.getExecutorIp(), executorClass.getExecutorPort(), executorClass.getExecutorTaskType()
|
new ExecutorClass.ExecutorUri(URI.create(payload.getExecutorUri())),
|
||||||
|
new ExecutorClass.ExecutorTaskType(payload.getExecutorTaskType())
|
||||||
);
|
);
|
||||||
|
|
||||||
ExecutorClass newExecutor = addNewExecutorToExecutorPoolUseCase.addNewExecutorToExecutorPool(command);
|
ExecutorClass newExecutor = addNewExecutorToExecutorPoolUseCase.addNewExecutorToExecutorPool(command);
|
||||||
|
|
||||||
HttpHeaders responseHeaders = new HttpHeaders();
|
HttpHeaders responseHeaders = new HttpHeaders();
|
||||||
responseHeaders.add(HttpHeaders.CONTENT_TYPE, ExecutorMediaType.EXECUTOR_MEDIA_TYPE);
|
responseHeaders.add(HttpHeaders.CONTENT_TYPE, ExecutorJsonRepresentation.EXECUTOR_MEDIA_TYPE);
|
||||||
|
|
||||||
return new ResponseEntity<>(ExecutorMediaType.serialize(newExecutor), responseHeaders, HttpStatus.CREATED);
|
return new ResponseEntity<>(ExecutorJsonRepresentation.serialize(newExecutor), responseHeaders, HttpStatus.CREATED);
|
||||||
} catch (ConstraintViolationException e){
|
} catch (ConstraintViolationException e){
|
||||||
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, e.getMessage());
|
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
package ch.unisg.executorpool.adapter.in.web;
|
|
||||||
|
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass;
|
|
||||||
import org.json.JSONArray;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
final public class ExecutorMediaType {
|
|
||||||
public static final String EXECUTOR_MEDIA_TYPE = "application/json";
|
|
||||||
|
|
||||||
public static String serialize(ExecutorClass executorClass) {
|
|
||||||
JSONObject payload = new JSONObject();
|
|
||||||
|
|
||||||
payload.put("executorIp", executorClass.getExecutorIp().getValue());
|
|
||||||
payload.put("executorPort", executorClass.getExecutorPort().getValue());
|
|
||||||
payload.put("executorTaskType", executorClass.getExecutorTaskType().getValue());
|
|
||||||
|
|
||||||
return payload.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String serialize(List<ExecutorClass> listOfExecutors) {
|
|
||||||
String serializedList = "[ \n";
|
|
||||||
|
|
||||||
for (ExecutorClass executor: listOfExecutors) {
|
|
||||||
serializedList += serialize(executor) + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
// return serializedList + "\n ]";
|
|
||||||
JSONArray jsonArray = new JSONArray();
|
|
||||||
JSONObject jsonObject = new JSONObject();
|
|
||||||
jsonObject.put("executorIp", "localhost");
|
|
||||||
jsonArray.put(jsonObject);
|
|
||||||
return jsonArray.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private ExecutorMediaType() { }
|
|
||||||
}
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ch.unisg.executorpool.adapter.in.web;
|
package ch.unisg.executorpool.adapter.in.web;
|
||||||
|
|
||||||
|
import ch.unisg.executorpool.adapter.common.formats.ExecutorJsonRepresentation;
|
||||||
import ch.unisg.executorpool.application.port.in.GetAllExecutorsInExecutorPoolByTypeQuery;
|
import ch.unisg.executorpool.application.port.in.GetAllExecutorsInExecutorPoolByTypeQuery;
|
||||||
import ch.unisg.executorpool.application.port.in.GetAllExecutorsInExecutorPoolByTypeUseCase;
|
import ch.unisg.executorpool.application.port.in.GetAllExecutorsInExecutorPoolByTypeUseCase;
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass;
|
import ch.unisg.executorpool.domain.ExecutorClass;
|
||||||
|
@ -28,8 +29,8 @@ public class GetAllExecutorsInExecutorPoolByTypeWebController {
|
||||||
|
|
||||||
// Add the content type as a response header
|
// Add the content type as a response header
|
||||||
HttpHeaders responseHeaders = new HttpHeaders();
|
HttpHeaders responseHeaders = new HttpHeaders();
|
||||||
responseHeaders.add(HttpHeaders.CONTENT_TYPE, ExecutorMediaType.EXECUTOR_MEDIA_TYPE);
|
responseHeaders.add(HttpHeaders.CONTENT_TYPE, ExecutorJsonRepresentation.EXECUTOR_MEDIA_TYPE);
|
||||||
|
|
||||||
return new ResponseEntity<>(ExecutorMediaType.serialize(matchedExecutors), responseHeaders, HttpStatus.OK);
|
return new ResponseEntity<>(ExecutorJsonRepresentation.serialize(matchedExecutors), responseHeaders, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ch.unisg.executorpool.adapter.in.web;
|
package ch.unisg.executorpool.adapter.in.web;
|
||||||
|
|
||||||
|
import ch.unisg.executorpool.adapter.common.formats.ExecutorJsonRepresentation;
|
||||||
import ch.unisg.executorpool.application.port.in.GetAllExecutorsInExecutorPoolUseCase;
|
import ch.unisg.executorpool.application.port.in.GetAllExecutorsInExecutorPoolUseCase;
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass;
|
import ch.unisg.executorpool.domain.ExecutorClass;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
|
@ -24,8 +25,8 @@ public class GetAllExecutorsInExecutorPoolWebController {
|
||||||
|
|
||||||
// Add the content type as a response header
|
// Add the content type as a response header
|
||||||
HttpHeaders responseHeaders = new HttpHeaders();
|
HttpHeaders responseHeaders = new HttpHeaders();
|
||||||
responseHeaders.add(HttpHeaders.CONTENT_TYPE, ExecutorMediaType.EXECUTOR_MEDIA_TYPE);
|
responseHeaders.add(HttpHeaders.CONTENT_TYPE, ExecutorJsonRepresentation.EXECUTOR_MEDIA_TYPE);
|
||||||
|
|
||||||
return new ResponseEntity<>(ExecutorMediaType.serialize(executorClassList), responseHeaders, HttpStatus.OK);
|
return new ResponseEntity<>(ExecutorJsonRepresentation.serialize(executorClassList), responseHeaders, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ch.unisg.executorpool.adapter.in.web;
|
package ch.unisg.executorpool.adapter.in.web;
|
||||||
|
|
||||||
|
import ch.unisg.executorpool.adapter.common.formats.ExecutorJsonRepresentation;
|
||||||
import ch.unisg.executorpool.application.port.in.RemoveExecutorFromExecutorPoolCommand;
|
import ch.unisg.executorpool.application.port.in.RemoveExecutorFromExecutorPoolCommand;
|
||||||
import ch.unisg.executorpool.application.port.in.RemoveExecutorFromExecutorPoolUseCase;
|
import ch.unisg.executorpool.application.port.in.RemoveExecutorFromExecutorPoolUseCase;
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass;
|
import ch.unisg.executorpool.domain.ExecutorClass;
|
||||||
|
@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.server.ResponseStatusException;
|
import org.springframework.web.server.ResponseStatusException;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
|
@ -21,9 +23,11 @@ public class RemoveExecutorFromExecutorPoolWebController {
|
||||||
this.removeExecutorFromExecutorPoolUseCase = removeExecutorFromExecutorPoolUseCase;
|
this.removeExecutorFromExecutorPoolUseCase = removeExecutorFromExecutorPoolUseCase;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(path = "/executor-pool/RemoveExecutor", consumes = {ExecutorMediaType.EXECUTOR_MEDIA_TYPE})
|
@PostMapping(path = "/executor-pool/RemoveExecutor", consumes = {ExecutorJsonRepresentation.EXECUTOR_MEDIA_TYPE})
|
||||||
public ResponseEntity<String> removeExecutorFromExecutorPool(@RequestBody ExecutorClass executorClass){
|
public ResponseEntity<String> removeExecutorFromExecutorPool(@RequestBody ExecutorJsonRepresentation executorJsonRepresentation){
|
||||||
RemoveExecutorFromExecutorPoolCommand command = new RemoveExecutorFromExecutorPoolCommand(executorClass.getExecutorIp(), executorClass.getExecutorPort());
|
RemoveExecutorFromExecutorPoolCommand command = new RemoveExecutorFromExecutorPoolCommand(
|
||||||
|
new ExecutorClass.ExecutorUri(URI.create(executorJsonRepresentation.getExecutorUri()))
|
||||||
|
);
|
||||||
Optional<ExecutorClass> removedExecutor = removeExecutorFromExecutorPoolUseCase.removeExecutorFromExecutorPool(command);
|
Optional<ExecutorClass> removedExecutor = removeExecutorFromExecutorPoolUseCase.removeExecutorFromExecutorPool(command);
|
||||||
|
|
||||||
if(removedExecutor.isEmpty()){
|
if(removedExecutor.isEmpty()){
|
||||||
|
@ -31,9 +35,9 @@ public class RemoveExecutorFromExecutorPoolWebController {
|
||||||
}
|
}
|
||||||
|
|
||||||
HttpHeaders responseHeaders = new HttpHeaders();
|
HttpHeaders responseHeaders = new HttpHeaders();
|
||||||
responseHeaders.add(HttpHeaders.CONTENT_TYPE, ExecutorMediaType.EXECUTOR_MEDIA_TYPE);
|
responseHeaders.add(HttpHeaders.CONTENT_TYPE, ExecutorJsonRepresentation.EXECUTOR_MEDIA_TYPE);
|
||||||
|
|
||||||
return new ResponseEntity<>(ExecutorMediaType.serialize(removedExecutor.get()), responseHeaders,
|
return new ResponseEntity<>(ExecutorJsonRepresentation.serialize(removedExecutor.get()), responseHeaders,
|
||||||
HttpStatus.OK);
|
HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,7 @@ package ch.unisg.executorpool.application.port.in;
|
||||||
|
|
||||||
import ch.unisg.common.SelfValidating;
|
import ch.unisg.common.SelfValidating;
|
||||||
import ch.unisg.executorpool.domain.ExecutorPool;
|
import ch.unisg.executorpool.domain.ExecutorPool;
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass.ExecutorIp;
|
import ch.unisg.executorpool.domain.ExecutorClass.ExecutorUri;
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass.ExecutorPort;
|
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass.ExecutorTaskType;
|
import ch.unisg.executorpool.domain.ExecutorClass.ExecutorTaskType;
|
||||||
import lombok.Value;
|
import lombok.Value;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
@ -11,17 +10,13 @@ import javax.validation.constraints.NotNull;
|
||||||
@Value
|
@Value
|
||||||
public class AddNewExecutorToExecutorPoolCommand extends SelfValidating<AddNewExecutorToExecutorPoolCommand> {
|
public class AddNewExecutorToExecutorPoolCommand extends SelfValidating<AddNewExecutorToExecutorPoolCommand> {
|
||||||
@NotNull
|
@NotNull
|
||||||
private final ExecutorIp executorIp;
|
private final ExecutorUri executorUri;
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private final ExecutorPort executorPort;
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private final ExecutorTaskType executorTaskType;
|
private final ExecutorTaskType executorTaskType;
|
||||||
|
|
||||||
public AddNewExecutorToExecutorPoolCommand(ExecutorIp executorIp, ExecutorPort executorPort, ExecutorTaskType executorTaskType){
|
public AddNewExecutorToExecutorPoolCommand(ExecutorUri executorUri, ExecutorTaskType executorTaskType){
|
||||||
this.executorIp = executorIp;
|
this.executorUri = executorUri;
|
||||||
this.executorPort = executorPort;
|
|
||||||
this.executorTaskType = executorTaskType;
|
this.executorTaskType = executorTaskType;
|
||||||
this.validateSelf();
|
this.validateSelf();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
package ch.unisg.executorpool.application.port.in;
|
package ch.unisg.executorpool.application.port.in;
|
||||||
|
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass;
|
|
||||||
import ch.unisg.common.SelfValidating;
|
import ch.unisg.common.SelfValidating;
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass.ExecutorIp;
|
import ch.unisg.executorpool.domain.ExecutorClass.ExecutorUri;
|
||||||
import ch.unisg.executorpool.domain.ExecutorClass.ExecutorPort;
|
|
||||||
import lombok.Value;
|
import lombok.Value;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
@ -11,14 +9,10 @@ import javax.validation.constraints.NotNull;
|
||||||
@Value
|
@Value
|
||||||
public class RemoveExecutorFromExecutorPoolCommand extends SelfValidating<RemoveExecutorFromExecutorPoolCommand> {
|
public class RemoveExecutorFromExecutorPoolCommand extends SelfValidating<RemoveExecutorFromExecutorPoolCommand> {
|
||||||
@NotNull
|
@NotNull
|
||||||
private final ExecutorIp executorIp;
|
private final ExecutorUri executorUri;
|
||||||
|
|
||||||
@NotNull
|
public RemoveExecutorFromExecutorPoolCommand(ExecutorUri executorUri){
|
||||||
private final ExecutorPort executorPort;
|
this.executorUri = executorUri;
|
||||||
|
|
||||||
public RemoveExecutorFromExecutorPoolCommand(ExecutorIp executorIp, ExecutorPort executorPort){
|
|
||||||
this.executorIp = executorIp;
|
|
||||||
this.executorPort = executorPort;
|
|
||||||
this.validateSelf();
|
this.validateSelf();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,6 @@ public class AddNewExecutorToExecutorPoolService implements AddNewExecutorToExec
|
||||||
public ExecutorClass addNewExecutorToExecutorPool(AddNewExecutorToExecutorPoolCommand command){
|
public ExecutorClass addNewExecutorToExecutorPool(AddNewExecutorToExecutorPoolCommand command){
|
||||||
ExecutorPool executorPool = ExecutorPool.getExecutorPool();
|
ExecutorPool executorPool = ExecutorPool.getExecutorPool();
|
||||||
|
|
||||||
return executorPool.addNewExecutor(command.getExecutorIp(), command.getExecutorPort(), command.getExecutorTaskType());
|
return executorPool.addNewExecutor(command.getExecutorUri(), command.getExecutorTaskType());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,6 @@ public class RemoveExecutorFromExecutorPoolService implements RemoveExecutorFrom
|
||||||
@Override
|
@Override
|
||||||
public Optional<ExecutorClass> removeExecutorFromExecutorPool(RemoveExecutorFromExecutorPoolCommand command){
|
public Optional<ExecutorClass> removeExecutorFromExecutorPool(RemoveExecutorFromExecutorPoolCommand command){
|
||||||
ExecutorPool executorPool = ExecutorPool.getExecutorPool();
|
ExecutorPool executorPool = ExecutorPool.getExecutorPool();
|
||||||
return executorPool.removeExecutorByIpAndPort(command.getExecutorIp(), command.getExecutorPort());
|
return executorPool.removeExecutorByIpAndPort(command.getExecutorUri());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,36 +3,29 @@ package ch.unisg.executorpool.domain;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Value;
|
import lombok.Value;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
|
||||||
public class ExecutorClass {
|
public class ExecutorClass {
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final ExecutorIp executorIp;
|
private final ExecutorUri executorUri;
|
||||||
|
|
||||||
@Getter
|
|
||||||
private final ExecutorPort executorPort;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final ExecutorTaskType executorTaskType;
|
private final ExecutorTaskType executorTaskType;
|
||||||
|
|
||||||
public ExecutorClass(ExecutorIp executorIp, ExecutorPort executorPort, ExecutorTaskType executorTaskType){
|
public ExecutorClass(ExecutorUri executorUri, ExecutorTaskType executorTaskType){
|
||||||
this.executorIp = executorIp;
|
this.executorUri = executorUri;
|
||||||
this.executorPort = executorPort;
|
|
||||||
this.executorTaskType = executorTaskType;
|
this.executorTaskType = executorTaskType;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static ExecutorClass createExecutorClass(ExecutorIp executorIp, ExecutorPort executorPort, ExecutorTaskType executorTaskType){
|
protected static ExecutorClass createExecutorClass(ExecutorUri executorUri, ExecutorTaskType executorTaskType){
|
||||||
System.out.println("New Task: " + executorIp.getValue() + " " + executorPort.getValue() + " " + executorTaskType.getValue());
|
System.out.println("New Executor: " + executorUri.value.toString() + " " + executorTaskType.getValue());
|
||||||
return new ExecutorClass(executorIp, executorPort, executorTaskType);
|
return new ExecutorClass(executorUri, executorTaskType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Value
|
@Value
|
||||||
public static class ExecutorIp {
|
public static class ExecutorUri {
|
||||||
private String value;
|
private URI value;
|
||||||
}
|
|
||||||
|
|
||||||
@Value
|
|
||||||
public static class ExecutorPort {
|
|
||||||
private String value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Value
|
@Value
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package ch.unisg.executorpool.domain;
|
package ch.unisg.executorpool.domain;
|
||||||
|
|
||||||
|
import ch.unisg.executorpool.domain.ExecutorClass.ExecutorUri;
|
||||||
|
import ch.unisg.executorpool.domain.ExecutorClass.ExecutorTaskType;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Value;
|
import lombok.Value;
|
||||||
|
|
||||||
|
@ -20,19 +23,17 @@ public class ExecutorPool {
|
||||||
|
|
||||||
public static ExecutorPool getExecutorPool() { return executorPool; }
|
public static ExecutorPool getExecutorPool() { return executorPool; }
|
||||||
|
|
||||||
public ExecutorClass addNewExecutor(ExecutorClass.ExecutorIp executorIp, ExecutorClass.ExecutorPort executorPort, ExecutorClass.ExecutorTaskType executorTaskType){
|
public ExecutorClass addNewExecutor(ExecutorUri executorUri, ExecutorTaskType executorTaskType){
|
||||||
ExecutorClass newExecutor = ExecutorClass.createExecutorClass(executorIp, executorPort, executorTaskType);
|
ExecutorClass newExecutor = ExecutorClass.createExecutorClass(executorUri, executorTaskType);
|
||||||
listOfExecutors.value.add(newExecutor);
|
listOfExecutors.value.add(newExecutor);
|
||||||
System.out.println("Number of executors: " + listOfExecutors.value.size());
|
System.out.println("Number of executors: " + listOfExecutors.value.size());
|
||||||
return newExecutor;
|
return newExecutor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<ExecutorClass> getExecutorByIpAndPort(ExecutorClass.ExecutorIp executorIp, ExecutorClass.ExecutorPort executorPort){
|
public Optional<ExecutorClass> getExecutorByUri(ExecutorUri executorUri){
|
||||||
|
|
||||||
for (ExecutorClass executor : listOfExecutors.value ) {
|
for (ExecutorClass executor : listOfExecutors.value ) {
|
||||||
// TODO can this be simplified by overwriting equals()?
|
if(executor.getExecutorUri().getValue().equals(executorUri)){
|
||||||
if(executor.getExecutorIp().getValue().equalsIgnoreCase(executorIp.getValue()) &&
|
|
||||||
executor.getExecutorPort().getValue().equalsIgnoreCase(executorPort.getValue())){
|
|
||||||
return Optional.of(executor);
|
return Optional.of(executor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,11 +55,10 @@ public class ExecutorPool {
|
||||||
return matchedExecutors;
|
return matchedExecutors;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<ExecutorClass> removeExecutorByIpAndPort(ExecutorClass.ExecutorIp executorIp, ExecutorClass.ExecutorPort executorPort){
|
public Optional<ExecutorClass> removeExecutorByIpAndPort(ExecutorUri executorUri){
|
||||||
for (ExecutorClass executor : listOfExecutors.value ) {
|
for (ExecutorClass executor : listOfExecutors.value ) {
|
||||||
// TODO can this be simplified by overwriting equals()?
|
// TODO can this be simplified by overwriting equals()?
|
||||||
if(executor.getExecutorIp().getValue().equalsIgnoreCase(executorIp.getValue()) &&
|
if(executor.getExecutorUri().getValue().equals(executorUri.getValue())){
|
||||||
executor.getExecutorPort().getValue().equalsIgnoreCase(executorPort.getValue())){
|
|
||||||
listOfExecutors.value.remove(executor);
|
listOfExecutors.value.remove(executor);
|
||||||
return Optional.of(executor);
|
return Optional.of(executor);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user