You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2009/04/15 21:46:20 UTC

svn commit: r765330 - in /commons/sandbox/runtime/trunk/src: main/native/include/acr_clazz.h main/native/shared/clazz.c main/native/test/testcase.c test/org/apache/commons/runtime/TestPrivate.java

Author: mturk
Date: Wed Apr 15 19:46:20 2009
New Revision: 765330

URL: http://svn.apache.org/viewvc?rev=765330&view=rev
Log:
Add core class object array API

Modified:
    commons/sandbox/runtime/trunk/src/main/native/include/acr_clazz.h
    commons/sandbox/runtime/trunk/src/main/native/shared/clazz.c
    commons/sandbox/runtime/trunk/src/main/native/test/testcase.c
    commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestPrivate.java

Modified: commons/sandbox/runtime/trunk/src/main/native/include/acr_clazz.h
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr_clazz.h?rev=765330&r1=765329&r2=765330&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/include/acr_clazz.h (original)
+++ commons/sandbox/runtime/trunk/src/main/native/include/acr_clazz.h Wed Apr 15 19:46:20 2009
@@ -52,6 +52,15 @@
  */
 ACR_DECLARE(jclass) ACR_GetCoreClass(acr_cclass_e clazz);
 
+/**
+ * Get core object array instance.
+ * @param env Current JNI environment.
+ * @param clazz Class to get. See acr_cclass_e enum
+ * @param len Nuber of array objects
+ */
+ACR_DECLARE(jobjectArray) ACR_NewCoreObjectArray(JNIEnv *env,
+                                                 acr_cclass_e clazz,
+                                                 jsize len);
 
 #ifdef __cplusplus
 }

Modified: commons/sandbox/runtime/trunk/src/main/native/shared/clazz.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/clazz.c?rev=765330&r1=765329&r2=765330&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/shared/clazz.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/shared/clazz.c Wed Apr 15 19:46:20 2009
@@ -131,6 +131,16 @@
         return NULL;
 }
 
+ACR_DECLARE(jobjectArray) ACR_NewCoreObjectArray(JNIEnv *_E,
+                                                 acr_cclass_e clazz,
+                                                 jsize len)
+{
+    if (clazz >= 0 && clazz < ACR_CC_MAX)
+        return (*_E)->NewObjectArray(_E, len, core_classes[clazz].clazz, NULL);
+    else
+        return NULL;
+}
+
 #ifdef ACR_ENABLE_TEST
 /* Just for testing the cache table */
 int acr_clazz_cache_size()

Modified: commons/sandbox/runtime/trunk/src/main/native/test/testcase.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/test/testcase.c?rev=765330&r1=765329&r2=765330&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/test/testcase.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/test/testcase.c Wed Apr 15 19:46:20 2009
@@ -195,3 +195,9 @@
     jclass c = ACR_GetCoreClass(d);
     return (jobject)c;
 }
+
+ACR_JNI_EXPORT_DECLARE(jobjectArray, TestPrivate, test015)(ACR_JNISTDARGS, jint d)
+{
+    jobjectArray a = ACR_NewCoreObjectArray(_E, ACR_CC_STRING, d);
+    return a;
+}

Modified: commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestPrivate.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestPrivate.java?rev=765330&r1=765329&r2=765330&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestPrivate.java (original)
+++ commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestPrivate.java Wed Apr 15 19:46:20 2009
@@ -54,6 +54,7 @@
     private static native int   test012(int d);
     private static native int   test013(int d);
     private static native Class test014(int d);
+    private static native String[] test015(int d);
 
 
     protected void setUp()
@@ -207,9 +208,15 @@
     public void testCCore()
         throws Exception
     {
-        // Shuold not be called as last
         Class c = test014(1);
-        assertEquals("Name", "java.lang.String", c.getName());
+        assertEquals("Class name", "java.lang.String", c.getName());
+    }
+
+    public void testCCoreArray()
+        throws Exception
+    {
+        String [] a = test015(33);
+        assertEquals("Size", 33, a.length);
     }