*Cries* - Vala converts to C before building
In your service file, you call the service "org.maemo.javalauncher", which is fine but you've still left it as "javalauncher" in the desktop file. When a name is not given a prefix, it automatically assumes "com.nokia.javalauncher". So you've got a desktop file looking for com.nokia.javalauncher but a service file only defining org.maemo.javalauncher. This is also true for osso_initialize(), so the call to that must also be amended.
I verified your program actually starts by doing a - wait for it - "while true; do ps | grep java | grep -v grep; done" from the terminal.
However, PHP Code: dbus_connection_flush((DBusConnection*)osso_get_dbus_connection(ctx)); dbus_connection_read_write((DBusConnection*)osso_get_dbus_connection(ctx), 0); didn't work for me; mime_cb was never called. Maybe I'm doing it on the wrong DBusConnection, but I dunno.
dbus_connection_flush((DBusConnection*)osso_get_dbus_connection(ctx)); dbus_connection_read_write((DBusConnection*)osso_get_dbus_connection(ctx), 0);
So I went back to what works for me: A GMainLoop. libosso will automatically call dbus_connection_setup_with_g_main () on both its connections for you, and mime_cb was actually getting called this time. And, according to ltrace, it's sure not waking up as much
When doing this, it all worked [code snip]