From b5b6ce357fca501353f5bb8e85db961029e5c229 Mon Sep 17 00:00:00 2001 From: Brenton Bostick Date: Wed, 1 Feb 2023 06:25:22 -0500 Subject: [PATCH] make Version a plain data class --- java/jni/ZT_jnicache.cpp | 8 +------ java/jni/ZT_jnicache.h | 3 --- java/jni/ZT_jniutils.cpp | 7 ++---- java/src/com/zerotier/sdk/Version.java | 31 ++++++++++++++++++++------ 4 files changed, 27 insertions(+), 22 deletions(-) diff --git a/java/jni/ZT_jnicache.cpp b/java/jni/ZT_jnicache.cpp index 095b647ce..2465d9c51 100644 --- a/java/jni/ZT_jnicache.cpp +++ b/java/jni/ZT_jnicache.cpp @@ -114,9 +114,6 @@ jmethodID VirtualNetworkType_fromInt_method; // Instance fields // -jfieldID Version_major_field; -jfieldID Version_minor_field; -jfieldID Version_revision_field; jfieldID VirtualNetworkConfig_assignedAddresses_field; jfieldID VirtualNetworkConfig_bridge_field; jfieldID VirtualNetworkConfig_broadcastEnabled_field; @@ -202,7 +199,7 @@ void setupJNICache(JavaVM *vm) { EXCEPTIONANDNULLCHECK(PathChecker_onPathLookup_method = env->GetMethodID(PathChecker_class, "onPathLookup", "(JI)Ljava/net/InetSocketAddress;")); EXCEPTIONANDNULLCHECK(PeerPhysicalPath_ctor = env->GetMethodID(PeerPhysicalPath_class, "", "(Ljava/net/InetSocketAddress;JJZ)V")); EXCEPTIONANDNULLCHECK(Peer_ctor = env->GetMethodID(Peer_class, "", "(JIIIILcom/zerotier/sdk/PeerRole;[Lcom/zerotier/sdk/PeerPhysicalPath;)V")); - EXCEPTIONANDNULLCHECK(Version_ctor = env->GetMethodID(Version_class, "", "()V")); + EXCEPTIONANDNULLCHECK(Version_ctor = env->GetMethodID(Version_class, "", "(III)V")); EXCEPTIONANDNULLCHECK(VirtualNetworkConfigListener_onNetworkConfigurationUpdated_method = env->GetMethodID(VirtualNetworkConfigListener_class, "onNetworkConfigurationUpdated", "(JLcom/zerotier/sdk/VirtualNetworkConfigOperation;Lcom/zerotier/sdk/VirtualNetworkConfig;)I")); EXCEPTIONANDNULLCHECK(VirtualNetworkConfig_ctor = env->GetMethodID(VirtualNetworkConfig_class, "", "()V")); EXCEPTIONANDNULLCHECK(VirtualNetworkDNS_ctor = env->GetMethodID(VirtualNetworkDNS_class, "", "()V")); @@ -225,9 +222,6 @@ void setupJNICache(JavaVM *vm) { // Instance fields // - EXCEPTIONANDNULLCHECK(Version_major_field = env->GetFieldID(Version_class, "major", "I")); - EXCEPTIONANDNULLCHECK(Version_minor_field = env->GetFieldID(Version_class, "minor", "I")); - EXCEPTIONANDNULLCHECK(Version_revision_field = env->GetFieldID(Version_class, "revision", "I")); EXCEPTIONANDNULLCHECK(VirtualNetworkConfig_assignedAddresses_field = env->GetFieldID(VirtualNetworkConfig_class, "assignedAddresses", "[Ljava/net/InetSocketAddress;")); EXCEPTIONANDNULLCHECK(VirtualNetworkConfig_bridge_field = env->GetFieldID(VirtualNetworkConfig_class, "bridge", "Z")); EXCEPTIONANDNULLCHECK(VirtualNetworkConfig_broadcastEnabled_field = env->GetFieldID(VirtualNetworkConfig_class, "broadcastEnabled", "Z")); diff --git a/java/jni/ZT_jnicache.h b/java/jni/ZT_jnicache.h index 0630d6355..730b8d89f 100644 --- a/java/jni/ZT_jnicache.h +++ b/java/jni/ZT_jnicache.h @@ -83,9 +83,6 @@ extern jmethodID VirtualNetworkType_fromInt_method; // Instance fields // -extern jfieldID Version_major_field; -extern jfieldID Version_minor_field; -extern jfieldID Version_revision_field; extern jfieldID VirtualNetworkConfig_assignedAddresses_field; extern jfieldID VirtualNetworkConfig_bridge_field; extern jfieldID VirtualNetworkConfig_broadcastEnabled_field; diff --git a/java/jni/ZT_jniutils.cpp b/java/jni/ZT_jniutils.cpp index 220f062d8..2ef8a4b26 100644 --- a/java/jni/ZT_jniutils.cpp +++ b/java/jni/ZT_jniutils.cpp @@ -312,16 +312,13 @@ jobject newNetworkConfig(JNIEnv *env, const ZT_VirtualNetworkConfig &vnetConfig) jobject newVersion(JNIEnv *env, int major, int minor, int rev) { // create a com.zerotier.sdk.Version object - jobject versionObj = env->NewObject(Version_class, Version_ctor); + jobject versionObj = env->NewObject(Version_class, Version_ctor, major, minor, rev); if(env->ExceptionCheck() || versionObj == NULL) { + LOGE("Error creating new Version object"); return NULL; } - env->SetIntField(versionObj, Version_major_field, (jint)major); - env->SetIntField(versionObj, Version_minor_field, (jint)minor); - env->SetIntField(versionObj, Version_revision_field, (jint)rev); - return versionObj; } diff --git a/java/src/com/zerotier/sdk/Version.java b/java/src/com/zerotier/sdk/Version.java index c93c25970..0dbe1d2a5 100644 --- a/java/src/com/zerotier/sdk/Version.java +++ b/java/src/com/zerotier/sdk/Version.java @@ -27,10 +27,27 @@ package com.zerotier.sdk; -public final class Version { - private Version() {} - - public int major = 0; - public int minor = 0; - public int revision = 0; -} \ No newline at end of file +public class Version { + + private final int major; + private final int minor; + private final int revision; + + public Version(int major, int minor, int revision) { + this.major = major; + this.minor = minor; + this.revision = revision; + } + + public int getMajor() { + return major; + } + + public int getMinor() { + return minor; + } + + public int getRevision() { + return revision; + } +}