Changeset: bd23a836c0fb for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bd23a836c0fb
Modified Files:
        common/utils/mcrypt.c
        configure.ag
        monetdb5/mal/mal_authorize.c
        tools/Makefile.ag
        tools/embedded/Makefile.ag
        tools/embedded/java-package/Makefile.ag
        tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.c
        tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.h
        
tools/embedded/java-package/org_monetdb_embedded_result_EmbeddedQueryResult.c
        
tools/embedded/java-package/src/main/java/org/monetdb/embedded/MonetDBEmbedded.java
Branch: embedded-java
Log Message:

Fix compilation and afew other issues


diffs (truncated from 375 to 300 lines):

diff --git a/common/utils/mcrypt.c b/common/utils/mcrypt.c
--- a/common/utils/mcrypt.c
+++ b/common/utils/mcrypt.c
@@ -384,7 +384,8 @@ mcrypt_hashPassword(
 
 #define NO_OPENSSL_FATAL "MonetDB was built without OpenSSL, but what you are 
trying to do requires it.\n"
 
-char* mcrypt_sum_fail(const char *string, size_t len) {
+static char*
+mcrypt_sum_fail(const char *string, size_t len) {
        (void)string;
        (void)len;
        fprintf(stderr, NO_OPENSSL_FATAL);
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -208,7 +208,17 @@ if test "x$enable_embedded" != xno; then
 fi
 AM_CONDITIONAL(HAVE_EMBEDDED, test x"$enable_embedded" != xno)
 
+dft_embedded_java=no
+AC_ARG_ENABLE(embedded-java,
+       AS_HELP_STRING([--enable-embedded-java],
+               [enable support for running MonetDB as a Java library 
(default=no)]),
+       enable_embedded_java=$enableval,
+       enable_embedded_java=$dft_embedded_java)
+AM_CONDITIONAL(HAVE_EMBEDDED, test x$enable_embedded_java != xno)
 
+if test "x$enable_embedded" != xno; then
+       enable_embedded_java=no
+fi
 
 dft_microhttpd=no
 AC_ARG_ENABLE(microhttpd,
@@ -1660,6 +1670,7 @@ if test "x$have_java" != xno; then
        AC_PATH_PROG(JAVAC,javac,,$JPATH)
        AC_PATH_PROG(JAR,jar,,$JPATH)
        AC_PATH_PROG(JAVADOC,javadoc,,$JPATH)
+       AC_PATH_PROG(JAVAH,javah,,$JPATH)
        if test "x$have_java" = xyes; then
                JAVA_HOME="`echo $JAVAC | sed 's:/bin/javac$::'`"
        fi
@@ -1675,6 +1686,12 @@ if test "x$have_java" != xno; then
                fi
                have_java=no
                why_have_java="(no jar found)"
+       elif test "x$JAVAC" = "x"; then
+               if test "x$enable_embedded_java" = xyes; then
+                       AC_MSG_ERROR([No javah found])
+               fi
+               have_java=no
+               why_have_java="(no javah found)"
        else
                 have_java=yes
        fi
@@ -1698,6 +1715,7 @@ AC_SUBST(JAVA)
 AC_SUBST(JAVAC)
 AC_SUBST(JAR)
 AC_SUBST(JAVADOC)
+AC_SUBST(JAVAH)
 AC_SUBST(CLASSPATH)
 AC_SUBST(JAVA_HOME)
 
@@ -2950,6 +2968,18 @@ if test x"$enable_sql" = xauto && test x
                disable_sql="(MonetDB/SQL requires MonetDB5)"
        fi
 fi
+if test x"$enable_monetdb5" = xyes || test x"$enable_monetdb5" = xauto ; then
+       enable_mserver=auto
+       if test x"$enable_embedded" = x"yes" ; then
+               enable_mserver=no
+       fi
+fi
+if test x"$target_os" != xcygwin ; then
+       enable_merovingian=auto
+       if test x"$enable_embedded" = x"yes" ; then
+               enable_merovingian=no
+       fi
+fi
 
 dnl     output
 AM_CONDITIONAL(HAVE_GDK, test "x$enable_gdk" = xyes -o "x$enable_gdk" = xauto)
@@ -2957,6 +2987,8 @@ AM_CONDITIONAL(HAVE_MONETDB5, test "x$en
 AM_CONDITIONAL(HAVE_SQL, test "x$enable_sql" = xyes -o "x$enable_sql" = xauto)
 AM_CONDITIONAL(HAVE_GEOM, test "x$enable_geom" = xyes -o "x$enable_geom" = 
xauto)
 AM_CONDITIONAL(HAVE_EMBEDDED, test "x$enable_embedded" = xyes)
+AM_CONDITIONAL(HAVE_MEROVINGIAN, test "x$enable_merovingian" = xyes -o 
"x$enable_merovingian" = xauto)
+AM_CONDITIONAL(HAVE_MSERVER, test "x$enable_mserver" = xyes -o 
"x$enable_mserver" = xauto)
 AM_CONDITIONAL(HAVE_TESTING, test "x$enable_testing" = xyes -o 
"x$enable_testing" = xauto)
 AM_CONDITIONAL(HAVE_DEVELOPER, test "x$enable_developer" = xyes)
 
diff --git a/monetdb5/mal/mal_authorize.c b/monetdb5/mal/mal_authorize.c
--- a/monetdb5/mal/mal_authorize.c
+++ b/monetdb5/mal/mal_authorize.c
@@ -740,6 +740,7 @@ AUTHverifyPassword(str *passwd)
 {
        char *p = *passwd;
        size_t len = strlen(p);
+       (void)len;
 
 #ifdef HAVE_RIPEMD160
        if (strcmp(MONETDB5_PASSWDHASH, "RIPEMD160") == 0) {
diff --git a/tools/Makefile.ag b/tools/Makefile.ag
--- a/tools/Makefile.ag
+++ b/tools/Makefile.ag
@@ -4,4 +4,4 @@
 #
 # Copyright 2008-2015 MonetDB B.V.
 
-SUBDIRS = HAVE_MONETDB5?mserver NOT_WIN32?merovingian HAVE_EMBEDDED?embedded
+SUBDIRS = HAVE_MSERVER?mserver HAVE_MEROVINGIAN?merovingian 
HAVE_EMBEDDED?embedded
diff --git a/tools/embedded/Makefile.ag b/tools/embedded/Makefile.ag
--- a/tools/embedded/Makefile.ag
+++ b/tools/embedded/Makefile.ag
@@ -32,7 +32,8 @@ INCLUDES = ../../monetdb5/mal \
                   ../../sql/server \
                   ../../sql/common \
                   ../../sql/storage \
-                  ../../sql/backends/monet5 \ 
+                  ../../sql/backends/monet5 \
+                  -I"/Library/Frameworks/R.framework/Resources/include" \
                   $(pcre_CFLAGS)
 
 lib_embedded  =  {
diff --git a/tools/embedded/java-package/Makefile.ag 
b/tools/embedded/java-package/Makefile.ag
--- a/tools/embedded/java-package/Makefile.ag
+++ b/tools/embedded/java-package/Makefile.ag
@@ -31,15 +31,21 @@ INCLUDES = ../ \
                   ../../../sql/server \
                   ../../../sql/common \
                   ../../../sql/storage \
-                  ../../../sql/backends/monet5 \ 
+                  ../../../sql/storage/bat \
+                  ../../../sql/backends/monet5 \
+                  -I$(JAVA_HOME)/include \ 
+                  -I$(JAVA_HOME)/include/darwin \
+                  -I"/Library/Frameworks/R.framework/Resources/include" \
                   $(pcre_CFLAGS)
+                  
 
-lib_embedded  =  {
+lib_embedded_java  =  {
        SOURCES = org_monetdb_embedded_MonetDBEmbedded.c 
org_monetdb_embedded_MonetDBEmbedded.h \
                org_monetdb_embedded_result_EmbeddedQueryResult.c 
org_monetdb_embedded_result_EmbeddedQueryResult.h 
        VERSION = 0.1
        LIBS = ../../monetdb5/tools/libmonetdb5 \
                ../../gdk/libbat \
+               ../embedded \
                $(pcre_LIBS) $(PSAPILIB) \
                $(SOCKET_LIBS) $(MALLOC_LIBS) $(DL_LIBS) $(PTHREAD_LIBS)
 }
diff --git a/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.c 
b/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.c
--- a/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.c
+++ b/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.c
@@ -9,49 +9,49 @@
 #include "org_monetdb_embedded_MonetDBEmbedded.h"
 #include "embedded.h"
 
-#include "gdk.h"
-#include "monetdb_config.h"
-#include "monet_options.h"
-#include "mal.h"
-#include "mal_client.h"
-#include "mal_linker.h"
-#include "msabaoth.h"
-#include "sql_scenario.h"
+#include "res_table.h"
+#include "mal_type.h"
 
-JNIEXPORT jint JNICALL Java_org_monetdb_embedded_MonetDBLite_startupWrapper
+jint JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_startupWrapper
 (JNIEnv *env, jobject object, jstring directory, jboolean silent) {
-       const char *dir = (*env)->GetStringUTFChars(env, directory, 0);
+       (void)object;
+       const char *directory_string_tmp = (*env)->GetStringUTFChars(env, 
directory, 0);
+       char *directory_string = strdup(directory_string_tmp);
        unsigned char silent_char = 'n';
 
        // Release the directory string
-       (*env)->ReleaseStringUTFChars(env, directory, dir);
+       (*env)->ReleaseStringUTFChars(env, directory, directory_string_tmp);
        // Set the silent flag based on passed boolean value
        if (silent) {
                silent_char = 'y';
        }
-       return monetdb_startup(dir, silent_char);
+       return monetdb_startup(directory_string, silent_char);
 }
 
-JNIEXPORT jobject JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_query
+jobject JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_query
 (JNIEnv *env, jobject object, jstring query) {
+       (void)object;
        res_table *output = NULL;
-       const char *query_string = (*env)->GetStringUTFChars(env, query, 0);
+       const char *query_string_tmp = (*env)->GetStringUTFChars(env, query, 0);
+       char *query_string = strdup(query_string_tmp);
+       // Release the query string
+       (*env)->ReleaseStringUTFChars(env, query, query_string_tmp);
 
-       jobject *result;
+       jobject result;
        jclass resultClass = (*env)->FindClass(env, 
"org/monetdb/embedded/result/EmbeddedQueryResult");
        // from Java EmbeddedQueryResult(String[] columnNames, String[] 
columnTypes, int numberOfColumns, long resultPointer)
        jmethodID resultConstructor = (*env)->GetMethodID(env, resultClass, 
"<init>", "([Ljava/lang/String;[Ljava/lang/String;IJ)V");
        // column names and types string arrays
        jobjectArray columnNames, columnTypes = NULL;
+       jclass stringClass = (*env)->FindClass(env, "java/lang/String");
 
        // In case we can't find the result object class
        if (resultClass == NULL) {
                return NULL;
        }
 
+       // Execute the query
        char* err = monetdb_query(query_string, (void**)&output);
-       // Release the query string
-       (*env)->ReleaseStringUTFChars(env, query, query_string);
 
        // Checking for errors
        if (err != NULL) {
@@ -63,13 +63,16 @@ JNIEXPORT jobject JNICALL Java_org_monet
                        // Cloud not find the exception class, just return 
empty object
                        return NULL;
                }
-               return (*env)->ThrowNew(env, exClass, err);
+               (*env)->ThrowNew(env, exClass, err);
+               return NULL;
        }
 
        // Collect result column names and types in string arrays
        // If we have not output, we will return them empty
-       columnNames = (jobjectArray)env->NewObjectArray(output->nr_cols, 
env->FindClass("java/lang/String"), env->NewStringUTF(""));
-       columnTypes = (jobjectArray)env->NewObjectArray(output->nr_cols, 
env->FindClass("java/lang/String"), env->NewStringUTF(""));
+       columnNames = (*env)->NewObjectArray(env, output->nr_cols, stringClass, 
0);
+       columnTypes = (*env)->NewObjectArray(env, output->nr_cols, stringClass, 
0);
+//     columnNames = (jobjectArray)env->NewObjectArray(env, output->nr_cols, 
env->FindClass("java/lang/String"), env->NewStringUTF(""));
+//     columnTypes = (jobjectArray)env->NewObjectArray(env, output->nr_cols, 
env->FindClass("java/lang/String"), env->NewStringUTF(""));
        if (output && output->nr_cols > 0) {
                int i;
                for (i = 0; i < output->nr_cols; i++) {
@@ -98,15 +101,15 @@ JNIEXPORT jobject JNICALL Java_org_monet
                                break;
 #ifdef HAVE_HGE
                        case TYPE_hge:
-                               type_string = "huge";
+                               type = "huge";
                                break;
 #endif
                        default:
-                               type_string = "unknown";
+                               type = "unknown";
                        }
                        // Set the meta fields in the result object
-                       env->SetObjectArrayElement(columnNames, i, 
env->NewStringUTF(env, col.name));
-                       env->SetObjectArrayElement(columnTypes, i, 
env->NewStringUTF(env, type));
+                       (*env)->SetObjectArrayElement(env, columnNames, i, 
(*env)->NewStringUTF(env, col.name));
+                       (*env)->SetObjectArrayElement(env, columnTypes, i, 
(*env)->NewStringUTF(env, type));
                }
        }
        // Also keep a long value with the result pointer in the Java result 
object
@@ -118,10 +121,11 @@ JNIEXPORT jobject JNICALL Java_org_monet
        return result;
 }
 
-JNIEXPORT jstring JNICALL Java_org_monetdb_embedded_MonetDBLite_append
-(JNIEnv *env, jobject object, jstring schema_name, jstring table_name, jobject 
data) {
-       const char *schema_name = (*env)->GetStringUTFChars(env, schema, 0);
-       const char *table_name = (*env)->GetStringUTFChars(env, table, 0);
+jstring JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_append
+(JNIEnv *env, jobject object, jstring table, jstring schema, jobject data) {
+       (void)object;
+       (void)table;
+       (void)schema;
        (void)data;
 
        return (*env)->NewStringUTF(env, "");
diff --git a/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.h 
b/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.h
--- a/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.h
+++ b/tools/embedded/java-package/org_monetdb_embedded_MonetDBEmbedded.h
@@ -12,7 +12,7 @@ extern "C" {
  * Method:    startupNative
  * Signature: (Ljava/lang/String;Z)I
  */
-JNIEXPORT jint JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_startupNative
+JNIEXPORT jint JNICALL Java_org_monetdb_embedded_MonetDBEmbedded_startupWrapper
   (JNIEnv *, jobject, jstring, jboolean);
 
 /*
diff --git 
a/tools/embedded/java-package/org_monetdb_embedded_result_EmbeddedQueryResult.c 
b/tools/embedded/java-package/org_monetdb_embedded_result_EmbeddedQueryResult.c
--- 
a/tools/embedded/java-package/org_monetdb_embedded_result_EmbeddedQueryResult.c
+++ 
b/tools/embedded/java-package/org_monetdb_embedded_result_EmbeddedQueryResult.c
@@ -9,19 +9,22 @@
 #include "org_monetdb_embedded_result_EmbeddedQueryResult.h"
 #include "embedded.h"
 
-JNIEXPORT jobject JNICALL 
Java_org_monetdb_embedded_result_EmbeddedQueryResult_getColumnWrapper
+#include "res_table.h"
+
+jobject JNICALL 
Java_org_monetdb_embedded_result_EmbeddedQueryResult_getColumnWrapper
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to