diff --git a/src/main/java/com/github/boukefalos/ibuddy/Loader.java b/src/main/java/com/github/boukefalos/ibuddy/Loader.java index 57a1076..def2d58 100644 --- a/src/main/java/com/github/boukefalos/ibuddy/Loader.java +++ b/src/main/java/com/github/boukefalos/ibuddy/Loader.java @@ -23,7 +23,15 @@ public class Loader extends AbstractLoader { pico.addComponent(Remote.class); /* Add sender implementation */ - addSender(properties); + try { + String protocol = properties.getOrDefault("protocol", "tcp").toString(); + String implementation = properties.getOrDefault("tcp.implementation", "socket").toString(); + String host = properties.getProperty("remote.host"); + int port = Integer.valueOf(properties.getProperty("remote.port")); + addSender(protocol, implementation, host, port); + } catch (NumberFormatException e) { + throw new LoaderException("Failed to parse remote.port"); + } break; } @@ -31,8 +39,15 @@ public class Loader extends AbstractLoader { if (properties.getProperty("server") != null) { pico.addComponent(Server.class); - /* Add server forwarder implementation */ - addForwarder(properties); + /* Add server forwarder implementation */ + try { + String protocol = properties.getOrDefault("server.protocol", "tcp").toString(); + String implementation = properties.getOrDefault("tcp.implementation", "socket").toString(); + int port = Integer.valueOf(properties.getProperty("server.port")); + addForwarder(protocol, implementation, port); + } catch (NumberFormatException e) { + throw new LoaderException("Failed to parse server.port"); + } } } diff --git a/src/main/java/com/github/boukefalos/ibuddy/Server.java b/src/main/java/com/github/boukefalos/ibuddy/Server.java index d03e91e..fa25ee9 100644 --- a/src/main/java/com/github/boukefalos/ibuddy/Server.java +++ b/src/main/java/com/github/boukefalos/ibuddy/Server.java @@ -4,8 +4,6 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import org.jraf.jlibibuddy.IBuddyException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import proto.Ibuddy.Blink; import proto.Ibuddy.Color; @@ -14,31 +12,15 @@ import proto.Ibuddy.Flap; import proto.Ibuddy.Head; import proto.Ibuddy.Nudge; import proto.Ibuddy.State; -import base.Control; import base.receiver.Forwarder; -import base.receiver.Receiver; +import base.server.forwarder.AbstractReceiver; -public class Server implements Receiver, Control { - protected Logger logger = LoggerFactory.getLogger(getClass()); +public class Server extends AbstractReceiver { protected iBuddy iBuddy; - protected Forwarder forwarder; public Server(iBuddy iBuddy, Forwarder forwarder) { + super(forwarder); this.iBuddy = iBuddy; - this.forwarder = forwarder; - forwarder.register(this); - } - - public void start() { - forwarder.start(); - } - - public void stop() { - forwarder.stop(); - } - - public void exit() { - forwarder.exit(); } public void receive(byte[] buffer) { diff --git a/src/test/java/test/TestTcpCommunication.java b/src/test/java/test/TestTcpCommunication.java index 04ed507..791cb6e 100644 --- a/src/test/java/test/TestTcpCommunication.java +++ b/src/test/java/test/TestTcpCommunication.java @@ -33,7 +33,7 @@ public class TestTcpCommunication { server.start(); iBuddy.start(); - iBuddy.setHead(Color.BLUE); + iBuddy.setHead(Color.GREEN); server.exit(); iBuddy.exit(); diff --git a/src/test/java/test/TestUdpCommunication.java b/src/test/java/test/TestUdpCommunication.java index 37021bf..8014ebf 100644 --- a/src/test/java/test/TestUdpCommunication.java +++ b/src/test/java/test/TestUdpCommunication.java @@ -13,6 +13,7 @@ public class TestUdpCommunication { try { Properties localProperties = new Properties(); localProperties.setProperty("implementation", "local"); + localProperties.setProperty("protocol", "udp"); localProperties.setProperty("server", "true"); localProperties.setProperty("server.port", "8883"); localProperties.setProperty("server.protocol", "udp");