Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
* [lttng-dev] [LTTng-UST PATCH] Make the JNI interface actually work
@ 2012-04-05 20:52 Alexandre Montplaisir
  2012-04-05 21:19 ` Mathieu Desnoyers
  0 siblings, 1 reply; 2+ messages in thread
From: Alexandre Montplaisir @ 2012-04-05 20:52 UTC (permalink / raw)


Now a user can import LTTngUst.java (which is now in a proper
package) and then define tracepoints in his application with:

LTTngUst.tracepointString(name, args);

We could eventually ship it in a .jar when the JNI interface is
enabled. It's still very basic, only string payloads are
implemented, and there is no mechanism to enable/disable trace
points at runtime.

Signed-off-by: Alexandre Montplaisir <alexandre.montplaisir at polymtl.ca>
---
 liblttng-ust-java/.gitignore     |    4 +-
 liblttng-ust-java/LTTNG_UST.c    |   36 -----------------------------------
 liblttng-ust-java/LTTNG_UST.java |   25 ------------------------
 liblttng-ust-java/LTTngUst.c     |   39 ++++++++++++++++++++++++++++++++++++++
 liblttng-ust-java/LTTngUst.java  |   27 ++++++++++++++++++++++++++
 liblttng-ust-java/Makefile.am    |   17 ++++++++-------
 6 files changed, 77 insertions(+), 71 deletions(-)
 delete mode 100644 liblttng-ust-java/LTTNG_UST.c
 delete mode 100644 liblttng-ust-java/LTTNG_UST.java
 create mode 100644 liblttng-ust-java/LTTngUst.c
 create mode 100644 liblttng-ust-java/LTTngUst.java

diff --git a/liblttng-ust-java/.gitignore b/liblttng-ust-java/.gitignore
index ab97d04..677373e 100644
--- a/liblttng-ust-java/.gitignore
+++ b/liblttng-ust-java/.gitignore
@@ -1,2 +1,2 @@
-UST.class
-UST.h
+org_lttng_ust_LTTngUst.h
+org/
diff --git a/liblttng-ust-java/LTTNG_UST.c b/liblttng-ust-java/LTTNG_UST.c
deleted file mode 100644
index af29c1e..0000000
--- a/liblttng-ust-java/LTTNG_UST.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; only
- * version 2.1 of the License.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <jni.h>
-
-#define TRACEPOINT_DEFINE
-#define TRACEPOINT_CREATE_PROBES
-#include "lttng_ust_java.h"
-
-JNIEXPORT void JNICALL Java_LTTNG_UST_ust_1java_1event (JNIEnv *env,
-						jobject jobj,
-						jstring ev_name,
-						jstring args)
-{
-	jboolean iscopy;
-	const char *ev_name_cstr = (*env)->GetStringUTFChars(env, ev_name,
-							&iscopy);
-	const char *args_cstr = (*env)->GetStringUTFChars(env, args, &iscopy);
-
-	tracepoint(lttng_ust_java, string, ev_name_cstr, args_cstr);
-}
diff --git a/liblttng-ust-java/LTTNG_UST.java b/liblttng-ust-java/LTTNG_UST.java
deleted file mode 100644
index 7ec6110..0000000
--- a/liblttng-ust-java/LTTNG_UST.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; only
- * version 2.1 of the License.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-class LTTNG_UST {
-	public static native void lttng_ust_java_string(String name, String arg);
-	static {
-		System.loadLibrary("lttng-ust-java");
-	}
-}
-
diff --git a/liblttng-ust-java/LTTngUst.c b/liblttng-ust-java/LTTngUst.c
new file mode 100644
index 0000000..3d23d6a
--- /dev/null
+++ b/liblttng-ust-java/LTTngUst.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; only
+ * version 2.1 of the License.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <jni.h>
+
+#define TRACEPOINT_DEFINE
+#define TRACEPOINT_CREATE_PROBES
+#include "lttng_ust_java.h"
+
+JNIEXPORT void JNICALL Java_org_lttng_ust_LTTngUst_tracepointString(JNIEnv *env,
+						jobject jobj,
+						jstring ev_name,
+						jstring args)
+{
+	jboolean iscopy;
+	const char *ev_name_cstr = (*env)->GetStringUTFChars(env, ev_name,
+							&iscopy);
+	const char *args_cstr = (*env)->GetStringUTFChars(env, args, &iscopy);
+
+	tracepoint(lttng_ust_java, string, ev_name_cstr, args_cstr);
+
+	(*env)->ReleaseStringUTFChars(env, ev_name, ev_name_cstr);
+	(*env)->ReleaseStringUTFChars(env, args, args_cstr);
+}
diff --git a/liblttng-ust-java/LTTngUst.java b/liblttng-ust-java/LTTngUst.java
new file mode 100644
index 0000000..d3f1eda
--- /dev/null
+++ b/liblttng-ust-java/LTTngUst.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; only
+ * version 2.1 of the License.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.lttng.ust;
+
+class LTTngUst {
+	public static native void tracepointString(String name, String arg);
+	static {
+		System.loadLibrary("lttng-ust-java");
+	}
+}
+
diff --git a/liblttng-ust-java/Makefile.am b/liblttng-ust-java/Makefile.am
index 31915d0..9e01e04 100644
--- a/liblttng-ust-java/Makefile.am
+++ b/liblttng-ust-java/Makefile.am
@@ -3,19 +3,20 @@ if BUILD_JNI_INTERFACE
 AM_CPPFLAGS = -I$(top_srcdir)/include
 
 lib_LTLIBRARIES = liblttng-ust-java.la
-liblttng_ust_java_la_SOURCES = LTTNG_UST.c LTTNG_UST.h lttng_ust_java.h
-dist_noinst_DATA = LTTNG_UST.java
+liblttng_ust_java_la_SOURCES = LTTngUst.c org_lttng_ust_LTTngUst.h lttng_ust_java.h
+dist_noinst_DATA = LTTngUst.java
 liblttng_ust_java_la_LIBADD = -lc -L$(top_builddir)/liblttng-ust/.libs -llttng-ust
 
-all: LTTNG_UST.class LTTNG_UST.h
+all: LTTngUst.class org_lttng_ust_LTTngUst.h
 
 clean-local:
-	rm -rf LTTNG_UST.h LTTNG_UST.class
+	rm  org_lttng_ust_LTTngUst.h
+	rm -rf org/
 
-LTTNG_UST.class: LTTNG_UST.java
-	javac -d "$(builddir)" "$(srcdir)/LTTNG_UST.java"
+LTTngUst.class: LTTngUst.java
+	javac -d "$(builddir)" "$(srcdir)/LTTngUst.java"
 
-LTTNG_UST.h: LTTNG_UST.class
-	javah -classpath ./ -jni LTTNG_UST
+org_lttng_ust_LTTngUst.h: LTTngUst.class
+	javah org.lttng.ust.LTTngUst
 
 endif
-- 
1.7.9.1




^ permalink raw reply	[flat|nested] 2+ messages in thread

* [lttng-dev] [LTTng-UST PATCH] Make the JNI interface actually work
  2012-04-05 20:52 [lttng-dev] [LTTng-UST PATCH] Make the JNI interface actually work Alexandre Montplaisir
@ 2012-04-05 21:19 ` Mathieu Desnoyers
  0 siblings, 0 replies; 2+ messages in thread
From: Mathieu Desnoyers @ 2012-04-05 21:19 UTC (permalink / raw)


* Alexandre Montplaisir (alexandre.montplaisir at polymtl.ca) wrote:
> Now a user can import LTTngUst.java (which is now in a proper
> package) and then define tracepoints in his application with:
> 
> LTTngUst.tracepointString(name, args);
> 
> We could eventually ship it in a .jar when the JNI interface is
> enabled. It's still very basic, only string payloads are
> implemented, and there is no mechanism to enable/disable trace
> points at runtime.

merged, thanks!

added to the stable-2.0 branch too.

Mathieu

> 
> Signed-off-by: Alexandre Montplaisir <alexandre.montplaisir at polymtl.ca>
> ---
>  liblttng-ust-java/.gitignore     |    4 +-
>  liblttng-ust-java/LTTNG_UST.c    |   36 -----------------------------------
>  liblttng-ust-java/LTTNG_UST.java |   25 ------------------------
>  liblttng-ust-java/LTTngUst.c     |   39 ++++++++++++++++++++++++++++++++++++++
>  liblttng-ust-java/LTTngUst.java  |   27 ++++++++++++++++++++++++++
>  liblttng-ust-java/Makefile.am    |   17 ++++++++-------
>  6 files changed, 77 insertions(+), 71 deletions(-)
>  delete mode 100644 liblttng-ust-java/LTTNG_UST.c
>  delete mode 100644 liblttng-ust-java/LTTNG_UST.java
>  create mode 100644 liblttng-ust-java/LTTngUst.c
>  create mode 100644 liblttng-ust-java/LTTngUst.java
> 
> diff --git a/liblttng-ust-java/.gitignore b/liblttng-ust-java/.gitignore
> index ab97d04..677373e 100644
> --- a/liblttng-ust-java/.gitignore
> +++ b/liblttng-ust-java/.gitignore
> @@ -1,2 +1,2 @@
> -UST.class
> -UST.h
> +org_lttng_ust_LTTngUst.h
> +org/
> diff --git a/liblttng-ust-java/LTTNG_UST.c b/liblttng-ust-java/LTTNG_UST.c
> deleted file mode 100644
> index af29c1e..0000000
> --- a/liblttng-ust-java/LTTNG_UST.c
> +++ /dev/null
> @@ -1,36 +0,0 @@
> -/*
> - * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> - *
> - * This library is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU Lesser General Public
> - * License as published by the Free Software Foundation; only
> - * version 2.1 of the License.
> - *
> - * This library is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - * Lesser General Public License for more details.
> - *
> - * You should have received a copy of the GNU Lesser General Public
> - * License along with this library; if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> - */
> -
> -#include <jni.h>
> -
> -#define TRACEPOINT_DEFINE
> -#define TRACEPOINT_CREATE_PROBES
> -#include "lttng_ust_java.h"
> -
> -JNIEXPORT void JNICALL Java_LTTNG_UST_ust_1java_1event (JNIEnv *env,
> -						jobject jobj,
> -						jstring ev_name,
> -						jstring args)
> -{
> -	jboolean iscopy;
> -	const char *ev_name_cstr = (*env)->GetStringUTFChars(env, ev_name,
> -							&iscopy);
> -	const char *args_cstr = (*env)->GetStringUTFChars(env, args, &iscopy);
> -
> -	tracepoint(lttng_ust_java, string, ev_name_cstr, args_cstr);
> -}
> diff --git a/liblttng-ust-java/LTTNG_UST.java b/liblttng-ust-java/LTTNG_UST.java
> deleted file mode 100644
> index 7ec6110..0000000
> --- a/liblttng-ust-java/LTTNG_UST.java
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -/*
> - * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> - *
> - * This library is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU Lesser General Public
> - * License as published by the Free Software Foundation; only
> - * version 2.1 of the License.
> - *
> - * This library is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - * Lesser General Public License for more details.
> - *
> - * You should have received a copy of the GNU Lesser General Public
> - * License along with this library; if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> - */
> -
> -class LTTNG_UST {
> -	public static native void lttng_ust_java_string(String name, String arg);
> -	static {
> -		System.loadLibrary("lttng-ust-java");
> -	}
> -}
> -
> diff --git a/liblttng-ust-java/LTTngUst.c b/liblttng-ust-java/LTTngUst.c
> new file mode 100644
> index 0000000..3d23d6a
> --- /dev/null
> +++ b/liblttng-ust-java/LTTngUst.c
> @@ -0,0 +1,39 @@
> +/*
> + * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; only
> + * version 2.1 of the License.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> + */
> +
> +#include <jni.h>
> +
> +#define TRACEPOINT_DEFINE
> +#define TRACEPOINT_CREATE_PROBES
> +#include "lttng_ust_java.h"
> +
> +JNIEXPORT void JNICALL Java_org_lttng_ust_LTTngUst_tracepointString(JNIEnv *env,
> +						jobject jobj,
> +						jstring ev_name,
> +						jstring args)
> +{
> +	jboolean iscopy;
> +	const char *ev_name_cstr = (*env)->GetStringUTFChars(env, ev_name,
> +							&iscopy);
> +	const char *args_cstr = (*env)->GetStringUTFChars(env, args, &iscopy);
> +
> +	tracepoint(lttng_ust_java, string, ev_name_cstr, args_cstr);
> +
> +	(*env)->ReleaseStringUTFChars(env, ev_name, ev_name_cstr);
> +	(*env)->ReleaseStringUTFChars(env, args, args_cstr);
> +}
> diff --git a/liblttng-ust-java/LTTngUst.java b/liblttng-ust-java/LTTngUst.java
> new file mode 100644
> index 0000000..d3f1eda
> --- /dev/null
> +++ b/liblttng-ust-java/LTTngUst.java
> @@ -0,0 +1,27 @@
> +/*
> + * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; only
> + * version 2.1 of the License.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> + */
> +
> +package org.lttng.ust;
> +
> +class LTTngUst {
> +	public static native void tracepointString(String name, String arg);
> +	static {
> +		System.loadLibrary("lttng-ust-java");
> +	}
> +}
> +
> diff --git a/liblttng-ust-java/Makefile.am b/liblttng-ust-java/Makefile.am
> index 31915d0..9e01e04 100644
> --- a/liblttng-ust-java/Makefile.am
> +++ b/liblttng-ust-java/Makefile.am
> @@ -3,19 +3,20 @@ if BUILD_JNI_INTERFACE
>  AM_CPPFLAGS = -I$(top_srcdir)/include
>  
>  lib_LTLIBRARIES = liblttng-ust-java.la
> -liblttng_ust_java_la_SOURCES = LTTNG_UST.c LTTNG_UST.h lttng_ust_java.h
> -dist_noinst_DATA = LTTNG_UST.java
> +liblttng_ust_java_la_SOURCES = LTTngUst.c org_lttng_ust_LTTngUst.h lttng_ust_java.h
> +dist_noinst_DATA = LTTngUst.java
>  liblttng_ust_java_la_LIBADD = -lc -L$(top_builddir)/liblttng-ust/.libs -llttng-ust
>  
> -all: LTTNG_UST.class LTTNG_UST.h
> +all: LTTngUst.class org_lttng_ust_LTTngUst.h
>  
>  clean-local:
> -	rm -rf LTTNG_UST.h LTTNG_UST.class
> +	rm  org_lttng_ust_LTTngUst.h
> +	rm -rf org/
>  
> -LTTNG_UST.class: LTTNG_UST.java
> -	javac -d "$(builddir)" "$(srcdir)/LTTNG_UST.java"
> +LTTngUst.class: LTTngUst.java
> +	javac -d "$(builddir)" "$(srcdir)/LTTngUst.java"
>  
> -LTTNG_UST.h: LTTNG_UST.class
> -	javah -classpath ./ -jni LTTNG_UST
> +org_lttng_ust_LTTngUst.h: LTTngUst.class
> +	javah org.lttng.ust.LTTngUst
>  
>  endif
> -- 
> 1.7.9.1
> 
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-04-05 21:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-05 20:52 [lttng-dev] [LTTng-UST PATCH] Make the JNI interface actually work Alexandre Montplaisir
2012-04-05 21:19 ` Mathieu Desnoyers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox