diff --git a/leigh-stack-zero-beacon/build.gradle b/leigh-stack-zero-beacon/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..6503a865749ec24e4164e0411a80658817c17a81 --- /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 52ef5dd100406cbf7b558542d44036aacd185802..9f39027997efc8cb3e52ad5252b0da40cf2ad8c2 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 788e59f4bf9f283d6edab88315bd441313cf8241..5f5bd045c8774f9a9da28f35caeca20ac53a1ed6 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 cd2d1f61326c4a221bc058cd3cf70bf863d968fc..5050089d5e28b334276d7ebe4712bb32cff32a63 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'