From e503bf7a615020fa380a18c746b17cdd8551553a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Mazurski?= <59789761+lUNuXl@users.noreply.github.com> Date: Sun, 20 Sep 2020 22:06:38 +0200 Subject: [PATCH] Improved java example --- examples/java/README.md | 25 +++++++++ .../libzt/javasimpleexample/Main.java} | 56 +++++++++---------- .../MyZeroTierEventListener.java | 8 +-- 3 files changed, 56 insertions(+), 33 deletions(-) create mode 100644 examples/java/README.md rename examples/java/src/{main/java/ExampleApp.java => com/zerotier/libzt/javasimpleexample/Main.java} (57%) rename examples/java/src/{main/java => com/zerotier/libzt/javasimpleexample}/MyZeroTierEventListener.java (96%) diff --git a/examples/java/README.md b/examples/java/README.md new file mode 100644 index 0000000..095649b --- /dev/null +++ b/examples/java/README.md @@ -0,0 +1,25 @@ +### How to compile/use this example: + +1. Follow "Building from source" section from README.md in the root of this git repository +(the linking step/example from that section does not apply to this example) + +2. Create the java library .jar file: + +``` +make host_jar_release +``` + +for other `host_jar` variants see Makefile in the root of this git repository + +2. Copy the output .jar to this directory: + +``` +cp lib/lib/release/linux-x86_64/zt.jar examples/java/simpleExample/ +``` + +3. Now you can compile this example: + +``` +cd src +javac -cp ../zt.jar ./com/zerotier/libzt/javasimpleexample/*.java +``` diff --git a/examples/java/src/main/java/ExampleApp.java b/examples/java/src/com/zerotier/libzt/javasimpleexample/Main.java similarity index 57% rename from examples/java/src/main/java/ExampleApp.java rename to examples/java/src/com/zerotier/libzt/javasimpleexample/Main.java index 3d024b4..014970b 100644 --- a/examples/java/src/main/java/ExampleApp.java +++ b/examples/java/src/com/zerotier/libzt/javasimpleexample/Main.java @@ -24,43 +24,41 @@ * of your own application. */ +package com.zerotier.libzt.javasimpleexample; + import com.zerotier.libzt.ZeroTier; -import com.zerotier.libzt.ZeroTierEventListener; -public class ExampleApp -{ - static void sleep(int ms) - { - try { Thread.sleep(ms); } - catch (InterruptedException e) { e.printStackTrace(); } - } +public class Main { - public static void main(String[] args) - { - // Set up event listener and start service - MyZeroTierEventListener listener = new MyZeroTierEventListener(); - int servicePort = 9994; - ZeroTier.start("test/path", listener, servicePort); - // Wait for EVENT_NODE_ONLINE - System.out.println("waiting for node to come online..."); - while (listener.isOnline == false) { sleep(50); } - System.out.println("joining network"); - ZeroTier.join(0x0123456789abcdefL); - // Wait for EVENT_NETWORK_READY_IP4/6 - System.out.println("waiting for network config..."); - while (listener.isNetworkReady == false) { sleep(50); } - System.out.println("joined"); + static void sleep(int ms) { + try { + Thread.sleep(ms); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + // Set up event listener and start service + MyZeroTierEventListener listener = new MyZeroTierEventListener(); + int servicePort = 9994; + ZeroTier.start("test/path", listener, servicePort); + // Wait for EVENT_NODE_ONLINE + System.out.println("waiting for node to come online..."); + while (listener.isOnline == false) { sleep(50); } + System.out.println("joining network"); + ZeroTier.join(0x0123456789abcdefL); + // Wait for EVENT_NETWORK_READY_IP4/6 + System.out.println("waiting for network config..."); + while (listener.isNetworkReady == false) { sleep(50); } + System.out.println("joined"); /* - + Begin using socket API after this point - Use ZeroTier.ZeroTierSocket, ZeroTier.ZeroTierSocketFactory, etc - (or) - ZeroTier.socket(), ZeroTier.connect(), etc - */ - } + } } diff --git a/examples/java/src/main/java/MyZeroTierEventListener.java b/examples/java/src/com/zerotier/libzt/javasimpleexample/MyZeroTierEventListener.java similarity index 96% rename from examples/java/src/main/java/MyZeroTierEventListener.java rename to examples/java/src/com/zerotier/libzt/javasimpleexample/MyZeroTierEventListener.java index 2e76ee5..e9b5219 100644 --- a/examples/java/src/main/java/MyZeroTierEventListener.java +++ b/examples/java/src/com/zerotier/libzt/javasimpleexample/MyZeroTierEventListener.java @@ -1,14 +1,14 @@ +package com.zerotier.libzt.javasimpleexample; + import com.zerotier.libzt.ZeroTier; import com.zerotier.libzt.ZeroTierEventListener; -import com.zerotier.libzt.ZeroTierPeerDetails; public class MyZeroTierEventListener implements ZeroTierEventListener { public boolean isNetworkReady = false; public boolean isOnline = false; - public void onZeroTierEvent(long id, int eventCode) - { + public void onZeroTierEvent(long id, int eventCode) { if (eventCode == ZeroTier.EVENT_NODE_UP) { System.out.println("EVENT_NODE_UP: nodeId=" + Long.toHexString(id)); } @@ -40,7 +40,7 @@ public class MyZeroTierEventListener implements ZeroTierEventListener { if (eventCode == ZeroTier.EVENT_NETWORK_READY_IP4) { // We have at least one assigned address and we've received a network configuration System.out.println("ZTS_EVENT_NETWORK_READY_IP4: nwid=" + Long.toHexString(id)); - if ( id == 0xa09acf0233e4b070L) { + if (id == 0xa09acf0233e4b070L) { isNetworkReady = true; } }