summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/replica/replica2/StationServer.java
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-11-28 12:40:14 -0500
committerSam Anthony <sam@samanthony.xyz>2024-11-28 12:40:14 -0500
commitf3d0bfd50bdde4f96dc8ee603a7093d68201f114 (patch)
tree7f1c503cf25cb5aad0fb3d5738aac3604c8cbf99 /src/main/java/derms/replica/replica2/StationServer.java
parent3feb480540b33f4e40fd4d41d7ea88b56f91f133 (diff)
downloadsoen423-f3d0bfd50bdde4f96dc8ee603a7093d68201f114.zip
Replica2: implement Replica interface
Diffstat (limited to 'src/main/java/derms/replica/replica2/StationServer.java')
-rw-r--r--src/main/java/derms/replica/replica2/StationServer.java136
1 files changed, 0 insertions, 136 deletions
diff --git a/src/main/java/derms/replica/replica2/StationServer.java b/src/main/java/derms/replica/replica2/StationServer.java
deleted file mode 100644
index 12525f7..0000000
--- a/src/main/java/derms/replica/replica2/StationServer.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package derms.replica.replica2;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.UnknownHostException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.logging.Logger;
-
-public class StationServer implements Runnable {
- public static final String usage = "Usage: java StationServer <city> <local address>";
- public static final InetSocketAddress announceGroup = new InetSocketAddress("225.5.5.5", 5555);
-
- public City city;
- public InetAddress localAddr;
- public Resources resources;
- public Servers servers;
- private Logger log;
- private ResponderServer responderServer;
- private CoordinatorServer coordinatorServer;
-
- public StationServer(City city, InetAddress localAddr) throws IOException {
- this.city = city;
- this.localAddr = localAddr;
- this.resources = new Resources();
- this.servers = new Servers();
- this.log = DermsLogger.getLogger(getClass());
-
- try {
- this.responderServer = new ResponderServer(city, resources, servers);
- } catch (IOException e) {
- throw new IOException("Failed to create ResponderServer: "+e.getMessage());
- }
- log.info("Created ResponderServer");
-
- try {
- this.coordinatorServer = new CoordinatorServer(city, resources, servers);
- } catch (IOException e) {
- throw new IOException("Failed to create CoordinatorServer: "+e.getMessage());
- }
- log.info("Created CoordinatorServer");
- }
-
- public static void main(String cmdlineArgs[]) {
- Args args = null;
- try {
- args = new Args(cmdlineArgs);
- } catch (IllegalArgumentException e) {
- System.err.println(e.getMessage());
- System.out.println(usage);
- System.exit(1);
- }
-
- try {
- (new StationServer(args.city, args.localAddr)).run();
- } catch (Exception e) {
- System.err.println(e.getMessage());
- System.exit(1);
- }
- }
-
- @Override
- public void run() {
- log.info("Running");
- log.config("Local address is "+localAddr.toString());
-
- ExecutorService pool = Executors.newCachedThreadPool();
-
- try {
- pool.execute(new ResourceAvailability.Server(localAddr, resources));
- } catch (IOException e) {
- String msg = "Failed to start ResourceAvailability Server: "+e.getMessage();
- log.severe(msg);
- return;
- }
- try {
- pool.execute(new RequestResource.Server(localAddr, resources));
- } catch (IOException e) {
- log.severe("Failed to start RequestResource Server: "+e.getMessage());
- return;
- }
- try {
- pool.execute(new FindResource.Server(localAddr, resources));
- } catch (IOException e) {
- log.severe("Failed to start FindResource Server: "+e.getMessage());
- return;
- }
- try {
- pool.execute(new ReturnResource.Server(localAddr, resources));
- } catch (IOException e) {
- log.severe("Failed to start ReturnResource Server: "+e.getMessage());
- return;
- }
- try {
- pool.execute(new SwapResource.Server(localAddr, resources, servers));
- } catch (IOException e) {
- log.severe("Failed to start SwapResource Server: "+e.getMessage());
- return;
- }
-
- try {
- pool.execute(new Announcer(announceGroup, localAddr, city));
- } catch (IOException e) {
- log.severe("Failed to start Announcer: "+e.getMessage());
- return;
- }
- try {
- pool.execute(new AnnounceListener(announceGroup, localAddr, servers));
- } catch (IOException e) {
- log.severe("Failed to start AnnounceListener: "+e.getMessage());
- return;
- }
- }
-
- private static class Args {
- private City city;
- private InetAddress localAddr;
-
- private Args(String[] args) throws IllegalArgumentException {
- if (args.length < 1) {
- throw new IllegalArgumentException("Missing argument 'city'");
- }
- city = new City(args[0]);
-
- if (args.length < 2) {
- throw new IllegalArgumentException("Missing argument 'local host'");
- }
- try {
- localAddr = InetAddress.getByName(args[1]);
- } catch (UnknownHostException | SecurityException e) {
- throw new IllegalArgumentException("Bad value of 'local host': "+e.getMessage());
- }
- }
- }
-} \ No newline at end of file