From 7279b7789f6eee28040898f5f2c015819db0d46a Mon Sep 17 00:00:00 2001 From: aleigh Date: Tue, 10 May 2022 10:38:25 -0700 Subject: [PATCH] leigh-stack-zero: Moved the ZDP server code into a stand-alone beacon daemon. --- leigh-stack-zero-beacon/build.gradle | 21 ++++++++++++ .../leigh/stack/zero/beacon/BeaconDaemon.java | 33 ++++++++++--------- leigh-stack-zero/build.gradle | 3 +- settings.gradle | 1 + 4 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 leigh-stack-zero-beacon/build.gradle rename leigh-stack-zero/src/main/java/leigh/stack/zero/ZDPServer.java => leigh-stack-zero-beacon/src/main/java/leigh/stack/zero/beacon/BeaconDaemon.java (79%) diff --git a/leigh-stack-zero-beacon/build.gradle b/leigh-stack-zero-beacon/build.gradle new file mode 100644 index 000000000..6503a8657 --- /dev/null +++ b/leigh-stack-zero-beacon/build.gradle @@ -0,0 +1,21 @@ +plugins { + id 'java' + id 'application' +} + +group 'leigh' +version '1.0' + +repositories { + mavenCentral() +} + +dependencies { + implementation project(':leigh-stack-zero') + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' +} + +test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/leigh-stack-zero/src/main/java/leigh/stack/zero/ZDPServer.java b/leigh-stack-zero-beacon/src/main/java/leigh/stack/zero/beacon/BeaconDaemon.java similarity index 79% rename from leigh-stack-zero/src/main/java/leigh/stack/zero/ZDPServer.java rename to leigh-stack-zero-beacon/src/main/java/leigh/stack/zero/beacon/BeaconDaemon.java index 52ef5dd10..9f3902799 100644 --- a/leigh-stack-zero/src/main/java/leigh/stack/zero/ZDPServer.java +++ b/leigh-stack-zero-beacon/src/main/java/leigh/stack/zero/beacon/BeaconDaemon.java @@ -1,8 +1,10 @@ -package leigh.stack.zero; +package leigh.stack.zero.beacon; import leigh.mecha.lang.DangerousRunnable; import leigh.mecha.log.MechaLogger; import leigh.mecha.log.MechaLoggerFactory; +import leigh.mecha.util.UniversalJob; +import leigh.stack.zero.Beacon; import java.net.*; import java.nio.ByteBuffer; @@ -13,29 +15,28 @@ import java.util.Enumeration; import java.util.LinkedList; /** - * This class implements a trivial ZDP server which beacons an authoratative packet + * This class implements a trivial ZDP server which constantly beacons an authoritative packet * onto the local network. * * @author C. Alexander Leigh */ -public class ZDPServer implements DangerousRunnable { - private static final MechaLogger logger = MechaLoggerFactory.getLogger(ZDPServer.class); +public class BeaconDaemon implements DangerousRunnable { + private static final MechaLogger logger = MechaLoggerFactory.getLogger(BeaconDaemon.class); // The current location of the ZAI, if any. - private String zaiUrl; - - public static void main(String[] args) throws Exception { - ZDPServer srv = new ZDPServer(); - srv.setZaiUrl("https://leigh-co.com/zai"); - srv.run(); + private final String zaiUrl; + public BeaconDaemon(String zaiUrl) { + this.zaiUrl = zaiUrl; } - public String getZaiUrl() { - return zaiUrl; - } + public static void main(String[] args) throws Exception { + if (args.length != 1) { + logger.info("Usage: BeaconDaemon url"); + System.exit(UniversalJob.RET_BADARGS); + } - public void setZaiUrl(String zaiUrl) { - this.zaiUrl = zaiUrl; + BeaconDaemon srv = new BeaconDaemon(args[0]); + srv.run(); } @Override @@ -55,7 +56,7 @@ public class ZDPServer implements DangerousRunnable { dgc.send(packet, destination); } } - Thread.sleep(1000); + Thread.sleep(2500); } } diff --git a/leigh-stack-zero/build.gradle b/leigh-stack-zero/build.gradle index 788e59f4b..5f5bd045c 100644 --- a/leigh-stack-zero/build.gradle +++ b/leigh-stack-zero/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java' + id 'java-library' } group 'leigh' @@ -10,7 +11,7 @@ repositories { } dependencies { - implementation project(':leigh-mecha') + api project(':leigh-mecha') testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' } diff --git a/settings.gradle b/settings.gradle index cd2d1f613..5050089d5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -96,4 +96,5 @@ include 'leigh-video-edltool' include 'leigh-audio-bpm' include 'leigh-inventory' include 'leigh-stack-zero' +include 'leigh-stack-zero-beacon' -- GitLab