v.io/x/jni: move shared library targets to their own package
This is needed so that we can include the jni package from the
syncbase jni directory.
MultiPart: 1/2
Change-Id: I4a6c38c1c78eaf24afe757d3409a3d03c022a039
diff --git a/jni.go b/jni.go
index f974aa6..dd324aa 100644
--- a/jni.go
+++ b/jni.go
@@ -4,7 +4,7 @@
// +build java android
-package main
+package jni
import (
"os"
diff --git a/log_android.go b/log_android.go
index 565b213..dadd5d0 100644
--- a/log_android.go
+++ b/log_android.go
@@ -4,7 +4,7 @@
// +build android
-package main
+package jni
// #include <android/log.h>
// #cgo LDFLAGS: -llog
diff --git a/dummy.go b/main/dummy.go
similarity index 99%
rename from dummy.go
rename to main/dummy.go
index 53e27bb..fd9706a 100644
--- a/dummy.go
+++ b/main/dummy.go
@@ -6,4 +6,4 @@
package main
-func main() {}
+func main() {}
\ No newline at end of file
diff --git a/dummy.go b/main/main.go
similarity index 72%
copy from dummy.go
copy to main/main.go
index 53e27bb..c214545 100644
--- a/dummy.go
+++ b/main/main.go
@@ -2,8 +2,13 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build !java,!android
+// +build java android
package main
-func main() {}
+import (
+ _ "v.io/x/jni"
+)
+
+func main() {
+}
diff --git a/v23/security/access/jni.go b/v23/security/access/jni.go
index c4183d7..67fa841 100644
--- a/v23/security/access/jni.go
+++ b/v23/security/access/jni.go
@@ -19,6 +19,8 @@
var (
// Global reference for io.v.v23.security.access.AccessList class.
jAccessListClass jutil.Class
+ // Global reference for io.v.v23.security.access.Permissions class.
+ jPermissionsClass jutil.Class
)
func Init(env jutil.Env) error {
@@ -27,6 +29,10 @@
if err != nil {
return err
}
+ jPermissionsClass, err = jutil.JFindClass(env, "io/v/v23/security/access/Permissions")
+ if err != nil {
+ return err
+ }
return nil
}
diff --git a/v23/security/access/util.go b/v23/security/access/util.go
index 405bc9b..ef1d574 100644
--- a/v23/security/access/util.go
+++ b/v23/security/access/util.go
@@ -16,6 +16,18 @@
// GoAccessList converts the provided Java AccessList into a Go AccessList.
func GoAccessList(env jutil.Env, jAccessList jutil.Object) (acl access.AccessList, err error) {
+ if jAccessList.IsNull() {
+ return
+ }
err = jutil.GoVomCopy(env, jAccessList, jAccessListClass, &acl)
return
}
+
+// GoPermissions converts the provided Java Permissions into a Go Permissions.
+func GoPermissions(env jutil.Env, jPermissions jutil.Object) (perms access.Permissions, err error) {
+ if jPermissions.IsNull() {
+ return
+ }
+ err = jutil.GoVomCopy(env, jPermissions, jPermissionsClass, &perms)
+ return
+}