Fixed up stuff.
Change-Id: I7bcb2f00e84a4cf77ffdb5c2d40701b23a3d7b7c
diff --git a/impl/google/discovery/jni.go b/impl/google/discovery/jni.go
index 49376d6..2eb2582 100644
--- a/impl/google/discovery/jni.go
+++ b/impl/google/discovery/jni.go
@@ -11,7 +11,6 @@
"encoding/binary"
"unsafe"
- "v.io/v23"
"v.io/v23/discovery"
"v.io/v23/security"
idiscovery "v.io/x/ref/lib/discovery"
@@ -40,9 +39,6 @@
// Global reference io.v.v23.security.BlessingPattern
jBlessingPatternClass jutil.Class
- // Global reference io.v.impl.google.lib.discovery.VDiscoveryImpl
- jVDiscoveryImplClass jutil.Class
-
// Global reference io.v.v23.discovery.Update
jUpdateClass jutil.Class
)
@@ -74,10 +70,6 @@
return err
}
- jVDiscoveryImplClass, err = jutil.JFindClass(env, "io/v/impl/google/lib/discovery/VDiscoveryImpl")
- if err != nil {
- return err
- }
jUpdateClass, err = jutil.JFindClass(env, "io/v/v23/discovery/Update")
return err
@@ -112,27 +104,6 @@
return convertStringtoUUID(jenv, jclass, jName, converter)
}
-//export Java_io_v_impl_google_lib_discovery_VDiscoveryImpl_nativeCreate
-func Java_io_v_impl_google_lib_discovery_VDiscoveryImpl_nativeCreate(jenv *C.JNIEnv, jclass C.jclass, jContext C.jobject) C.jobject {
- env := jutil.Env(uintptr(unsafe.Pointer(jenv)))
- ctx, err := jcontext.GoContext(env, jutil.Object(uintptr(unsafe.Pointer(jContext))))
- if err != nil {
- jutil.JThrowV(env, err);
- return C.jobject(unsafe.Pointer(jutil.NullObject))
- }
- d := v23.GetDiscovery(ctx)
- ptrD := &d
- jutil.GoRef(ptrD)
- trigger := idiscovery.NewTrigger()
- jutil.GoRef(trigger)
-
- jDiscovery, err := jutil.NewObject(env, jVDiscoveryImplClass, []jutil.Sign{jutil.LongSign, jutil.LongSign}, int64(jutil.PtrValue(ptrD)), int64(jutil.PtrValue(trigger)))
- if err != nil {
- jutil.JThrowV(env, err);
- return C.jobject(unsafe.Pointer(jutil.NullObject))
- }
- return C.jobject(unsafe.Pointer(jDiscovery))
-}
//export Java_io_v_impl_google_lib_discovery_VDiscoveryImpl_nativeDelete
func Java_io_v_impl_google_lib_discovery_VDiscoveryImpl_nativeDelete(jenv *C.JNIEnv, _ C.jobject, discovery C.jlong, trigger C.jlong) {
diff --git a/impl/google/rt/jni.go b/impl/google/rt/jni.go
index c5239ba..71f2369 100644
--- a/impl/google/rt/jni.go
+++ b/impl/google/rt/jni.go
@@ -11,7 +11,8 @@
"v.io/v23"
"v.io/v23/context"
- _ "v.io/x/ref/runtime/factories/roaming"
+
+ idiscovery "v.io/x/ref/lib/discovery"
jns "v.io/x/jni/impl/google/namespace"
jrpc "v.io/x/jni/impl/google/rpc"
@@ -28,6 +29,8 @@
serverSign = jutil.ClassSign("io.v.v23.rpc.Server")
jVRuntimeImplClass jutil.Class
+
+ jVDiscoveryImplClass jutil.Class
)
// Init initializes the JNI code with the given Java environment. This method
@@ -39,6 +42,12 @@
if err != nil {
return err
}
+
+ jVDiscoveryImplClass, err = jutil.JFindClass(env, "io/v/impl/google/lib/discovery/VDiscoveryImpl")
+ if err != nil {
+ return err
+ }
+
return nil
}
@@ -272,3 +281,25 @@
}
return C.jobject(unsafe.Pointer(jSpec))
}
+
+//export Java_io_v_impl_google_rt_VRuntimeImpl_nativeGetDiscovery
+func Java_io_v_impl_google_rt_VRuntimeImpl_nativeGetDiscovery(jenv *C.JNIEnv, jclass C.jclass, jContext C.jobject) C.jobject {
+ env := jutil.Env(uintptr(unsafe.Pointer(jenv)))
+ ctx, err := jcontext.GoContext(env, jutil.Object(uintptr(unsafe.Pointer(jContext))))
+ if err != nil {
+ jutil.JThrowV(env, err);
+ return C.jobject(unsafe.Pointer(jutil.NullObject))
+ }
+ d := v23.GetDiscovery(ctx)
+ ptrD := &d
+ jutil.GoRef(ptrD)
+ trigger := idiscovery.NewTrigger()
+ jutil.GoRef(trigger)
+
+ jDiscovery, err := jutil.NewObject(env, jVDiscoveryImplClass, []jutil.Sign{jutil.LongSign, jutil.LongSign}, int64(jutil.PtrValue(ptrD)), int64(jutil.PtrValue(trigger)))
+ if err != nil {
+ jutil.JThrowV(env, err);
+ return C.jobject(unsafe.Pointer(jutil.NullObject))
+ }
+ return C.jobject(unsafe.Pointer(jDiscovery))
+}