diff --git a/.gitignore b/.gitignore index b989b5d..a1b3b23 100644 --- a/.gitignore +++ b/.gitignore @@ -102,4 +102,7 @@ $RECYCLE.BIN/ *.lnk ## Jenv -.java-version \ No newline at end of file +.java-version + +## VSCode +.vscode \ No newline at end of file diff --git a/build.gradle b/build.gradle index dfb8f51..ca3f72c 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ java { } application { - mainClass = 'ch.unibas.dmi.dbis.cs108.example.HelloWorld' + mainClass = 'ch.unibas.dmi.dbis.cs108.casono.Main' } repositories { diff --git a/settings.gradle b/settings.gradle index bebfb1d..52b7690 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ -rootProject.name = 'example-project' +rootProject.name = 'casono' diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/Main.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/Main.java new file mode 100644 index 0000000..d1890db --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/Main.java @@ -0,0 +1,42 @@ +package ch.unibas.dmi.dbis.cs108.casono; + +import ch.unibas.dmi.dbis.cs108.casono.client.ClientApp; +import ch.unibas.dmi.dbis.cs108.casono.server.ServerApp; + +public final class Main { + + public static void main(String[] args) { + if (!isValid(args)) { + printUsage(); + System.exit(1); + } + + switch (args[0]) { + case "server" -> ServerApp.start(args[1]); + case "client" -> ClientApp.start(args[1]); + default -> { + printUsage(); + System.exit(1); + } + } + } + + private static boolean isValid(String[] args) { + if (args.length != 2) { + return false; + } + + return switch (args[0]) { + case "server", "client" -> true; + default -> false; + }; + } + + private static void printUsage() { + System.err.println(""" + Usage: + java -jar xyz.jar server + java -jar xyz.jar client : + """); + } +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ClientApp.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ClientApp.java new file mode 100644 index 0000000..2c17a37 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ClientApp.java @@ -0,0 +1,14 @@ +package ch.unibas.dmi.dbis.cs108.casono.client; + +public class ClientApp { + public static void start(String arg) { + String[] parts = arg.split(":", 2); + if (parts.length != 2) { + throw new IllegalArgumentException("Address must be in format :."); + } + String host = parts[0]; + int port = Integer.parseInt(parts[1]); + + System.out.println("You've selected the client. It will connect port " + port + " at host " + host); + } +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java new file mode 100644 index 0000000..520dc6b --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java @@ -0,0 +1,8 @@ +package ch.unibas.dmi.dbis.cs108.casono.server; + +public class ServerApp { + public static void start(String arg) { + int port = Integer.parseInt(arg); + System.out.println("You've selected the server. It will accept connections at port " + port); + } +}