summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/derms/client')
-rw-r--r--src/main/java/derms/client/CoordinatorClient.java112
-rw-r--r--src/main/java/derms/client/CoordinatorClientCLI.java119
-rw-r--r--src/main/java/derms/client/ResponderClient.java100
-rw-r--r--src/main/java/derms/client/ResponderClientCLI.java104
4 files changed, 250 insertions, 185 deletions
diff --git a/src/main/java/derms/client/CoordinatorClient.java b/src/main/java/derms/client/CoordinatorClient.java
index 570d76b..40d8a94 100644
--- a/src/main/java/derms/client/CoordinatorClient.java
+++ b/src/main/java/derms/client/CoordinatorClient.java
@@ -4,116 +4,28 @@ import derms.frontend.DERMSInterface;
import java.net.MalformedURLException;
-public class CoordinatorClient extends CLI {
- public static final String usage = "Usage: java derms.client.CoordinatorClient <coordinator ID> <FE host>";
-
- private final String coordinatorID;
+public class CoordinatorClient {
private final DERMSInterface server;
+ private final String coordinatorID;
- private CoordinatorClient(String coordinatorID, String FEhost) throws MalformedURLException {
- this.coordinatorID = coordinatorID;
+ public CoordinatorClient(String coordinatorID, String FEhost) throws MalformedURLException {
this.server = Client.connectToServer(FEhost);
-
- commands.put("request", new Request());
- cmdDescriptions.add(new Description(
- "request <resource ID> <duration>",
- "Borrow a resource."));
-
- commands.put("find", new Find());
- cmdDescriptions.add(new Description(
- "find <resource name>",
- "List borrowed resources."));
-
- commands.put("return", new Return());
- cmdDescriptions.add(new Description(
- "return <resource ID>",
- "Return a borrowed resource."));
-
- commands.put("swap", new Swap());
- cmdDescriptions.add(new Description(
- "swap <old resource ID> <old resource type> <new resource ID> <new resource type>",
- "Return the old resource and borrow the new one."));
- }
-
- public static void main(String[] args) {
- if (args.length < 2) {
- System.err.println(usage);
- System.exit(1);
- }
-
- String coordinatorID = args[0];
- String FEhost = args[1];
-
- try {
- (new CoordinatorClient(coordinatorID, FEhost)).run();
- } catch (MalformedURLException e) {
- e.printStackTrace();
- }
+ this.coordinatorID = coordinatorID;
}
- private class Request implements Command {
- @Override
- public void exec(String[] args) {
- if (args.length < 2)
- System.out.println("invalid arguments for 'request'");
- else
- request(args[0], args[1]);
- }
-
- private void request(String resourceID, String durationStr) {
- try {
- int duration = Integer.parseInt(durationStr);
- if (duration < 0)
- throw new NumberFormatException("duration less than 0");
- String response = server.requestResource(coordinatorID, resourceID, duration);
- System.out.println(response);
- } catch (NumberFormatException e) {
- System.out.println("invalid duration: " + e.getMessage());
- }
- }
+ public String requestResource(String resourceID, int duration) {
+ return server.requestResource(coordinatorID, resourceID, duration);
}
- private class Find implements Command {
- @Override
- public void exec(String[] args) {
- if (args.length < 1)
- System.out.println("invalid arguments for 'find'");
- else find(args[0]);
- }
-
- private void find(String resourceID) {
- String response = server.findResource(coordinatorID, resourceID);
- System.out.println(response);
- }
+ public String findResource(String resourceName) {
+ return server.findResource(coordinatorID, resourceName);
}
- private class Return implements Command {
- @Override
- public void exec(String[] args) {
- if (args.length < 1)
- System.out.println("invalid arguments for 'return'");
- else
- returnResource(args[0]);
- }
-
- private void returnResource(String resourceID) {
- String response = server.returnResource(coordinatorID, resourceID);
- System.out.println(response);
- }
+ public String returnResource(String resourceID) {
+ return server.returnResource(coordinatorID, resourceID);
}
- private class Swap implements Command {
- @Override
- public void exec(String[] args) {
- if (args.length < 4)
- System.out.println("invalid arguments for 'swap'");
- else
- swap(args[0], args[1], args[2], args[3]);
- }
-
- private void swap(String oldResourceID, String oldResourceType, String newResourceID, String newResourceType) {
- String response = server.swapResource(coordinatorID, oldResourceID, oldResourceType, newResourceID, newResourceType);
- System.out.println(response);
- }
+ public String swapResource(String oldResourceID, String oldResourceType, String newResourceID, String newResourceType) {
+ return server.swapResource(coordinatorID, oldResourceID, oldResourceType, newResourceID, newResourceType);
}
}
diff --git a/src/main/java/derms/client/CoordinatorClientCLI.java b/src/main/java/derms/client/CoordinatorClientCLI.java
new file mode 100644
index 0000000..bddc6e6
--- /dev/null
+++ b/src/main/java/derms/client/CoordinatorClientCLI.java
@@ -0,0 +1,119 @@
+package derms.client;
+
+import derms.frontend.DERMSInterface;
+
+import java.net.MalformedURLException;
+
+public class CoordinatorClientCLI extends CLI {
+ public static final String usage = "Usage: java derms.client.CoordinatorClient <coordinator ID> <FE host>";
+
+ private final String coordinatorID;
+ private final DERMSInterface server;
+
+ private CoordinatorClientCLI(String coordinatorID, String FEhost) throws MalformedURLException {
+ this.coordinatorID = coordinatorID;
+ this.server = Client.connectToServer(FEhost);
+
+ commands.put("request", new Request());
+ cmdDescriptions.add(new CLI.Description(
+ "request <resource ID> <duration>",
+ "Borrow a resource."));
+
+ commands.put("find", new Find());
+ cmdDescriptions.add(new CLI.Description(
+ "find <resource name>",
+ "List borrowed resources."));
+
+ commands.put("return", new Return());
+ cmdDescriptions.add(new CLI.Description(
+ "return <resource ID>",
+ "Return a borrowed resource."));
+
+ commands.put("swap", new Swap());
+ cmdDescriptions.add(new CLI.Description(
+ "swap <old resource ID> <old resource type> <new resource ID> <new resource type>",
+ "Return the old resource and borrow the new one."));
+ }
+
+ public static void main(String[] args) {
+ if (args.length < 2) {
+ System.err.println(usage);
+ System.exit(1);
+ }
+
+ String coordinatorID = args[0];
+ String FEhost = args[1];
+
+ try {
+ (new CoordinatorClientCLI(coordinatorID, FEhost)).run();
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private class Request implements CLI.Command {
+ @Override
+ public void exec(String[] args) {
+ if (args.length < 2)
+ System.out.println("invalid arguments for 'request'");
+ else
+ request(args[0], args[1]);
+ }
+
+ private void request(String resourceID, String durationStr) {
+ try {
+ int duration = Integer.parseInt(durationStr);
+ if (duration < 0)
+ throw new NumberFormatException("duration less than 0");
+ String response = server.requestResource(coordinatorID, resourceID, duration);
+ System.out.println(response);
+ } catch (NumberFormatException e) {
+ System.out.println("invalid duration: " + e.getMessage());
+ }
+ }
+ }
+
+ private class Find implements CLI.Command {
+ @Override
+ public void exec(String[] args) {
+ if (args.length < 1)
+ System.out.println("invalid arguments for 'find'");
+ else find(args[0]);
+ }
+
+ private void find(String resourceID) {
+ String response = server.findResource(coordinatorID, resourceID);
+ System.out.println(response);
+ }
+ }
+
+ private class Return implements CLI.Command {
+ @Override
+ public void exec(String[] args) {
+ if (args.length < 1)
+ System.out.println("invalid arguments for 'return'");
+ else
+ returnResource(args[0]);
+ }
+
+ private void returnResource(String resourceID) {
+ String response = server.returnResource(coordinatorID, resourceID);
+ System.out.println(response);
+ }
+ }
+
+ private class Swap implements CLI.Command {
+ @Override
+ public void exec(String[] args) {
+ if (args.length < 4)
+ System.out.println("invalid arguments for 'swap'");
+ else
+ swap(args[0], args[1], args[2], args[3]);
+ }
+
+ private void swap(String oldResourceID, String oldResourceType, String newResourceID, String newResourceType) {
+ String response = server.swapResource(coordinatorID, oldResourceID, oldResourceType, newResourceID, newResourceType);
+ System.out.println(response);
+ }
+ }
+}
diff --git a/src/main/java/derms/client/ResponderClient.java b/src/main/java/derms/client/ResponderClient.java
index 23361d7..6834c76 100644
--- a/src/main/java/derms/client/ResponderClient.java
+++ b/src/main/java/derms/client/ResponderClient.java
@@ -1,103 +1,33 @@
package derms.client;
import derms.frontend.DERMSInterface;
+import derms.util.TestLogger;
import java.net.MalformedURLException;
+import java.util.Objects;
-public class ResponderClient extends CLI {
- public static final String usage = "Usage: java derms.client.ResponderClient <FE host>";
-
+public class ResponderClient {
private final DERMSInterface server;
- private ResponderClient(String FEhost) throws MalformedURLException {
+ public ResponderClient(String FEhost) throws MalformedURLException {
server = Client.connectToServer(FEhost);
-
- commands.put("add", new Add());
- cmdDescriptions.add(new Description(
- "add <resource ID> <resource type> <duration>",
- "Add ad resource to the server"));
-
- commands.put("remove", new Remove());
- cmdDescriptions.add(new Description(
- "remove <resource ID> <duration>",
- "Decrease the duration of a resource. If duration is negative, the resource is removed entirely."));
-
- commands.put("list", new List());
- cmdDescriptions.add(new Description(
- "list <resource name>",
- "List available resources"));
- }
-
- public static void main(String[] args) {
- if (args.length < 1) {
- System.err.println(usage);
- System.exit(1);
- }
-
- String FEhost = args[0];
-
- try {
- (new ResponderClient(FEhost)).run();
- } catch (MalformedURLException e) {
- e.printStackTrace();
- }
}
- private class Add implements Command {
- @Override
- public void exec(String[] args) {
- if (args.length < 3)
- System.out.println("invalid arguments for 'add'");
- else
- add(args[0], args[1], args[2]);
- }
-
- private void add(String resourceID, String resourceName, String durationStr) {
- try {
- int duration = Integer.parseInt(durationStr);
- if (duration < 0) {
- throw new NumberFormatException("duration less than 0");
- }
- String response = server.addResource(resourceID, resourceName, duration);
- System.out.println(response);
- } catch (NumberFormatException e) {
- System.out.println("invalid duration: " + durationStr);
- }
+ public String addResource(String resourceID, String resourceName, int duration) {
+ String res = server.addResource(resourceID, resourceName, duration);
+ if (res.contains("Fail")) {
+ TestLogger.log("[FAILED: " + res + "]");
+ } else {
+ TestLogger.log("[SUCCESS: " + res + "]");
}
+ return res;
}
- private class Remove implements Command {
- @Override
- public void exec(String[] args) {
- if (args.length < 2)
- System.out.println("invalid arguments for 'remove'");
- else
- remove(args[0], args[1]);
- }
-
- private void remove(String resourceID, String durationStr) {
- try {
- int duration = Integer.parseInt(durationStr);
- String response = server.removeResource(resourceID, duration);
- System.out.println(response);
- } catch (NumberFormatException e) {
- System.out.println("invalid duration: " + durationStr);
- }
- }
+ public String removeResource(String resourceID, int duration) {
+ return server.removeResource(resourceID, duration);
}
- private class List implements Command {
- @Override
- public void exec(String[] args) {
- if (args.length < 1)
- System.out.println("invalid arguments for 'list'");
- else
- list(args[0]);
- }
-
- private void list(String resourceName) {
- String response = server.listResourceAvailability(resourceName);
- System.out.println(response);
- }
+ public String listResourceAvailability(String resourceName) {
+ return server.listResourceAvailability(resourceName);
}
}
diff --git a/src/main/java/derms/client/ResponderClientCLI.java b/src/main/java/derms/client/ResponderClientCLI.java
new file mode 100644
index 0000000..de046d5
--- /dev/null
+++ b/src/main/java/derms/client/ResponderClientCLI.java
@@ -0,0 +1,104 @@
+package derms.client;
+
+import derms.frontend.DERMSInterface;
+import derms.util.TestLogger;
+
+import java.net.MalformedURLException;
+
+public class ResponderClientCLI extends CLI {
+ public static final String usage = "Usage: java derms.client.ResponderClient <FE host>";
+
+ private final DERMSInterface server;
+
+ private ResponderClientCLI(String FEhost) throws MalformedURLException {
+ server = Client.connectToServer(FEhost);
+
+ commands.put("add", new Add());
+ cmdDescriptions.add(new CLI.Description(
+ "add <resource ID> <resource type> <duration>",
+ "Add ad resource to the server"));
+
+ commands.put("remove", new Remove());
+ cmdDescriptions.add(new CLI.Description(
+ "remove <resource ID> <duration>",
+ "Decrease the duration of a resource. If duration is negative, the resource is removed entirely."));
+
+ commands.put("list", new List());
+ cmdDescriptions.add(new CLI.Description(
+ "list <resource name>",
+ "List available resources"));
+ }
+
+ public static void main(String[] args) {
+ if (args.length < 1) {
+ System.err.println(usage);
+ System.exit(1);
+ }
+
+ String FEhost = args[0];
+
+ try {
+ (new ResponderClientCLI(FEhost)).run();
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private class Add implements CLI.Command {
+ @Override
+ public void exec(String[] args) {
+ if (args.length < 3)
+ System.out.println("invalid arguments for 'add'");
+ else
+ add(args[0], args[1], args[2]);
+ }
+
+ private void add(String resourceID, String resourceName, String durationStr) {
+ try {
+ int duration = Integer.parseInt(durationStr);
+ if (duration < 0) {
+ throw new NumberFormatException("duration less than 0");
+ }
+ String response = server.addResource(resourceID, resourceName, duration);
+ System.out.println(response);
+ } catch (NumberFormatException e) {
+ System.out.println("invalid duration: " + durationStr);
+ }
+ }
+ }
+
+ private class Remove implements CLI.Command {
+ @Override
+ public void exec(String[] args) {
+ if (args.length < 2)
+ System.out.println("invalid arguments for 'remove'");
+ else
+ remove(args[0], args[1]);
+ }
+
+ private void remove(String resourceID, String durationStr) {
+ try {
+ int duration = Integer.parseInt(durationStr);
+ String response = server.removeResource(resourceID, duration);
+ System.out.println(response);
+ } catch (NumberFormatException e) {
+ System.out.println("invalid duration: " + durationStr);
+ }
+ }
+ }
+
+ private class List implements CLI.Command {
+ @Override
+ public void exec(String[] args) {
+ if (args.length < 1)
+ System.out.println("invalid arguments for 'list'");
+ else
+ list(args[0]);
+ }
+
+ private void list(String resourceName) {
+ String response = server.listResourceAvailability(resourceName);
+ System.out.println(response);
+ }
+ }
+}