From bf496d8917b5427508b842823f67a1bef5621938 Mon Sep 17 00:00:00 2001 From: ShazaAli Date: Mon, 2 Dec 2024 21:47:50 -0500 Subject: replica 1 and parallel FE --- src/main/java/derms/replica1/ResponderClient.java | 106 ++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 src/main/java/derms/replica1/ResponderClient.java (limited to 'src/main/java/derms/replica1/ResponderClient.java') diff --git a/src/main/java/derms/replica1/ResponderClient.java b/src/main/java/derms/replica1/ResponderClient.java new file mode 100644 index 0000000..c022fd3 --- /dev/null +++ b/src/main/java/derms/replica1/ResponderClient.java @@ -0,0 +1,106 @@ +package derms.replica1; + +import derms.replica1.jaxws.DERMSInterface; +import derms.replica1.jaxws.DERMSServerService; + +import java.net.URL; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.io.FileWriter; +import java.io.IOException; +import java.time.LocalDateTime; +import java.util.Map; + +public class ResponderClient { + + DERMSInterface server; + private String responderID; + + public ResponderClient(String responderID) { + try { + this.responderID = responderID; + HashMap servers = new HashMap() {{ + put("MTL", "http://localhost:8387/ws/derms?wsdl"); + put("QUE", "http://localhost:8081/ws/derms?wsdl"); + put("SHE", "http://localhost:8082/ws/derms?wsdl"); + }}; + URL url = new URL(servers.get(responderID.substring(0, 3))); + DERMSServerService service = new DERMSServerService(url); + server = service.getDERMSServerPort(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void respond() { + try { + String response = server.removeResource("MTL0012", 5); + System.out.println("Response: " + response); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + ResponderClient client = new ResponderClient("Responder1"); + client.respond(); + } + + public String addResource(String resourceID, String resourceName, int duration) { + try { + String response = server.addResource( resourceID, resourceName, duration); + System.out.println(response); + logOperation("addResource", resourceID, resourceName, duration, response); + return response; + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + + public void removeResource(String resourceID, int duration) { + try { + String response = server.removeResource(resourceID, duration); + System.out.println(response); + logOperation("removeResource", resourceID, duration, response); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public List listResourceAvailability(String resourceName) { + try { + List response = server.listResourceAvailability(resourceName); + logOperation("listResourceAvailability", resourceName, response.toString()); + return response; + } catch (Exception e) { + e.printStackTrace(); + } + return Collections.emptyList(); + } + + private void logOperation(String operation, String resourceID, String resourceName, int duration, String response) { + try (FileWriter writer = new FileWriter(responderID + "_log.txt", true)) { + writer.write(LocalDateTime.now() + " - " + operation + " - " + resourceID + " - " + resourceName + " - " + duration + " - " + response + "\n"); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void logOperation(String operation, String resourceID, int duration, String response) { + try (FileWriter writer = new FileWriter(responderID + "_log.txt", true)) { + writer.write(LocalDateTime.now() + " - " + operation + " - " + resourceID + " - " + duration + " - " + response + "\n"); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void logOperation(String operation, String resourceName, String response) { + try (FileWriter writer = new FileWriter(responderID + "_log.txt", true)) { + writer.write(LocalDateTime.now() + " - " + operation + " - " + resourceName + " - " + response + "\n"); + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file -- cgit v1.2.3