java dbus bindings and network manager issues

Matthew Johnson dbus at matthew.ath.cx
Fri Mar 13 16:42:27 PDT 2009


On Fri Mar 13 16:34, Greg DeAngelis wrote:
> Matt--
> 
> I have attached two NetworkManager stubs, NetworkManager.java and
> NetworkManagerSettings.java. NMJavaDBusIssues.java shows the issues
> I'm experiencing. Marshalling.patch is the hack I made to at least
> allow me to retrieve paths that don't exist/exist on a different
> interface. I explain my need for this below.

OK, so, you have a lot of places you are passing around a
DBusInterface. This will cause it to be auto-proxied. Try using a Path
type instead. However, I couldn't get your test running. Your test does:

DBus.Properties props =
this.conn.getRemoteObject("org.freedesktop.NetworkManager",
      "/org/freedesktop/NetworkManager",
      DBus.Properties.class); List<Path> activeConns =
props.Get("org.freedesktop.NetworkManager", "ActiveConnections");

but that object  (at least on my version of network manager) doesn't support
properties:

$ sudo dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager --print-reply /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Get string:foo string:bar
Error org.freedesktop.DBus.Error.UnknownMethod: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist.

To answer your specific questions:

> I had trouble finding an example of how to define a stub with
> properties and the CreateInterface tool ignores properties so I was
> just requesting a remote DBus.Properties object on a path and
> interface. 

Yes, this is correct, the bindings don't treat it specially at all.

>I hope that right but either way, the ActiveConnections
> function in NMJavaDBusIssues.java shows my problem retrieving a list
> of path objects. Unlike the path issues below, these paths do exist
> and are exposed on the same interface so its really an ObjectPath/Path
> issue. It could be something I messed up but I'm not sure. Any
> suggestions?

Are you having the problem I described above? Is that the right path?

> Is there a way to disable automatic proxy creation that I'm missing?

Declaring the return / parameter type as DBusInterface will do the
path/proxy auto conversion. Using (I think) Path instead won't. At least
that's the idea. I can't test it out on your code though because of the
above properties problem.

dbus-java/org/freedesktop/dbus/test/test.java:89 and 603
would be the bits of my internal test suite which test this.

Matt

-- 
www.matthew.ath.cx
D-Bus Java
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.freedesktop.org/archives/dbus/attachments/20090313/d8274694/attachment.pgp 


More information about the dbus mailing list