projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'collectd-4.7'
[collectd.git]
/
src
/
java.c
diff --git
a/src/java.c
b/src/java.c
index
d0eeeff
..
03df2b7
100644
(file)
--- a/
src/java.c
+++ b/
src/java.c
@@
-227,7
+227,7
@@
static jobject ctoj_jlong_to_number (JNIEnv *jvm_env, jlong value) /* {{{ */
jmethodID m_long_constructor;
/* Look up the java.lang.Long class */
jmethodID m_long_constructor;
/* Look up the java.lang.Long class */
- c_long = (*jvm_env)->FindClass (jvm_env, "java
.lang.
Long");
+ c_long = (*jvm_env)->FindClass (jvm_env, "java
/lang/
Long");
if (c_long == NULL)
{
ERROR ("java plugin: ctoj_jlong_to_number: Looking up the "
if (c_long == NULL)
{
ERROR ("java plugin: ctoj_jlong_to_number: Looking up the "
@@
-255,7
+255,7
@@
static jobject ctoj_jdouble_to_number (JNIEnv *jvm_env, jdouble value) /* {{{ */
jmethodID m_double_constructor;
/* Look up the java.lang.Long class */
jmethodID m_double_constructor;
/* Look up the java.lang.Long class */
- c_double = (*jvm_env)->FindClass (jvm_env, "java
.lang.
Double");
+ c_double = (*jvm_env)->FindClass (jvm_env, "java
/lang/
Double");
if (c_double == NULL)
{
ERROR ("java plugin: ctoj_jdouble_to_number: Looking up the "
if (c_double == NULL)
{
ERROR ("java plugin: ctoj_jdouble_to_number: Looking up the "
@@
-284,6
+284,10
@@
static jobject ctoj_value_to_number (JNIEnv *jvm_env, /* {{{ */
return (ctoj_jlong_to_number (jvm_env, (jlong) value.counter));
else if (ds_type == DS_TYPE_GAUGE)
return (ctoj_jdouble_to_number (jvm_env, (jdouble) value.gauge));
return (ctoj_jlong_to_number (jvm_env, (jlong) value.counter));
else if (ds_type == DS_TYPE_GAUGE)
return (ctoj_jdouble_to_number (jvm_env, (jdouble) value.gauge));
+ if (ds_type == DS_TYPE_DERIVE)
+ return (ctoj_jlong_to_number (jvm_env, (jlong) value.derive));
+ if (ds_type == DS_TYPE_ABSOLUTE)
+ return (ctoj_jlong_to_number (jvm_env, (jlong) value.absolute));
else
return (NULL);
} /* }}} jobject ctoj_value_to_number */
else
return (NULL);
} /* }}} jobject ctoj_value_to_number */
@@
-580,7
+584,7
@@
static jobject ctoj_oconfig_item (JNIEnv *jvm_env, /* {{{ */
return (NULL);
}
return (NULL);
}
- (*jvm_env)->CallVoidMethod (jvm_env, o_ocitem, m_add
value
, o_child);
+ (*jvm_env)->CallVoidMethod (jvm_env, o_ocitem, m_add
child
, o_child);
(*jvm_env)->DeleteLocalRef (jvm_env, o_child);
} /* }}} for (i = 0; i < ci->children_num; i++) */
(*jvm_env)->DeleteLocalRef (jvm_env, o_child);
} /* }}} for (i = 0; i < ci->children_num; i++) */
@@
-608,7
+612,7
@@
static jobject ctoj_data_set (JNIEnv *jvm_env, const data_set_t *ds) /* {{{ */
/* Search for the `DataSet (String type)' constructor. */
m_constructor = (*jvm_env)->GetMethodID (jvm_env,
/* Search for the `DataSet (String type)' constructor. */
m_constructor = (*jvm_env)->GetMethodID (jvm_env,
- c_dataset, "<init>", "(Ljava
.lang.
String;)V");
+ c_dataset, "<init>", "(Ljava
/lang/
String;)V");
if (m_constructor == NULL)
{
ERROR ("java plugin: ctoj_data_set: Looking up the "
if (m_constructor == NULL)
{
ERROR ("java plugin: ctoj_data_set: Looking up the "
@@
-1042,33
+1046,39
@@
static int jtoc_value (JNIEnv *jvm_env, /* {{{ */
class_ptr = (*jvm_env)->GetObjectClass (jvm_env, object_ptr);
class_ptr = (*jvm_env)->GetObjectClass (jvm_env, object_ptr);
- if (ds_type == DS_TYPE_
COUNTER
)
+ if (ds_type == DS_TYPE_
GAUGE
)
{
{
- j
long tmp_long
;
+ j
double tmp_double
;
- status = jtoc_
long (jvm_env, &tmp_long
,
- class_ptr, object_ptr, "
long
Value");
+ status = jtoc_
double (jvm_env, &tmp_double
,
+ class_ptr, object_ptr, "
double
Value");
if (status != 0)
{
ERROR ("java plugin: jtoc_value: "
if (status != 0)
{
ERROR ("java plugin: jtoc_value: "
- "jtoc_
long
failed.");
+ "jtoc_
double
failed.");
return (-1);
}
return (-1);
}
- (*ret_value).
counter = (counter_t) tmp_long
;
+ (*ret_value).
gauge = (gauge_t) tmp_double
;
}
else
{
}
else
{
- j
double tmp_double
;
+ j
long tmp_long
;
- status = jtoc_
double (jvm_env, &tmp_double
,
- class_ptr, object_ptr, "
double
Value");
+ status = jtoc_
long (jvm_env, &tmp_long
,
+ class_ptr, object_ptr, "
long
Value");
if (status != 0)
{
ERROR ("java plugin: jtoc_value: "
if (status != 0)
{
ERROR ("java plugin: jtoc_value: "
- "jtoc_
double
failed.");
+ "jtoc_
long
failed.");
return (-1);
}
return (-1);
}
- (*ret_value).gauge = (gauge_t) tmp_double;
+
+ if (ds_type == DS_TYPE_DERIVE)
+ (*ret_value).derive = (derive_t) tmp_long;
+ else if (ds_type == DS_TYPE_ABSOLUTE)
+ (*ret_value).absolute = (absolute_t) tmp_long;
+ else
+ (*ret_value).counter = (counter_t) tmp_long;
}
return (0);
}
return (0);
@@
-1970,7
+1980,7
@@
static int cjni_create_jvm (void) /* {{{ */
vm_args.options[i].optionString = jvm_argv[i];
}
vm_args.options[i].optionString = jvm_argv[i];
}
- status = JNI_CreateJavaVM (&jvm, (void *
*) &jvm_env, (void *
*) &vm_args);
+ status = JNI_CreateJavaVM (&jvm, (void *
) &jvm_env, (void
*) &vm_args);
if (status != 0)
{
ERROR ("java plugin: cjni_create_jvm: "
if (status != 0)
{
ERROR ("java plugin: cjni_create_jvm: "
@@
-2179,6
+2189,15
@@
static int cjni_config_load_plugin (oconfig_item_t *ci) /* {{{ */
class->class = NULL;
class->object = NULL;
class->class = NULL;
class->object = NULL;
+ { /* Replace all dots ('.') with slashes ('/'). Dots are usually used
+ thorough the Java community, but (Sun's) `FindClass' and friends need
+ slashes. */
+ size_t i;
+ for (i = 0; class->name[i] != 0; i++)
+ if (class->name[i] == '.')
+ class->name[i] = '/';
+ }
+
DEBUG ("java plugin: Loading class %s", class->name);
class->class = (*jvm_env)->FindClass (jvm_env, class->name);
DEBUG ("java plugin: Loading class %s", class->name);
class->class = (*jvm_env)->FindClass (jvm_env, class->name);
@@
-2926,7
+2945,7
@@
static int cjni_shutdown (void) /* {{{ */
memset (&args, 0, sizeof (args));
args.version = JNI_VERSION_1_2;
memset (&args, 0, sizeof (args));
args.version = JNI_VERSION_1_2;
- status = (*jvm)->AttachCurrentThread (jvm, (void *
*
) &jvm_env, &args);
+ status = (*jvm)->AttachCurrentThread (jvm, (void *) &jvm_env, &args);
if (status != 0)
{
ERROR ("java plugin: cjni_shutdown: AttachCurrentThread failed with status %i.",
if (status != 0)
{
ERROR ("java plugin: cjni_shutdown: AttachCurrentThread failed with status %i.",