Refactor part of core.legacy to core.networking
This commit is contained in:
196
java/core.mimis/src/main/java/mimis/value/Key.java
Normal file
196
java/core.mimis/src/main/java/mimis/value/Key.java
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2015 Rik Veenboer <rik.veenboer@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package mimis.value;
|
||||||
|
|
||||||
|
public enum Key {
|
||||||
|
/*
|
||||||
|
* VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
|
||||||
|
* 0x40 : unassigned
|
||||||
|
* VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
|
||||||
|
*/
|
||||||
|
LBUTTON (0x01),
|
||||||
|
RBUTTON (0x02),
|
||||||
|
CANCEL (0x03),
|
||||||
|
MBUTTON (0x04),
|
||||||
|
XBUTTON1 (0x05),
|
||||||
|
XBUTTON2 (0x06),
|
||||||
|
BACK (0x08),
|
||||||
|
TAB (0x09),
|
||||||
|
CLEAR (0x0C),
|
||||||
|
RETURN (0x0D),
|
||||||
|
SHIFT (0x10),
|
||||||
|
CONTROL (0x11),
|
||||||
|
MENU (0x12),
|
||||||
|
PAUSE (0x13),
|
||||||
|
CAPITAL (0x14),
|
||||||
|
KANA (0x15),
|
||||||
|
HANGEUL (0x15),
|
||||||
|
HANGUL (0x15),
|
||||||
|
JUNJA (0x17),
|
||||||
|
FINAL (0x18),
|
||||||
|
HANJA (0x19),
|
||||||
|
KANJI (0x19),
|
||||||
|
ESCAPE (0x1B),
|
||||||
|
CONVERT (0x1C),
|
||||||
|
NONCONVERT (0x1D),
|
||||||
|
ACCEPT (0x1E),
|
||||||
|
MODECHANGE (0x1F),
|
||||||
|
SPACE (0x20),
|
||||||
|
PRIOR (0x21),
|
||||||
|
NEXT (0x22),
|
||||||
|
END (0x23),
|
||||||
|
HOME (0x24),
|
||||||
|
LEFT (0x25),
|
||||||
|
UP (0x26),
|
||||||
|
RIGHT (0x27),
|
||||||
|
DOWN (0x28),
|
||||||
|
SELECT (0x29),
|
||||||
|
PRINT (0x2A),
|
||||||
|
EXECUTE (0x2B),
|
||||||
|
SNAPSHOT (0x2C),
|
||||||
|
INSERT (0x2D),
|
||||||
|
DELETE (0x2E),
|
||||||
|
HELP (0x2F),
|
||||||
|
LWIN (0x5B),
|
||||||
|
RWIN (0x5C),
|
||||||
|
APPS (0x5D),
|
||||||
|
SLEEP (0x5F),
|
||||||
|
NUMPAD0 (0x60),
|
||||||
|
NUMPAD1 (0x61),
|
||||||
|
NUMPAD2 (0x62),
|
||||||
|
NUMPAD3 (0x63),
|
||||||
|
NUMPAD4 (0x64),
|
||||||
|
NUMPAD5 (0x65),
|
||||||
|
NUMPAD6 (0x66),
|
||||||
|
NUMPAD7 (0x67),
|
||||||
|
NUMPAD8 (0x68),
|
||||||
|
NUMPAD9 (0x69),
|
||||||
|
MULTIPLY (0x6A),
|
||||||
|
ADD (0x6B),
|
||||||
|
SEPARATOR (0x6C),
|
||||||
|
SUBTRACT (0x6D),
|
||||||
|
DECIMAL (0x6E),
|
||||||
|
DIVIDE (0x6F),
|
||||||
|
F1 (0x70),
|
||||||
|
F2 (0x71),
|
||||||
|
F3 (0x72),
|
||||||
|
F4 (0x73),
|
||||||
|
F5 (0x74),
|
||||||
|
F6 (0x75),
|
||||||
|
F7 (0x76),
|
||||||
|
F8 (0x77),
|
||||||
|
F9 (0x78),
|
||||||
|
F10 (0x79),
|
||||||
|
F11 (0x7A),
|
||||||
|
F12 (0x7B),
|
||||||
|
F13 (0x7C),
|
||||||
|
F14 (0x7D),
|
||||||
|
F15 (0x7E),
|
||||||
|
F16 (0x7F),
|
||||||
|
F17 (0x80),
|
||||||
|
F18 (0x81),
|
||||||
|
F19 (0x82),
|
||||||
|
F20 (0x83),
|
||||||
|
F21 (0x84),
|
||||||
|
F22 (0x85),
|
||||||
|
F23 (0x86),
|
||||||
|
F24 (0x87),
|
||||||
|
NUMLOCK (0x90),
|
||||||
|
SCROLL (0x91),
|
||||||
|
OEM_NEC_EQUAL (0x92),
|
||||||
|
OEM_FJ_JISHO (0x92),
|
||||||
|
OEM_FJ_MASSHOU (0x93),
|
||||||
|
OEM_FJ_TOUROKU (0x94),
|
||||||
|
OEM_FJ_LOYA (0x95),
|
||||||
|
OEM_FJ_ROYA (0x96),
|
||||||
|
LSHIFT (0xA0),
|
||||||
|
RSHIFT (0xA1),
|
||||||
|
LCONTROL (0xA2),
|
||||||
|
RCONTROL (0xA3),
|
||||||
|
LMENU (0xA4),
|
||||||
|
RMENU (0xA5),
|
||||||
|
BROWSER_BACK (0xA6),
|
||||||
|
BROWSER_FORWARD (0xA7),
|
||||||
|
BROWSER_REFRESH (0xA8),
|
||||||
|
BROWSER_STOP (0xA9),
|
||||||
|
BROWSER_SEARCH (0xAA),
|
||||||
|
BROWSER_FAVORITES (0xAB),
|
||||||
|
BROWSER_HOME (0xAC),
|
||||||
|
VOLUME_MUTE (0xAD),
|
||||||
|
VOLUME_DOWN (0xAE),
|
||||||
|
VOLUME_UP (0xAF),
|
||||||
|
MEDIA_NEXT_TRACK (0xB0),
|
||||||
|
MEDIA_PREV_TRACK (0xB1),
|
||||||
|
MEDIA_STOP (0xB2),
|
||||||
|
MEDIA_PLAY_PAUSE (0xB3),
|
||||||
|
LAUNCH_MAIL (0xB4),
|
||||||
|
LAUNCH_MEDIA_SELECT (0xB5),
|
||||||
|
LAUNCH_APP1 (0xB6),
|
||||||
|
LAUNCH_APP2 (0xB7),
|
||||||
|
OEM_1 (0xBA),
|
||||||
|
OEM_PLUS (0xBB),
|
||||||
|
OEM_COMMA (0xBC),
|
||||||
|
OEM_MINUS (0xBD),
|
||||||
|
OEM_PERIOD (0xBE),
|
||||||
|
OEM_2 (0xBF),
|
||||||
|
OEM_3 (0xC0),
|
||||||
|
OEM_4 (0xDB),
|
||||||
|
OEM_5 (0xDC),
|
||||||
|
OEM_6 (0xDD),
|
||||||
|
OEM_7 (0xDE),
|
||||||
|
OEM_8 (0xDF),
|
||||||
|
OEM_AX (0xE1),
|
||||||
|
OEM_102 (0xE2),
|
||||||
|
ICO_HELP (0xE3),
|
||||||
|
ICO_00 (0xE4),
|
||||||
|
PROCESSKEY (0xE5),
|
||||||
|
ICO_CLEAR (0xE6),
|
||||||
|
PACKET (0xE7),
|
||||||
|
OEM_RESET (0xE9),
|
||||||
|
OEM_JUMP (0xEA),
|
||||||
|
OEM_PA1 (0xEB),
|
||||||
|
OEM_PA2 (0xEC),
|
||||||
|
OEM_PA3 (0xED),
|
||||||
|
OEM_WSCTRL (0xEE),
|
||||||
|
OEM_CUSEL (0xEF),
|
||||||
|
OEM_ATTN (0xF0),
|
||||||
|
OEM_FINISH (0xF1),
|
||||||
|
OEM_COPY (0xF2),
|
||||||
|
OEM_AUTO (0xF3),
|
||||||
|
OEM_ENLW (0xF4),
|
||||||
|
OEM_BACKTAB (0xF5),
|
||||||
|
ATTN (0xF6),
|
||||||
|
CRSEL (0xF7),
|
||||||
|
EXSEL (0xF8),
|
||||||
|
EREOF (0xF9),
|
||||||
|
PLAY (0xFA),
|
||||||
|
ZOOM (0xFB),
|
||||||
|
NONAME (0xFC),
|
||||||
|
PA1 (0xFD),
|
||||||
|
OEM_CLEAR (0xFE);
|
||||||
|
|
||||||
|
protected int code;
|
||||||
|
|
||||||
|
private Key(int code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
dependencies {
|
||||||
|
compile project(':core.legacy')
|
||||||
|
}
|
||||||
20
java/core.networking/src/main/java/junit/AllTests.java
Normal file
20
java/core.networking/src/main/java/junit/AllTests.java
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package junit;
|
||||||
|
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.junit.runners.Suite;
|
||||||
|
import org.junit.runners.Suite.SuiteClasses;
|
||||||
|
|
||||||
|
import networking.TestUdpMulticastCommunication;
|
||||||
|
import networking.TestUdpUnicastCommunication;
|
||||||
|
|
||||||
|
@RunWith(Suite.class)
|
||||||
|
@SuiteClasses({
|
||||||
|
TestTcpSocketCommunication.class,
|
||||||
|
TestTcpChannelCommunication.class,
|
||||||
|
TestUdpUnicastCommunication.class,
|
||||||
|
TestUdpMulticastCommunication.class,
|
||||||
|
TestUdpDuplexCommunication.class
|
||||||
|
})
|
||||||
|
|
||||||
|
public class AllTests {}
|
||||||
|
// Should test start()/stop() of components, check implementation
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package junit;
|
package networking;
|
||||||
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.Suite;
|
import org.junit.runners.Suite;
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
package networking;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import base.server.channel.TcpClient;
|
||||||
|
import base.server.channel.TcpServer;
|
||||||
|
import base.server.channel.TcpServerClient;
|
||||||
|
|
||||||
|
public class TestTcpChannelCommunication {
|
||||||
|
protected TestTcpServer server;
|
||||||
|
protected TestTcpClient client;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
server = new TestTcpServer(1234);
|
||||||
|
server.start();
|
||||||
|
client = new TestTcpClient(1234);
|
||||||
|
client.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
client.exit();
|
||||||
|
server.exit();
|
||||||
|
|
||||||
|
// Should add blocking stop and exit to worker
|
||||||
|
while (client.active() || server.active()) {
|
||||||
|
Thread.sleep(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSendClientToServer() throws Exception {
|
||||||
|
String message = "test";
|
||||||
|
client.send(message.getBytes());
|
||||||
|
synchronized (server) {
|
||||||
|
server.wait(2000);
|
||||||
|
}
|
||||||
|
byte[] buffer = server.buffer;
|
||||||
|
assertNotNull("Received input", buffer);
|
||||||
|
assertEquals("Message intact", message, new String(buffer).trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSendServerToClient() throws Exception {
|
||||||
|
// If client can send, connection has been established
|
||||||
|
client.send("init".getBytes());
|
||||||
|
|
||||||
|
String message = "test";
|
||||||
|
server.send(message.getBytes());
|
||||||
|
synchronized (client) {
|
||||||
|
client.wait(2000);
|
||||||
|
}
|
||||||
|
byte[] buffer = client.buffer;
|
||||||
|
assertNotNull("Received input", buffer);
|
||||||
|
assertEquals("Message intact", message, new String(buffer).trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestTcpServer extends TcpServer {
|
||||||
|
public byte[] buffer;
|
||||||
|
|
||||||
|
public TestTcpServer(int port) {
|
||||||
|
super(port);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void input(TcpServerClient client, byte[] buffer) {
|
||||||
|
this.buffer = buffer;
|
||||||
|
synchronized (this) {
|
||||||
|
notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestTcpClient extends TcpClient {
|
||||||
|
public byte[] buffer;
|
||||||
|
|
||||||
|
public TestTcpClient(int port) {
|
||||||
|
super(port);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void input(byte[] buffer) {
|
||||||
|
this.buffer = buffer;
|
||||||
|
synchronized (this) {
|
||||||
|
notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
package networking;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import base.server.socket.TcpClient;
|
||||||
|
import base.server.socket.TcpServer;
|
||||||
|
import base.server.socket.TcpServerClient;
|
||||||
|
|
||||||
|
public class TestTcpSocketCommunication {
|
||||||
|
protected TestTcpServer server;
|
||||||
|
protected TestTcpClient client;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
server = new TestTcpServer(1234);
|
||||||
|
server.start();
|
||||||
|
client = new TestTcpClient(1234);
|
||||||
|
client.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
client.exit();
|
||||||
|
server.exit();
|
||||||
|
|
||||||
|
// Should add blocking stop and exit to worker
|
||||||
|
while (client.active() || server.active()) {
|
||||||
|
Thread.sleep(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSendClientToServer() throws Exception {
|
||||||
|
String message = "test";
|
||||||
|
client.send(message.getBytes());
|
||||||
|
synchronized (server) {
|
||||||
|
server.wait(2000);
|
||||||
|
}
|
||||||
|
byte[] buffer = server.buffer;
|
||||||
|
assertNotNull("Received input", buffer);
|
||||||
|
assertEquals("Message intact", message, new String(buffer).trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSendServerToClient() throws Exception {
|
||||||
|
// If client can send, connection has been established
|
||||||
|
client.send("init".getBytes());
|
||||||
|
|
||||||
|
String message = "test";
|
||||||
|
server.send(message.getBytes());
|
||||||
|
synchronized (client) {
|
||||||
|
client.wait(2000);
|
||||||
|
}
|
||||||
|
byte[] buffer = client.buffer;
|
||||||
|
assertNotNull("Received input", buffer);
|
||||||
|
assertEquals("Message intact", message, new String(buffer).trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestTcpServer extends TcpServer {
|
||||||
|
public byte[] buffer;
|
||||||
|
|
||||||
|
public TestTcpServer(int port) {
|
||||||
|
super(port);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void input(TcpServerClient client, byte[] buffer) {
|
||||||
|
this.buffer = buffer;
|
||||||
|
synchronized (this) {
|
||||||
|
notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestTcpClient extends TcpClient {
|
||||||
|
public byte[] buffer;
|
||||||
|
|
||||||
|
public TestTcpClient(int port) {
|
||||||
|
super(port);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void input(byte[] buffer) {
|
||||||
|
this.buffer = buffer;
|
||||||
|
synchronized (this) {
|
||||||
|
notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
package networking;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import base.server.datagram.UdpDuplexAutoClient;
|
||||||
|
import base.server.datagram.UdpDuplexServer;
|
||||||
|
|
||||||
|
public class TestUdpDuplexCommunication {
|
||||||
|
protected TestUdpDuplexServer server;
|
||||||
|
protected TestUdpDuplexClient client;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
server = new TestUdpDuplexServer(1234, 1235);
|
||||||
|
server.start();
|
||||||
|
client = new TestUdpDuplexClient(1234, 1235);
|
||||||
|
client.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
client.exit();
|
||||||
|
server.exit();
|
||||||
|
|
||||||
|
// Should add blocking stop and exit to worker
|
||||||
|
while (client.active() || server.active()) {
|
||||||
|
Thread.sleep(1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testServerToClientCommunication() throws Exception {
|
||||||
|
String message = "test";
|
||||||
|
server.send(message.getBytes());
|
||||||
|
System.err.println("send");
|
||||||
|
synchronized (client) {
|
||||||
|
client.wait(2000);
|
||||||
|
}
|
||||||
|
byte[] buffer = client.buffer;
|
||||||
|
assertNotNull("Received input", buffer);
|
||||||
|
assertEquals("Message intact", message, new String(buffer).trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testClientToServerCommunication() throws Exception {
|
||||||
|
// Let client discover server address
|
||||||
|
testServerToClientCommunication();
|
||||||
|
|
||||||
|
String message = "test";
|
||||||
|
client.send(message.getBytes());
|
||||||
|
System.err.println("send");
|
||||||
|
synchronized (server) {
|
||||||
|
server.wait(2000);
|
||||||
|
}
|
||||||
|
byte[] buffer = server.buffer;
|
||||||
|
assertNotNull("Received input", buffer);
|
||||||
|
assertEquals("Message intact", message, new String(buffer).trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TestUdpDuplexServer extends UdpDuplexServer {
|
||||||
|
public byte[] buffer;
|
||||||
|
|
||||||
|
public TestUdpDuplexServer(int sendPort, int bindPort) {
|
||||||
|
super(sendPort, bindPort);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void input(byte[] buffer) {
|
||||||
|
this.buffer = buffer;
|
||||||
|
synchronized (this) {
|
||||||
|
notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestUdpDuplexClient extends UdpDuplexAutoClient {
|
||||||
|
public byte[] buffer;
|
||||||
|
|
||||||
|
public TestUdpDuplexClient(int bindPort, int sendPort) throws UnknownHostException {
|
||||||
|
super(bindPort, sendPort);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void input(byte[] buffer) {
|
||||||
|
this.buffer = buffer;
|
||||||
|
synchronized (this) {
|
||||||
|
notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package junit;
|
package networking;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package junit;
|
package networking;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
dependencies {
|
dependencies {
|
||||||
|
compile project(':core.networking')
|
||||||
compile project(':core.windows')
|
compile project(':core.windows')
|
||||||
|
|
||||||
compile 'com.github.boukefalos:jlibmimis:0.1'
|
compile 'com.github.boukefalos:jlibmimis:0.1'
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
dependencies {
|
dependencies {
|
||||||
compile project(':core.legacy')
|
compile project(':core.networking')
|
||||||
compile project(':core.mimis')
|
compile project(':core.mimis')
|
||||||
|
compile project(':core.legacy')
|
||||||
compile project(':device.lirc')
|
compile project(':device.lirc')
|
||||||
compile project(':exec.mimis')
|
compile project(':exec.mimis')
|
||||||
|
|
||||||
|
|||||||
@@ -12,35 +12,35 @@ import dummy.Dummy;
|
|||||||
|
|
||||||
public class TestTcpCommunication {
|
public class TestTcpCommunication {
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
Properties localProperties = new Properties();
|
Properties localProperties = new Properties();
|
||||||
localProperties.setProperty("implementation", "local");
|
localProperties.setProperty("implementation", "local");
|
||||||
localProperties.setProperty("server", "true");
|
localProperties.setProperty("server", "true");
|
||||||
localProperties.setProperty("server.port", "8883");
|
localProperties.setProperty("server.port", "8883");
|
||||||
localProperties.setProperty("server.protocol", "tcp");
|
localProperties.setProperty("server.protocol", "tcp");
|
||||||
|
|
||||||
Properties remoteProperties = new Properties();
|
Properties remoteProperties = new Properties();
|
||||||
remoteProperties.setProperty("implementation", "remote");
|
remoteProperties.setProperty("implementation", "remote");
|
||||||
remoteProperties.setProperty("protocol", "tcp");
|
remoteProperties.setProperty("protocol", "tcp");
|
||||||
remoteProperties.setProperty("remote.host", "localhost");
|
remoteProperties.setProperty("remote.host", "localhost");
|
||||||
remoteProperties.setProperty("remote.port", "8883");
|
remoteProperties.setProperty("remote.port", "8883");
|
||||||
|
|
||||||
Loader localLoader = new Loader(localProperties);
|
Loader localLoader = new Loader(localProperties);
|
||||||
Loader remoteLoader = new Loader(remoteProperties);
|
Loader remoteLoader = new Loader(remoteProperties);
|
||||||
|
|
||||||
Lirc localLirc = localLoader.getLirc();
|
Lirc localLirc = localLoader.getLirc();
|
||||||
Lirc remoteLirc = remoteLoader.getLirc();
|
Lirc remoteLirc = remoteLoader.getLirc();
|
||||||
|
|
||||||
Properties iBuddyProperties = new Properties();
|
Properties iBuddyProperties = new Properties();
|
||||||
iBuddyProperties.setProperty("implementation", "local");
|
iBuddyProperties.setProperty("implementation", "local");
|
||||||
iBuddy iBuddy = new com.github.boukefalos.ibuddy.Loader(iBuddyProperties).getiBuddy();
|
iBuddy iBuddy = new com.github.boukefalos.ibuddy.Loader(iBuddyProperties).getiBuddy();
|
||||||
Dummy dummy = new Dummy(localLirc, iBuddy);
|
Dummy dummy = new Dummy(localLirc, iBuddy);
|
||||||
|
|
||||||
Control server = localLoader.getServer();
|
Control server = localLoader.getServer();
|
||||||
|
|
||||||
remoteLirc.start();
|
remoteLirc.start();
|
||||||
server.start();
|
server.start();
|
||||||
dummy.start();
|
dummy.start();
|
||||||
|
|
||||||
Thread.sleep(10000);
|
Thread.sleep(10000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user